diff --git a/Editor/HumanoidFree.meta b/Editor/HumanoidFree.meta deleted file mode 100644 index 065ab0a..0000000 --- a/Editor/HumanoidFree.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: df6593e3fca102a49b812d8cb5da504d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Configuration_Editor.cs b/Editor/HumanoidFree/Configuration_Editor.cs deleted file mode 100644 index 5ff6022..0000000 --- a/Editor/HumanoidFree/Configuration_Editor.cs +++ /dev/null @@ -1,1479 +0,0 @@ -using System; -using System.IO; -using UnityEditor; -using UnityEditor.Callbacks; - -using UnityEngine; -#if UNITY_2019_1_OR_NEWER -using System.Collections.Generic; -using UnityEditor.PackageManager.Requests; -using UnityEditor.PackageManager; -#endif -#if !UNITY_2019_1_OR_NEWER -#endif -#if hPHOTON2 -using Photon.Pun; -#endif - -namespace Passer.Humanoid { - - [InitializeOnLoad] - public class ConfigurationCheck { - static ConfigurationCheck() { - RetrievePackageList(); - - CheckXrSdks(); - } - - protected static ListRequest request; - public static List packageNameList; - - public static void RetrievePackageList() { - request = Client.List(); // List packages installed for the Project - EditorApplication.update += Progress; - } - - public static void Progress() { - if (request.IsCompleted) { - if (request.Status == StatusCode.Success) { - packageNameList = new List(); - foreach (UnityEditor.PackageManager.PackageInfo package in request.Result) - packageNameList.Add(package.name); - Configuration_Editor.CheckExtensionUnityXR(); - } - else if (request.Status >= StatusCode.Failure) - Debug.Log(request.Error.message); - - EditorApplication.update -= Progress; - } - } - - public static void CheckXrSdks() { - Configuration_Editor.FindHumanoidFolder(); - - Configuration configuration = Configuration_Editor.GetConfiguration(); - - -#if (UNITY_STANDALONE_WIN || UNITY_ANDROID) - bool oculusSupported -#if hLEGACYXR - = Oculus_Editor.OculusSupported(); -#else - = false; -#endif - if (oculusSupported && !configuration.oculusSupport) { - configuration.oculusSupport = true; - } -#endif - -#if (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - bool steamVrSupported -#if hLEGACYXR - = Passer.Humanoid.OpenVR_Editor.OpenVRSupported(); -#else - = false; -#endif - if (steamVrSupported && !configuration.openVRSupport) { - configuration.openVRSupport = true; - } -#endif - -#if (UNITY_WSA_10_0) - bool windowsMrSupported -#if hLEGACYXR - = WindowsMR_Editor.MixedRealitySupported(); -#else - = false; -#endif - if (windowsMrSupported && !configuration.windowsMRSupport) { - configuration.windowsMRSupport = true; - } -#if !hWINDOWSMR - if (windowsMrSupported) - configuration.windowsMRSupport = false; -#endif -#endif - } - - [DidReloadScripts] - protected static void DidReloadScripts() { - Configuration_Editor.FindHumanoidFolder(); - - Configuration configuration = Configuration_Editor.GetConfiguration(); - Configuration_Editor.CheckExtensions(configuration); - } - - #region Availability - - #region Support - private static bool isHumanoid4 { - get { - return Configuration_Editor.DoesTypeExist("Passer.Site"); - } - } - #endregion Suport - - #endregion Availability - } - - [CustomEditor(typeof(Configuration))] - public class Configuration_Editor : Editor { - private static Configuration configuration; - - private static string humanoidPath; - - private const string openVRPath = "Extensions/OpenVR/OpenVR.cs"; - private const string oculusPath = "Extensions/Oculus/Oculus.cs"; - private const string windowsMRPath = "Extensions/WindowsMR/WindowsMR.cs"; - private const string neuronPath = "Extensions/PerceptionNeuron/PerceptionNeuron.cs"; - private const string realsensePath = "Extensions/IntelRealsense/IntelRealsense.cs"; - private const string kinect1Path = "Extensions/MicrosoftKinect1/MicrosoftKinect1.cs"; - private const string kinect2Path = "Extensions/MicrosoftKinect2/MicrosoftKinect2.cs"; - private const string kinect4Path = "Extensions/MicrosoftKinect4/AzureKinect.cs"; - private const string hydraPath = "Extensions/RazerHydra/RazerHydra.cs"; - public const string arkitPath = "Extensions/Arkit/ArKit.cs"; - private const string pupilPath = "Extensions/Pupil/PupilTracker.cs"; - - private const string facePath = "FaceControl/EyeTarget.cs"; - - //public static Configuration CreateDefaultConfiguration() { - // Configuration configuration; - - // Debug.Log("Created new Default Configuration"); - // // Create new Default Configuration - // configuration = CreateInstance(); - // configuration.oculusSupport = true; - // configuration.openVRSupport = true; - // configuration.windowsMRSupport = true; - - // string path = humanoidPath.Substring(0, humanoidPath.Length - 1); // strip last / - // path = path.Substring(0, path.LastIndexOf('/') + 1); // strip Scripts; - // path = "Assets" + path + "DefaultConfiguration.asset"; - // AssetDatabase.CreateAsset(configuration, path); - // AssetDatabase.SaveAssets(); - // return configuration; - //} - - public static Configuration GetConfiguration() { - //string humanoidPath = FindHumanoidFolder(); - //humanoidPath = humanoidPath.Substring(0, humanoidPath.Length - 1); // strip last / - //humanoidPath = humanoidPath.Substring(0, humanoidPath.LastIndexOf('/') + 1); // strip Scripts; - - //configuration.networkingSupport = (NetworkingSystems)EditorPrefs.GetInt("HumanoidNetworkingSupport", 0); - //configuration.humanoidSceneName = EditorPrefs.GetString("HumanoidSceneName", ""); - //string configurationString = EditorPrefs.GetString("HumanoidConfigurationKey", "DefaultConfiguration"); - //var settings = AssetDatabase.LoadAssetAtPath("Assets" + humanoidPath + "HumanoidPreferences.asset"); - //if (settings == null) { - // settings = CreateInstance(); - - // // Creating assets in a package is not possible because the package is read-only - // // Configuration file feature is to be removed. - // //AssetDatabase.CreateAsset(settings, HumanoidPreferences.settingsPath); - // AssetDatabase.SaveAssets(); - //} - - //SerializedObject serializedSettings = new SerializedObject(settings); - //SerializedProperty configurationProp = serializedSettings.FindProperty("configuration"); - //if (settings.configuration == null) { - // Configuration configuration = LoadConfiguration(configurationString); - // if (configuration == null) { - // configurationString = "DefaultConfiguration"; - // configuration = LoadConfiguration(configurationString); - // if (configuration == null) { - // Debug.Log("Created new Default Configuration"); - // // Create new Default Configuration - // configuration = CreateInstance(); - // configuration.oculusSupport = true; - // configuration.openVRSupport = true; - // configuration.windowsMRSupport = true; - // string path = "Assets" + humanoidPath + configurationString + ".asset"; - // Debug.Log(configuration + " " + path); - // AssetDatabase.CreateAsset(configuration, path); - // AssetDatabase.SaveAssets(); - // } - // EditorPrefs.SetString("HumanoidConfigurationKey", configurationString); - // } - // configurationProp.objectReferenceValue = configuration; - //} - //serializedSettings.ApplyModifiedProperties(); - //return (Configuration)configurationProp.objectReferenceValue; - return configuration; - } - - #region Enable - - public void OnEnable() { - //configuration = (Configuration)target; - - humanoidPath = FindHumanoidFolder(); - } - - public static string FindHumanoidFolder() { - // Path is correct - if (IsFileAvailable("HumanoidControl.cs")) - return humanoidPath; - - // Determine in which (sub)folder HUmanoid Control has been placed - // This makes it possible to place Humanoid Control is a different folder - string[] hcScripts = AssetDatabase.FindAssets("HumanoidControl"); - for (int i = 0; i < hcScripts.Length; i++) { - string assetPath = AssetDatabase.GUIDToAssetPath(hcScripts[i]); - if (assetPath.Length > 36 && assetPath.Substring(assetPath.Length - 27, 27) == "/Scripts/HumanoidControl.cs") { - humanoidPath = assetPath.Substring(6, assetPath.Length - 24); - return humanoidPath; - } - } - - // Defaulting to standard folder - humanoidPath = "/Humanoid/Scripts/"; - return humanoidPath; - } - - #endregion - - public override void OnInspectorGUI() { - serializedObject.Update(); - - //bool anyChanged = ConfigurationGUI(serializedObject); - //if (GUI.changed || anyChanged) { - // EditorUtility.SetDirty(configuration); - //} - - serializedObject.ApplyModifiedProperties(); - } - - public static bool ConfigurationGUI(SerializedObject serializedConfiguration) { - bool anyChanged = false; - - //anyChanged |= OpenVRSettingUI(serializedConfiguration); - - //anyChanged |= SteamVRSettingUI(serializedConfiguration); - //anyChanged |= OculusSettingUI(serializedConfiguration); - //anyChanged |= WindowsMRSettingUI(serializedConfiguration); - //anyChanged |= VrtkSettingUI(serializedConfiguration); - - //anyChanged |= LeapSettingUI(serializedConfiguration); - //anyChanged |= Kinect1SettingUI(serializedConfiguration); - //anyChanged |= Kinect2SettingUI(serializedConfiguration); - //anyChanged |= Kinect4SettingUI(serializedConfiguration); - //anyChanged |= AstraSettingUI(serializedConfiguration); - - //anyChanged |= RealsenseSettingUI(serializedConfiguration); - //anyChanged |= HydraSettingUI(serializedConfiguration); - //anyChanged |= TobiiSettingUI(serializedConfiguration); - //anyChanged |= ArkitSettingUI(serializedConfiguration); - //anyChanged |= PupilSettingUI(serializedConfiguration); - //anyChanged |= NeuronSettingUI(serializedConfiguration); - //anyChanged |= Hi5SettingUI(serializedConfiguration); - //anyChanged |= OptitrackSettingUI(serializedConfiguration); - //anyChanged |= AntilatencySettingUI(serializedConfiguration); - - //anyChanged |= NetworkingSettingUI(serializedConfiguration); - - //anyChanged |= HumanoidSceneInspector(serializedConfiguration); - - return anyChanged; - } - - #region SettingUI - - private static string[] personalHumanoidNames; - - //public static bool HumanoidSceneInspector(SerializedObject serializedConfiguration) { - // bool anyChanged = false; - // SerializedProperty humanoidSceneNameProp = serializedConfiguration.FindProperty("humanoidSceneName"); - - // if (HumanoidVisitors.visitors.Count <= 0) - // return false; - - // personalHumanoidNames = new string[HumanoidVisitors.visitors.Count]; - // int i = 0; - // int ix; - // foreach (string personalHumanoid in HumanoidVisitors.visitors) { - // string name = personalHumanoid; - // ix = name.LastIndexOf('/'); - // name = name.Substring(ix + 1); - // name = name.Substring(0, name.Length - 6); // remove .unity - // personalHumanoidNames[i++] = name; - // } - - // ix = HumanoidVisitors.visitors.FindIndex(name => name == humanoidSceneNameProp.stringValue); - // if (ix < 0) - // ix = 0; - // ix = EditorGUILayout.Popup("Testing Visitor", ix, personalHumanoidNames); - // anyChanged = humanoidSceneNameProp.stringValue != HumanoidVisitors.visitors[ix]; - - // humanoidSceneNameProp.stringValue = HumanoidVisitors.visitors[ix]; - // return anyChanged; - //} - - public static bool OpenVRSettingUI(SerializedObject serializedConfiguration) { - bool anyChanged = false; - - SerializedProperty openVRSupportProp = serializedConfiguration.FindProperty("openVRSupport"); - -#if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX - bool openVrSupported -#if hLEGACYXR - = OpenVR_Editor.OpenVRSupported(); -#else - = false; -#endif - - if (openVrSupported) { - openVRSupportProp.boolValue = isOpenVrSupportAvailable; - using (new EditorGUI.DisabledScope(true)) { - EditorGUILayout.Toggle("OpenVR Support", openVRSupportProp.boolValue); - } - } - else if (!isOpenVrSupportAvailable) - openVRSupportProp.boolValue = false; - else - openVRSupportProp.boolValue = EditorGUILayout.Toggle("OpenVR Support", openVRSupportProp.boolValue); - - ViveTrackerSettingUI(serializedConfiguration); -#else - SerializedProperty viveTrackerSupportProp = serializedConfiguration.FindProperty("viveTrackerSupport"); - if (openVRSupportProp.boolValue | viveTrackerSupportProp.boolValue) - anyChanged = true; - openVRSupportProp.boolValue = false; - viveTrackerSupportProp.boolValue = false; -#endif - return anyChanged; - } - - public static bool SteamVRSettingUI(SerializedObject serializedConfiguration) { - bool anyChanged = false; - - SerializedProperty steamVrSupportProp = serializedConfiguration.FindProperty(nameof(Configuration.steamVrSupport)); - -#if UNITY_STANDALONE_WIN - if (isSteamVrSupportAvailable && isSteamVrAvailable) - steamVrSupportProp.boolValue = EditorGUILayout.Toggle("SteamVR Support", steamVrSupportProp.boolValue); - else - steamVrSupportProp.boolValue = false; - - ViveTrackerSettingUI(serializedConfiguration); -#else - SerializedProperty viveTrackerSupportProp = serializedConfiguration.FindProperty(nameof(Configuration.viveTrackerSupport)); - if (steamVrSupportProp.boolValue | viveTrackerSupportProp.boolValue) - anyChanged = true; - steamVrSupportProp.boolValue = false; - viveTrackerSupportProp.boolValue = false; -#endif - return anyChanged; - } - - public static bool ViveTrackerSettingUI(SerializedObject serializedConfiguration) { - //SerializedProperty openVRSupportProp = serializedConfiguration.FindProperty("openVRSupport"); - SerializedProperty steamVrSupportProp = serializedConfiguration.FindProperty(nameof(Configuration.steamVrSupport)); - SerializedProperty viveTrackerSupportProp = serializedConfiguration.FindProperty(nameof(Configuration.viveTrackerSupport)); - - using (new EditorGUI.DisabledScope(steamVrSupportProp.boolValue == false)) { - viveTrackerSupportProp.boolValue = isViveTrackerSupportAvailable && EditorGUILayout.Toggle("Vive Tracker Support", viveTrackerSupportProp.boolValue); - } - return false; - } - - public static bool OculusSettingUI(SerializedObject serializedConfiguration) { - bool anyChanged = false; - - SerializedProperty oculusSupportProp = serializedConfiguration.FindProperty("oculusSupport"); - -#if UNITY_STANDALONE_WIN || UNITY_ANDROID - bool oculusSupported -#if hLEGACYXR - = Oculus_Editor.OculusSupported(); -#else - = false; -#endif - if (oculusSupported) { - oculusSupportProp.boolValue = isOculusSupportAvailable; - using (new EditorGUI.DisabledScope(true)) { - EditorGUILayout.Toggle("Oculus Support", oculusSupportProp.boolValue); - } - } - else if (!isOculusSupportAvailable) - oculusSupportProp.boolValue = false; - else - oculusSupportProp.boolValue = EditorGUILayout.Toggle("Oculus Support", oculusSupportProp.boolValue); -#else - if (oculusSupportProp.boolValue) - anyChanged = true; - oculusSupportProp.boolValue = false; -#endif - return anyChanged; - } - - public static bool WindowsMRSettingUI(SerializedObject serializedConfiguration) { - bool anyChanged = false; - - SerializedProperty windowsMRSupportProp = serializedConfiguration.FindProperty("windowsMRSupport"); - -#if UNITY_WSA_10_0 - bool windowsMrSupported = WindowsMR_Editor.MixedRealitySupported(); - if (windowsMrSupported) { - windowsMRSupportProp.boolValue = isWindowsMrSupportAvailable; - using (new EditorGUI.DisabledScope(true)) { - EditorGUILayout.Toggle("Windows MR Support", windowsMRSupportProp.boolValue); - } - } - else if (!isWindowsMrSupportAvailable) - windowsMRSupportProp.boolValue = false; - else - windowsMRSupportProp.boolValue = EditorGUILayout.Toggle("Windows MR Support", windowsMRSupportProp.boolValue); -#else - if (windowsMRSupportProp.boolValue) - anyChanged = true; - windowsMRSupportProp.boolValue = false; -#endif - return anyChanged; - } - - public static bool VrtkSettingUI(SerializedObject serializedConfiguration) { - - SerializedProperty vrtkSupportProp = serializedConfiguration.FindProperty("vrtkSupport"); - - if (!isVrtkSupportAvailable) - vrtkSupportProp.boolValue = false; - - else if (!isVrtkAvailable) { - using (new EditorGUI.DisabledScope(true)) { - EditorGUILayout.Toggle("VRTK Supoort", false); - } - EditorGUILayout.HelpBox("VRTK is not available. Please download it from the Asset Store.", MessageType.Warning, true); - } - else - vrtkSupportProp.boolValue = EditorGUILayout.Toggle("VRTK Support", vrtkSupportProp.boolValue); - return false; - } - - public static bool LeapSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty leapSupportProp = serializedConfiguration.FindProperty("leapSupport"); - - bool oldLeapSupport = leapSupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isLeapSupportAvailable) - leapSupportProp.boolValue = false; - - else if (!isLeapAvailable) { - using (new EditorGUI.DisabledScope(true)) { - leapSupportProp.boolValue = EditorGUILayout.Toggle("Leap Motion Support", false); - } - EditorGUILayout.HelpBox("Leap Motion Core Assets are not available. Please download the Core Assets using the button below and import them into this project.", MessageType.Warning, true); - if (GUILayout.Button("Download Leap Motion Unity Core Assets")) - Application.OpenURL("https://developer.leapmotion.com/unity"); - } - - else - using (new EditorGUI.DisabledScope(true)) { - leapSupportProp.boolValue = EditorGUILayout.Toggle("Leap Motion Support", leapSupportProp.boolValue); - } -#else - leapSupportProp.boolValue = false; -#endif - return (leapSupportProp.boolValue != oldLeapSupport); - } - - public static bool Kinect1SettingUI(SerializedObject serializedConfiguration) { - SerializedProperty kinect1SupportProp = serializedConfiguration.FindProperty("kinect1Support"); - - bool oldKinectSupport = kinect1SupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isKinect1SupportAvailable) - kinect1SupportProp.boolValue = false; - else - kinect1SupportProp.boolValue = EditorGUILayout.Toggle("Kinect 1 Support", kinect1SupportProp.boolValue); -#else - kinect1SupportProp.boolValue = false; -#endif - return (kinect1SupportProp.boolValue != oldKinectSupport); - } - - public static bool Kinect2SettingUI(SerializedObject serializedConfiguration) { - SerializedProperty kinect2SupportProp = serializedConfiguration.FindProperty("kinect2Support"); - - bool oldKinectSupport = kinect2SupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isKinect2SupportAvailable) - kinect2SupportProp.boolValue = false; - else - kinect2SupportProp.boolValue = EditorGUILayout.Toggle("Kinect 2 Support", kinect2SupportProp.boolValue); -#else - kinect2SupportProp.boolValue = false; -#endif - return (kinect2SupportProp.boolValue != oldKinectSupport); - } - - public static bool Kinect4SettingUI(SerializedObject serializedConfiguration) { - SerializedProperty kinect4SupportProp = serializedConfiguration.FindProperty("kinect4Support"); - - bool oldKinectSupport = kinect4SupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isKinect4SupportAvailable) - kinect4SupportProp.boolValue = false; - else - kinect4SupportProp.boolValue = EditorGUILayout.Toggle("Azure Kinect Support", kinect4SupportProp.boolValue); -#else - kinect4SupportProp.boolValue = false; -#endif - return (kinect4SupportProp.boolValue != oldKinectSupport); - - } - - public static bool AstraSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty astraSupportProp = serializedConfiguration.FindProperty("astraSupport"); - - bool oldAstraSupport = astraSupportProp.boolValue; -#if UNITY_STANDALONE_WIN - if (!isAstraSupportAvailable) - astraSupportProp.boolValue = false; - - else if (!isAstraAvailable) { - using (new EditorGUI.DisabledScope(true)) { - astraSupportProp.boolValue = EditorGUILayout.Toggle("Orbbec Astra Support", false); - } - EditorGUILayout.HelpBox("Astra SDK is not available. Please download the Astra Unity SDK using the button below and import them into this project.", MessageType.Warning, true); - if (GUILayout.Button("Download Orbbec Astra SDK")) - Application.OpenURL("https://orbbec3d.com/develop/"); - } - else - using (new EditorGUI.DisabledScope(true)) { - astraSupportProp.boolValue = EditorGUILayout.Toggle("Orbbec Astra Support", astraSupportProp.boolValue); - } -#else - astraSupportProp.boolValue = false; -#endif - return (astraSupportProp.boolValue != oldAstraSupport); - } - - public static bool RealsenseSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty realsenseSupportProp = serializedConfiguration.FindProperty("realsenseSupport"); - - bool oldRealsenseSupport = realsenseSupportProp.boolValue; -#if UNITY_STANDALONE_WIN - if (!isRealsenseSupportAvailable) - realsenseSupportProp.boolValue = false; - else - realsenseSupportProp.boolValue = EditorGUILayout.Toggle("Intel RealSense Support", realsenseSupportProp.boolValue); -#else - realsenseSupportProp.boolValue = false; -#endif - return (realsenseSupportProp.boolValue != oldRealsenseSupport); - } - - public static bool HydraSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty hydraSupportProp = serializedConfiguration.FindProperty("hydraSupport"); - - bool oldHydraSupport = hydraSupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isHydraSupportAvailable) - hydraSupportProp.boolValue = false; - else - hydraSupportProp.boolValue = EditorGUILayout.Toggle("Hydra Support", hydraSupportProp.boolValue); -#else - hydraSupportProp.boolValue = false; -#endif - return (hydraSupportProp.boolValue != oldHydraSupport); - } - - public static bool TobiiSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty tobiiSupportProp = serializedConfiguration.FindProperty("tobiiSupport"); - - bool oldTobiiSupport = tobiiSupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isFaceSupportAvailable || !isTobiiSupportAvailable) - tobiiSupportProp.boolValue = false; - - else if (!isTobiiAvailable) { - using (new EditorGUI.DisabledScope(true)) { - tobiiSupportProp.boolValue = EditorGUILayout.Toggle("Tobii Support", false); - } - EditorGUILayout.HelpBox("Tobii Framework is not available. Please download the Tobii Unity SDK using the button below and import them into this project.", MessageType.Warning, true); - if (GUILayout.Button("Download Tobii Unity SDK")) - Application.OpenURL("http://developer.tobii.com/tobii-unity-sdk/"); - } - else - using (new EditorGUI.DisabledScope(true)) { - tobiiSupportProp.boolValue = EditorGUILayout.Toggle("Tobii Support", tobiiSupportProp.boolValue); - } -#else - tobiiSupportProp.boolValue = false; -#endif - return (tobiiSupportProp.boolValue != oldTobiiSupport); - } - - public static bool ArkitSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty arkitSupportProp = serializedConfiguration.FindProperty("arkitSupport"); - - bool oldArkitSupport = arkitSupportProp.boolValue; -#if UNITY_IOS && UNITY_2019_1_OR_NEWER - if (!isFaceSupportAvailable || !isArKitSupportAvailable) - arkitSupportProp.boolValue = false; - - else if (!isArKitAvailable) { - using (new EditorGUI.DisabledScope(true)) { - arkitSupportProp.boolValue = EditorGUILayout.Toggle("ArKit Support", false); - } - EditorGUILayout.HelpBox( - "Required packages are not installed. " + - "Please open the Unity Package Manager and install 'AR Foundation', 'ARKit Face Tracking' and 'XR Legacy Input Helpers'.", - MessageType.Warning, true); - if (GUILayout.Button("Open Package Manager")) - EditorApplication.ExecuteMenuItem("Window/Package Manager"); - } - else - using (new EditorGUI.DisabledScope(true)) { - arkitSupportProp.boolValue = EditorGUILayout.Toggle("ArKit Support", arkitSupportProp.boolValue); - } -#else - arkitSupportProp.boolValue = false; -#endif - return (arkitSupportProp.boolValue != oldArkitSupport); - } - - public static bool PupilSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty pupilSupportProp = serializedConfiguration.FindProperty("pupilSupport"); - - bool oldPupilSupport = pupilSupportProp.boolValue; -#if UNITY_STANDALONE_WIN - if (!isPupilSupportAvailable) - pupilSupportProp.boolValue = false; - - else if (!isPupilAvailable) { - EditorGUI.BeginDisabledGroup(true); - pupilSupportProp.boolValue = EditorGUILayout.Toggle("Pupil Labs Support", false); - EditorGUI.EndDisabledGroup(); - EditorGUILayout.HelpBox("Pupil Labs plugin is not available. Please download the plugin using the button below and import them into this project.", MessageType.Warning, true); - if (GUILayout.Button("Download Pupil Unity Plugin")) - Application.OpenURL("https://github.com/pupil-labs/hmd-eyes/releases/tag/v0.5.1"); - } - else - pupilSupportProp.boolValue = EditorGUILayout.Toggle("Pupil Labs Support", pupilSupportProp.boolValue); -#else - pupilSupportProp.boolValue = false; -#endif - return (pupilSupportProp.boolValue != oldPupilSupport); - } - - public static bool NeuronSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty neuronSupportProp = serializedConfiguration.FindProperty("neuronSupport"); - - bool oldNeuronSupport = neuronSupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isNeuronSupportAvailable) - neuronSupportProp.boolValue = false; - - else - neuronSupportProp.boolValue = EditorGUILayout.Toggle("Perception Neuron Support", neuronSupportProp.boolValue); -#else - neuronSupportProp.boolValue = false; -#endif - return (neuronSupportProp.boolValue != oldNeuronSupport); - } - - public static bool Hi5SettingUI(SerializedObject serializedConfiguration) { - SerializedProperty hi5SupportProp = serializedConfiguration.FindProperty("hi5Support"); - - bool oldHi5Support = hi5SupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isHi5SupportAvailable) - hi5SupportProp.boolValue = false; - //else if (!isHi5Available) { - // EditorGUI.BeginDisabledGroup(true); - // hi5SupportProp.boolValue = EditorGUILayout.Toggle("Hi5 Support", false); - // EditorGUI.EndDisabledGroup(); - // EditorGUILayout.HelpBox("Hi5 Unity Plugin is not available. Please download the SDK using the button below and import them into this project.", MessageType.Warning, true); - // if (GUILayout.Button("Download Hi5 Unity Plugin")) - // Application.OpenURL("https://hi5vrglove.com/downloads"); - //} - else { - //using (new EditorGUI.DisabledScope(true)) { - hi5SupportProp.boolValue = EditorGUILayout.Toggle("Hi5 Support", hi5SupportProp.boolValue); - //} - } -#else - hi5SupportProp.boolValue = false; -#endif - return (hi5SupportProp.boolValue != oldHi5Support); - } - - public static bool OptitrackSettingUI(SerializedObject serializedConfiguration) { - SerializedProperty optitrackSupportProp = serializedConfiguration.FindProperty("optitrackSupport"); - - bool oldOptitrackSupport = optitrackSupportProp.boolValue; -#if UNITY_STANDALONE_WIN || UNITY_WSA_10_0 - if (!isOptitrackSupportAvailable) - optitrackSupportProp.boolValue = false; - - else if (!isOptitrackAvailable) { - using (new EditorGUI.DisabledScope(true)) { - optitrackSupportProp.boolValue = EditorGUILayout.Toggle("OptiTrack Support", false); - } - EditorGUILayout.HelpBox("OptiTrack Unity plugin is not available. Please download the plugin using the button below and import them into this project.", MessageType.Warning, true); - if (GUILayout.Button("Download OptiTrack Unity Plugin")) - Application.OpenURL("https://optitrack.com/downloads/plugins.html#unity-plugin"); - } - else { - using (new EditorGUI.DisabledScope(true)) { - optitrackSupportProp.boolValue = EditorGUILayout.Toggle("OptiTrack Support", optitrackSupportProp.boolValue); - } - } -#else - optitrackSupportProp.boolValue = false; -#endif - return (optitrackSupportProp.boolValue != oldOptitrackSupport); - } - - public static bool AntilatencySettingUI(SerializedObject serializedConfiguration) { - SerializedProperty antilatencySupportProp = serializedConfiguration.FindProperty("antilatencySupport"); - - bool oldAntilatencySupport = antilatencySupportProp.boolValue; -#if UNITY_STANDALONE_WIN - if (!isAntilatencySupportAvailable) - antilatencySupportProp.boolValue = false; - else if (!isAntilatencyAvailable) { - EditorGUI.BeginDisabledGroup(true); - antilatencySupportProp.boolValue = EditorGUILayout.Toggle("Antilatency Support", false); - EditorGUI.EndDisabledGroup(); - EditorGUILayout.HelpBox("Antilatency SDK is not available. Please download the SDK and import it into this project.", MessageType.Warning, true); - } - else { - using (new EditorGUI.DisabledScope(true)) { - antilatencySupportProp.boolValue = EditorGUILayout.Toggle("Antilatency Support", antilatencySupportProp.boolValue); - } - } -#else - antilatencySupportProp.boolValue = false; -#endif - return (antilatencySupportProp.boolValue != oldAntilatencySupport); - } - - private static bool NetworkingSettingUI(SerializedObject serializedConfiguration) { -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - SerializedProperty networkingSupportProp = serializedConfiguration.FindProperty("networkingSupport"); - int oldNetworkingSupport = networkingSupportProp.intValue; - networkingSupportProp.intValue = (int)(NetworkingSystems)EditorGUILayout.EnumPopup("Networking Support", (NetworkingSystems)networkingSupportProp.intValue); -//#if hPHOTON2 && hNW_PHOTON -// bool voiceChanged = NetworkingVoiceSettingUI(serializedConfiguration); -// return voiceChanged || (oldNetworkingSupport != networkingSupportProp.intValue); -//#else - return (oldNetworkingSupport != networkingSupportProp.intValue); -//#endif -#else - return false; -#endif - } - - //private static bool NetworkingVoiceSettingUI(SerializedObject serializedConfiguration) { - // if (isPhotonVoice2Available) { - // SerializedProperty networkingVoiceSupportProp = serializedConfiguration.FindProperty("networkingVoiceSupport"); - // bool oldNetworkingVoiceSupport = networkingVoiceSupportProp.boolValue; - // EditorGUI.indentLevel++; - // networkingVoiceSupportProp.boolValue = EditorGUILayout.Toggle("Networking Voice", networkingVoiceSupportProp.boolValue); - // EditorGUI.indentLevel--; - // return (oldNetworkingVoiceSupport != networkingVoiceSupportProp.boolValue); - // } - // else - // return false; - //} - - #endregion - - private static bool IsFileAvailable(string filePath) { - string path = Application.dataPath + humanoidPath + filePath; - bool fileAvailable = File.Exists(path); - return fileAvailable; - } - - #region Extension Checks - - public static void CheckExtensions(Configuration configuration) { - GlobalDefine("pHUMANOID4"); - - CheckExtensionUnityXR(); - - // configuration should become replace by HumanoidPreferences - configuration = new Configuration(); - configuration.openVRSupport = CheckExtensionOpenVR(configuration); - configuration.steamVrSupport = CheckExtensionSteamVR(configuration); - configuration.viveTrackerSupport = CheckExtensionViveTracker(configuration); - configuration.oculusSupport = CheckExtensionOculus(configuration); - configuration.windowsMRSupport = CheckExtensionWindowsMR(configuration); - configuration.vrtkSupport = CheckExtensionVRTK(configuration); - configuration.neuronSupport = CheckExtensionNeuron(configuration); - configuration.hi5Support = CheckExtensionHi5(configuration); - configuration.realsenseSupport = CheckExtensionRealsense(configuration); - configuration.leapSupport = CheckExtensionLeap(configuration); - configuration.kinect1Support = CheckExtensionKinect1(configuration); - configuration.kinect2Support = CheckExtensionKinect2(configuration); - configuration.kinect4Support = CheckExtensionKinect4(configuration); - configuration.astraSupport = CheckExtensionAstra(configuration); - configuration.hydraSupport = CheckExtensionHydra(configuration); - configuration.tobiiSupport = CheckExtensionTobii(configuration); - configuration.arkitSupport = CheckExtensionArkit(configuration); - configuration.pupilSupport = CheckExtensionPupil(configuration); - configuration.optitrackSupport = CheckExtensionOptitrack(configuration); - configuration.antilatencySupport = CheckExtensionAntilatency(configuration); - - - CheckExtensionNetworking(configuration); - CheckExtensionCustom(configuration); - CheckFaceTracking(configuration); - } - - public static void CheckExtensionUnityXR() { -#if UNITY_2019_3_OR_NEWER - if (ConfigurationCheck.packageNameList != null) - CheckExtension(isUnityXRAvailable, "pUNITYXR"); -#else - GlobalUndefine("pUNITYXR"); -#endif - } - - public static bool CheckExtensionOpenVR(Configuration configuration) { - bool enabled = true; // configuration.openVRSupport; - CheckExtension(isViveHandTrackingAvailable & isViveHandSupportAvailable, "hVIVEHAND"); - return CheckExtension(enabled, openVRPath, "hOPENVR"); - } - - public static bool CheckExtensionSteamVR(Configuration configuration) { - bool enabled = - isSteamVrAvailable && - isSteamVrSupportAvailable && - configuration.steamVrSupport; - //CheckExtension(isViveHandTrackingAvailable, "hVIVEHAND"); - CheckExtension(enabled, "hSTEAMVR"); - return enabled; - } - - public static bool CheckExtensionViveTracker(Configuration configuration) { - bool available = isViveTrackerSupportAvailable; - bool enabled = configuration.viveTrackerSupport; - CheckExtension(available && enabled, "hVIVETRACKER"); - return available && enabled; - } - - public static bool CheckExtensionOculus(Configuration configuration) { - bool enabled = configuration.oculusSupport; - CheckExtension(isOculusHandSupportAvailable, "hOCHAND"); - return CheckExtension(enabled, oculusPath, "hOCULUS"); - } - - public static bool CheckExtensionWindowsMR(Configuration configuration) { - bool enabled = configuration.windowsMRSupport; - return CheckExtension(enabled, windowsMRPath, "hWINDOWSMR"); - } - - public static bool CheckExtensionVRTK(Configuration configuration) { - bool enabled = configuration.vrtkSupport && isVrtkAvailable; - CheckExtension(enabled, "hVRTK"); - return enabled; - } - - public static bool CheckExtensionNeuron(Configuration configuration) { - bool enabled = configuration.neuronSupport; - return CheckExtension(enabled, neuronPath, "hNEURON"); - } - - public static bool CheckExtensionHi5(Configuration configuration) { - bool available = configuration.hi5Support; - CheckExtension(available, "hHI5"); - configuration.hi5Support = available; - return available; - } - - public static bool CheckExtensionRealsense(Configuration configuration) { - bool enabled = configuration.realsenseSupport; - return CheckExtension(enabled, realsensePath, "hREALSENSE"); - } - - public static bool CheckExtensionLeap(Configuration configuration) { - bool available = isLeapAvailable && isLeapSupportAvailable; - CheckExtension(available, "hLEAP"); - configuration.leapSupport = available; - return available; - } - - public static bool CheckExtensionKinect1(Configuration configuration) { - bool enabled = configuration.kinect1Support; - return CheckExtension(enabled, kinect1Path, "hKINECT1"); - } - - public static bool CheckExtensionKinect2(Configuration configuration) { - bool enabled = configuration.kinect2Support; - return CheckExtension(enabled, kinect2Path, "hKINECT2"); - } - - public static bool CheckExtensionKinect4(Configuration configuration) { - bool enabled = configuration.kinect4Support; - return CheckExtension(enabled, kinect4Path, "hKINECT4"); - } - - public static bool CheckExtensionAstra(Configuration configuration) { - bool available = isAstraAvailable && isAstraSupportAvailable; - CheckExtension(available, "hORBBEC"); - configuration.astraSupport = available; - return available; - } - - public static bool CheckExtensionHydra(Configuration configuration) { - bool enabled = configuration.hydraSupport; - return CheckExtension(enabled, hydraPath, "hHYDRA"); - } - - public static bool CheckExtensionTobii(Configuration configuration) { - bool available = isTobiiAvailable && isTobiiSupportAvailable; - CheckExtension(available, "hTOBII"); - configuration.tobiiSupport = available; - return available; - } - - public static bool CheckExtensionArkit(Configuration configuration) { -#if UNITY_2019_1_OR_NEWER - if (ConfigurationCheck.packageNameList == null) - return configuration.arkitSupport; - bool available = isArKitSupportAvailable && isArKitAvailable; - CheckExtension(available, arkitPath, "hARKIT"); - configuration.arkitSupport = available; - return available; -#else - return false; -#endif - } - - public static bool CheckExtensionPupil(Configuration configuration) { - bool enabled = configuration.pupilSupport && isPupilAvailable; - return CheckExtension(enabled, pupilPath, "hPUPIL"); - } - - public static bool CheckExtensionOptitrack(Configuration configuration) { - bool available = isOptitrackAvailable && isOptitrackSupportAvailable; - CheckExtension(available, "hOPTITRACK"); - configuration.optitrackSupport = available; - return available; - } - - public static bool CheckExtensionAntilatency(Configuration configuration) { - bool available = isAntilatencyAvailable && isAntilatencySupportAvailable; - CheckExtension(available, "hANTILATENCY"); - configuration.antilatencySupport = available; - return available; - } - - public static bool CheckExtensionCustom(Configuration configuration) { - bool available = isCustomSupportAvailable; - CheckExtension(available, "hCUSTOM"); - return available; - } - - private static void CheckExtensionNetworking(Configuration configuration) { - if (isPhotonPun2Available && isPhotonPun2SupportAvailable) { - GlobalDefine("hPHOTON2"); - GlobalUndefine("hPHOTON1"); - //Debug.Log(isPhotonVoice2Available); - //if (isPhotonVoice2Available) - // GlobalDefine("hPUNVOICE2"); - //else - // GlobalUndefine("hPUNVOICE2"); - } - else if (isPhotonPun1Available) { - GlobalDefine("hPHOTON1"); - GlobalUndefine("hPHOTON2"); - } - else { - GlobalUndefine("hPHOTON1"); - GlobalUndefine("hPHOTON2"); - } - - if (isMirrorAvailable) - GlobalDefine("hMIRROR"); - else - GlobalUndefine("hMIRROR"); - - if (isPhotonBoltAvailable) - GlobalDefine("hBOLT"); - else - GlobalUndefine("hBOLT"); - - -#if !UNITY_2019_1_OR_NEWER - CheckExtension(isUnetAvailable, "hUNET"); - - if (configuration.networkingSupport == NetworkingSystems.UnityNetworking) - GlobalDefine("hNW_UNET"); - else - GlobalUndefine("hNW_UNET"); -#endif -#if hPHOTON1 || hPHOTON2 - if (configuration.networkingSupport == NetworkingSystems.None) - configuration.networkingSupport = NetworkingSystems.PhotonNetworking; - if (configuration.networkingSupport == NetworkingSystems.PhotonNetworking) - GlobalDefine("hNW_PHOTON"); - else - GlobalUndefine("hNW_PHOTON"); -#endif -#if hMIRROR - if (configuration.networkingSupport == NetworkingSystems.None) - configuration.networkingSupport = NetworkingSystems.MirrorNetworking; - if (configuration.networkingSupport == NetworkingSystems.MirrorNetworking) - GlobalDefine("hNW_MIRROR"); - else - GlobalUndefine("hNW_MIRROR"); -#endif -#if hBOLT - if (configuration.networkingSupport == NetworkingSystems.None) - configuration.networkingSupport = NetworkingSystems.PhotonBolt; - if (configuration.networkingSupport == NetworkingSystems.PhotonBolt) - GlobalDefine("hNW_BOLT"); - else - GlobalUndefine("hNW_BOLT"); -#endif -#if hPHOTON2 && hNW_PHOTON - if (isPhotonVoice2Available) - GlobalDefine("hPUNVOICE2"); - else -#endif - GlobalUndefine("hPUNVOICE2"); - } - - private static void CheckFaceTracking(Configuration configuration) { - if (IsFileAvailable(facePath)) { - GlobalDefine("hFACE"); - } - else { - GlobalUndefine("hFACE"); - } - } - - protected static void CheckExtension(bool enabled, string define) { - if (enabled) - GlobalDefine(define); - else - GlobalUndefine(define); - } - - public static bool CheckExtension(bool enabled, string filePath, string define) { - if (enabled) { - if (IsFileAvailable(filePath)) { - GlobalDefine(define); - return true; - } - else { - GlobalUndefine(define); - return false; - } - - } - else { - GlobalUndefine(define); - return false; - } - } - - public static bool CheckExtension(string filePath, string define) { - if (IsFileAvailable(filePath)) { - GlobalDefine(define); - return true; - } - else { - GlobalUndefine(define); - return false; - } - } - - //public static Configuration LoadConfiguration(string configurationName) { - // string[] foundAssets = AssetDatabase.FindAssets(configurationName + " t:Configuration"); - // if (foundAssets.Length == 0) - // return null; - - // string path = AssetDatabase.GUIDToAssetPath(foundAssets[0]); - // Configuration configuration = AssetDatabase.LoadAssetAtPath(path); - // return configuration; - //} - - public static void GlobalDefine(string name) { - //Debug.Log("Define " + name); - string scriptDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - if (!scriptDefines.Contains(name)) { - string newScriptDefines = scriptDefines + " " + name; - if (EditorUserBuildSettings.selectedBuildTargetGroup != 0) - PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newScriptDefines); - } - } - - public static void GlobalUndefine(string name) { - //Debug.Log("Undefine " + name); - string scriptDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - if (scriptDefines.Contains(name)) { - int playMakerIndex = scriptDefines.IndexOf(name); - string newScriptDefines = scriptDefines.Remove(playMakerIndex, name.Length); - PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newScriptDefines); - } - - } - - #endregion - - #region Availability - - public static bool DoesTypeExist(string className) { - System.Reflection.Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); - foreach (System.Reflection.Assembly assembly in assemblies) { - if (assembly.GetType(className) != null) - return true; - } - return false; - } - - #region SDKs - - protected static bool isUnityXRAvailable { - get { -#if UNITY_2019_1_OR_NEWER - if (ConfigurationCheck.packageNameList == null) - return false; - if (ConfigurationCheck.packageNameList.Contains("com.unity.xr.management")) - return true; - else if (ConfigurationCheck.packageNameList.Contains("com.unity.xr.openxr")) - // Somehow management is no longer available when OpenXR is used - return true; - else - return false; -#else - return DoesTypeExist("UnityEngine.XR.InputDevice"); -#endif - } - } - - private static bool isSteamVrAvailable { - get { - return false; - //return DoesTypeExist("Valve.VR.SteamVR"); - } - } - - private static bool isViveHandTrackingAvailable { - get { -#if UNITY_STANDALONE_WIN - return DoesTypeExist("ViveHandTracking.GestureProvider"); -#else - return false; -#endif - } - } - - private static bool isVrtkAvailable { - get { - return DoesTypeExist("VRTK.VRTK_SDKManager"); - } - } - - private static bool isLeapAvailable { - get { - return DoesTypeExist("Leap.Hand"); - } - } - - private static bool isAstraAvailable { - get { - return DoesTypeExist("Astra.Body"); - } - } - - private static bool isTobiiAvailable { - get { - return DoesTypeExist("Tobii.Gaming.TobiiAPI"); - } - } - - private static bool isArKitAvailable { - get { - return IsArkitAvailable(); - } - } - - private static bool IsArkitAvailable() { -#if UNITY_IOS && UNITY_2019_1_OR_NEWER - if (Pawn.ConfigurationCheck.packageNameList == null) - return false; - - bool arFoundationAvailable = Pawn.ConfigurationCheck.packageNameList.Contains("com.unity.xr.arfoundation"); - bool arKitFaceTrackingAvailable = Pawn.ConfigurationCheck.packageNameList.Contains("com.unity.xr.arkit-face-tracking"); - return arFoundationAvailable && arKitFaceTrackingAvailable; -#else - return false; -#endif - } - - private static bool isPupilAvailable { - get { - return IsPupilAvailable(); - } - } - - private static bool IsPupilAvailable() { - string path1 = Application.dataPath + "/pupil_plugin/Scripts/Networking/PupilTools.cs"; - string path2 = Application.dataPath + "/pupil_plugin/Plugins/x86_64/NetMQ.dll"; - return File.Exists(path1) && File.Exists(path2); - } - - //private static bool isHi5Available { - // get { - // return DoesTypeExist("HI5.HI5_Source"); - // } - //} - - private static bool isOptitrackAvailable { - get { - return DoesTypeExist("OptitrackStreamingClient"); - } - } - - private static bool isAntilatencyAvailable { - get { - return DoesTypeExist("Antilatency.Integration.DeviceNetwork"); - } - } - - private static bool isUnetAvailable { - get { - return DoesTypeExist("UnityEngine.Networking.NetworkIdentity"); - } - } - - private static bool isPhotonPun1Available { - get { - return DoesTypeExist("PhotonView"); - } - } - - private static bool isPhotonPun2Available { - get { - return DoesTypeExist("Photon.Pun.PhotonView"); - } - } - - private static bool isPhotonVoice2Available { - get { - return DoesTypeExist("Photon.Voice.PUN.PhotonVoiceView"); - } - } - - private static bool isMirrorAvailable { - get { - string path = Application.dataPath + "/Mirror/Runtime/NetworkBehaviour.cs"; - return File.Exists(path); - } - } - - private static bool isPhotonBoltAvailable { - get { - string path = Application.dataPath + "/Photon/PhotonBolt/project.json"; - return File.Exists(path); - } - } - - - #endregion SDKs - - #region Support - - private static bool isOpenVrSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.OpenVR"); - } - } - - private static bool isSteamVrSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.SteamVR"); - } - } - - private static bool isViveHandSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.ViveHandSkeleton"); - } - } - - private static bool isViveTrackerSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.ViveTrackerComponent"); - } - } - - private static bool isOculusSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.OculusTracker"); - } - } - - private static bool isOculusHandSupportAvailable { - get { -#if UNITY_ANDROID - return DoesTypeExist("Passer.Tracking.OculusHandSkeleton"); -#else - return false; -#endif - } - } - -#if UNITY_WSA_10_0 - private static bool isWindowsMrSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.Tracking.WindowsMRDevice"); - } - } -#endif - private static bool isVrtkSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.VrtkTracker"); - } - } - - private static bool isLeapSupportAvailable { - get { -#if UNITY_STANDALONE_WIN - return DoesTypeExist("Passer.Tracking.LeapMotion"); -#else - return false; -#endif - } - } - - private static bool isAstraSupportAvailable { - get { -#if UNITY_STANDALONE_WIN - return DoesTypeExist("Passer.Tracking.AstraDevice"); -#else - return false; -#endif - } - } - - private static bool isKinect1SupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.Kinect1Tracker"); - } - } - - private static bool isKinect2SupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.Kinect2Tracker"); - } - } - - private static bool isKinect4SupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.AzureKinect"); - } - } - - private static bool isRealsenseSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.RealsenseTracker"); - } - } - - private static bool isHydraSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.HydraBaseStation"); - } - } - - private static bool isHi5SupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.Hi5Tracker"); - } - } - - private static bool isTobiiSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.TobiiDevice"); - } - } - - private static bool isArKitSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.ArKitTracker"); - } - } - - private static bool isPupilSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.Pupil.Device"); - } - } - - private static bool isNeuronSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.NeuronTracker"); - } - } - - private static bool isOptitrackSupportAvailable { - get { - return DoesTypeExist("Passer.Tracking.OptitrackDevice"); - } - } - - private static bool isAntilatencySupportAvailable { - get { -#if UNITY_STANDALONE_WIN - return DoesTypeExist("Passer.Tracking.Antilatency"); -#else - return false; -#endif - } - } - - private static bool isCustomSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.CustomTracker"); - } - } - private static bool isFaceSupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.FaceTarget"); - } - } - - private static bool isPhotonPun2SupportAvailable { - get { - return DoesTypeExist("Passer.Humanoid.HumanoidPlayerPunVoice"); - } - } - - #endregion Support - - #endregion - } - - public static class CustomAssetUtility { - public static void CreateAsset() where T : ScriptableObject { - T asset = ScriptableObject.CreateInstance(); - - string path = AssetDatabase.GetAssetPath(Selection.activeObject); - if (path == "") { - path = "Assets"; - } - else if (Path.GetExtension(path) != "") { - path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); - } - - string assetTypeName = typeof(T).ToString(); - int dotIndex = assetTypeName.LastIndexOf('.'); - if (dotIndex >= 0) - assetTypeName = assetTypeName.Substring(dotIndex + 1); // leave just text behind '.' - string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + assetTypeName + ".asset"); - - AssetDatabase.CreateAsset(asset, assetPathAndName); - - AssetDatabase.SaveAssets(); - EditorUtility.FocusProjectWindow(); - Selection.activeObject = asset; - } - } - -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Configuration_Editor.cs.meta b/Editor/HumanoidFree/Configuration_Editor.cs.meta deleted file mode 100644 index 6bcab63..0000000 --- a/Editor/HumanoidFree/Configuration_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 3e4a0bea205acfb4b93560112b9763e7 -timeCreated: 1534854189 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Events.meta b/Editor/HumanoidFree/Events.meta deleted file mode 100644 index 9cc5abc..0000000 --- a/Editor/HumanoidFree/Events.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1f62d4bbf100b274592d52298ebe8e69 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Events/PoseEvent_Editor.cs b/Editor/HumanoidFree/Events/PoseEvent_Editor.cs deleted file mode 100644 index 1707348..0000000 --- a/Editor/HumanoidFree/Events/PoseEvent_Editor.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System.Reflection; -using UnityEditor; -using UnityEngine; -using UnityEngine.Events; - -namespace Passer.Humanoid { - - public class PoseEvent_Editor : Event_Editor { - - public static void EventInspector( - SerializedProperty eventSourceProp, PoseEventList eventSource, - ref int selectedEventSourceIx, ref int selectedEventIx) { - - //UnityEventBase unityEventBase = eventSource.events[selectedEventIx].GetUnityEventBase(); - - EventInspector(eventSourceProp, ref selectedEventSourceIx, ref selectedEventIx, - PoseMethodCheck, InitPoseEvent); - } - - protected static void InitPoseEvent(SerializedProperty eventProp) { - } - - protected static bool PoseMethodCheck(MethodInfo method, out string label) { - ParameterInfo[] parameters = method.GetParameters(); - if (parameters.Length == 0 && method.ReturnType == typeof(void)) { - label = method.Name + " ()"; - return true; - } - else if (parameters.Length == 1 && ( - parameters[0].ParameterType == typeof(bool) || - parameters[0].ParameterType == typeof(Pose) - )) { - - label = method.Name + " (" + parameters[0].ParameterType.Name + ")"; - return true; - } - - label = ""; - return false; - } - - public static void DetailsInspector(SerializedProperty eventProp, string label) { - if (eventProp == null) - return; - - DetailsTypeInspector(eventProp); - - PoseDetailsInspector(eventProp, label); - } - - protected static SerializedProperty DetailsTypeInspector(SerializedProperty eventProp) { - GUIContent text = new GUIContent( - "Event Type", - "Never: the function is never called\n" + - "OnStart: when the Pose becomes non-null\n" + - "OnEnd: when the Pose becomes null\n" + - "WhileActive: while Pose is non-null\n" + - "WhileInactive: while Pose is null\n" + - "OnChange: when the Pose changes\n" + - "Continuous: the function is called for every frame" - ); - SerializedProperty eventTypeProp = eventProp.FindPropertyRelative("eventType"); - eventTypeProp.intValue = (int)(EventHandler.Type)EditorGUILayout.EnumPopup(text, (EventHandler.Type)eventTypeProp.intValue); - return eventTypeProp; - } - - protected static void PoseDetailsInspector(SerializedProperty eventProp, string label) { - SerializedProperty poseEventProp = eventProp.FindPropertyRelative("poseEvent"); - EditorGUILayout.PropertyField(poseEventProp, new GUIContent("Pose")); - } - } - -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Events/PoseEvent_Editor.cs.meta b/Editor/HumanoidFree/Events/PoseEvent_Editor.cs.meta deleted file mode 100644 index 9a0f9e6..0000000 --- a/Editor/HumanoidFree/Events/PoseEvent_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 653b503ea0d528445ac96090359b5660 -timeCreated: 1551348784 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Extensions.meta b/Editor/HumanoidFree/Extensions.meta deleted file mode 100644 index 1d6c10b..0000000 --- a/Editor/HumanoidFree/Extensions.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e6b8b322e155656428b6810f3a55a454 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs b/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs deleted file mode 100644 index 12044dd..0000000 --- a/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs +++ /dev/null @@ -1,39 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace Passer.Humanoid { - using Passer.Tracking; - - [CustomEditor(typeof(RealWorldConfiguration))] - public class RealWorldConfiguration_Editor : Editor { - - public override void OnInspectorGUI() { - serializedObject.Update(); - SerializedProperty trackerList = serializedObject.FindProperty("trackers"); - for (int i = 0; i < trackerList.arraySize; i++) { - SerializedProperty trackerProp = trackerList.GetArrayElementAtIndex(i); - - TrackingSpaceInspector(trackerProp); - } - serializedObject.ApplyModifiedProperties(); - } - - bool foldout = true; - protected virtual void TrackingSpaceInspector(SerializedProperty trackerProp) { - SerializedProperty trackerIdProp = trackerProp.FindPropertyRelative("trackerId"); - TrackerId trackerId = (TrackerId) trackerIdProp.intValue; - foldout = EditorGUILayout.Foldout(foldout, trackerId.ToString()); - if (foldout) { - EditorGUI.indentLevel++; - SerializedProperty positionProp = trackerProp.FindPropertyRelative("position"); - positionProp.vector3Value = EditorGUILayout.Vector3Field("Position", positionProp.vector3Value); - - SerializedProperty rotationProp = trackerProp.FindPropertyRelative("rotation"); - Vector3 angles = rotationProp.quaternionValue.eulerAngles; - angles = EditorGUILayout.Vector3Field("Rotation", angles); - rotationProp.quaternionValue = Quaternion.Euler(angles); - EditorGUI.indentLevel--; - } - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs.meta b/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs.meta deleted file mode 100644 index 806f51d..0000000 --- a/Editor/HumanoidFree/Extensions/RealWorldConfiguration_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 826b17e430aa1be489863039889c74fa -timeCreated: 1562138586 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Extensions/UnityXR.meta b/Editor/HumanoidFree/Extensions/UnityXR.meta deleted file mode 100644 index bd4549d..0000000 --- a/Editor/HumanoidFree/Extensions/UnityXR.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7ff42c1682253654b8aa326ff4572d28 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs b/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs deleted file mode 100644 index eb00464..0000000 --- a/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System.IO; -using UnityEditor; -using UnityEngine; - - -namespace Passer.Humanoid { - using Passer.Tracking; - - public class UnityXR_Editor : Tracker_Editor { - -#if pUNITYXR - - #region Tracker - - public class TrackerProps : HumanoidControl_Editor.HumanoidTrackerProps { - -#if hOCHAND - readonly private SerializedProperty oculusHandTrackingProp; -#endif -#if hVIVEHAND - readonly private SerializedProperty viveHandTrackingProp; -#endif - - - public TrackerProps(SerializedObject serializedObject, HumanoidControl_Editor.HumanoidTargetObjs targetObjs, UnityXRTracker _unityXR) - : base(serializedObject, targetObjs, _unityXR, nameof(HumanoidControl.unityXR)) { - tracker = _unityXR; - -#if hOCHAND - oculusHandTrackingProp = serializedObject.FindProperty("unityXR.oculusHandTracking"); - CheckQuestManifest(); -#endif -#if hVIVEHAND - viveHandTrackingProp = serializedObject.FindProperty("unityXR.viveHandTracking"); -#endif - } - - public override void Inspector(HumanoidControl humanoid) { - Inspector(humanoid, "Unity XR"); - if (enabledProp.boolValue) { - EditorGUI.indentLevel++; - TrackerInspector(humanoid, humanoid.unityXR); - HandTrackingInspector(humanoid); - - EditorGUI.indentLevel--; - } - } - - protected void HandTrackingInspector(HumanoidControl humanoid) { - OculusHandTrackingInspector(); - ViveHandTrackingInspector(humanoid); - } - - protected void OculusHandTrackingInspector() { -#if hOCHAND - GUIContent labelText = new GUIContent( - "Oculus Hand Tracking", - "Enables hand tracking on the Oculus Quest" - ); - oculusHandTrackingProp.boolValue = EditorGUILayout.ToggleLeft(labelText, oculusHandTrackingProp.boolValue); -#endif - } - - protected virtual void CheckQuestManifest() { - string manifestPath = Application.dataPath + "/Plugins/Android/AndroidManifest.xml"; - FileInfo fileInfo = new FileInfo(manifestPath); - fileInfo.Directory.Create(); - bool manifestAvailable = File.Exists(manifestPath); - if (manifestAvailable) - return; - - string humanoidPath = Configuration_Editor.FindHumanoidFolder(); - string questManifestPath = Application.dataPath + humanoidPath + "Extensions/Oculus/QuestManifest.xml"; - File.Copy(questManifestPath, manifestPath); - } - - - protected void ViveHandTrackingInspector(HumanoidControl humanoid) { -#if hVIVEHAND - GUIContent labelText = new GUIContent( - "Vive Hand Tracking", - "Enables hand tracking on the HTC Vive" - ); - viveHandTrackingProp.boolValue = EditorGUILayout.ToggleLeft(labelText, viveHandTrackingProp.boolValue); - // When using vive hand tracking, the GestureProvider should be added to the UnityXR component - // before the scene starts. So we need to add it in the edito - // and we need to have the unityXR component in the scene - if (viveHandTrackingProp.boolValue == true) { - humanoid.unityXR.CheckTracker(humanoid, UnityXR.Get); - ViveHandSkeleton.CheckGestureProvider(humanoid.unityXR.trackerComponent); - } -#endif - } - } - - #endregion - - #region Head - - public class HeadTargetProps : HeadTarget_Editor.TargetProps { - - readonly SerializedProperty hmdProp; - - public HeadTargetProps(SerializedObject serializedObject, HeadTarget headTarget) - : base(serializedObject, headTarget.unityXR, headTarget, nameof(HeadTarget.unityXR)) { - - hmdProp = serializedObject.FindProperty(nameof(HeadTarget.unityXR) + ".hmd"); - } - - public override void Inspector() { - if (!headTarget.humanoid.unityXR.enabled) - return; - - enabledProp.boolValue = HumanoidTarget_Editor.ControllerInspector(headTarget.unityXR, headTarget); - headTarget.unityXR.enabled = enabledProp.boolValue; - - if (enabledProp.boolValue) { - EditorGUI.indentLevel++; - if (headTarget.unityXR.hmd == null) { - // Hmd does not exist - using (new EditorGUILayout.HorizontalScope()) { - EditorGUILayout.LabelField("Hmd", GUILayout.Width(120)); - if (GUILayout.Button("Show")) { - headTarget.unityXR.CheckSensor(headTarget); - } - } - } - else - hmdProp.objectReferenceValue = (UnityXRHmd)EditorGUILayout.ObjectField("Hmd", headTarget.unityXR.hmd, typeof(UnityXRHmd), true); - EditorGUI.indentLevel--; - } - else - headTarget.unityXR.CheckSensor(headTarget); - } - } - - #endregion - - #region Hand - - public class HandTargetProps : HandTarget_Editor.TargetProps { - - SerializedProperty controllerProp; - - public HandTargetProps(SerializedObject serializedObject, HandTarget handTarget) - : base(serializedObject, handTarget.unityXR, handTarget, "unityXR") { - - controllerProp = serializedObject.FindProperty("unityXR.controller"); - } - - public override void Inspector() { - if (!handTarget.humanoid.unityXR.enabled) - return; - - enabledProp.boolValue = HumanoidTarget_Editor.ControllerInspector(handTarget.unityXR, handTarget); - handTarget.unityXR.enabled = enabledProp.boolValue; - - if (enabledProp.boolValue) { - EditorGUI.indentLevel++; - if (handTarget.unityXR.controller == null) { - // Controller does not exist - using (new EditorGUILayout.HorizontalScope()) { - EditorGUILayout.LabelField("Controller", GUILayout.Width(120)); - if (GUILayout.Button("Show")) { - handTarget.unityXR.CheckSensor(handTarget); - } - } - } - else - controllerProp.objectReferenceValue = (UnityXRController)EditorGUILayout.ObjectField("Controller", controllerProp.objectReferenceValue, typeof(UnityXRController), true); - EditorGUI.indentLevel--; - } - else - handTarget.unityXR.CheckSensor(handTarget); - } - - } - - #endregion - -#endif - } - -} diff --git a/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs.meta b/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs.meta deleted file mode 100644 index 5ab884c..0000000 --- a/Editor/HumanoidFree/Extensions/UnityXR/UnityXR_Editor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3b70e5e81de46964eaf3d2a996040d77 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/HumanoidControl_Editor.cs b/Editor/HumanoidFree/HumanoidControl_Editor.cs deleted file mode 100644 index 1140007..0000000 --- a/Editor/HumanoidFree/HumanoidControl_Editor.cs +++ /dev/null @@ -1,1167 +0,0 @@ -using UnityEditor; -using UnityEngine; -#if UNITY_2021_2_OR_NEWER -using UnityEditor.SceneManagement; -#else -using UnityEditor.Experimental.SceneManagement; -#endif -#if hPHOTON2 -using Photon.Pun; -#endif - -namespace Passer { - using Humanoid; - - [CanEditMultipleObjects] - [HelpURLAttribute("http://passervr.com/documentation/humanoid-control/")] - [CustomEditor(typeof(HumanoidControl), true)] - public class HumanoidControl_Editor : Editor { - - protected HumanoidControl humanoid; - protected GameObject realWorld; - - private bool settingAvatar; - - #region Enable - - public void OnEnable() { - ConfigurationCheck.CheckXrSdks(); - humanoid = (HumanoidControl)target; - if (humanoid == null) - return; - - humanoid.path = Configuration_Editor.FindHumanoidFolder(); - - if (humanoid.gameObject.name.EndsWith("_prefab")) - humanoid.gameObject.name = humanoid.gameObject.name.Substring(0, humanoid.gameObject.name.Length - 7); - - if (humanoid.disconnectInstances) { - PrefabInstanceStatus prefabInstanceStatus = PrefabUtility.GetPrefabInstanceStatus(humanoid.gameObject); - if (prefabInstanceStatus == PrefabInstanceStatus.Connected) { - Debug.Log("Unpacking Prefab Instance for Humanoid"); - PrefabUtility.UnpackPrefabInstance(humanoid.gameObject, PrefabUnpackMode.OutermostRoot, InteractionMode.AutomatedAction); - } - } - - if (!IsPrefab(humanoid)) { - CheckHumanoidId(humanoid); - - CheckAvatar(humanoid); - InitTargets(); - } - else { - humanoid.DetermineTargets(); - } - InitTrackers(humanoid); - InitPose(); - InitSettings(); - InitNetworking(); - - realWorld = HumanoidControl.GetRealWorld(humanoid.transform); - - SetScriptingOrder((MonoBehaviour)target); - } - - private void SetScriptingOrder(MonoBehaviour target) { - MonoScript monoScript = MonoScript.FromMonoBehaviour(target); - int currentExecutionOrder = MonoImporter.GetExecutionOrder(monoScript); - - if (currentExecutionOrder <= 0) { - MonoImporter.SetExecutionOrder(monoScript, 1000); - } - } - - #region HumanoidId - private static void CheckHumanoidId(HumanoidControl humanoid) { - if (humanoid.humanoidId >= 0) - return; - - HumanoidControl[] humanoids = FindObjectsOfType(); - for (int i = 0; i < humanoids.Length; i++) { - humanoids[i].humanoidId = i; - } - } - #endregion - - #endregion - - #region Disable - - public void OnDisable() { - CleanupStuff(); - - if (Application.isPlaying) - return; - - HumanoidControl humanoid = (HumanoidControl)target; - if (humanoid == null) - return; - } - -#if hPHOTON1 || hPHOTON2 - private PhotonView cleanupPhotonView; -#endif - private void CleanupStuff() { -#if hPHOTON1 || hPHOTON2 - if (cleanupPhotonView) { - DestroyImmediate(cleanupPhotonView, true); - cleanupPhotonView = null; - } -#endif - } - #endregion - - #region Destroy - public void OnDestroy() { - if (Application.isPlaying || target != null || humanoid == null || IsPrefab(humanoid)) - return; - - if (realWorld != null) - DestroyImmediate(realWorld, true); - - if (humanoid.headTarget != null) - DestroyImmediate(humanoid.headTarget.gameObject, true); - if (humanoid.leftHandTarget != null) - DestroyImmediate(humanoid.leftHandTarget.gameObject, true); - if (humanoid.rightHandTarget != null) - DestroyImmediate(humanoid.rightHandTarget.gameObject, true); - if (humanoid.hipsTarget != null) - DestroyImmediate(humanoid.hipsTarget.gameObject, true); - if (humanoid.leftFootTarget != null) - DestroyImmediate(humanoid.leftFootTarget.gameObject, true); - if (humanoid.rightFootTarget != null) - DestroyImmediate(humanoid.rightFootTarget.gameObject, true); - - if (humanoid.targetsRig != null) - DestroyImmediate(humanoid.targetsRig.gameObject, true); - } - #endregion - - #region Inspector - - public override void OnInspectorGUI() { - serializedObject.Update(); - - HumanoidControl humanoid = (HumanoidControl)target; - - PlayerTypeInspector(); - - if (humanoid.gameObject.name.EndsWith("_prefab")) - humanoid.gameObject.name = humanoid.gameObject.name.Substring(0, humanoid.gameObject.name.Length - 7); - - if (humanoid.avatarRig == null) { - EditorGUILayout.HelpBox("Could not detect suitable avatar", MessageType.Warning); - // Even without an avatar, we still need a target rig! - //if (humanoid.targetsRig != null) - // DestroyImmediate(humanoid.targetsRig.gameObject, true); - } - - TargetsInspector(humanoid); - - if (humanoid.headTarget == null || humanoid.leftHandTarget == null || humanoid.rightHandTarget == null || humanoid.hipsTarget == null || - humanoid.leftFootTarget == null || humanoid.rightFootTarget == null) - // targets could have been deleted in the hierarchy - return; - - TrackerInspectors(); - PoseInspector(); - NetworkingInspector(humanoid); - MovementInspector(); - SettingsInspector(); - Buttons(); - - serializedObject.ApplyModifiedProperties(); - } - - protected void PlayerTypeInspector() { - //Players players = Players_Editor.GetPlayers(); - //if (players.playerTypes.Length <= 1) - // return; - - //SerializedProperty playerTypeProp = serializedObject.FindProperty("playerType"); - //playerTypeProp.intValue = EditorGUILayout.Popup("Player Type", playerTypeProp.intValue, players.playerTypes); - } - - #region Avatar - - public static void CheckAvatar(HumanoidControl humanoid) { - if (humanoid == null || IsPrefab(humanoid) || !humanoid.gameObject.activeInHierarchy) - return; - - humanoid.avatarRig = humanoid.GetAvatar(humanoid.gameObject); - if (humanoid.avatarRig != null) { - // these need to be zero to avoid problems with the avatar being at an different position than the player - if (humanoid.avatarRig.transform != humanoid.transform) { - humanoid.avatarRig.transform.localPosition = Vector3.zero; - humanoid.avatarRig.transform.localRotation = Quaternion.identity; - } - } - } - - private void SetAvatar(HumanoidControl ivr) { - if (GUILayout.Button("Set Avatar")) { - int controlID = EditorGUIUtility.GetControlID(FocusType.Passive); - settingAvatar = true; - EditorGUIUtility.ShowObjectPicker(null, false, "avatar", controlID); - } - if (settingAvatar && UnityEngine.Event.current.commandName == "ObjectSelectorUpdated") { - Animator[] animators = ivr.GetComponentsInChildren(); - foreach (Animator animator in animators) - DestroyImmediate(animator.gameObject); - GameObject prefab = (GameObject)EditorGUIUtility.GetObjectPickerObject(); - if (prefab != null) { - GameObject avatar = Instantiate(prefab); - avatar.name = prefab.name; - avatar.transform.parent = ivr.transform; - avatar.transform.localPosition = Vector3.zero; - avatar.transform.localRotation = Quaternion.identity; - } - } - if (settingAvatar && UnityEngine.Event.current.commandName == "ObjectSelectorClosed") { - settingAvatar = false; - } - - } - - #endregion - - #region Targets - private void InitTargets() { - TargetsRigInspector(humanoid); - - if (!HeadTarget.IsInitialized(humanoid) || - !HandTarget.IsInitialized(humanoid) || - !HipsTarget.IsInitialized(humanoid) || - !FootTarget.IsInitialized(humanoid)) { - - humanoid.DetermineTargets(); - humanoid.RetrieveBones(); - humanoid.InitAvatar(); - humanoid.MatchTargetsToAvatar(); - } - - humanoid.InitTargets(); - } - - private static void TargetsRigInspector(HumanoidControl humanoid) { - HumanoidControl.CheckTargetRig(humanoid); - - if (humanoid.targetsRig.gameObject.hideFlags != HideFlags.None) { - humanoid.targetsRig.gameObject.hideFlags = HideFlags.None; - EditorApplication.DirtyHierarchyWindowSorting(); - } - //else if (!humanoid.showTargetRig && humanoid.targetsRig.gameObject.hideFlags != HideFlags.HideInHierarchy) { - // humanoid.targetsRig.gameObject.hideFlags = HideFlags.HideInHierarchy; - // EditorApplication.DirtyHierarchyWindowSorting(); - //} - } - - static bool showTargets; - private void TargetsInspector(HumanoidControl humanoid) { - GUIContent text = new GUIContent( - "Targets", - "The target transforms controlling the body parts" - ); - showTargets = EditorGUILayout.Foldout(showTargets, text, true); - - if (showTargets) { - EditorGUI.indentLevel++; - humanoid.headTarget = (HeadTarget)HumanoidTarget_Editor.Inspector(humanoid.headTarget, "Head Target"); - humanoid.leftHandTarget = (HandTarget)HandTarget_Editor.Inspector(humanoid.leftHandTarget, "Left Hand Target"); - humanoid.rightHandTarget = (HandTarget)HandTarget_Editor.Inspector(humanoid.rightHandTarget, "Right Hand Target"); - humanoid.hipsTarget = (HipsTarget)HumanoidTarget_Editor.Inspector(humanoid.hipsTarget, "Hips Target"); - humanoid.leftFootTarget = (FootTarget)FootTarget_Editor.Inspector(humanoid.leftFootTarget, "Left Foot Target"); - humanoid.rightFootTarget = (FootTarget)FootTarget_Editor.Inspector(humanoid.rightFootTarget, "Right Foot Target"); - EditorGUI.indentLevel--; - } - } - #endregion - - #region Trackers - - private HumanoidTargetObjs targetObjs; - private HumanoidTrackerProps[] allTrackerProps; - - public void InitTrackers(HumanoidControl humanoid) { - targetObjs = new HumanoidTargetObjs(humanoid); - - allTrackerProps = new HumanoidTrackerProps[] { -#if pUNITYXR - new UnityXR_Editor.TrackerProps(serializedObject, targetObjs, humanoid.unityXR), -#endif -//#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) -// new OpenVR_Editor.TrackerProps(serializedObject, targetObjs, humanoid.openVR), -//#endif -//#if hSTEAMVR && UNITY_STANDALONE_WIN -// //new SteamVR_Editor.TrackerProps(serializedObject, targetObjs, humanoid.steamVR), -//#endif -//#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) -// new Oculus_Editor.TrackerProps(serializedObject, targetObjs, humanoid.oculus), -//#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - new WindowsMR_Editor.TrackerProps(serializedObject, targetObjs, humanoid.mixedReality), - -#endif -#if hWAVEVR - new WaveVR_Editor.TrackerProps(serializedObject, targetObjs, humanoid.waveVR), -#endif -#if hVRTK - new Vrtk_Editor.TrackerProps(serializedObject, targetObjs, humanoid.vrtk), -#endif -#if hHYDRA && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new Hydra_Editor.TrackerProps(serializedObject, targetObjs, humanoid.hydra), -#endif -#if hLEAP && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new LeapMotion_Editor.TrackerProps(serializedObject, targetObjs, humanoid.leapTracker), -#endif -#if hKINECT1 && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new Kinect1_Editor.TrackerProps(serializedObject, targetObjs, humanoid.kinect1), -#endif -#if hKINECT2 && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new Kinect2_Editor.TrackerProps(serializedObject, targetObjs, humanoid.kinect2), -#endif -#if hKINECT4 && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new Kinect4_Editor.TrackerProps(serializedObject, targetObjs, humanoid.kinect4), -#endif -#if hORBBEC && (UNITY_STANDALONE_WIN || UNITY_ANDROID) - new Astra_Editor.TrackerProps(serializedObject, targetObjs, humanoid.astra), -#endif -#if hREALSENSE && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0) - new Realsense_Editor.TrackerProps(serializedObject, targetObjs, humanoid.realsense), -#endif -#if hOPTITRACK && (UNITY_STANDALONE_WIN) - new Optitrack_Editor.TrackerProps(serializedObject, targetObjs, humanoid.optitrack), -#endif -#if hNEURON && (UNITY_STANDALONE_WIN) - new Neuron_Editor.TrackerProps(serializedObject, targetObjs, humanoid.neuronTracker), -#endif -#if hTOBII && (UNITY_STANDALONE_WIN) - new Tobii_Editor.TrackerProps(serializedObject, targetObjs, humanoid.tobiiTracker), -#endif -#if hARKIT && hFACE && UNITY_IOS && UNITY_2019_1_OR_NEWER - new ArKit_Editor.TrackerProps(serializedObject, targetObjs, humanoid.arkit), -#endif -#if hDLIB && (UNITY_STANDALONE_WIN) - new Dlib_Editor.TrackerProps(serializedObject, targetObjs, humanoid.dlib), -#endif -#if hPUPIL && (UNITY_STANDALONE_WIN) - new Tracking.Pupil.Pupil_Editor.TrackerProps(serializedObject, targetObjs, humanoid.pupil), -#endif -#if hANTILATENCY - new Antilatency_Editor.TrackerProps(serializedObject, targetObjs, humanoid.antilatency), -#endif -#if hHI5 - new Hi5_Editor.TrackerProps(serializedObject, targetObjs, humanoid.hi5), -#endif -#if hCUSTOM - new Custom_Editor.TrackerProps(serializedObject, targetObjs, humanoid.custom), -#endif - }; - - InitAnimations(humanoid); - } - - private bool showTrackers = true; - protected void TrackerInspectors() { - GUIContent text = new GUIContent( - "Input", - "Activate supported tracking devices for this humanoid" - ); - showTrackers = EditorGUILayout.Foldout(showTrackers, text, true); - - if (showTrackers) { - EditorGUI.indentLevel++; - - if (targetObjs != null) - targetObjs.Update(); - if (allTrackerProps != null) { - foreach (HumanoidTrackerProps props in allTrackerProps) - props.Inspector(humanoid); - } - if (targetObjs != null) - targetObjs.ApplyModifiedProperties(); - - AnimatorInspector(humanoid); - EditorGUI.indentLevel--; - } - } - - #region Animations - - private SerializedProperty animatorParamForwardProp; - private SerializedProperty animatorParamSidewardProp; - private SerializedProperty animatorParamRotationProp; - private SerializedProperty animatorParamHeightProp; - - - private void InitAnimations(HumanoidControl humanoid) { - - animatorParamForwardProp = serializedObject.FindProperty("animatorParameterForwardIndex"); - animatorParamSidewardProp = serializedObject.FindProperty("animatorParameterSidewardIndex"); - animatorParamRotationProp = serializedObject.FindProperty("animatorParameterRotationIndex"); - animatorParamHeightProp = serializedObject.FindProperty("animatorParameterHeightIndex"); - } - - bool showAnimatorParameters = false; - private void AnimatorInspector(HumanoidControl humanoid) { - AnimatorControllerInspector(humanoid); - AnimatorParametersInspector(humanoid); - } - - private void AnimatorControllerInspector(HumanoidControl humanoid) { - EditorGUILayout.BeginHorizontal(); - - SerializedProperty animatorEnabledProp = serializedObject.FindProperty("animatorEnabled"); - GUIContent text = new GUIContent( - "Animator", - "Standard Unity Animator Controller for animating the character" - ); - animatorEnabledProp.boolValue = EditorGUILayout.ToggleLeft(text, animatorEnabledProp.boolValue, GUILayout.Width(120)); - - SerializedProperty animatorControllerProp = serializedObject.FindProperty("animatorController"); - if (humanoid.targetsRig != null) { - if (animatorEnabledProp.boolValue) { - if (humanoid.targetsRig.runtimeAnimatorController != null) - showAnimatorParameters = EditorGUILayout.Foldout(showAnimatorParameters, "Params", true); - animatorControllerProp.objectReferenceValue = (RuntimeAnimatorController)EditorGUILayout.ObjectField(humanoid.targetsRig.runtimeAnimatorController, typeof(RuntimeAnimatorController), true); - if (animatorControllerProp.objectReferenceValue != humanoid.targetsRig.runtimeAnimatorController) - animatorParameterNames = null; - humanoid.targetsRig.runtimeAnimatorController = (RuntimeAnimatorController)animatorControllerProp.objectReferenceValue; - } - else - humanoid.targetsRig.runtimeAnimatorController = null; - } - EditorGUILayout.EndHorizontal(); - } - - private void AnimatorParametersInspector(HumanoidControl humanoid) { - if (showAnimatorParameters && humanoid.animatorEnabled && humanoid.targetsRig.runtimeAnimatorController != null) { - if (animatorParameterNames == null) - animatorParameterNames = GetAnimatorParameters(humanoid); - - EditorGUI.indentLevel++; - - GUIContent forwardSpeedText = new GUIContent( - "Forward Speed", - "Animator parameter controlling the forward motion animation" - ); - animatorParamForwardProp.intValue = SetAnimatorInput(forwardSpeedText, animatorParamForwardProp.intValue, ref humanoid.animatorParameterForward); - - GUIContent sidewardSpeedText = new GUIContent( - "Sideward Speed", - "Animator parameter controlling the sideward motion animation" - ); - animatorParamSidewardProp.intValue = SetAnimatorInput(sidewardSpeedText, animatorParamSidewardProp.intValue, ref humanoid.animatorParameterSideward); - - GUIContent turnSpeedText = new GUIContent( - "Turn Speed", - "Animator parameter controlling the rotation animation" - ); - animatorParamRotationProp.intValue = SetAnimatorInput(turnSpeedText, animatorParamRotationProp.intValue, ref humanoid.animatorParameterRotation); - - GUIContent headHeightText = new GUIContent( - "Head Height", - "Animation parameter controlling the squatting animation" - ); - animatorParamHeightProp.intValue = SetAnimatorInput(headHeightText, animatorParamHeightProp.intValue, ref humanoid.animatorParameterHeight); - - EditorGUI.indentLevel--; - } - else - showAnimatorParameters = false; - - } - - protected GUIContent[] animatorParameterNames; - public GUIContent[] GetAnimatorParameters(HumanoidControl humanoid) { - if (humanoid == null || humanoid.targetsRig.runtimeAnimatorController == null) - return null; - - AnimatorControllerParameter[] animatorParameters = humanoid.targetsRig.parameters; - GUIContent[] fullAnimatorParameterNames = new GUIContent[animatorParameters.Length + 1]; - fullAnimatorParameterNames[0] = new GUIContent(" "); - int j = 1; - for (int i = 0; i < animatorParameters.Length; i++) - if (animatorParameters[i].type == AnimatorControllerParameterType.Float) - fullAnimatorParameterNames[j++] = new GUIContent(animatorParameters[i].name); - - GUIContent[] truncatedParameterNames = new GUIContent[j]; - for (int i = 0; i < j; i++) - truncatedParameterNames[i] = fullAnimatorParameterNames[i]; - return truncatedParameterNames; - } - - private int SetAnimatorInput(GUIContent label, int parameterIndex, ref string parameterName) { - if (parameterIndex > animatorParameterNames.Length) - parameterIndex = 0; - int newParameterIndex = EditorGUILayout.Popup(label, parameterIndex, animatorParameterNames, GUILayout.MinWidth(80)); - - if (newParameterIndex > 0 && newParameterIndex < animatorParameterNames.Length) { - parameterName = animatorParameterNames[newParameterIndex].text; - } - else { - parameterName = null; - } - return newParameterIndex; - } - - #endregion - - #region Networking -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - private SerializedProperty remoteAvatarProp; -#endif - - private void InitNetworking() { -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - remoteAvatarProp = serializedObject.FindProperty("remoteAvatar"); -#endif - } - - private void NetworkingInspector(HumanoidControl humanoid) { -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - GUIContent text = new GUIContent( - "Networking", - "Settings for networking" - ); - EditorGUILayout.LabelField(text, GUILayout.Width(100)); - - EditorGUI.indentLevel++; - RemoteAvatarInspector(); - EditorGUI.indentLevel--; -#endif - } - - private void RemoteAvatarInspector() { - if (humanoid.isRemote) - return; -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - GUIContent text = new GUIContent( - "Remote Avatar", - "Determines how the avatar looks like on remote clients. Required for networking setups" - ); - remoteAvatarProp.objectReferenceValue = (GameObject)EditorGUILayout.ObjectField(text, remoteAvatarProp.objectReferenceValue, typeof(GameObject), false); - - GameObject remoteAvatarPrefab = (GameObject)remoteAvatarProp.objectReferenceValue; - if (remoteAvatarPrefab == null) { - remoteAvatarPrefab = DetermineRemoteAvatar(); - if (remoteAvatarPrefab == null) - EditorGUILayout.HelpBox("Remote Avatar cannot be null for networking", MessageType.Error); - else - remoteAvatarProp.objectReferenceValue = remoteAvatarPrefab; - } - else { - GameObject remoteAvatarTest = (GameObject)Resources.Load(remoteAvatarPrefab.name); - if (remoteAvatarTest == null) - EditorGUILayout.HelpBox(remoteAvatarPrefab.name + " is not located in a Resources folder", MessageType.Error); - } -#endif - } - - protected virtual GameObject DetermineRemoteAvatar() { - string avatarName = humanoid.avatarRig.gameObject.name; - GameObject remoteAvatarTest = (GameObject)Resources.Load(avatarName); - if (remoteAvatarTest == null) - return null; - - return remoteAvatarTest; - } - - #endregion - - #endregion - - #region Pose - - private void InitPose() { - if (!Application.isPlaying && humanoid.pose != null) - humanoid.pose.Show(humanoid); - } - - private void PoseInspector() { - EditorGUILayout.BeginHorizontal(); - SerializedProperty poseProp = serializedObject.FindProperty("pose"); - Pose newHumanoidPose = (Pose)EditorGUILayout.ObjectField("Pose", poseProp.objectReferenceValue, typeof(Pose), false); - if (newHumanoidPose != humanoid.pose) { - poseProp.objectReferenceValue = newHumanoidPose; - if (humanoid.pose != null) { - humanoid.pose.Show(humanoid); - humanoid.CopyRigToTargets(); - humanoid.UpdateMovements(); - } - } - - if (!Application.isPlaying && humanoid.pose != null) { - GUIContent text = new GUIContent( - "", - "Edit Pose" - ); - bool isEdited = EditorGUILayout.Toggle(text, humanoid.editPose, "button", GUILayout.Width(19)); - if (humanoid.editPose != isEdited) - SceneView.RepaintAll(); - humanoid.editPose = isEdited; - - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - } - EditorGUILayout.EndHorizontal(); - } - #endregion - - #region Movement - - protected bool showMovement = false; - protected void MovementInspector() { - GUIContent text = new GUIContent( - "Movement", - "Settings related to moving the humanoid around" - ); - showMovement = EditorGUILayout.Foldout(showMovement, text, true); - if (showMovement) { - EditorGUI.indentLevel++; - ForwardSpeedInspector(); - BackwardSpeedInspector(); - SidewardSpeedInspector(); - MaxAccelerationInspector(); - RotationSpeedInspector(); - StepOffsetInspector(); - ProximitySpeedInspector(); - EditorGUI.indentLevel--; - } - } - - protected virtual void ForwardSpeedInspector() { - SerializedProperty forwardSpeedProp = serializedObject.FindProperty("forwardSpeed"); - GUIContent text = new GUIContent( - "Forward Speed", - "Maximum forward speed in units(meters)/second" - ); - forwardSpeedProp.floatValue = EditorGUILayout.FloatField(text, forwardSpeedProp.floatValue); - } - - protected virtual void BackwardSpeedInspector() { - SerializedProperty backwardSpeedProp = serializedObject.FindProperty("backwardSpeed"); - GUIContent text = new GUIContent( - "Backward Speed", - "Maximum backward speed in units(meters)/second" - ); - backwardSpeedProp.floatValue = EditorGUILayout.FloatField(text, backwardSpeedProp.floatValue); - } - - protected virtual void SidewardSpeedInspector() { - SerializedProperty sidewardSpeedPop = serializedObject.FindProperty("sidewardSpeed"); - GUIContent text = new GUIContent( - "Sideward Speed", - "Maximum sideward speed in units(meters)/second" - ); - sidewardSpeedPop.floatValue = EditorGUILayout.FloatField(text, sidewardSpeedPop.floatValue); - } - - protected virtual void MaxAccelerationInspector() { - SerializedProperty maxAccelerationProp = serializedObject.FindProperty("maxAcceleration"); - GUIContent text = new GUIContent( - "Maximum Acceleration", - "Maximum acceleration in units(meters)/second/second, 0 = no maximum acceleration" - ); - maxAccelerationProp.floatValue = EditorGUILayout.FloatField(text, maxAccelerationProp.floatValue); - } - - protected virtual void RotationSpeedInspector() { - SerializedProperty rotationSpeedProp = serializedObject.FindProperty("rotationSpeed"); - GUIContent text = new GUIContent( - "Rotation Speed", - "Maximum rotational speed in degrees/second" - ); - rotationSpeedProp.floatValue = EditorGUILayout.FloatField(text, rotationSpeedProp.floatValue); - } - - protected virtual void ProximitySpeedInspector() { - SerializedProperty proximitySpeedProp = serializedObject.FindProperty("proximitySpeed"); - GUIContent text = new GUIContent( - "Proximity Speed", - "Decreases movement speed when the pawn is close to static objects to reduce motion sickness" - ); - proximitySpeedProp.boolValue = EditorGUILayout.Toggle(text, proximitySpeedProp.boolValue); - } - - - protected void StepOffsetInspector() { - SerializedProperty stepOffsetProp = serializedObject.FindProperty("stepOffset"); - GUIContent text = new GUIContent( - "Step Offset", - "The maximum vertical distance which the humanoid van walk over" - ); - stepOffsetProp.floatValue = EditorGUILayout.FloatField(text, stepOffsetProp.floatValue); - } - - #endregion - - #region Settings - - protected virtual void InitSettings() { - ShowRealWorldObjects(); - } - - protected bool showSettings = false; - protected void SettingsInspector() { - GUIContent text = new GUIContent( - "Settings", - "To contract various aspects of the script" - ); - showSettings = EditorGUILayout.Foldout(showSettings, text, true); - - if (showSettings) { - EditorGUI.indentLevel++; - - RealWorldObjects(humanoid); - ShowSkeletonsInspector(); - - PhysicsSetting(); - UseGravitySetting(); - BodyPullSetting(); - HapticsSetting(); - CalibrateAtStartSetting(); - StartPositionSetting(); - ScalingSetting(); - DontDestroySetting(); - if (IsPrefab(humanoid)) - DisconnectInstancesSetting(); - - EditorGUI.indentLevel--; - } - - ShowTrackers(humanoid, humanoid.showRealObjects); - } - - private void RealWorldObjects(HumanoidControl humanoid) { - SerializedProperty showRealObjectsProp = serializedObject.FindProperty("showRealObjects"); - - bool lastShowRealObjects = showRealObjectsProp.boolValue; - - GUIContent text = new GUIContent( - "Show Real Objects", - "Shows real physical objects like trackers, controllers and camera's at their actual location" - ); - showRealObjectsProp.boolValue = EditorGUILayout.Toggle(text, lastShowRealObjects); - - if (!lastShowRealObjects && showRealObjectsProp.boolValue) { // we turned real world objects on - humanoid.leftHandTarget.showRealObjects = true; - humanoid.leftHandTarget.ShowSensors(true); - humanoid.rightHandTarget.showRealObjects = true; - humanoid.rightHandTarget.ShowSensors(true); - } - else { - humanoid.leftHandTarget.ShowSensors(showRealObjectsProp.boolValue && humanoid.leftHandTarget.showRealObjects); - humanoid.rightHandTarget.ShowSensors(showRealObjectsProp.boolValue && humanoid.rightHandTarget.showRealObjects); - } - } - - private void ShowSkeletonsInspector() { - SerializedProperty showSkeletonsProp = serializedObject.FindProperty("_showSkeletons"); - bool lastShowSkeletons = showSkeletonsProp.boolValue; - - GUIContent text = new GUIContent( - "Show Skeletons", - "If enabled, tracking skeletons will be rendered" - ); - showSkeletonsProp.boolValue = EditorGUILayout.Toggle(text, lastShowSkeletons); - // This line is needed to activate the setter - humanoid.showSkeletons = showSkeletonsProp.boolValue; - } - - protected void ShowRealWorldObjects() { - } - - protected void ScalingSetting() { - SerializedProperty scalingProp = serializedObject.FindProperty("scaling"); - GUIContent text = new GUIContent( - "Scaling", - "Determines how differences between the player size and the avatar are resolved" - ); - scalingProp.intValue = (int)(HumanoidControl.ScalingType)EditorGUILayout.EnumPopup(text, (HumanoidControl.ScalingType)scalingProp.intValue); - } - - private void ShowTrackers(HumanoidControl humanoid, bool shown) { - foreach (Tracker tracker in humanoid.trackers) - tracker.ShowTracker(shown); - } - - protected virtual void UseGravitySetting() { - SerializedProperty useGravityProp = serializedObject.FindProperty("useGravity"); - GUIContent text = new GUIContent( - "Use Gravity", - "Implements downward motion when the character is not on solid ground" - ); - useGravityProp.boolValue = EditorGUILayout.Toggle(text, useGravityProp.boolValue); - } - - protected virtual void PhysicsSetting() { - // Physics cannot bet changes during runtime - EditorGUI.BeginDisabledGroup(Application.isPlaying); - - SerializedProperty physicsProp = serializedObject.FindProperty("physics"); - GUIContent text = new GUIContent( - "Physics", - "Enables collisions of the pawn with the environment using the physics engine" - ); - physicsProp.boolValue = EditorGUILayout.Toggle(text, physicsProp.boolValue); - - EditorGUI.EndDisabledGroup(); - } - - protected virtual void BodyPullSetting() { - SerializedProperty bodyPullProp = serializedObject.FindProperty("bodyPull"); - GUIContent text = new GUIContent( - "Body Pull", - "Moves the body when grabbing static objects" - ); - bodyPullProp.boolValue = EditorGUILayout.Toggle(text, bodyPullProp.boolValue); - } - - protected void HapticsSetting() { - SerializedProperty hapticsProp = serializedObject.FindProperty("haptics"); - GUIContent text = new GUIContent( - "Haptics", - "Uses haptic feedback when colliding with objects" - ); - hapticsProp.boolValue = EditorGUILayout.Toggle(text, hapticsProp.boolValue); - } - - protected virtual void CalibrateAtStartSetting() { - SerializedProperty calibrateAtStartProp = serializedObject.FindProperty("calibrateAtStart"); - GUIContent text = new GUIContent( - "Calibrate at Start", - "Will calibrate the pawn when the tracking starts." - ); - calibrateAtStartProp.boolValue = EditorGUILayout.Toggle(text, calibrateAtStartProp.boolValue); - } - - //protected virtual void ScalingSetting() { - // SerializedProperty scalingProp = serializedObject.FindProperty("avatarMatching"); - // GUIContent text = new GUIContent( - // "Scaling", - // "Determines how differences between the player size and the character are resolved" - // ); - // scalingProp.intValue = (int)(PawnControl.MatchingType)EditorGUILayout.EnumPopup(text, (PawnControl.MatchingType)scalingProp.intValue); - //} - - protected virtual void StartPositionSetting() { - SerializedProperty startPositionProp = serializedObject.FindProperty("startPosition"); - GUIContent text = new GUIContent( - "Start Position", - "Determines the start position of the player" - ); - startPositionProp.intValue = (int)(HumanoidControl.StartPosition)EditorGUILayout.EnumPopup(text, (HumanoidControl.StartPosition)startPositionProp.intValue); - } - - protected void DontDestroySetting() { - SerializedProperty dontDestroyProp = serializedObject.FindProperty("dontDestroyOnLoad"); - GUIContent text = new GUIContent( - "Don't Destroy on Load", - "Ensures that the pawn survives a scene change" - ); - dontDestroyProp.boolValue = EditorGUILayout.Toggle(text, dontDestroyProp.boolValue); - } - - protected void DisconnectInstancesSetting() { - SerializedProperty disconnectInstancesProp = serializedObject.FindProperty("disconnectInstances"); - GUIContent text = new GUIContent( - "Disconnect Instances", - "Disconnects instances from prefab when instantiating" - ); - disconnectInstancesProp.boolValue = EditorGUILayout.Toggle(text, disconnectInstancesProp.boolValue); - } - - protected virtual void IsRemoteSetting() { - SerializedProperty isRemoteProp = serializedObject.FindProperty("isRemote"); - GUIContent text = new GUIContent( - "Is Remote", - "This pawn is used for remote clients" - ); - isRemoteProp.boolValue = EditorGUILayout.Toggle(text, isRemoteProp.boolValue); - } - - #endregion - - #region Buttons - private void Buttons() { - GUILayout.BeginHorizontal(); - if (Application.isPlaying && GUILayout.Button("Calibrate")) - humanoid.Calibrate(); - GUILayout.EndHorizontal(); - } - #endregion - - #endregion - - #region Scene - public void OnSceneGUI() { - if (Application.isPlaying) - return; - if (humanoid == null) - return; - - if (humanoid.pose != null) { - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - else { - humanoid.pose.Show(humanoid); - humanoid.CopyRigToTargets(); - } - } - - if (humanoid.headTarget == null || - humanoid.leftHandTarget == null || - humanoid.rightHandTarget == null || - humanoid.hipsTarget == null || - humanoid.leftFootTarget == null || - humanoid.rightFootTarget == null) { - - return; - } - // update the avatar bones from the target rig - humanoid.UpdateMovements(); - // match the target rig with the new avatar pose - - humanoid.MatchTargetsToAvatar(); - - // and update all targets to match the target rig - humanoid.CopyRigToTargets(); - - // Update the sensors to match the updated targets - humanoid.UpdateSensorsFromTargets(); - } - #endregion - - public static bool IsPrefab(HumanoidControl humanoid) { - PrefabStage prefabStage = PrefabStageUtility.GetPrefabStage(humanoid.gameObject); - if (prefabStage == null) - return false; - else - return true; - } - - public static void ShowTracker(GameObject trackerObject, bool enabled) { - Renderer renderer = trackerObject.GetComponent(); - if (renderer != null) - renderer.enabled = enabled; - } - - public abstract class TrackerProps { - public SerializedProperty enabledProp; - //public SerializedProperty trackerTransfromProp; - public HumanoidTracker tracker; - - public TrackerProps(SerializedObject serializedObject, HumanoidTracker _tracker, string trackerName) { - enabledProp = serializedObject.FindProperty(trackerName + ".enabled"); - //trackerTransfromProp = serializedObject.FindProperty(trackerName + ".trackerTransform"); - - tracker = _tracker; - } - } - - public class HumanoidTargetObjs { - public SerializedObject headTargetObj; - public SerializedObject leftHandTargetObj; - public SerializedObject rightHandTargetObj; - public SerializedObject hipsTargetObj; - public SerializedObject leftFootTargetObj; - public SerializedObject rightFootTargetObj; - - public HumanoidTargetObjs(HumanoidControl humanoid) { - if (humanoid.headTarget != null) - headTargetObj = new SerializedObject(humanoid.headTarget); - if (humanoid.leftHandTarget != null) - leftHandTargetObj = new SerializedObject(humanoid.leftHandTarget); - if (humanoid.rightHandTarget != null) - rightHandTargetObj = new SerializedObject(humanoid.rightHandTarget); - if (humanoid.hipsTarget != null) - hipsTargetObj = new SerializedObject(humanoid.hipsTarget); - if (humanoid.leftFootTarget != null) - leftFootTargetObj = new SerializedObject(humanoid.leftFootTarget); - if (humanoid.rightFootTarget != null) - rightFootTargetObj = new SerializedObject(humanoid.rightFootTarget); - } - - public void Update() { - headTargetObj?.Update(); - leftHandTargetObj?.Update(); - rightHandTargetObj?.Update(); - hipsTargetObj?.Update(); - leftFootTargetObj?.Update(); - rightFootTargetObj?.Update(); - } - - public void ApplyModifiedProperties() { - headTargetObj?.ApplyModifiedProperties(); - leftHandTargetObj?.ApplyModifiedProperties(); - rightHandTargetObj?.ApplyModifiedProperties(); - hipsTargetObj?.ApplyModifiedProperties(); - leftFootTargetObj?.ApplyModifiedProperties(); - rightFootTargetObj?.ApplyModifiedProperties(); - } - } - - public abstract class HumanoidTrackerProps : TrackerProps { - protected HumanoidTargetObjs targetObjs; - - protected SerializedProperty trackerProp; - - protected SerializedProperty headSensorProp; - protected SerializedProperty leftHandSensorProp; - protected SerializedProperty rightHandSensorProp; - protected SerializedProperty hipsSensorProp; - protected SerializedProperty leftFootSensorProp; - protected SerializedProperty rightFootSensorProp; - - public HumanoidTrackerProps(SerializedObject serializedObject, HumanoidTargetObjs _targetObjs, HumanoidTracker _tracker, string trackerName) : - base(serializedObject, _tracker, trackerName) { - targetObjs = _targetObjs; - - trackerProp = serializedObject.FindProperty($"{trackerName}.{nameof(Tracker.trackerComponent)}"); - - if (targetObjs.headTargetObj != null) - headSensorProp = targetObjs.headTargetObj.FindProperty(trackerName); - if (targetObjs.leftHandTargetObj != null) - leftHandSensorProp = targetObjs.leftHandTargetObj.FindProperty(trackerName); - if (targetObjs.rightHandTargetObj != null) - rightHandSensorProp = targetObjs.rightHandTargetObj.FindProperty(trackerName); - if (targetObjs.hipsTargetObj != null) - hipsSensorProp = targetObjs.hipsTargetObj.FindProperty(trackerName); - if (targetObjs.leftFootTargetObj != null) - leftFootSensorProp = targetObjs.leftFootTargetObj.FindProperty(trackerName); - if (targetObjs.rightFootTargetObj != null) - rightFootSensorProp = targetObjs.rightFootTargetObj.FindProperty(trackerName); - } - - public abstract void Inspector(HumanoidControl humanoid); - - public void Inspector(HumanoidControl humanoid, string resourceName) { - EditorGUILayout.BeginHorizontal(); - bool wasEnabled = enabledProp.boolValue; - - GUIContent text = new GUIContent( - tracker.name, - "Activate " + tracker.name + " support for this humanoid" - ); - enabledProp.boolValue = EditorGUILayout.ToggleLeft(text, tracker.enabled, GUILayout.Width(200)); - - if (Application.isPlaying && enabledProp.boolValue) - EditorGUILayout.EnumPopup(tracker.status); - - EditorGUILayout.EndHorizontal(); - - if (Application.isPlaying) - return; - - - if (IsPrefab(humanoid)) - return; - - if (tracker.humanoid == null) - tracker.humanoid = humanoid; - - if (!Application.isPlaying && !enabledProp.boolValue) - RemoveTracker(); - - //tracker.ShowTracker(humanoid.showRealObjects && enabledProp.boolValue); - - if (!wasEnabled && enabledProp.boolValue) - InitControllers(); - else if (wasEnabled && !enabledProp.boolValue) - RemoveControllers(); - - if (enabledProp.boolValue && !Application.isPlaying) { - SetSensors2Target(); - } - } - - protected void TrackerInspector(HumanoidControl humanoid, HumanoidTracker tracker) { - if (trackerProp.objectReferenceValue == null) { - // Tracker does not exist - using (new EditorGUILayout.HorizontalScope()) { - EditorGUILayout.LabelField("Tracker", GUILayout.Width(120)); - if (TrackerComponentShowButton()) - tracker.CheckTracker(humanoid); - } - } - else { - TrackerComponentInspector(); - } - } - - protected bool TrackerComponentShowButton() { - GUIContent labelText = new GUIContent( - "Show", - "Press this button to show the tracker in the Real World" - ); - return GUILayout.Button(labelText); - } - - protected void TrackerComponentInspector() { - GUIContent trackerLabel = new GUIContent( - "Tracker", - "The tracker component in the real world" - ); - trackerProp.objectReferenceValue = (Tracking.TrackerComponent)EditorGUILayout.ObjectField(trackerLabel, trackerProp.objectReferenceValue, typeof(Tracking.TrackerComponent), true); - } - - private void RemoveTracker() { - if (tracker.trackerComponent == null) - return; - DestroyImmediate(tracker.trackerComponent.gameObject, true); - } - - public virtual void InitControllers() { - tracker.enabled = enabledProp.boolValue; - // this is necessary because the serializedproperty has not been processed yet - // and is used in InitController - - // This #if is necessary for build assetbundles (somehow) -#if UNITY_EDITOR - if (tracker.headSensor != null) - tracker.headSensor.InitController(headSensorProp, tracker.humanoid.headTarget); - if (tracker.leftHandSensor != null) - tracker.leftHandSensor.InitController(leftHandSensorProp, tracker.humanoid.leftHandTarget); - if (tracker.rightHandSensor != null) - tracker.rightHandSensor.InitController(rightHandSensorProp, tracker.humanoid.rightHandTarget); - if (tracker.hipsSensor != null) - tracker.hipsSensor.InitController(hipsSensorProp, tracker.humanoid.hipsTarget); - if (tracker.leftFootSensor != null) - tracker.leftFootSensor.InitController(leftFootSensorProp, tracker.humanoid.leftFootTarget); - if (tracker.rightFootSensor != null) - tracker.rightFootSensor.InitController(rightFootSensorProp, tracker.humanoid.rightFootTarget); -#endif - } - - private void RemoveControllers() { - foreach (HumanoidSensor sensor in tracker.sensors) - RemoveTransform(sensor.sensorTransform); - - if (tracker.headSensor != null) - tracker.headSensor.RemoveController(headSensorProp); - if (tracker.leftHandSensor != null) - tracker.leftHandSensor.RemoveController(leftHandSensorProp); - if (tracker.rightHandSensor != null) - tracker.rightHandSensor.RemoveController(rightHandSensorProp); - if (tracker.hipsSensor != null) - tracker.hipsSensor.RemoveController(hipsSensorProp); - if (tracker.leftFootSensor != null) - tracker.leftFootSensor.RemoveController(leftFootSensorProp); - if (tracker.rightFootSensor != null) - tracker.rightFootSensor.RemoveController(rightFootSensorProp); - } - - private void RemoveTransform(Transform trackerTransform) { - if (trackerTransform != null) - DestroyImmediate(trackerTransform.gameObject, true); - } - - private void SetSensors2Target() { - foreach (HumanoidSensor sensor in tracker.sensors) { - sensor.SetSensor2Target(); - } - } - } - } -} diff --git a/Editor/HumanoidFree/HumanoidControl_Editor.cs.meta b/Editor/HumanoidFree/HumanoidControl_Editor.cs.meta deleted file mode 100644 index 5174a1f..0000000 --- a/Editor/HumanoidFree/HumanoidControl_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: df0862b2428c1fb4d93138841484e18f -timeCreated: 1453541563 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Icons.meta b/Editor/HumanoidFree/Icons.meta deleted file mode 100644 index 6fd0194..0000000 --- a/Editor/HumanoidFree/Icons.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: e5a9fdaf93a979643ab970df490cc3ff -folderAsset: yes -DefaultImporter: - userData: diff --git a/Editor/HumanoidFree/Icons/Controller_icon.png b/Editor/HumanoidFree/Icons/Controller_icon.png deleted file mode 100644 index cbc8ffa..0000000 Binary files a/Editor/HumanoidFree/Icons/Controller_icon.png and /dev/null differ diff --git a/Editor/HumanoidFree/Icons/Controller_icon.png.meta b/Editor/HumanoidFree/Icons/Controller_icon.png.meta deleted file mode 100644 index 8ac5da5..0000000 --- a/Editor/HumanoidFree/Icons/Controller_icon.png.meta +++ /dev/null @@ -1,47 +0,0 @@ -fileFormatVersion: 2 -guid: 508725d3dffb9554e9f7786086b83bdb -TextureImporter: - fileIDToRecycleName: {} - serializedVersion: 2 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - linearTexture: 0 - correctGamma: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - seamlessCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: .5, y: .5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spritePixelsToUnits: 100 - alphaIsTransparency: 0 - textureType: -1 - buildTargetSettings: [] - spriteSheet: - sprites: [] - spritePackingTag: - userData: diff --git a/Editor/HumanoidFree/Icons/Extension_icon.png b/Editor/HumanoidFree/Icons/Extension_icon.png deleted file mode 100644 index 3df8669..0000000 Binary files a/Editor/HumanoidFree/Icons/Extension_icon.png and /dev/null differ diff --git a/Editor/HumanoidFree/Icons/Extension_icon.png.meta b/Editor/HumanoidFree/Icons/Extension_icon.png.meta deleted file mode 100644 index 26dfe5f..0000000 --- a/Editor/HumanoidFree/Icons/Extension_icon.png.meta +++ /dev/null @@ -1,47 +0,0 @@ -fileFormatVersion: 2 -guid: a43f4693504f0654a851c5e588edcc79 -TextureImporter: - fileIDToRecycleName: {} - serializedVersion: 2 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - linearTexture: 0 - correctGamma: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: .25 - normalMapFilter: 0 - isReadable: 0 - grayScaleToAlpha: 0 - generateCubemap: 0 - seamlessCubemap: 0 - textureFormat: -1 - maxTextureSize: 1024 - textureSettings: - filterMode: -1 - aniso: -1 - mipBias: -1 - wrapMode: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: .5, y: .5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spritePixelsToUnits: 100 - alphaIsTransparency: 0 - textureType: -1 - buildTargetSettings: [] - spriteSheet: - sprites: [] - spritePackingTag: - userData: diff --git a/Editor/HumanoidFree/Networking.meta b/Editor/HumanoidFree/Networking.meta deleted file mode 100644 index 634ed90..0000000 --- a/Editor/HumanoidFree/Networking.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3494f4616fd63994c91a41e85e928559 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs b/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs deleted file mode 100644 index 83b2830..0000000 --- a/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs +++ /dev/null @@ -1,20 +0,0 @@ -using UnityEditor; - -namespace Passer.Humanoid { - using Pawn; - - public class HumanoidNetworking_Editor : Editor { - - protected virtual void SyncFingerSwingInspector() { - SerializedProperty syncFingerSwingProp = serializedObject.FindProperty("_syncFingerSwing"); - syncFingerSwingProp.boolValue = EditorGUILayout.Toggle("Sync Finger Swing", syncFingerSwingProp.boolValue); - } - - protected virtual void SyncTrackingInspector() { - SerializedProperty syncTrackingProp = serializedObject.FindProperty("_syncTracking"); - syncTrackingProp.boolValue = EditorGUILayout.Toggle("Sync Tracking Space", syncTrackingProp.boolValue); - } - - } - -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs.meta b/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs.meta deleted file mode 100644 index 7bd04ca..0000000 --- a/Editor/HumanoidFree/Networking/HumanoidNetworking_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 02025295d2b71a147abec30e10edc361 -timeCreated: 1504014208 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs b/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs deleted file mode 100644 index 24b3df1..0000000 --- a/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -#if !UNITY_2019_1_OR_NEWER -using UnityEngine.Networking; -#endif - - -namespace Passer.Humanoid { - - [InitializeOnLoad] - public class OnLoadHumanoidPlayer { - static OnLoadHumanoidPlayer() { - //HumanoidPreferencesIMGUIRegister.reload = true; - } - - public static string GetHumanoidPlayerPrefabPath() { - string humanoidPath = Configuration_Editor.FindHumanoidFolder(); - string prefabPathWithoutScripts = humanoidPath.Substring(0, humanoidPath.Length - 8); - string prefabPath = "Assets" + prefabPathWithoutScripts + "Prefabs/Networking/Resources/HumanoidPlayer.prefab"; - return prefabPath; - } - - public static GameObject GetHumanoidPlayerPrefab(string prefabPath) { - GameObject prefab = PrefabUtility.LoadPrefabContents(prefabPath); - return prefab; - } - - public static void UpdateHumanoidPrefab(GameObject prefab, string prefabPath) { - if (!Application.isPlaying) { - Debug.Log("UpdateHumanoidPrefab " + Application.isFocused + " " + Application.isBatchMode + " " + Application.isEditor); - if (Application.isFocused && !Application.isBatchMode && Application.isEditor) { - Debug.Log("delaying save " + prefab); - HumanoidPlayer_Editor.prefabsToSave.Push(prefab); - HumanoidPlayer_Editor.prefabPaths.Push(prefabPath); - EditorApplication.delayCall += HumanoidPlayer_Editor.DelayedSave; - } - else { - Debug.Log("updating " + prefab); - PrefabUtility.SaveAsPrefabAsset(prefab, prefabPath); - PrefabUtility.UnloadPrefabContents(prefab); - } - } - - } - - [CustomEditor(typeof(HumanoidPlayer))] - public class HumanoidPlayer_Editor : HumanoidNetworking_Editor { -#if hNW_UNET - public override void OnInspectorGUI() { - serializedObject.Update(); - - SendRateInspector(); - DebugLevelInspector(); - SmoothingInspector(); - SyncFingerSwingInspector(); - CreateLocalRemotesInspector(); - SyncTrackingInspector(); - - serializedObject.ApplyModifiedProperties(); - } -#endif - public static Stack prefabsToSave = new Stack(); - public static Stack prefabPaths = new Stack(); - - - //private void OnSceneGUI() { - public static void DelayedSave() { - if (Application.isPlaying) - return; - - if (prefabsToSave.Count > 0) { - GameObject prefab = prefabsToSave.Pop(); - Debug.Log("Delayed save of prefab " + prefab); - string path = prefabPaths.Pop(); - PrefabUtility.SaveAsPrefabAsset(prefab, path); - PrefabUtility.UnloadPrefabContents(prefab); - } - - } - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs.meta b/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs.meta deleted file mode 100644 index 2d3ebda..0000000 --- a/Editor/HumanoidFree/Networking/HumanoidPlayer_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: f2509f5610a14b84ebf59b2f57fff792 -timeCreated: 1563434259 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs b/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs deleted file mode 100644 index a780a15..0000000 --- a/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs +++ /dev/null @@ -1,46 +0,0 @@ -using UnityEditor; -using UnityEngine; -using UnityEngine.Networking; - -namespace Passer.Humanoid { - - [CustomEditor(typeof(NetworkingSpawner))] - public class NetworkingSpawner_Editor : NetworkingStarter_Editor { - private SerializedProperty humanoidPrefabProp; - private SerializedProperty spawnPointsProp; - private SerializedProperty spawnMethodProp; - - public override void OnEnable() { - base.OnEnable(); - - humanoidPrefabProp = serializedObject.FindProperty("humanoidPrefab"); - spawnPointsProp = serializedObject.FindProperty("spawnPoints"); - spawnMethodProp = serializedObject.FindProperty("spawnMethod"); - } - - public override void OnInspectorGUI() { - base.OnInspectorGUI(); - GUIContent label; - - label = new GUIContent( - "Humanoid Prefab", - "The Humanoid Prefab that will be spawned when networking has started" - ); - EditorGUILayout.PropertyField(humanoidPrefabProp, label); - - label = new GUIContent( - "Spawn Points", - "The possible spawning points for the Humanoid" - ); - EditorGUILayout.PropertyField(spawnPointsProp, label, true); - - label = new GUIContent( - "Spawn Mode", - "The order in which the spawn points are chosen" - ); - EditorGUILayout.PropertyField(spawnMethodProp, label); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs.meta b/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs.meta deleted file mode 100644 index 754ed49..0000000 --- a/Editor/HumanoidFree/Networking/NetworkingSpawner_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 79e13e41ebe67724cb80251b3df3a108 -timeCreated: 1519718995 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/ObjectTracker_Editor.cs b/Editor/HumanoidFree/ObjectTracker_Editor.cs deleted file mode 100644 index 67a819a..0000000 --- a/Editor/HumanoidFree/ObjectTracker_Editor.cs +++ /dev/null @@ -1,118 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer.Humanoid { - using Passer.Tracking; - - [HelpURL("http://passervr.com/documentation/humanoid-control/object-tracker/")] - [CustomEditor(typeof(ObjectTracker))] - public class ObjectTracker_Editor : Editor { - public enum Side { - Left, - Right - } - - protected ObjectTracker objectTracker; - - #region Enable - public void OnEnable() { - objectTracker = (ObjectTracker)target; - - //if (objectTracker.targetTransform == null) - // objectTracker.targetTransform = objectTracker.transform; - // HumanoidControl humanoid = objectTracker.humanoid; - // if (humanoid != null) { - //#if hOCULUS - // objectTracker.oculusTouch.tracker = humanoid.oculus; - //#endif - // } - - //#if hOCULUS - // if (objectTracker.oculusTouch.target == null) - // objectTracker.oculusTouch.target = objectTracker; - //#endif - } - #endregion - - #region Disable - - public void OnDisable() { - if (!Application.isPlaying) { - serializedObject.Update(); - - SetSensor2Object(); - - serializedObject.ApplyModifiedProperties(); - } - } - - protected void SetSensor2Object() { - SensorComponent sensorComponent = objectTracker.sensorComponent; - if (sensorComponent == null) - return; - - SerializedProperty sensor2ObjectRotationProp = serializedObject.FindProperty("sensor2ObjectRotation"); - sensor2ObjectRotationProp.quaternionValue = Quaternion.Inverse(sensorComponent.transform.rotation) * objectTracker.transform.rotation; - - SerializedProperty sensor2ObjectPositionProp = serializedObject.FindProperty("sensor2ObjectPosition"); - sensor2ObjectPositionProp.vector3Value = -InverseTransformPointUnscaled(objectTracker.transform, sensorComponent.transform.position); - } - - private static Vector3 InverseTransformPointUnscaled(Transform transform, Vector3 position) { - var worldToLocalMatrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one).inverse; - return worldToLocalMatrix.MultiplyPoint3x4(position); - } - - #endregion - - #region Inspector - - public override void OnInspectorGUI() { - ObjectTracker objectTracker = (ObjectTracker)target; - serializedObject.Update(); - - SerializedProperty sensorComponentProp = serializedObject.FindProperty("sensorComponent"); - sensorComponentProp.objectReferenceValue = (SensorComponent)EditorGUILayout.ObjectField("Sensor Component", sensorComponentProp.objectReferenceValue, typeof(SensorComponent), true); - - Settings(objectTracker); - - serializedObject.ApplyModifiedProperties(); - } - - #region Settings - - private static bool showSettings = false; - public static void Settings(ObjectTracker objectTracker) { - showSettings = EditorGUILayout.Foldout(showSettings, "Settings", true); - if (showSettings) { - EditorGUI.indentLevel++; - objectTracker.showRealObjects = EditorGUILayout.Toggle("Show Real Objects", objectTracker.showRealObjects); - ShowTrackers(objectTracker, objectTracker.showRealObjects); - // Work in progress - //objectTracker.physics = EditorGUILayout.Toggle("Physics", objectTracker.physics); - EditorGUI.indentLevel--; - } - } - - private static void ShowTrackers(ObjectTracker objectTracker, bool shown) { - objectTracker.ShowTrackers(shown); - } - - #endregion - - #endregion - - #region Scene - //private Vector3 objectPosition; - //private Quaternion objectLocalRotation; - public void OnSceneGUI() { - ObjectTracker objectTracker = (ObjectTracker)target; - - //if (!Application.isPlaying) - // objectTracker.UpdateSensorsFromTarget(); - - } - #endregion - - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/ObjectTracker_Editor.cs.meta b/Editor/HumanoidFree/ObjectTracker_Editor.cs.meta deleted file mode 100644 index f502127..0000000 --- a/Editor/HumanoidFree/ObjectTracker_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: b979cd5e42542cd4ab5c1a7ed93050fc -timeCreated: 1470140284 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Physics.meta b/Editor/HumanoidFree/Physics.meta deleted file mode 100644 index 80caa95..0000000 --- a/Editor/HumanoidFree/Physics.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 56054ec822d4e1145b92272d074b4223 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Physics/BallHandle_Editor.cs b/Editor/HumanoidFree/Physics/BallHandle_Editor.cs deleted file mode 100644 index d40659b..0000000 --- a/Editor/HumanoidFree/Physics/BallHandle_Editor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using UnityEditor; - -namespace Passer.Humanoid { - - [CustomEditor(typeof(BallHandle))] - public class BallHandle_Editor : Handle_Editor { - - public override void OnInspectorGUI() { - EditorGUILayout.HelpBox("BallHandle is depreciated, use Handle with Grab Type=Ball Grab instead.", MessageType.Warning); - - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Physics/BallHandle_Editor.cs.meta b/Editor/HumanoidFree/Physics/BallHandle_Editor.cs.meta deleted file mode 100644 index d0513cd..0000000 --- a/Editor/HumanoidFree/Physics/BallHandle_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 31353aacf17411740836d02dbd7c2221 -timeCreated: 1547654508 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Physics/BarHandle_Editor.cs b/Editor/HumanoidFree/Physics/BarHandle_Editor.cs deleted file mode 100644 index 1041b64..0000000 --- a/Editor/HumanoidFree/Physics/BarHandle_Editor.cs +++ /dev/null @@ -1,14 +0,0 @@ -using UnityEditor; - -namespace Passer.Humanoid { - - [CustomEditor(typeof(BarHandle))] - public class BarHandle_Editor : Handle_Editor { - - public override void OnInspectorGUI() { - EditorGUILayout.HelpBox("BarHandle is depreciated, use Handle with Grab Type=Bar Grab instead.", MessageType.Warning); - - base.OnInspectorGUI(); - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Physics/BarHandle_Editor.cs.meta b/Editor/HumanoidFree/Physics/BarHandle_Editor.cs.meta deleted file mode 100644 index 9f3a157..0000000 --- a/Editor/HumanoidFree/Physics/BarHandle_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 805b823334ccde549aca31ee8d7509d8 -timeCreated: 1506938796 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Pose.meta b/Editor/HumanoidFree/Pose.meta deleted file mode 100644 index 6b899b1..0000000 --- a/Editor/HumanoidFree/Pose.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9c6ae40433109fe41a121ce43a60540c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Pose/HandPose_Editor.cs b/Editor/HumanoidFree/Pose/HandPose_Editor.cs deleted file mode 100644 index 9a98c30..0000000 --- a/Editor/HumanoidFree/Pose/HandPose_Editor.cs +++ /dev/null @@ -1 +0,0 @@ -// This file is intentionally empty \ No newline at end of file diff --git a/Editor/HumanoidFree/Pose/HandPose_Editor.cs.meta b/Editor/HumanoidFree/Pose/HandPose_Editor.cs.meta deleted file mode 100644 index f81828a..0000000 --- a/Editor/HumanoidFree/Pose/HandPose_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: d949b2c3b0af78f42ba4bb69313ff32a -timeCreated: 1515774271 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Pose/Pose_Editor.cs b/Editor/HumanoidFree/Pose/Pose_Editor.cs deleted file mode 100644 index 89c4838..0000000 --- a/Editor/HumanoidFree/Pose/Pose_Editor.cs +++ /dev/null @@ -1,322 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -using Passer; -using Passer.Humanoid.Tracking; - -namespace Passer.Humanoid { - - [CustomEditor(typeof(Pose))] - public class Pose_Editor : Editor { - private Pose pose; - - #region Enable - public void OnEnable() { - pose = (Pose)target; - if (pose.bonePoses == null) - pose.bonePoses = new List(); - } - #endregion - - #region Disable - public void OnDisable() { - pose.Cleanup(); - } - #endregion - - private enum Reference { - HumanoidLocal, - BoneLocal - } - - #region Inspector - public override void OnInspectorGUI() { - for (int i = 0; i < pose.bonePoses.Count; i++) { - BonePose bonePoses = pose.bonePoses[i]; - if (bonePoses == null) - continue; - - if (bonePoses.boneRef.type == BoneType.SideBones && bonePoses.boneRef.side == Side.AnySide) { - EditorGUILayout.HelpBox("Configure AnySide like Left Side", MessageType.Info); - } - EditorGUILayout.BeginHorizontal(); - bonePoses.boneRef.type = (BoneType)EditorGUILayout.EnumPopup(bonePoses.boneRef.type, GUILayout.Width(159)); - Bone oldBoneId = bonePoses.boneRef.boneId; - SideBone oldSideBoneId = bonePoses.boneRef.sideBoneId; - BoneSelector(ref bonePoses.boneRef); - EditorGUILayout.EndHorizontal(); - - if (bonePoses.boneRef.boneId != oldBoneId || bonePoses.boneRef.sideBoneId != oldSideBoneId) - PresetReferenceBone(bonePoses.boneRef, ref bonePoses.referenceBoneRef); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField("Reference", GUILayout.MaxWidth(65)); - bonePoses.referenceBoneRef.type = (BoneType)EditorGUILayout.EnumPopup(bonePoses.referenceBoneRef.type, GUILayout.Width(90)); - - BoneSelector(ref bonePoses.referenceBoneRef); EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel++; - - EditorGUILayout.BeginHorizontal(); - bonePoses.setTranslation = EditorGUILayout.ToggleLeft("Translation", bonePoses.setTranslation, GUILayout.MaxWidth(131)); - if (bonePoses.setTranslation) - bonePoses.translation = EditorGUILayout.Vector3Field("", bonePoses.translation); - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - bonePoses.setRotation = EditorGUILayout.ToggleLeft("Rotation", bonePoses.setRotation, GUILayout.MaxWidth(131)); - if (bonePoses.setRotation) { - Vector3 eulerAngles = EditorGUILayout.Vector3Field("", bonePoses.rotation.eulerAngles); - if (eulerAngles != bonePoses.rotation.eulerAngles) - bonePoses.rotation.eulerAngles = eulerAngles; - } - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - bonePoses.setScale = EditorGUILayout.ToggleLeft("Scale", bonePoses.setScale, GUILayout.MaxWidth(131)); - if (bonePoses.setScale) - bonePoses.scale = EditorGUILayout.Vector3Field("", bonePoses.scale); - EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel--; - } - Buttons(); - EditorUtility.SetDirty(pose); - } - - private void PresetReferenceBone(BoneReference bone, ref BoneReference referenceBone) { - if (referenceBone.boneId != Bone.None) - return; - - if (bone.isFacialBone) - referenceBone.centerBoneId = CenterBone.Head; - if (bone.isHandBone) { - referenceBone.sideBoneId = SideBone.Hand; - referenceBone.type = BoneType.SideBones; - } - } - - private void BoneSelector(ref BoneReference bone) { - switch (bone.type) { - case BoneType.AllBones: - bone.boneId = (Bone)EditorGUILayout.EnumPopup(bone.boneId); - return; - case BoneType.CenterBones: - CenterBone centerBone = (CenterBone)EditorGUILayout.EnumPopup(bone.centerBoneId); - if (centerBone != CenterBone.Unknown) - bone.centerBoneId = centerBone; - return; - case BoneType.SideBones: - if (bone.boneId == Bone.None) { - SideBone sideBoneId = bone.sideBoneId; - bone.sideBoneId = (SideBone)EditorGUILayout.EnumPopup(sideBoneId); - } - else { - bone.sideBoneId = (SideBone)EditorGUILayout.EnumPopup(bone.sideBoneId); - } - bone.side = (Side)EditorGUILayout.EnumPopup(bone.side, GUILayout.Width(80)); - return; - case BoneType.FaceBones: - bone.faceBoneId = (FacialBone)EditorGUILayout.EnumPopup(bone.faceBoneId); - return; - default: - return; - } - } - - #region Buttons - private void Buttons() { - EditorGUILayout.BeginHorizontal(); - AddBoneButton(); - ClearAllButton(); - EditorGUILayout.EndHorizontal(); - } - private void AddBoneButton() { - if (GUILayout.Button("Add Bone")) { - //PoseBone newBone = new PoseBone(); - //PoseBone newBone = ScriptableObject.CreateInstance(); - //pose.bones.Add(newBone); - pose.AddBone(Bone.None); - } - } - private void ClearAllButton() { - if (GUILayout.Button("Clear All")) { - pose.bonePoses = new List(); - //pose.boneArray = new BonePose[0]; - } - - } - #endregion - #endregion - - public static void PoseMixerInspector(PoseMixer poseMixer, HumanoidControl humanoid, Side side = Side.AnySide) { - int i = 0; - foreach (MixedPose pose in poseMixer.mixedPoses) { - Pose oldPose = pose.pose; - HumanoidPoseInspector(poseMixer, pose, i, humanoid, side); - if (pose.pose != oldPose && pose.pose == null) { - // We deleted a pose, let's undo it's effect - pose.value = 0; - pose.pose = oldPose; - poseMixer.ShowPose(humanoid); - pose.pose = null; - } - i++; - } - - EditorGUILayout.BeginHorizontal(); - Pose addPose = (Pose)EditorGUILayout.ObjectField(null, typeof(Pose), false, GUILayout.Width(200)); - if (addPose != null) { - MixedPose newPose = poseMixer.Add(); - newPose.pose = addPose; - } - EditorGUILayout.EndHorizontal(); - } - - public static MixedPose HumanoidPoseInspector(PoseMixer poseMixer, MixedPose mixedPose, int poseIx, HumanoidControl humanoid, Side side = Side.AnySide) { - EditorGUILayout.BeginHorizontal(); - - if (poseMixer.poseMode == PoseMixer.PoseMode.Set) - mixedPose.pose = (Pose)EditorGUILayout.ObjectField(mixedPose.pose, typeof(Pose), false, GUILayout.Width(200)); - else - mixedPose.pose = (Pose)EditorGUILayout.ObjectField(mixedPose.pose, typeof(Pose), false); - if (mixedPose.pose != null) { - if (mixedPose.isEdited) { - EditorGUILayout.Slider(mixedPose.value, 0, 1); - poseMixer.SetPoseValue(poseIx, 1); - } - else if (poseMixer.poseMode == PoseMixer.PoseMode.Set) - { - float value = EditorGUILayout.Slider(mixedPose.value, 0, 1); - if (value != mixedPose.value) { - poseMixer.SetPoseValue(poseIx, value); - } - } - if (!Application.isPlaying || side == Side.AnySide) { - bool isEdited = EditorGUILayout.Toggle(mixedPose.isEdited, "button", GUILayout.Width(19)); - if (mixedPose.isEdited != isEdited) - SceneView.RepaintAll(); - mixedPose.isEdited = isEdited; - } - else { - EditorGUILayout.FloatField(mixedPose.score); - } - } - - EditorGUILayout.EndHorizontal(); - if (mixedPose.isEdited) { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(" ", GUILayout.Width(200)); - mixedPose.additive = EditorGUILayout.ToggleLeft("Additive", mixedPose.additive); - EditorGUILayout.EndHorizontal(); - } - return mixedPose; - } - - #region Scene - - static int boneIndex = -1; - public static void UpdateScene(HumanoidControl humanoid, ITarget target, PoseMixer poseMixer, ref BonePose selectedBone, Side side = Side.AnySide) { - //if (!Application.isPlaying) - // poseMixer.ShowPose(humanoid); - - MixedPose currentPose = poseMixer.GetEditedPose(); - if (currentPose == null || !currentPose.isEdited) { - UnityEditor.Tools.hidden = false; - return; - } - - UnityEditor.Tools.hidden = true; - - HumanoidTarget.TargetedBone[] bones = target.GetBones(); - int[] controlIds = new int[bones.Length]; - Bone[] boneIds = new Bone[bones.Length]; - - for (int i = 0; i < bones.Length; i++) { - if (bones[i] == null || bones[i].bone == null || bones[i].bone.transform == null) - continue; - - Handles.FreeMoveHandle(bones[i].bone.transform.position, bones[i].bone.transform.rotation, 0.002F, Vector3.zero, DotHandleCapSaveID); - controlIds[i] = lastControlID; - boneIds[i] = bones[i].boneId; - } - - FindSelectedHandle(controlIds, boneIds, ref boneIndex); - if (boneIndex == -1) - return; - - HumanoidTarget.TargetedBone targetedBone = FindTargetedBone(bones, boneIds[boneIndex]); - if (targetedBone == null || targetedBone.bone.transform == null) - return; - - GUIStyle style = new GUIStyle(); - style.normal.textColor = Color.yellow; - Handles.Label(targetedBone.bone.transform.position + Vector3.up * 0.01F, targetedBone.name, style); - Handles.color = Color.white; - - switch (UnityEditor.Tools.current) { - case Tool.Move: - selectedBone = currentPose.pose.CheckBone(boneIds[boneIndex], true); - Vector3 handlePosition = Handles.PositionHandle(targetedBone.target.transform.position, targetedBone.bone.transform.rotation); - targetedBone.target.transform.position = handlePosition; - selectedBone.setTranslation = true; - selectedBone.SetReferenceLocal(humanoid, side); - selectedBone.UpdateTranslation(humanoid, side); - break; - case Tool.Rotate: - selectedBone = currentPose.pose.CheckBone(boneIds[boneIndex], true); - Quaternion handleRotation = Handles.RotationHandle(targetedBone.target.transform.rotation, targetedBone.bone.transform.position); - targetedBone.target.transform.rotation = handleRotation; - selectedBone.setRotation = true; - selectedBone.SetReferenceLocal(humanoid, side); - selectedBone.UpdateRotation(humanoid, side); - break; - case Tool.Scale: - //Handles.ScaleHandle(selectedBone.transform.localScale, selectedBone.transform.position, selectedBone.transform.rotation, HandleUtility.GetHandleSize(selectedBone.transform.position)); - // need to all morphScale first... - break; - } - - Handles.BeginGUI(); - ResetBoneButton(selectedBone, humanoid); - Handles.EndGUI(); - - } - - private static void ResetBoneButton(BonePose selectedBone, HumanoidControl humanoid) { - if (GUILayout.Button("Reset Bone", GUILayout.Width(100))) { - Debug.Log("Got it to work."); - selectedBone.setRotation = false; - selectedBone.rotation = Quaternion.identity; - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(selectedBone.boneRef.boneId); - targetedBone.target.transform.localRotation = selectedBone.rotation; - } - } - - private static HumanoidTarget.TargetedBone FindTargetedBone(HumanoidTarget.TargetedBone[] bones, Tracking.Bone boneId) { - foreach (HumanoidTarget.TargetedBone bone in bones) { - if (bone.boneId == boneId) - return bone; - } - return null; - } - - static int lastControlID; - public static void DotHandleCapSaveID(int controlID, Vector3 position, Quaternion rotation, float size, EventType et) { - lastControlID = controlID; - Handles.DotHandleCap(controlID, position, rotation, size, et); - } - - private static void FindSelectedHandle(int[] controlIds, Tracking.Bone[] boneIds, ref int boneIndex) { - for (int i = 0; i < controlIds.Length; i++) { - if (controlIds[i] != 0 && controlIds[i] == GUIUtility.hotControl) { - boneIndex = i; - return; - } - } - return; - } - - #endregion - } -} diff --git a/Editor/HumanoidFree/Pose/Pose_Editor.cs.meta b/Editor/HumanoidFree/Pose/Pose_Editor.cs.meta deleted file mode 100644 index 3cafeed..0000000 --- a/Editor/HumanoidFree/Pose/Pose_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: bd1c837f43b04f543ad17a72adb65579 -timeCreated: 1515774608 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Preferences.cs b/Editor/HumanoidFree/Preferences.cs deleted file mode 100644 index 254e903..0000000 --- a/Editor/HumanoidFree/Preferences.cs +++ /dev/null @@ -1,37 +0,0 @@ -/* -#if UNITY_EDITOR -using System; -using System.Runtime.InteropServices; -using UnityEditor; -using UnityEngine; - -namespace Passer { - using Humanoid; - using Humanoid.Tracking; - using Passer.Tracking; - - [InitializeOnLoad] - public class HumanoidConfiguration : MonoBehaviour { - static HumanoidConfiguration() { - //Configuration_Editor.GlobalDefine("pHUMANOID"); -#if hLEAP - LeapDevice.LoadDlls(); -#endif -#if hORBBEC - AstraDevice.LoadDlls(); -#endif -#if hNEURON - NeuronDevice.LoadDlls(); -#endif - } - [DllImport("kernel32.dll")] - public static extern IntPtr LoadLibrary(string dllToLoad); - - // Have we loaded the prefs yet - public static Configuration configuration; - - } - -} -#endif -*/ \ No newline at end of file diff --git a/Editor/HumanoidFree/Preferences.cs.meta b/Editor/HumanoidFree/Preferences.cs.meta deleted file mode 100644 index 4d36e81..0000000 --- a/Editor/HumanoidFree/Preferences.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 336932db5f7f6174ea2950adf102b57b -timeCreated: 1534854134 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets.meta b/Editor/HumanoidFree/Targets.meta deleted file mode 100644 index 298f480..0000000 --- a/Editor/HumanoidFree/Targets.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5fc3a8cb7c606f146abada798999e35a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/FootTarget_Editor.cs b/Editor/HumanoidFree/Targets/FootTarget_Editor.cs deleted file mode 100644 index 6df0505..0000000 --- a/Editor/HumanoidFree/Targets/FootTarget_Editor.cs +++ /dev/null @@ -1,605 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer { - using Humanoid; - - [CanEditMultipleObjects] - [CustomEditor(typeof(FootTarget), true)] - public class FootTarget_Editor : Editor { - private FootTarget footTarget; - private HumanoidControl humanoid; - - private TargetProps[] allProps; - - #region Enable - - public void OnEnable() { - footTarget = (FootTarget)target; - - if (footTarget.humanoid == null) - footTarget.humanoid = GetHumanoid(footTarget); - humanoid = footTarget.humanoid; - if (humanoid == null) - return; - - InitEditors(); - - footTarget.InitSensors(); - InitConfiguration(footTarget); - InitSettings(); - InitEvents(); - } - - private void InitEditors() { - allProps = new TargetProps[] { -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - new ViveTracker_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hKINECT1 - new Kinect1_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hKINECT2 - new Kinect2_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hKINECT4 - new Kinect4_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hORBBEC - new Astra_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hNEURON - new Neuron_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hOPTITRACK - new Optitrack_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hANTILATENCY - new Antilatency_Editor.FootTargetProps(serializedObject, footTarget), -#endif -#if hCUSTOM - new Custom_Editor.FootTargetProps(serializedObject, footTarget), -#endif - }; - } - -#endregion - -#region Disable - public void OnDisable() { - if (humanoid == null) { - // This target is not connected to a humanoid, so we delete it - DestroyImmediate(footTarget, true); - return; - } - - if (!Application.isPlaying) { - SetSensor2Target(); - } - } - - private void SetSensor2Target() { - foreach (TargetProps props in allProps) - props.SetSensor2Target(); - } -#endregion - -#region Inspector - public override void OnInspectorGUI() { - if (footTarget == null || humanoid == null) - return; - - serializedObject.Update(); - - ControllerInspectors(footTarget); - ConfigurationInspector(footTarget); - SettingsInspector(footTarget); - EventsInspector(); - - serializedObject.ApplyModifiedProperties(); - UpdateBones(footTarget); - } - - public static FootTarget Inspector(FootTarget footTarget, string name) { - if (footTarget == null) - return footTarget; - - EditorGUILayout.BeginHorizontal(); - Transform defaultTargetTransform = footTarget.GetDefaultTarget(footTarget.humanoid); - Transform targetTransform = footTarget.transform ?? defaultTargetTransform; - - GUIContent text = new GUIContent( - name, - "The transform controlling the " + name - ); - targetTransform = (Transform)EditorGUILayout.ObjectField(text, targetTransform, typeof(Transform), true); - - if (!Application.isPlaying) { - if (targetTransform == defaultTargetTransform && GUILayout.Button("Show", GUILayout.MaxWidth(60))) { - // Call static method CreateTarget on target - footTarget = (FootTarget)footTarget.GetType().GetMethod("CreateTarget").Invoke(null, new object[] { footTarget }); - } - else if (targetTransform != footTarget.transform) { - footTarget = (FootTarget)footTarget.GetType().GetMethod("SetTarget").Invoke(null, new object[] { footTarget.humanoid, targetTransform, footTarget.isLeft }); - } - } - EditorGUILayout.EndHorizontal(); - return footTarget; - } - - public static HumanoidControl GetHumanoid(HumanoidTarget target) { - HumanoidControl foundHumanoid = target.transform.GetComponentInParent(); - if (foundHumanoid != null) - return foundHumanoid; - - HumanoidControl[] humanoids = GameObject.FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) - if (humanoids[i].leftFootTarget.transform == target.transform || - humanoids[i].rightFootTarget.transform == target.transform) - foundHumanoid = humanoids[i]; - - return foundHumanoid; - } - -#region Sensors - private static bool showControllers = true; - private void ControllerInspectors(FootTarget footTarget) { - showControllers = EditorGUILayout.Foldout(showControllers, "Controllers", true); - if (showControllers) { - EditorGUI.indentLevel++; - - foreach (TargetProps props in allProps) - props.Inspector(); - - if (humanoid.animatorEnabled) - footTarget.legAnimator.enabled = EditorGUILayout.ToggleLeft("Procedural Animation", footTarget.legAnimator.enabled, GUILayout.MinWidth(80)); - EditorGUI.indentLevel--; - } - } -#endregion - -#region Configuration - private void InitConfiguration(FootTarget footTarget) { - if (footTarget.humanoid.avatarRig == null) - return; - - InitUpperLegConfiguration(footTarget.upperLeg); - InitLowerLegConfiguration(footTarget.lowerLeg); - InitFootConfiguration(footTarget.foot); - InitToesConfiguration(footTarget.toes); - } - - private static bool showConfiguration; - private void ConfigurationInspector(FootTarget footTarget) { - //if (!target.jointLimitations) - // return; - - footTarget.RetrieveBones(); - - showConfiguration = EditorGUILayout.Foldout(showConfiguration, "Configuration", true); - if (showConfiguration) { - EditorGUI.indentLevel++; - - UpperLegConfigurationInspector(ref footTarget.upperLeg, footTarget.isLeft); - LowerLegConfigurationInspector(ref footTarget.lowerLeg, footTarget.isLeft); - FootConfigurationInspector(ref footTarget.foot, footTarget.isLeft); - ToesConfigurationInspector(ref footTarget.toes, footTarget.isLeft); - - EditorGUI.indentLevel--; - } - } - - private void UpdateBones(FootTarget target) { - if (target.humanoid.avatarRig == null) - return; - - UpdateUpperLegBones(target.upperLeg); - UpdateLowerLegBones(target.lowerLeg); - UpdateFootBones(target.foot); - UpdateToesBones(target.toes); - } - -#region UpperLeg - //private string upperLegXname; - //private SerializedProperty upperLegMinX; - //private SerializedProperty upperLegMaxX; - - //private string upperLegYname; - //private SerializedProperty upperLegMinY; - //private SerializedProperty upperLegMaxY; - - //private string upperLegZname; - //private SerializedProperty upperLegMinZ; - //private SerializedProperty upperLegMaxZ; - - private void InitUpperLegConfiguration(FootTarget.TargetedUpperLegBone upperLeg) { - //if (upperLeg.bone.transform == null) - // return; - - //upperLegXname = upperLeg.bone.transform.name + "X"; - //upperLegMinX = serializedObject.FindProperty("upperLeg.bone.minAngles.x"); - //upperLegMaxX = serializedObject.FindProperty("upperLeg.bone.maxAngles.x"); - - //upperLegYname = upperLeg.bone.transform.name + "Y"; - //upperLegMinY = serializedObject.FindProperty("upperLeg.bone.minAngles.y"); - //upperLegMaxY = serializedObject.FindProperty("upperLeg.bone.maxAngles.y"); - - //upperLegZname = upperLeg.bone.transform.name + "Z"; - //upperLegMinZ = serializedObject.FindProperty("upperLeg.bone.minAngles.z"); - //upperLegMaxZ = serializedObject.FindProperty("upperLeg.bone.maxAngles.z"); - } - - private void UpperLegConfigurationInspector(ref FootTarget.TargetedUpperLegBone upperLeg, bool isLeft) { - if (upperLeg.bone.transform != null) - GUI.SetNextControlName(upperLeg.bone.transform.name + "00"); - upperLeg.bone.transform = (Transform)EditorGUILayout.ObjectField("Upper Leg Bone", upperLeg.bone.transform, typeof(Transform), true); - if (upperLeg.bone.transform != null) { - EditorGUI.indentLevel++; - - upperLeg.bone.jointLimitations = EditorGUILayout.Toggle("Joint Limitations", upperLeg.bone.jointLimitations); - if (upperLeg.bone.jointLimitations) { - upperLeg.bone.maxAngle = EditorGUILayout.Slider("Max Angle", upperLeg.bone.maxAngle, 0, 180); - } - - //EditorGUILayout.BeginHorizontal(); - //upperLeg.bone.maxAngle = EditorGUILayout.Slider("Max Angle", upperLeg.bone.maxAngle, 0, 180); - //if (GUILayout.Button("R", GUILayout.Width(20))) { - // upperLeg.bone.maxAngle = FootTarget.maxUpperLegAngle; - //} - //EditorGUILayout.EndHorizontal(); - - //if (isLeft) { - // Target_Editor.BoneAngleInspector(upperLegMinX, upperLegMaxX, FootTarget.minLeftUpperLegAngles.x, FootTarget.maxLeftUpperLegAngles.x, upperLegXname, "X Limits"); - // Target_Editor.BoneAngleInspector(upperLegMinY, upperLegMaxY, FootTarget.minLeftUpperLegAngles.y, FootTarget.maxLeftUpperLegAngles.y, upperLegYname, "Y Limits"); - // Target_Editor.BoneAngleInspector(upperLegMinZ, upperLegMaxZ, FootTarget.minLeftUpperLegAngles.z, FootTarget.maxLeftUpperLegAngles.z, upperLegZname, "Z Limits"); - //} else { - // Target_Editor.BoneAngleInspector(upperLegMinX, upperLegMaxX, FootTarget.minRightUpperLegAngles.x, FootTarget.maxRightUpperLegAngles.x, upperLegXname, "X Limits"); - // Target_Editor.BoneAngleInspector(upperLegMinY, upperLegMaxY, FootTarget.minRightUpperLegAngles.y, FootTarget.maxRightUpperLegAngles.y, upperLegYname, "Y Limits"); - // Target_Editor.BoneAngleInspector(upperLegMinZ, upperLegMaxZ, FootTarget.minRightUpperLegAngles.z, FootTarget.maxRightUpperLegAngles.z, upperLegZname, "Z Limits"); - //} - EditorGUI.indentLevel--; - } - } - - private void UpdateUpperLegBones(FootTarget.TargetedUpperLegBone upperLeg) { - //if (upperLeg.bone.transform == null) - // return; - - //upperLeg.bone.minAngles.x = upperLegMinX.floatValue; - //upperLeg.bone.maxAngles.x = upperLegMaxX.floatValue; - - //upperLeg.bone.minAngles.y = upperLegMinY.floatValue; - //upperLeg.bone.maxAngles.y = upperLegMaxY.floatValue; - - //upperLeg.bone.minAngles.z = upperLegMinZ.floatValue; - //upperLeg.bone.maxAngles.z = upperLegMaxZ.floatValue; - } - -#endregion - -#region LowerLeg - //private string lowerLegYname; - //private SerializedProperty lowerLegMinX; - //private SerializedProperty lowerLegMaxX; - - private void InitLowerLegConfiguration(FootTarget.TargetedLowerLegBone lowerLeg) { - //if (lowerLeg.bone.transform == null) - // return; - - //lowerLegYname = lowerLeg.bone.transform.name + "X"; - //lowerLegMinX = serializedObject.FindProperty("lowerLeg.bone.minAngles.x"); - //lowerLegMaxX = serializedObject.FindProperty("lowerLeg.bone.maxAngles.x"); - } - - private void LowerLegConfigurationInspector(ref FootTarget.TargetedLowerLegBone lowerLeg, bool isLeft) { - if (lowerLeg.bone.transform != null) - GUI.SetNextControlName(lowerLeg.bone.transform.name + "00"); - lowerLeg.bone.transform = (Transform)EditorGUILayout.ObjectField("Lower Leg Bone", lowerLeg.bone.transform, typeof(Transform), true); - if (lowerLeg.bone.transform != null) { - EditorGUI.indentLevel++; - - lowerLeg.bone.jointLimitations = EditorGUILayout.Toggle("Joint Limitations", lowerLeg.bone.jointLimitations); - if (lowerLeg.bone.jointLimitations) { - lowerLeg.bone.maxAngle = EditorGUILayout.Slider("Max Angle", lowerLeg.bone.maxAngle, 0, 180); - } - - //EditorGUILayout.BeginHorizontal(); - //lowerLeg.bone.maxAngle = EditorGUILayout.Slider("Max Angle", lowerLeg.bone.maxAngle, 0, 180); - //if (GUILayout.Button("R", GUILayout.Width(20))) { - // lowerLeg.bone.maxAngle = FootTarget.maxLowerLegAngle; - //} - //EditorGUILayout.EndHorizontal(); - - //if (isLeft) - // Target_Editor.BoneAngleInspector(lowerLegMinX, lowerLegMaxX, FootTarget.minLeftLowerLegAngles.x, FootTarget.maxLeftLowerLegAngles.x, lowerLegYname, "X Limits"); - //else - // Target_Editor.BoneAngleInspector(lowerLegMinX, lowerLegMaxX, FootTarget.minRightLowerLegAngles.x, FootTarget.maxRightLowerLegAngles.x, lowerLegYname, "X Limits"); - EditorGUI.indentLevel--; - } - } - - private void UpdateLowerLegBones(FootTarget.TargetedLowerLegBone lowerLeg) { - //if (lowerLeg.bone.transform == null) - // return; - - //lowerLeg.bone.minAngles.x = lowerLegMinX.floatValue; - //lowerLeg.bone.maxAngles.x = lowerLegMaxX.floatValue; - } -#endregion - -#region Foot - //private string footXname; - //private SerializedProperty footMinX; - //private SerializedProperty footMaxX; - - //private string footZname; - //private SerializedProperty footMinZ; - //private SerializedProperty footMaxZ; - - private void InitFootConfiguration(FootTarget.TargetedFootBone foot) { - //if (foot.bone.transform == null) - // return; - - //footXname = foot.bone.transform.name + "X"; - //footMinX = serializedObject.FindProperty("foot.bone.minAngles.x"); - //footMaxX = serializedObject.FindProperty("foot.bone.maxAngles.x"); - - //footZname = foot.bone.transform.name + "Z"; - //footMinZ = serializedObject.FindProperty("foot.bone.minAngles.z"); - //footMaxZ = serializedObject.FindProperty("foot.bone.maxAngles.z"); - } - - private void FootConfigurationInspector(ref FootTarget.TargetedFootBone foot, bool isLeft) { - if (foot.bone.transform != null) - GUI.SetNextControlName(foot.bone.transform.name + "00"); - foot.bone.transform = (Transform)EditorGUILayout.ObjectField("Foot Bone", foot.bone.transform, typeof(Transform), true); - if (foot.bone.transform != null) { - EditorGUI.indentLevel++; - - foot.bone.jointLimitations = EditorGUILayout.Toggle("Joint Limitations", foot.bone.jointLimitations); - if (foot.bone.jointLimitations) { - foot.bone.maxAngle = EditorGUILayout.Slider("Max Angle", foot.bone.maxAngle, 0, 180); - } - - //EditorGUILayout.BeginHorizontal(); - //foot.bone.maxAngle = EditorGUILayout.Slider("Max Angle", foot.bone.maxAngle, 0, 180); - //if (GUILayout.Button("R", GUILayout.Width(20))) { - // foot.bone.maxAngle = FootTarget.maxFootAngle; - //} - //EditorGUILayout.EndHorizontal(); - - //if (isLeft) { - // Target_Editor.BoneAngleInspector(footMinX, footMaxX, FootTarget.minLeftFootAngles.x, FootTarget.maxLeftFootAngles.x, footXname, "X Limits"); - // Target_Editor.BoneAngleInspector(footMinZ, footMaxZ, FootTarget.minLeftFootAngles.z, FootTarget.maxLeftFootAngles.z, footZname, "Z Limits"); - //} else { - // Target_Editor.BoneAngleInspector(footMinX, footMaxX, FootTarget.minRightFootAngles.x, FootTarget.maxRightFootAngles.x, footXname, "X Limits"); - // Target_Editor.BoneAngleInspector(footMinZ, footMaxZ, FootTarget.minRightFootAngles.z, FootTarget.maxRightFootAngles.z, footZname, "Z Limtis"); - //} - EditorGUI.indentLevel--; - } - } - - private void UpdateFootBones(FootTarget.TargetedFootBone foot) { - //if (foot.bone.transform == null) - // return; - - //foot.bone.minAngles.x = footMinX.floatValue; - //foot.bone.maxAngles.x = footMaxX.floatValue; - - //foot.bone.minAngles.z = footMinZ.floatValue; - //foot.bone.maxAngles.z = footMaxZ.floatValue; - } -#endregion - -#region Toes - //private string toesXname; - //private SerializedProperty toesMinX; - //private SerializedProperty toesMaxX; - - private void InitToesConfiguration(FootTarget.TargetedToesBone toes) { - //if (toes.bone.transform == null) - // return; - - //toesXname = toes.bone.transform.name + "X"; - //toesMinX = serializedObject.FindProperty("toes.bone.minAngles.x"); - //toesMaxX = serializedObject.FindProperty("toes.bone.maxAngles.x"); - } - - private void ToesConfigurationInspector(ref FootTarget.TargetedToesBone toes, bool isLeft) { - if (toes.bone.transform != null) - GUI.SetNextControlName(toes.bone.transform.name + "00"); - toes.bone.transform = (Transform)EditorGUILayout.ObjectField("Toes Bone", toes.bone.transform, typeof(Transform), true); - if (toes.bone.transform != null) { - EditorGUI.indentLevel++; - - toes.bone.jointLimitations = EditorGUILayout.Toggle("Joint Limitations", toes.bone.jointLimitations); - if (toes.bone.jointLimitations) { - toes.bone.maxAngle = EditorGUILayout.Slider("Max Angle", toes.bone.maxAngle, 0, 180); - } - - //EditorGUILayout.BeginHorizontal(); - //toes.bone.maxAngle = EditorGUILayout.Slider("Max Angle", toes.bone.maxAngle, 0, 180); - //if (GUILayout.Button("R", GUILayout.Width(20))) { - // toes.bone.maxAngle = FootTarget.maxToesAngle; - //} - //EditorGUILayout.EndHorizontal(); - - //if (isLeft) - // Target_Editor.BoneAngleInspector(toesMinX, toesMaxX, FootTarget.minLeftToesAngles.x, FootTarget.maxLeftToesAngles.x, toesXname, "X Limits"); - //else - // Target_Editor.BoneAngleInspector(toesMinX, toesMaxX, FootTarget.minRightToesAngles.x, FootTarget.maxRightToesAngles.x, toesXname, "X Limits"); - EditorGUI.indentLevel--; - } - } - - private void UpdateToesBones(FootTarget.TargetedToesBone toes) { - //if (toes.bone.transform == null) - // return; - - //toes.bone.minAngles.x = toesMinX.floatValue; - //toes.bone.maxAngles.x = toesMaxX.floatValue; - } - -#endregion -#endregion - -#region Settings - private SerializedProperty rotationSpeedLimitationProp; - private SerializedProperty slidePreventionProp; - - private void InitSettings() { - rotationSpeedLimitationProp = serializedObject.FindProperty("rotationSpeedLimitation"); - slidePreventionProp = serializedObject.FindProperty("slidePrevention"); - } - - private static bool showSettings; - private void SettingsInspector(FootTarget footTarget) { - showSettings = EditorGUILayout.Foldout(showSettings, "Settings", true); - if (showSettings) { - EditorGUI.indentLevel++; - //footTarget.jointLimitations = EditorGUILayout.Toggle("Joint Limitations", footTarget.jointLimitations); - bool showRealObjects = EditorGUILayout.Toggle("Show Real Objects", footTarget.showRealObjects); - if (showRealObjects != footTarget.showRealObjects) { - footTarget.ShowControllers(showRealObjects); - footTarget.showRealObjects = showRealObjects; - } - rotationSpeedLimitationProp.boolValue = EditorGUILayout.Toggle("Rotation Speed Limitation", rotationSpeedLimitationProp.boolValue); - slidePreventionProp.boolValue = EditorGUILayout.Toggle("Slide Prevention", slidePreventionProp.boolValue); - - EditorGUI.indentLevel--; - } - } -#endregion - -#region Events - - protected SerializedProperty groundEventProp; - - protected virtual void InitEvents() { - groundEventProp = serializedObject.FindProperty("groundEvent"); - } - - protected int selectedEventSource = -1; - protected int selectedEvent; - - protected bool showEvents; - protected virtual void EventsInspector() { - showEvents = EditorGUILayout.Foldout(showEvents, "Events", true); - if (showEvents) { - EditorGUI.indentLevel++; - - GameObjectEvent_Editor.EventInspector(groundEventProp, footTarget.groundEvent, ref selectedEventSource, ref selectedEvent); - - //EditorGUILayout.BeginHorizontal(); - - ////Labels - //EditorGUILayout.BeginVertical(GUILayout.MinWidth(110)); - - //GUILayout.Space(3); - //EditorGUILayout.LabelField("Ground", GUILayout.Width(110)); - - //EditorGUILayout.EndVertical(); - - //// Buttons - //string[] buttonTexts = new string[1]; - //buttonTexts[0] = Event.GetInputButtonLabel(footTarget.groundEvent.gameObjectEvent); - - //int oldFontSize = GUI.skin.button.fontSize; - //GUI.skin.button.fontSize = 9; - //selectedEventSource = GUILayout.SelectionGrid(selectedEventSource, buttonTexts, 1); - //GUI.skin.button.fontSize = oldFontSize; - - //EditorGUILayout.EndHorizontal(); - - //// Details - //GUIStyle style = new GUIStyle(GUI.skin.label) { - // fontStyle = FontStyle.Bold - //}; - //EditorGUILayout.LabelField("Details", style, GUILayout.ExpandWidth(true)); - - //EditorGUI.indentLevel++; - //EventDetails(selectedEventSource); - //EditorGUI.indentLevel--; - - EditorGUI.indentLevel--; - } - } - - //protected void EventDetails(int selectedInputEvent) { - // switch (selectedInputEvent) { - // case 0: - // GameObjectEvent_Editor.DetailsInspector(groundEventProp, "Ground"); - // break; - // } - //} - -#endregion - -#endregion - -#region Scene - - public void OnSceneGUI() { - if (footTarget == null || humanoid == null) - return; - if (Application.isPlaying) - return; - - if (humanoid.pose != null) { - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - else { - humanoid.pose.Show(humanoid); - footTarget.CopyRigToTarget(); - } - } - - // update the target rig from the current foot target - footTarget.CopyTargetToRig(); - // update the avatar bones from the target rig - humanoid.UpdateMovements(); - // match the target rig with the new avatar pose - humanoid.MatchTargetsToAvatar(); - // and update all target to match the target rig - humanoid.CopyRigToTargets(); - - // Update the sensors to match the updated targets - humanoid.UpdateSensorsFromTargets(); - } - -#endregion - - public abstract class TargetProps { - public SerializedProperty enabledProp; - public SerializedProperty sensorTransformProp; - public SerializedProperty sensor2TargetPositionProp; - public SerializedProperty sensor2TargetRotationProp; - - public FootTarget footTarget; - public LegSensor sensor; - - public TargetProps(SerializedObject serializedObject, LegSensor _sensor, FootTarget _footTarget, string unitySensorName) { - enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled"); - sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform"); - sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition"); - sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation"); - - footTarget = _footTarget; - sensor = _sensor; - - sensor.Init(footTarget); - } - - public virtual void SetSensor2Target() { - if (sensor.sensorTransform == null) - return; - - sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * footTarget.foot.target.transform.rotation; - sensor2TargetPositionProp.vector3Value = -footTarget.foot.target.transform.InverseTransformPoint(sensor.sensorTransform.position); - } - - public abstract void Inspector(); - } - } -} diff --git a/Editor/HumanoidFree/Targets/FootTarget_Editor.cs.meta b/Editor/HumanoidFree/Targets/FootTarget_Editor.cs.meta deleted file mode 100644 index 81e7c62..0000000 --- a/Editor/HumanoidFree/Targets/FootTarget_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: ac547295e0b7c04409774d0b733e940b -timeCreated: 1462298140 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/HandTarget_Editor.cs b/Editor/HumanoidFree/Targets/HandTarget_Editor.cs deleted file mode 100644 index 3e987a4..0000000 --- a/Editor/HumanoidFree/Targets/HandTarget_Editor.cs +++ /dev/null @@ -1,759 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer.Humanoid { - using Tracking; - - [CanEditMultipleObjects] - [CustomEditor(typeof(HandTarget), true)] - public class HandTarget_Editor : Editor { - private HandTarget handTarget; - private Passer.Humanoid.HumanoidControl humanoid; - - private TargetProps[] allProps; - - #region Enable - - public void OnEnable() { - handTarget = (HandTarget)target; - - if (handTarget.humanoid == null) - handTarget.humanoid = GetHumanoid(handTarget); - humanoid = handTarget.humanoid; - if (humanoid == null) - return; - - humanoid.InitTargets(); - - InitEditors(); - - handTarget.InitTarget(); - - InitConfiguration(handTarget); - InitSettings(); - InitEvents(); - - InitHandPose(handTarget); - - if (!Application.isPlaying) - SetSensor2Target(); - } - - private void InitEditors() { - allProps = new TargetProps[] { -#if pUNITYXR - new UnityXR_Editor.HandTargetProps(serializedObject, handTarget), -#endif -//#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) -// new OpenVR_Editor.HandTargetProps(serializedObject, handTarget), -//#if hVIVETRACKER -// new ViveTracker_Editor.HandTargetProps(serializedObject, handTarget), -//#endif -//#endif -#if hSTEAMVR && UNITY_STANDALONE_WIN - //new SteamVR_Editor.HandTargetProps(serializedObject, handTarget), -#if hVIVETRACKER - //new ViveTracker_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#endif -//#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) -// new Oculus_Editor.HandTargetProps(serializedObject, handTarget), -//#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - new WindowsMR_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hWAVEVR - new WaveVR_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hVRTK - new Vrtk_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hLEAP - new LeapMotion_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hHYDRA - new Hydra_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hKINECT1 - new Kinect1_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hKINECT2 - new Kinect2_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hKINECT4 - new Kinect4_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hORBBEC - new Astra_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hNEURON - new Neuron_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hOPTITRACK - new Optitrack_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hANTILATENCY - new Antilatency_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hHI5 - new Hi5_Editor.HandTargetProps(serializedObject, handTarget), -#endif -#if hCUSTOM - new Custom_Editor.HandTargetProps(serializedObject, handTarget), -#endif - }; - } - - #endregion - - #region Disable - public void OnDisable() { - if (humanoid == null) { - // This target is not connected to a humanoid, so we delete it - DestroyImmediate(handTarget, true); - return; - } - - if (!Application.isPlaying) { - SetSensor2Target(); - } - - handTarget.poseMixer.Cleanup(); - if (!Application.isPlaying) - handTarget.poseMixer.ShowPose(humanoid, handTarget.isLeft ? Side.Left : Side.Right); - handTarget.UpdateMovements(humanoid); - } - - private void SetSensor2Target() { - foreach (TargetProps props in allProps) - props.SetSensor2Target(); - } - - #endregion - - #region Inspector - - public override void OnInspectorGUI() { - if (handTarget == null || humanoid == null) - return; - - serializedObject.Update(); - - ControllerInspectors(handTarget); - if (humanoid != null) { - SubTargetsInspector(handTarget); - ConfigurationInspector(handTarget); - serializedObject.ApplyModifiedProperties(); - HandPoseInspector(handTarget); - serializedObject.Update(); - } - SettingsInspector(handTarget); - - TouchedObjectInspector(handTarget); - GrabbedObjectInspector(handTarget); - - EventsInspector(); - - InteractionPointerButton(handTarget); - - serializedObject.ApplyModifiedProperties(); - //serializedObject.Update(); - //serializedObject.ApplyModifiedProperties(); - } - - public static HandTarget Inspector(HandTarget handTarget, string name) { - if (handTarget == null) - return handTarget; - - EditorGUILayout.BeginHorizontal(); - Transform defaultTargetTransform = handTarget.GetDefaultTarget(handTarget.humanoid); - Transform targetTransform = handTarget.transform ?? defaultTargetTransform; - - GUIContent text = new GUIContent( - name, - "The transform controlling the " + name - ); - targetTransform = (Transform)EditorGUILayout.ObjectField(text, targetTransform, typeof(Transform), true); - - if (!Application.isPlaying) { - if (targetTransform == defaultTargetTransform && GUILayout.Button("Show", GUILayout.MaxWidth(60))) { - // Call static method CreateTarget on target - handTarget = (HandTarget)handTarget.GetType().GetMethod("CreateTarget").Invoke(null, new object[] { handTarget }); - } - else if (targetTransform != handTarget.transform) { - handTarget = (HandTarget)handTarget.GetType().GetMethod("SetTarget").Invoke(null, new object[] { handTarget.humanoid, targetTransform, handTarget.isLeft }); - } - } - EditorGUILayout.EndHorizontal(); - return handTarget; - } - - public static HumanoidControl GetHumanoid(HumanoidTarget target) { - HumanoidControl foundHumanoid = target.transform.GetComponentInParent(); - if (foundHumanoid != null) - return foundHumanoid; - - HumanoidControl[] humanoids = GameObject.FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) - if (humanoids[i].leftHandTarget.transform == target.transform || - humanoids[i].rightHandTarget.transform == target.transform) - foundHumanoid = humanoids[i]; - - return foundHumanoid; - } - - #region Sensors - - public bool showControllers = true; - private void ControllerInspectors(HandTarget handTarget) { - showControllers = EditorGUILayout.Foldout(showControllers, "Sensors/Controllers", true); - if (showControllers) { - EditorGUI.indentLevel++; - - foreach (TargetProps props in allProps) - props.Inspector(); - - if (humanoid != null && humanoid.animatorEnabled) - handTarget.armAnimator.enabled = EditorGUILayout.ToggleLeft("Procedural animation", handTarget.armAnimator.enabled, GUILayout.MinWidth(80)); - EditorGUI.indentLevel--; - } - } - - #endregion - - #region Morph Targets - - //float thumbCurl = 0; - - - private bool showSubTargets; - private void SubTargetsInspector(HandTarget handTarget) { - showSubTargets = EditorGUILayout.Foldout(showSubTargets, "Sub Targets", true); - if (showSubTargets) { - EditorGUI.indentLevel++; - EditorGUI.BeginDisabledGroup(true); - float thumbCurl = handTarget.fingers.thumb.CalculateCurl(); - EditorGUILayout.Slider("Thumb Curl", thumbCurl, -0.5F, 1); - float indexCurl = handTarget.fingers.index.CalculateCurl(); - EditorGUILayout.Slider("Index Finger Curl", indexCurl, -0.1F, 1); - float middleCurl = handTarget.fingers.middle.CalculateCurl(); - EditorGUILayout.Slider("Middle Finger Curl", middleCurl, -0.1F, 1); - float ringCurl = handTarget.fingers.ring.CalculateCurl(); - EditorGUILayout.Slider("Ring Finger Curl", ringCurl, -0.1F, 1); - float littleCurl = handTarget.fingers.little.CalculateCurl(); - EditorGUILayout.Slider("Little Finger Curl", littleCurl, -0.1F, 1); - EditorGUI.EndDisabledGroup(); - EditorGUI.indentLevel--; - } - } - - #endregion - - #region Configuration - private void InitConfiguration(HandTarget handTarget) { - InitShoulderConfiguration(handTarget.shoulder); - InitUpperArmConfiguration(handTarget.upperArm); - InitForearmConfiguration(handTarget.forearm); - InitHandConfiguration(handTarget.hand); - } - - private bool showConfiguration; - private bool showFingerConfiguration; - private void ConfigurationInspector(HandTarget handTarget) { - //if (!target.jointLimitations) - //return; - - //handTarget.RetrieveBones(); - - showConfiguration = EditorGUILayout.Foldout(showConfiguration, "Configuration", true); - if (showConfiguration) { - EditorGUI.indentLevel++; - ShoulderConfigurationInspector(ref handTarget.shoulder, handTarget.isLeft); - UpperArmConfigurationInspector(ref handTarget.upperArm, handTarget.isLeft); - ForearmConfigurationInspector(ref handTarget.forearm, handTarget.isLeft); - HandConfigurationInspector(ref handTarget.hand, handTarget.isLeft); - showFingerConfiguration = EditorGUILayout.Foldout(showFingerConfiguration, "Fingers", true); - if (showFingerConfiguration) { - EditorGUI.indentLevel++; - FingersConfigurationInspector(handTarget); - EditorGUI.indentLevel--; - } - EditorGUI.indentLevel--; - } - } - - #region Shoulder - private SerializedProperty shoulderArmJointLimitations; - private SerializedProperty shoulderArmLimitationAngle; - - private void InitShoulderConfiguration(HandTarget.TargetedShoulderBone shoulder) { - shoulderArmJointLimitations = serializedObject.FindProperty("shoulder.bone.jointLimitations"); - shoulderArmLimitationAngle = serializedObject.FindProperty("shoulder.bone.maxAngle"); - } - - private void ShoulderConfigurationInspector(ref HandTarget.TargetedShoulderBone shoulder, bool isLeft) { - if (shoulder.bone.transform != null) - GUI.SetNextControlName(shoulder.bone.transform.name + "00"); - shoulder.bone.transform = (Transform)EditorGUILayout.ObjectField("Shoulder Bone", shoulder.bone.transform, typeof(Transform), true); - if (shoulder.bone.transform != null) { - EditorGUI.indentLevel++; - - shoulderArmJointLimitations.boolValue = EditorGUILayout.Toggle("Joint Limitations", shoulder.bone.jointLimitations); - if (shoulder.bone.jointLimitations) { - shoulderArmLimitationAngle.floatValue = EditorGUILayout.Slider("Max Angle", shoulder.bone.maxAngle, 0, 180); - } - EditorGUI.indentLevel--; - } - } - - private void UpdateShoulderBones(HandTarget.TargetedShoulderBone shoulder) { - } - #endregion - - #region UpperArm - private SerializedProperty upperArmJointLimitations; - private SerializedProperty upperArmLimitationAngle; - - private void InitUpperArmConfiguration(HandTarget.TargetedUpperArmBone upperArm) { - upperArmJointLimitations = serializedObject.FindProperty("upperArm.bone.jointLimitations"); - upperArmLimitationAngle = serializedObject.FindProperty("upperArm.bone.maxAngle"); - } - - private void UpperArmConfigurationInspector(ref HandTarget.TargetedUpperArmBone upperArm, bool isLeft) { - if (upperArm.bone.transform != null) - GUI.SetNextControlName(upperArm.bone.transform.name + "00"); - upperArm.bone.transform = (Transform)EditorGUILayout.ObjectField("Upper Arm Bone", upperArm.bone.transform, typeof(Transform), true); - if (upperArm.bone.transform != null) { - EditorGUI.indentLevel++; - - upperArmJointLimitations.boolValue = EditorGUILayout.Toggle("Joint Limitations", upperArm.bone.jointLimitations); - if (upperArm.bone.jointLimitations) { - upperArmLimitationAngle.floatValue = EditorGUILayout.Slider("Max Angle", upperArm.bone.maxAngle, 0, 180); - } - - EditorGUI.indentLevel--; - } - } - - private void UpdateUpperArmBones(HandTarget.TargetedUpperArmBone upperArm) { - } - #endregion - - #region Forearm - private SerializedProperty forearmJointLimitations; - private SerializedProperty forearmLimitationAngle; - - private void InitForearmConfiguration(HandTarget.TargetedForearmBone forearm) { - forearmJointLimitations = serializedObject.FindProperty("forearm.bone.jointLimitations"); - forearmLimitationAngle = serializedObject.FindProperty("forearm.bone.maxAngle"); - } - - private void ForearmConfigurationInspector(ref HandTarget.TargetedForearmBone forearm, bool isLeft) { - if (forearm.bone.transform != null) - GUI.SetNextControlName(forearm.bone.transform.name + "00"); - forearm.bone.transform = (Transform)EditorGUILayout.ObjectField("Forearm Bone", forearm.bone.transform, typeof(Transform), true); - if (forearm.bone.transform != null) { - EditorGUI.indentLevel++; - - forearmJointLimitations.boolValue = EditorGUILayout.Toggle("Joint Limitations", forearm.bone.jointLimitations); - if (forearm.bone.jointLimitations) { - forearmLimitationAngle.floatValue = EditorGUILayout.Slider("Max Angle", forearm.bone.maxAngle, 0, 180); - } - - EditorGUI.indentLevel--; - } - } - - private void UpdateForearmBones(HandTarget.TargetedForearmBone forearm) { - } - #endregion - - #region Hand - private SerializedProperty handJointLimitations; - private SerializedProperty handLimitationAngle; - - private void InitHandConfiguration(HandTarget.TargetedHandBone hand) { - handJointLimitations = serializedObject.FindProperty("hand.bone.jointLimitations"); - handLimitationAngle = serializedObject.FindProperty("hand.bone.maxAngle"); - } - - - private void HandConfigurationInspector(ref HandTarget.TargetedHandBone hand, bool isLeft) { - hand.bone.transform = (Transform)EditorGUILayout.ObjectField("Hand Bone", hand.bone.transform, typeof(Transform), true); - if (hand.bone.transform != null) { - EditorGUI.indentLevel++; - - handJointLimitations.boolValue = EditorGUILayout.Toggle("Joint Limitations", hand.bone.jointLimitations); - if (hand.bone.jointLimitations) { - handLimitationAngle.floatValue = EditorGUILayout.Slider("Max Angle", hand.bone.maxAngle, 0, 180); - } - - EditorGUI.indentLevel--; - } - } - #endregion - - #region Fingers - SerializedProperty proximalMinX; - SerializedProperty proximalMaxX; - private void InitFingerConfiguration(FingersTarget fingers) { - } - - private void FingersConfigurationInspector(HandTarget handTarget) { - FingerConfigurationInspector(handTarget, handTarget.fingers.thumb, 0, "Proximal Thumb Bone"); - FingerConfigurationInspector(handTarget, handTarget.fingers.index, 1, "Proximal Index Bone"); - FingerConfigurationInspector(handTarget, handTarget.fingers.middle, 2, "Proximal Middle Bone"); - FingerConfigurationInspector(handTarget, handTarget.fingers.ring, 3, "Proximal Ring Bone"); - FingerConfigurationInspector(handTarget, handTarget.fingers.little, 4, "Proximal Little Bone"); - } - - private void FingerConfigurationInspector(HandTarget handTarget, FingersTarget.TargetedFinger digit, int fingerIndex, string label) { - Transform proximalBone = (Transform)EditorGUILayout.ObjectField(label, digit.proximal.bone.transform, typeof(Transform), true); - if (proximalBone == null || proximalBone != digit.proximal.bone.transform) { - if (proximalBone == null) - proximalBone = FingersTarget.GetFingerBone(handTarget, (Finger)fingerIndex, Humanoid.Tracking.FingerBones.Proximal); - if (proximalBone != null && proximalBone.childCount == 1) { - digit.intermediate.bone.transform = proximalBone.GetChild(0); - if (digit.intermediate.bone.transform != null && digit.intermediate.bone.transform.childCount == 1) - digit.distal.bone.transform = digit.intermediate.bone.transform.GetChild(0); - else - digit.distal.bone.transform = null; - } - else - digit.intermediate.bone.transform = null; - } - digit.proximal.bone.transform = proximalBone; - } - #endregion - - - #endregion - - #region Settings - - private SerializedProperty physicsProp; - private SerializedProperty rotationSpeedLimitationProp; - private SerializedProperty touchInteractionProp; - - private void InitSettings() { - // Cannot use serializedPropery because showRealObjects is a getter/setter - //showRealObjectsProp = serializedObject.FindProperty("showRealObjects"); - - physicsProp = serializedObject.FindProperty("physics"); - rotationSpeedLimitationProp = serializedObject.FindProperty("rotationSpeedLimitation"); - touchInteractionProp = serializedObject.FindProperty("touchInteraction"); - } - - public bool showSettings; - private void SettingsInspector(HandTarget handTarget) { - showSettings = EditorGUILayout.Foldout(showSettings, "Settings", true); - if (showSettings) { - EditorGUI.indentLevel++; - - // Cannot use serializedPropery because showRealObjects is a getter/setter - bool showRealObjects = EditorGUILayout.Toggle("Show Real Objects", handTarget.showRealObjects); - if (showRealObjects != handTarget.showRealObjects) { - handTarget.showRealObjects = showRealObjects; - handTarget.ShowSensors(showRealObjects, true); - } - - rotationSpeedLimitationProp.boolValue = EditorGUILayout.Toggle("Rotation Speed Limitation", rotationSpeedLimitationProp.boolValue); - handTarget.rotationSpeedLimitation = rotationSpeedLimitationProp.boolValue; - - touchInteractionProp.boolValue = EditorGUILayout.Toggle("Touch Interaction", touchInteractionProp.boolValue); - handTarget.touchInteraction = touchInteractionProp.boolValue; - - physicsProp.boolValue = EditorGUILayout.Toggle("Physics", physicsProp.boolValue); - handTarget.physics = physicsProp.boolValue; - if (handTarget.humanoid.physics) { - handTarget.strength = EditorGUILayout.FloatField("Strength", handTarget.strength); - } - - EditorGUI.indentLevel--; - } - } - - #endregion - - #region HandPose - - public static BonePose selectedBone = null; - private string[] poseNames; - - private void InitHandPose(HandTarget handTarget) { - } - - private bool showHandPoses = false; - private void HandPoseInspector(HandTarget handTarget) { - EditorGUILayout.BeginHorizontal(); - showHandPoses = EditorGUILayout.Foldout(showHandPoses, "Hand Pose", true); - - GetPoseNames(); - EditorGUILayout.BeginHorizontal(GUILayout.Width(300)); - - if (handTarget.poseMixer.poseMode == PoseMixer.PoseMode.Set) { - handTarget.poseMixer.poseMode = (PoseMixer.PoseMode)EditorGUILayout.EnumPopup(handTarget.poseMixer.poseMode, GUILayout.Width(100)); - int poseIx = EditorGUILayout.Popup(handTarget.poseMixer.currentPoseIx, poseNames); - if (poseIx != handTarget.poseMixer.currentPoseIx) { - handTarget.poseMixer.currentPoseIx = poseIx; - handTarget.poseMixer.SetPoseValue(poseIx); - } - } - else if (Application.isPlaying) { - handTarget.poseMixer.poseMode = (PoseMixer.PoseMode)EditorGUILayout.EnumPopup(handTarget.poseMixer.poseMode, GUILayout.Width(100)); - EditorGUILayout.ObjectField(handTarget.poseMixer.detectedPose, typeof(Pose), true); - } - else - handTarget.poseMixer.poseMode = (PoseMixer.PoseMode)EditorGUILayout.EnumPopup(handTarget.poseMixer.poseMode, GUILayout.MinWidth(100)); - - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.EndHorizontal(); - if (showHandPoses) { - EditorGUI.indentLevel++; - Pose_Editor.PoseMixerInspector(handTarget.poseMixer, humanoid, handTarget.side); - EditorGUI.indentLevel--; - } - - if (!Application.isPlaying) { - handTarget.poseMixer.ShowPose(humanoid, handTarget.isLeft ? Side.Left : Side.Right); - handTarget.UpdateMovements(humanoid); - SceneView.RepaintAll(); - } - } - - private void GetPoseNames() { - poseNames = new string[handTarget.poseMixer.mixedPoses.Count];//.Length]; - for (int i = 0; i < poseNames.Length; i++) { - if (handTarget.poseMixer.mixedPoses[i].pose == null) - poseNames[i] = ""; - else - poseNames[i] = handTarget.poseMixer.mixedPoses[i].pose.name; - } - - } - - #endregion - - #region Other - - private void TouchedObjectInspector(HandTarget handTarget) { - handTarget.touchedObject = (GameObject)EditorGUILayout.ObjectField("Touched Object", handTarget.touchedObject, typeof(GameObject), true); - } - - private void GrabbedObjectInspector(HandTarget handTarget) { - SerializedProperty grabbedObjectProp = serializedObject.FindProperty("grabbedObject"); - if (Application.isPlaying) { - EditorGUI.BeginDisabledGroup(true); - EditorGUILayout.ObjectField("Grabbed Object", grabbedObjectProp.objectReferenceValue, typeof(GameObject), false); - EditorGUI.EndDisabledGroup(); - } - else { - SerializedProperty grabbedPrefabProp = serializedObject.FindProperty("grabbedPrefab"); - GameObject grabbedPrefab = (GameObject)EditorGUILayout.ObjectField("Grabbed Prefab", grabbedPrefabProp.objectReferenceValue, typeof(GameObject), false); - EditorGUI.BeginDisabledGroup(true); - EditorGUILayout.ObjectField("Grabbed Object", grabbedObjectProp.objectReferenceValue, typeof(GameObject), false); - EditorGUI.EndDisabledGroup(); - - if (grabbedPrefab != grabbedPrefabProp.objectReferenceValue) { - if (grabbedPrefab != null) - GrabPrefab(handTarget, grabbedObjectProp, grabbedPrefab); - else { - LetGoObject(handTarget, grabbedObjectProp); - } - } - serializedObject.Update(); - grabbedPrefabProp.objectReferenceValue = grabbedPrefab; - } - } - - private void GrabPrefab(HandTarget handTarget, SerializedProperty grabbedObjectProp, GameObject prefab) { - if (grabbedObjectProp.objectReferenceValue != null) - LetGoObject(handTarget, grabbedObjectProp); - - GameObject obj = Instantiate(prefab, handTarget.transform.position, handTarget.transform.rotation); - - //HandInteraction.NetworkedGrab(handTarget, obj, false); - handTarget.Grab(obj, false); - if (handTarget.grabbedObject == null) - Debug.LogWarning("Could not grab object"); - else { - grabbedObjectProp.objectReferenceValue = obj; - Handle handle = handTarget.grabbedHandle; - if (handle == null) { - Handle.Create(obj, handTarget); - } - } - } - - private void LetGoObject(HandTarget handTarget, SerializedProperty grabbedObjectProp) { - GameObject grabbedObject = (GameObject)grabbedObjectProp.objectReferenceValue; - handTarget.LetGo(); - DestroyImmediate(grabbedObject, true); - grabbedObjectProp.objectReferenceValue = null; - } - - #endregion - - #region Events - - protected SerializedProperty touchEventProp; - protected SerializedProperty grabEventProp; - protected SerializedProperty poseEventProp; - - protected virtual void InitEvents() { - touchEventProp = serializedObject.FindProperty("touchEvent"); - grabEventProp = serializedObject.FindProperty("grabEvent"); - poseEventProp = serializedObject.FindProperty("poseEvent"); - } - - protected int selectedEvent = -1; - protected int selectedSubEvent; - - protected bool showEvents; - protected virtual void EventsInspector() { - showEvents = EditorGUILayout.Foldout(showEvents, "Events", true); - if (showEvents) { - EditorGUI.indentLevel++; - - IntEvent_Editor.EventInspector(poseEventProp, handTarget.poseEvent, ref selectedEvent, ref selectedSubEvent); - GameObjectEvent_Editor.EventInspector(touchEventProp, handTarget.touchEvent, ref selectedEvent, ref selectedSubEvent); - GameObjectEvent_Editor.EventInspector(grabEventProp, handTarget.grabEvent, ref selectedEvent, ref selectedSubEvent); - - EditorGUI.indentLevel--; - } - } - - #endregion - - #region Buttons - - private void InteractionPointerButton(HandTarget handTarget) { - InteractionPointer interactionPointer = handTarget.transform.GetComponentInChildren(); - if (interactionPointer != null) - return; - - GUILayout.BeginHorizontal(); - if (GUILayout.Button("Add Interaction Pointer")) - AddInteractionPointer(); - if (GUILayout.Button("Add Teleporter")) - AddTeleporter(); - GUILayout.EndHorizontal(); - } - - private void AddInteractionPointer() { - InteractionPointer pointer = InteractionPointer.Add(handTarget.transform, InteractionPointer.PointerType.Ray); - if (handTarget.isLeft) { - pointer.transform.localPosition = new Vector3(-0.21F, -0.02F, 0.01F); - pointer.transform.localRotation = Quaternion.Euler(-180, 90, 180); - } - else { - pointer.transform.localPosition = new Vector3(0.21F, -0.02F, 0.01F); - pointer.transform.localRotation = Quaternion.Euler(-180, -90, -180); - } - pointer.active = false; - - ControllerInput controllerInput = humanoid.GetComponent(); - if (controllerInput != null) { - controllerInput.SetEventHandler(handTarget.isLeft, ControllerInput.SideButton.Button1, pointer.Activation); - - controllerInput.SetEventHandler(handTarget.isLeft, ControllerInput.SideButton.Trigger1, pointer.Click); - } - } - - private void AddTeleporter() { - Teleporter teleporter = Teleporter.Add(handTarget.transform); - if (handTarget.isLeft) { - teleporter.transform.localPosition = new Vector3(-0.21F, -0.02F, 0.01F); - teleporter.transform.localRotation = Quaternion.Euler(-180, 90, 180); - } - else { - teleporter.transform.localPosition = new Vector3(0.21F, -0.02F, 0.01F); - teleporter.transform.localRotation = Quaternion.Euler(-180, -90, -180); - } - - ControllerInput controllerInput = humanoid.GetComponent(); - if (controllerInput != null) { - //ControllerEventHandlers button1Input = controllerInput.GetInputEvent(handTarget.isLeft, ControllerInput.SideButton.Button1); - //ControllerEvent_Editor.SetBoolMethod(controllerInput.gameObject, button1Input, EventHandler.Type.OnChange, teleporter.Activation); - //ControllerEvent_Editor.SetEventHandlerBool(button1Input, EventHandler.Type.OnChange, teleporter, "Activation"); - controllerInput.SetEventHandler(handTarget.isLeft, ControllerInput.SideButton.Button1, teleporter.Activation); - - //ControllerEventHandlers trigger1Input = controllerInput.GetInputEvent(handTarget.isLeft, ControllerInput.SideButton.Trigger1); - //ControllerEvent_Editor.SetBoolMethod(controllerInput.gameObject, trigger1Input, EventHandler.Type.OnChange, teleporter.Click); - //ControllerEvent_Editor.SetEventHandlerBool(trigger1Input, EventHandler.Type.OnChange, teleporter, "Click"); - controllerInput.SetEventHandler(handTarget.isLeft, ControllerInput.SideButton.Trigger1, teleporter.Click); - } - } - - #endregion - - #endregion - - #region Scene - - protected void OnSceneGUI() { - HandTarget handTarget = (HandTarget)target; - if (humanoid == null) - return; - - if (Application.isPlaying) - return; - - Pose_Editor.UpdateScene(humanoid, handTarget.fingers, handTarget.poseMixer, ref selectedBone, handTarget.isLeft ? Side.Left : Side.Right); - - handTarget.poseMixer.ShowPose(humanoid, handTarget.side); - if (humanoid.pose != null) { - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - else { - humanoid.pose.Show(humanoid); - handTarget.CopyRigToTarget(); - } - } - - // update the target rig from the current hand target - handTarget.CopyTargetToRig(); - // update the avatar bones from the target rig - humanoid.UpdateMovements(); - // match the target rig with the new avatar pose - humanoid.MatchTargetsToAvatar(); - // and update all targets to match the target rig - humanoid.CopyRigToTargets(); - - // Update the sensors to match the updated targets - humanoid.UpdateSensorsFromTargets(); - } - - #endregion - - public abstract class TargetProps { - public SerializedProperty enabledProp; - public SerializedProperty sensorTransformProp; - public SerializedProperty sensor2TargetPositionProp; - public SerializedProperty sensor2TargetRotationProp; - - public HandTarget handTarget; - public Humanoid.ArmSensor sensor; - - public TargetProps(SerializedObject serializedObject, Humanoid.ArmSensor _sensor, HandTarget _handTarget, string unitySensorName) { - enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled"); - sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform"); - sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition"); - sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation"); - - handTarget = _handTarget; - sensor = _sensor; - - sensor.Init(handTarget); - } - - public virtual void SetSensor2Target() { - sensor.SetSensor2Target(); - } - - public abstract void Inspector(); - } - } -} diff --git a/Editor/HumanoidFree/Targets/HandTarget_Editor.cs.meta b/Editor/HumanoidFree/Targets/HandTarget_Editor.cs.meta deleted file mode 100644 index 96e4342..0000000 --- a/Editor/HumanoidFree/Targets/HandTarget_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 955a1901726a9264580f54fc555a0378 -timeCreated: 1459000174 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs b/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs deleted file mode 100644 index 8867cbf..0000000 --- a/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs +++ /dev/null @@ -1,542 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer.Humanoid { - - [CanEditMultipleObjects] - [CustomEditor(typeof(HeadTarget), true)] - public class HeadTarget_Editor : Editor { - private HeadTarget headTarget; - private HumanoidControl humanoid; - - private TargetProps[] allProps; - - #region Enable - - public void OnEnable() { - headTarget = (HeadTarget)target; - - if (headTarget.humanoid == null) - headTarget.humanoid = GetHumanoid(headTarget); - humanoid = headTarget.humanoid; - - InitEditors(); - - headTarget.InitSensors(); - InitSensors(); -#if hFACE - FaceTarget_Editor.OnEnable(serializedObject, headTarget); -#endif - } - - private void InitEditors() { - allProps = new TargetProps[] { -#if pUNITYXR - new UnityXR_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hSTEAMVR && UNITY_STANDALONE_WIN -#if hVIVETRACKER - //new ViveTracker_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - new WindowsMR_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hWAVEVR - new WaveVR_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hVRTK - new Vrtk_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hREALSENSE - new Realsense_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hKINECT1 - new Kinect1_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hKINECT2 - new Kinect2_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hKINECT4 - new Kinect4_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hORBBEC - new Astra_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hOPTITRACK - new Optitrack_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hNEURON - new Neuron_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hTOBII - new Tobii_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hARKIT - new ArKit_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hDLIB - new Dlib_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hPUPIL - new Tracking.Pupil.Pupil_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hANTILATENCY - new Antilatency_Editor.HeadTargetProps(serializedObject, headTarget), -#endif -#if hCUSTOM - new Custom_Editor.HeadTargetProps(serializedObject, headTarget), -#endif - }; - } - - #endregion - - #region Disable - public void OnDisable() { - if (humanoid == null) { - // This target is not connected to a humanoid, so we delete it - DestroyImmediate(headTarget, true); - return; - } - - if (!Application.isPlaying) { - SetSensor2Target(); - } - -#if hFACE - FaceTarget_Editor.OnDisable(serializedObject, headTarget); -#endif - } - - private void SetSensor2Target() { - if (allProps != null) - foreach (TargetProps props in allProps) - props.SetSensor2Target(); - } - #endregion - - #region Inspector - - public override void OnInspectorGUI() { - if (headTarget == null || humanoid == null) - return; - - serializedObject.Update(); - - SensorInspectors(headTarget); - if (headTarget.humanoid != null) { -#if hFACE - SerializedProperty faceTargetProp = serializedObject.FindProperty("face"); - FaceTarget_Editor.OnInspectorGUI(faceTargetProp, headTarget); -#endif - ConfigurationInspector(headTarget); - -#if hFACE - FaceTarget_Editor.ExpressionsInspector(headTarget.face); -#endif - } - - PoseInspector(); - SettingsInspector(headTarget); -#if hFACE - FaceTarget_Editor.FocusObjectInspector(headTarget.face); -#endif - EventsInspector(); - GazeInteractionButton(headTarget); - - serializedObject.ApplyModifiedProperties(); - } - - private static HumanoidControl GetHumanoid(HumanoidTarget target) { - HumanoidControl foundHumanoid = target.transform.GetComponentInParent(); - if (foundHumanoid != null) - return foundHumanoid; - - HumanoidControl[] humanoids = GameObject.FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) - if (humanoids[i].headTarget.transform == target.transform) - foundHumanoid = humanoids[i]; - - return foundHumanoid; - } - - #region Sensors -#if hFACE - private SerializedProperty microphoneEnabledProp; -#endif - private void InitSensors() { -#if hFACE - microphoneEnabledProp = serializedObject.FindProperty("microphone.enabled"); -#endif - } - - private bool showControllers = true; - private void SensorInspectors(HeadTarget headTarget) { - showControllers = EditorGUILayout.Foldout(showControllers, "Controllers", true); - if (showControllers) { - EditorGUI.indentLevel++; - FirstPersonCameraInspector(headTarget); - ScreenInspector(headTarget); - - foreach (TargetProps props in allProps) - props.Inspector(); - - AnimatorInspector(headTarget); - EditorGUI.indentLevel--; - } - } - - private void FirstPersonCameraInspector(HeadTarget headTarget) { -#if pUNITYXR || hLEGACYXR - if (headTarget.unityXR == null) - return; -#endif - - -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - EditorGUI.BeginDisabledGroup(headTarget.humanoid.openVR.enabled && headTarget.viveTracker.enabled); -#endif -#if pUNITYXR || hLEGACYXR - bool wasEnabled - = headTarget.unityXR.enabled; -#endif - - EditorGUILayout.BeginHorizontal(); - EditorGUI.BeginChangeCheck(); -#if hLEGACYXR -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - if (headTarget.humanoid.openVR.enabled && headTarget.viveTracker.enabled) - headTarget.unity.enabled = false; -#endif -#endif -#pragma warning disable 219 - bool enabled -#if pUNITYXR || hLEGACYXR - = EditorGUILayout.ToggleLeft(headTarget.unityXR.name, headTarget.unityXR.enabled, GUILayout.MinWidth(80)); - if (EditorGUI.EndChangeCheck()) { - Undo.RecordObject(headTarget, enabled ? "Enabled " : "Disabled " + headTarget.unityXR.name); - headTarget.unityXR.enabled = enabled; - } -#else - = false; -#endif -#pragma warning restore 219 - EditorGUILayout.EndHorizontal(); - -#if hFACE - if (enabled) { // && microphoneEnabledProp != null) { - EditorGUI.indentLevel++; - microphoneEnabledProp.boolValue = EditorGUILayout.ToggleLeft("Microphone", microphoneEnabledProp.boolValue); - EditorGUI.indentLevel--; - } -#endif - -#if pUNITYXR - //if (!Application.isPlaying) { - // //Passer.Tracking.UnityXRHmd.CheckCamera(headTarget); - // if (!wasEnabled && headTarget.unity.enabled) { - // Passer.Tracking.UnityXRHmd.AddCamera(headTarget.unity); - // } - // else if (wasEnabled && !headTarget.unity.enabled) { - // Passer.Tracking.UnityXRHmd.RemoveCamera(headTarget.unity); - // } - //} -#endif - -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - EditorGUI.EndDisabledGroup(); -#endif - - } - - private void ScreenInspector(HeadTarget headTarget) { - if (headTarget.virtual3d && headTarget.humanoid.showRealObjects) { - if (headTarget.screenTransform == null) - CreateScreen(headTarget); - headTarget.screenTransform.gameObject.SetActive(true); - } - else if (headTarget.screenTransform != null) - headTarget.screenTransform.gameObject.SetActive(false); - } - - private void CreateScreen(HeadTarget headTarget) { - GameObject realWorld = HumanoidControl.GetRealWorld(headTarget.humanoid.transform); - - headTarget.screenTransform = realWorld.transform.Find("Screen"); - if (headTarget.screenTransform == null) { - GameObject screenObj = GameObject.CreatePrimitive(PrimitiveType.Cube); //new GameObject("Screen"); - screenObj.name = "Screen"; - headTarget.screenTransform = screenObj.transform; - headTarget.screenTransform.parent = realWorld.transform; - headTarget.screenTransform.localPosition = headTarget.transform.position + headTarget.transform.forward; - headTarget.screenTransform.rotation = headTarget.transform.rotation * Quaternion.AngleAxis(180, Vector3.up); - headTarget.screenTransform.localScale = new Vector3(0.476F, 0.2677F, 0.02F); // 21.5 inch 16:9 screen size - } - } - - private void AnimatorInspector(HeadTarget headTarget) { - if (headTarget.humanoid == null) - return; - - SerializedProperty animatorProp = serializedObject.FindProperty(nameof(HeadTarget.headAnimator)+ "." +nameof(HeadTarget.headAnimator.enabled)); - if (animatorProp != null && headTarget.humanoid.animatorEnabled) { - - GUIContent text = new GUIContent( - "Procedural Animation", - "Controls the head when no tracking is active" - ); - animatorProp.boolValue = EditorGUILayout.ToggleLeft("Procedural Animation", animatorProp.boolValue, GUILayout.MinWidth(80)); - if (headTarget.headAnimator.enabled) { - EditorGUI.indentLevel++; -#if hFACE - headTarget.face.behaviour.enabled = EditorGUILayout.ToggleLeft("Eye Behaviour", headTarget.face.behaviour.enabled); -#endif - EditorGUI.indentLevel--; - } - } - - } - - #endregion - - #region Configuration - private bool showConfiguration; - private bool showLeftEye; - private bool showRightEye; - private void ConfigurationInspector(HeadTarget headTarget) { - if (headTarget.humanoid == null) - return; - - showConfiguration = EditorGUILayout.Foldout(showConfiguration, "Configuration", true); - if (showConfiguration) { - EditorGUI.indentLevel++; -#if hFACE - SerializedProperty faceProp = serializedObject.FindProperty("face"); - FaceTarget_Editor.ConfigurationInspector(faceProp, headTarget.face); -#endif - HeadConfigurationInspector(ref headTarget.head); - NeckConfigurationInspector(ref headTarget.neck); - - EditorGUI.indentLevel--; - } - } - - private void HeadConfigurationInspector(ref HeadTarget.TargetedHeadBone head) { - head.bone.transform = (Transform)EditorGUILayout.ObjectField("Head", head.bone.transform, typeof(Transform), true); - if (head.bone.transform != null) { - EditorGUI.indentLevel++; - - EditorGUILayout.BeginHorizontal(); - head.bone.maxAngle = EditorGUILayout.Slider("Max Angle", head.bone.maxAngle, 0, 180); - if (GUILayout.Button("R", GUILayout.Width(20))) { - head.bone.maxAngle = HeadTarget.maxHeadAngle; - } - EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel--; - } - } - - private void NeckConfigurationInspector(ref HeadTarget.TargetedNeckBone neck) { - neck.bone.transform = (Transform)EditorGUILayout.ObjectField("Neck", neck.bone.transform, typeof(Transform), true); - if (neck.bone.transform != null) { - EditorGUI.indentLevel++; - - EditorGUILayout.BeginHorizontal(); - neck.bone.maxAngle = EditorGUILayout.Slider("Max Angle", neck.bone.maxAngle, 0, 180); - if (GUILayout.Button("R", GUILayout.Width(20))) { - neck.bone.maxAngle = HeadTarget.maxNeckAngle; - } - EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel--; - } - } - - #endregion - - #region Pose - private void PoseInspector() { - if (!Application.isPlaying && humanoid.pose != null && humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - } - #endregion - - #region Settings - - private bool showSettings; - private void SettingsInspector(HeadTarget headTarget) { - showSettings = EditorGUILayout.Foldout(showSettings, "Settings", true); - if (showSettings) { - EditorGUI.indentLevel++; - CollisionFaderInspector(); - EditorGUI.indentLevel--; - } - } - - private void CollisionFaderInspector() { - SerializedProperty collisionFaderProp = serializedObject.FindProperty("collisionFader"); - collisionFaderProp.boolValue = EditorGUILayout.Toggle("Collision Fader", collisionFaderProp.boolValue); - } - #endregion - - #region Events - - protected int selectedEventSource = -1; - protected int selectedEvent; - - protected bool showEvents; - protected virtual void EventsInspector() { - showEvents = EditorGUILayout.Foldout(showEvents, "Events", true); - if (showEvents) { - EditorGUI.indentLevel++; - - TrackingEventInspector(); - AudioEventInspector(); -#if hFACE - FocusEventInspector(); - BlinkEventInspector(); -#endif - InsideColliderInspector(); - EditorGUI.indentLevel--; - } - } - - protected void TrackingEventInspector() { - SerializedProperty trackingEventProp = serializedObject.FindProperty("trackingEvent"); - BoolEvent_Editor.EventInspector(trackingEventProp, headTarget.trackingEvent, ref selectedEventSource, ref selectedEvent); - } - - protected void AudioEventInspector() { - SerializedProperty audioEventProp = serializedObject.FindProperty("audioEvent"); - FloatEvent_Editor.EventInspector(audioEventProp, headTarget.audioEvent, ref selectedEventSource, ref selectedEvent); - } -#if hFACE - protected void FocusEventInspector() { - SerializedProperty focusEventProp = serializedObject.FindProperty("focusEvent"); - GameObjectEvent_Editor.EventInspector(focusEventProp, headTarget.focusEvent, ref selectedEventSource, ref selectedEvent); - } - - protected void BlinkEventInspector() { - SerializedProperty blinkEventProp = serializedObject.FindProperty("blinkEvent"); - BoolEvent_Editor.EventInspector(blinkEventProp, headTarget.blinkEvent, ref selectedEventSource, ref selectedEvent); - } -#endif - - protected void InsideColliderInspector() { - SerializedProperty insideColliderEventProp = serializedObject.FindProperty("insideColliderEvent"); - BoolEvent_Editor.EventInspector(insideColliderEventProp, headTarget.insideColliderEvent, ref selectedEventSource, ref selectedEvent); - } - - // protected void EventDetails(int selectedEvent) { - // switch (selectedEvent) { - // case 0: - // FloatEvent_Editor.DetailsInspector(headTarget.audioEvent, audioEventProp, "Audio"); - // break; - //#if hFACE - // case 1: - // GameObjectEvent_Editor.DetailsInspector(focusEventProp, "Focus"); - // break; - // case 2: - // BoolEvent_Editor.DetailsInspector(blinkEventProp, "Blink"); - // break; - //#endif - // } - // } - - #endregion - - #region Buttons - private void GazeInteractionButton(HeadTarget headTarget) { - InteractionPointer interactionPointer = headTarget.transform.GetComponentInChildren(); - if (interactionPointer != null) - return; - - GUILayout.BeginHorizontal(); - if (GUILayout.Button("Add Interaction Pointer")) - AddInteractionPointer(); - if (GUILayout.Button("Add Teleporter")) - AddTeleporter(); - GUILayout.EndHorizontal(); - } - - private void AddInteractionPointer() { - } - - private void AddTeleporter() { - } - #endregion - - #endregion - - #region Scene - - public void OnSceneGUI() { - if (Application.isPlaying) - return; - if (headTarget == null || headTarget.humanoid == null) - return; - -#if hFACE - FaceTarget_Editor.UpdateScene(headTarget.face); -#endif - if (humanoid.pose != null) { - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - else { - humanoid.pose.Show(humanoid); - headTarget.CopyRigToTarget(); - } - } - - // update the target rig from the current head target - headTarget.CopyTargetToRig(); - // update the avatar bones from the target rig - humanoid.UpdateMovements(); - // match the target rig with the new avatar pose - humanoid.MatchTargetsToAvatar(); - // and update all targets to match the target rig - humanoid.CopyRigToTargets(); - - // Update the sensors to match the updated targets - humanoid.UpdateSensorsFromTargets(); - - } - - #endregion - - public abstract class TargetProps { - public SerializedProperty enabledProp; - public SerializedProperty sensorTransformProp; - public SerializedProperty sensor2TargetPositionProp; - public SerializedProperty sensor2TargetRotationProp; - - public HeadTarget headTarget; - public HeadSensor sensor; - - public TargetProps(SerializedObject serializedObject, HeadSensor _sensor, HeadTarget _headTarget, string unitySensorName) { - enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled"); - sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform"); - sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition"); - sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation"); - - headTarget = _headTarget; - sensor = _sensor; - - sensor.Init(headTarget); - } - - public virtual void SetSensor2Target() { - if (sensor.sensorTransform == null) - return; - - sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * headTarget.head.target.transform.rotation; - sensor2TargetPositionProp.vector3Value = -headTarget.head.target.transform.InverseTransformPoint(sensor.sensorTransform.position); - } - - public abstract void Inspector(); - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs.meta b/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs.meta deleted file mode 100644 index 0a73553..0000000 --- a/Editor/HumanoidFree/Targets/HeadTarget_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 798d81711f6d98440ba31bbffdcf72f6 -timeCreated: 1455896583 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs b/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs deleted file mode 100644 index 29f1111..0000000 --- a/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs +++ /dev/null @@ -1,330 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer { - using Humanoid; - - [CanEditMultipleObjects] - [CustomEditor(typeof(HipsTarget), true)] - public class HipsTarget_Editor : Editor { - private HipsTarget hipsTarget; - private HumanoidControl humanoid; - - private TargetProps[] allProps; - - #region Enable - - public void OnEnable() { - hipsTarget = (HipsTarget)target; - - if (hipsTarget.humanoid == null) - hipsTarget.humanoid = GetHumanoid(hipsTarget); - humanoid = hipsTarget.humanoid; - if (humanoid == null) - return; - - InitEditors(); - - hipsTarget.InitSensors(); - InitConfiguration(hipsTarget); - InitSettings(); - } - - private void InitEditors() { - allProps = new TargetProps[] { -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - new ViveTracker_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hKINECT1 - new Kinect1_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hKINECT2 - new Kinect2_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hKINECT4 - new Kinect4_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hORBBEC - new Astra_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hNEURON - new Neuron_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hOPTITRACK - new Optitrack_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif -#if hCUSTOM - new Custom_Editor.HipsTargetProps(serializedObject, hipsTarget), -#endif - }; - } - - #endregion - - #region Disable - public void OnDisable() { - if (humanoid == null) { - // This target is not connected to a humanoid, so we delete it - DestroyImmediate(hipsTarget, true); - return; - } - - if (!Application.isPlaying) { - SetSensor2Target(); - } - } - - private void SetSensor2Target() { - foreach (TargetProps props in allProps) - props.SetSensor2Target(); - } - #endregion - - #region Inspector - - public override void OnInspectorGUI() { - if (hipsTarget == null || humanoid == null) - return; - - serializedObject.Update(); - - SensorInspectors(hipsTarget); - ConfigurationInspector(hipsTarget); - SettingsInspector(); - - serializedObject.ApplyModifiedProperties(); - } - - public static HumanoidControl GetHumanoid(HumanoidTarget target) { - HumanoidControl foundHumanoid = target.transform.GetComponentInParent(); - if (foundHumanoid != null) - return foundHumanoid; - - HumanoidControl[] humanoids = GameObject.FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) - if (humanoids[i].hipsTarget.transform == target.transform) - foundHumanoid = humanoids[i]; - - return foundHumanoid; - } - - #region Sensors - - public bool showSensors = true; - private void SensorInspectors(HipsTarget hipsTarget) { - showSensors = EditorGUILayout.Foldout(showSensors, "Controllers", true); - if (showSensors) { - EditorGUI.indentLevel++; - - foreach (TargetProps props in allProps) - props.Inspector(); - - AnimatorInspector(hipsTarget); - - EditorGUI.indentLevel--; - } - } - - private void AnimatorInspector(HipsTarget hipsTarget) { - SerializedProperty animatorProp = serializedObject.FindProperty(nameof(HipsTarget.torsoAnimator) + "." + nameof(HipsTarget.torsoAnimator.enabled)); - if (animatorProp == null || hipsTarget.humanoid == null || !hipsTarget.humanoid.animatorEnabled) - return; - - GUIContent text = new GUIContent( - "Procedural Animation", - "Controls the hips when no tracking is active" - ); - animatorProp.boolValue = EditorGUILayout.ToggleLeft(text, animatorProp.boolValue, GUILayout.MinWidth(80)); - } - - #endregion - - #region Configuration - private void InitConfiguration(HipsTarget target) { - if (target.humanoid.avatarRig == null) - return; - - InitChestConfiguration(target.chest); - InitSpineConfiguration(target.spine); - InitHipsConfiguration(target.hips); - } - - private bool showConfiguration; - private void ConfigurationInspector(HipsTarget hipsTarget) { - hipsTarget.RetrieveBones(); - - showConfiguration = EditorGUILayout.Foldout(showConfiguration, "Configuration", true); - if (showConfiguration) { - EditorGUI.indentLevel++; - - ChestConfigurationInspector(ref hipsTarget.chest); - SpineConfigurationInspector(ref hipsTarget.spine); - HipsConfigurationInspector(ref hipsTarget.hips); - - EditorGUI.indentLevel--; - } - } - - private void UpdateBones(HipsTarget target) { - if (target.humanoid.avatarRig == null) - return; - - UpdateHipsBones(target.hips); - UpdateSpineBones(target.spine); - UpdateChestBones(target.chest); - } - - #region Chest - private void InitChestConfiguration(HipsTarget.TargetedChestBone upperLeg) { - } - - private void ChestConfigurationInspector(ref HipsTarget.TargetedChestBone chest) { - chest.bone.transform = (Transform)EditorGUILayout.ObjectField("Chest", chest.bone.transform, typeof(Transform), true); - if (chest.bone.transform != null) { - EditorGUI.indentLevel++; - - EditorGUILayout.BeginHorizontal(); - chest.bone.maxAngle = EditorGUILayout.Slider("Max Angle", chest.bone.maxAngle, 0, 180); - if (GUILayout.Button("R", GUILayout.Width(20))) { - chest.bone.maxAngle = HipsTarget.maxChestAngle; - } - EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel--; - } - } - - private void UpdateChestBones(HipsTarget.TargetedChestBone chest) { - } - - #endregion - - #region Spine - private void InitSpineConfiguration(HipsTarget.TargetedSpineBone spine) { - } - - private void SpineConfigurationInspector(ref HipsTarget.TargetedSpineBone spine) { - spine.bone.transform = (Transform)EditorGUILayout.ObjectField("Spine", spine.bone.transform, typeof(Transform), true); - if (spine.bone.transform != null) { - EditorGUI.indentLevel++; - - EditorGUILayout.BeginHorizontal(); - spine.bone.maxAngle = EditorGUILayout.Slider("Max Angle", spine.bone.maxAngle, 0, 180); - if (GUILayout.Button("R", GUILayout.Width(20))) { - spine.bone.maxAngle = HipsTarget.maxSpineAngle; - } - EditorGUILayout.EndHorizontal(); - - EditorGUI.indentLevel--; - } - } - - private void UpdateSpineBones(HipsTarget.TargetedSpineBone spine) { - } - #endregion - - #region Hips - private void InitHipsConfiguration(HipsTarget.TargetedHipsBone hips) { - } - - private void HipsConfigurationInspector(ref HipsTarget.TargetedHipsBone hips) { - hips.bone.transform = (Transform)EditorGUILayout.ObjectField("Hips", hips.bone.transform, typeof(Transform), true); - } - - private void UpdateHipsBones(HipsTarget.TargetedHipsBone hips) { - } - #endregion - - #endregion - - #region Settings - - protected SerializedProperty bodyRotationProp; - - protected void InitSettings() { - SerializedProperty animatorProp = serializedObject.FindProperty("torsoAnimator"); - bodyRotationProp = animatorProp.FindPropertyRelative("bodyRotation"); - } - - public bool showSettings; - protected void SettingsInspector() { - showSettings = EditorGUILayout.Foldout(showSettings, "Settings", true); - if (showSettings) { - EditorGUI.indentLevel++; - - bodyRotationProp.intValue = (int)(TorsoAnimator.BodyRotation)EditorGUILayout.EnumPopup("Body Rotation", (TorsoAnimator.BodyRotation)bodyRotationProp.intValue); - - EditorGUI.indentLevel--; - } - } - - #endregion - - #endregion - - #region Scene - - public void OnSceneGUI() { - if (Application.isPlaying) - return; - if (hipsTarget == null || humanoid == null) - return; - - if (humanoid.pose != null) { - if (humanoid.editPose) - humanoid.pose.UpdatePose(humanoid); - else { - humanoid.pose.Show(humanoid); - hipsTarget.CopyRigToTarget(); - } - } - - // update the target rig from the current hips target - hipsTarget.CopyTargetToRig(); - // update the avatar bones to match the target rig - humanoid.UpdateMovements(); - // match the target rig with the new avatar pose - humanoid.MatchTargetsToAvatar(); - // and update all targets to match the target rig - humanoid.CopyRigToTargets(); - - // Update the sensors to match the updated targets - humanoid.UpdateSensorsFromTargets(); - } - - #endregion - - public abstract class TargetProps { - public SerializedProperty enabledProp; - public SerializedProperty sensorTransformProp; - public SerializedProperty sensor2TargetPositionProp; - public SerializedProperty sensor2TargetRotationProp; - - public HipsTarget hipsTarget; - public TorsoSensor sensor; - - public TargetProps(SerializedObject serializedObject, TorsoSensor _sensor, HipsTarget _hipsTarget, string unitySensorName) { - enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled"); - sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform"); - sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition"); - sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation"); - - hipsTarget = _hipsTarget; - sensor = _sensor; - - sensor.Init(hipsTarget); - } - - public virtual void SetSensor2Target() { - if (sensor.sensorTransform == null) - return; - - sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * hipsTarget.hips.target.transform.rotation; - sensor2TargetPositionProp.vector3Value = -hipsTarget.hips.target.transform.InverseTransformPoint(sensor.sensorTransform.position); - } - - public abstract void Inspector(); - } - } -} diff --git a/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs.meta b/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs.meta deleted file mode 100644 index 30b2edf..0000000 --- a/Editor/HumanoidFree/Targets/HipsTarget_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 6fb1134ab171b144884db2408eb884fb -timeCreated: 1462300882 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs b/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs deleted file mode 100644 index e58bcae..0000000 --- a/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs +++ /dev/null @@ -1,389 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer.Humanoid { - - public static class HumanoidTarget_Editor { - public static Target Inspector(Target target, string name) { - if (target == null) - return target; - - EditorGUILayout.BeginHorizontal(); - Transform defaultTargetTransform = null; // target.GetDefaultTarget(target.humanoid); - Transform targetTransform = target.transform ?? defaultTargetTransform; - targetTransform = (Transform)EditorGUILayout.ObjectField(name, targetTransform, typeof(Transform), true); - - if (!Application.isPlaying) { - if (targetTransform == defaultTargetTransform && GUILayout.Button("Show", GUILayout.MaxWidth(60))) { - // Call static method CreateTarget on target - target = (HumanoidTarget)target.GetType().GetMethod("CreateTarget").Invoke(null, new object[] { target }); - //} else if (targetTransform != target.transform) { - // target = (HumanoidTarget)target.GetType().GetMethod("SetTarget").Invoke(null, new object[] { target.humanoid, targetTransform }); - } - } - EditorGUILayout.EndHorizontal(); - return target; - } - - public static HumanoidTarget Inspector(HumanoidTarget target, string name) { - if (target == null) - return target; - - EditorGUILayout.BeginHorizontal(); - Transform defaultTargetTransform = target.GetDefaultTarget(target.humanoid); - Transform targetTransform = target.transform ?? defaultTargetTransform; - - GUIContent text = new GUIContent( - name, - "The transform controlling the " + name - ); - targetTransform = (Transform)EditorGUILayout.ObjectField(text, targetTransform, typeof(Transform), true); - - if (!Application.isPlaying) { - if (targetTransform == defaultTargetTransform && GUILayout.Button("Show", GUILayout.MaxWidth(60))) { - // Call static method CreateTarget on target - target = (HumanoidTarget)target.GetType().GetMethod("CreateTarget").Invoke(null, new object[] { target }); - } else if (targetTransform != target.transform) { - target = (HumanoidTarget)target.GetType().GetMethod("SetTarget").Invoke(null, new object[] { target.humanoid, targetTransform }); - } - } - EditorGUILayout.EndHorizontal(); - return target; - } - - public static bool ControllerInspector(HumanoidSensor controller) { - EditorGUILayout.BeginHorizontal(); - - controller.enabled = EditorGUILayout.ToggleLeft(controller.name, controller.enabled, GUILayout.MinWidth(80)); - if (controller.enabled && Application.isPlaying) - EditorGUILayout.EnumPopup(controller.status); - - EditorGUILayout.EndHorizontal(); - return controller.enabled; - } - - public static bool ControllerInspector(HumanoidSensor controller, Target target) { - EditorGUILayout.BeginHorizontal(); - EditorGUI.BeginChangeCheck(); - GUIContent text = new GUIContent( - controller.name, - "Activate " + controller.name + " support for this humanoid" - ); - - bool enabled = EditorGUILayout.ToggleLeft(text, controller.enabled, GUILayout.MinWidth(80)); - if (EditorGUI.EndChangeCheck()) { - Undo.RecordObject(target, enabled ? "Enabled " : "Disabled " + controller.name); - controller.enabled = enabled; - } - if (Application.isPlaying && enabled) - EditorGUILayout.EnumPopup(controller.status); - - EditorGUILayout.EndHorizontal(); - return enabled; - } - - - - public static void BoneAngleInspector(SerializedProperty minProperty, SerializedProperty maxProperty, float defaultMin, float defaultMax, string boneAxisName, string label) { - float min = minProperty.floatValue; - float max = maxProperty.floatValue; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField(label, GUILayout.MinWidth(70)); - - min = EditorGUILayout.FloatField(min, GUILayout.Width(65)); - GUI.SetNextControlName(boneAxisName + "1"); - EditorGUILayout.MinMaxSlider(ref min, ref max, -180, 180); - GUI.SetNextControlName(boneAxisName + "2"); - max = EditorGUILayout.FloatField(max, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - min = defaultMin; - max = defaultMax; - GUI.FocusControl(boneAxisName + "1"); - } - - EditorGUILayout.EndHorizontal(); - - if (EditorGUI.EndChangeCheck()) { - minProperty.floatValue = min; - maxProperty.floatValue = max; - } - - SceneView.RepaintAll(); - } - - public static void BoneXAngleInspector(HumanoidTarget.TargetedBone bone, float defaultMin, float defaultMax) { - float oldMin = bone.bone.minAngles.x; - float oldMax = bone.bone.maxAngles.x; - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField("X Limits", GUILayout.MinWidth(70)); - - GUI.SetNextControlName(bone.bone.transform.name + "X1"); - bone.bone.minAngles.x = EditorGUILayout.FloatField(bone.bone.minAngles.x, GUILayout.Width(65)); - - EditorGUILayout.MinMaxSlider(ref bone.bone.minAngles.x, ref bone.bone.maxAngles.x, -180, 180); - - GUI.SetNextControlName(bone.bone.transform.name + "X2"); - bone.bone.maxAngles.x = EditorGUILayout.FloatField(bone.bone.maxAngles.x, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - bone.bone.minAngles.x = defaultMin; - bone.bone.maxAngles.x = defaultMax; - GUI.FocusControl(bone.bone.transform.name + "X1"); - } - - EditorGUILayout.EndHorizontal(); - - if (bone.bone.maxAngles.x != oldMax || bone.bone.minAngles.x != oldMin) - SceneView.RepaintAll(); - } - - public static void BoneYAngleInspector(HumanoidTarget.TargetedBone bone, float defaultMin, float defaultMax) { - float oldMin = bone.bone.minAngles.y; - float oldMax = bone.bone.maxAngles.y; - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField("Y Limits", GUILayout.MinWidth(70)); - - GUI.SetNextControlName(bone.bone.transform.name + "Y1"); - bone.bone.minAngles.y = EditorGUILayout.FloatField(bone.bone.minAngles.y, GUILayout.Width(65)); - - EditorGUILayout.MinMaxSlider(ref bone.bone.minAngles.y, ref bone.bone.maxAngles.y, -180, 180); - - GUI.SetNextControlName(bone.bone.transform.name + "Y2"); - bone.bone.maxAngles.y = EditorGUILayout.FloatField(bone.bone.maxAngles.y, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - bone.bone.minAngles.y = defaultMin; - bone.bone.maxAngles.y = defaultMax; - GUI.FocusControl(bone.bone.transform.name + "Y1"); - - } - - EditorGUILayout.EndHorizontal(); - - if (bone.bone.maxAngles.y != oldMax || bone.bone.minAngles.y != oldMin) - SceneView.RepaintAll(); - } - - public static void BoneYAngleInspector(HumanoidTarget.TargetedBone bone, SerializedProperty minProperty, SerializedProperty maxProperty, float defaultMin, float defaultMax) { - float min = minProperty.floatValue; - float max = maxProperty.floatValue; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField("Limits Y", GUILayout.MinWidth(70)); - - min = EditorGUILayout.FloatField(min, GUILayout.Width(65)); - GUI.SetNextControlName(bone.bone.transform.name + "Y1"); - EditorGUILayout.MinMaxSlider(ref min, ref max, -180, 180); - GUI.SetNextControlName(bone.bone.transform.name + "Y2"); - max = EditorGUILayout.FloatField(max, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - min = defaultMin; - max = defaultMax; - GUI.FocusControl(bone.bone.transform.name + "Y1"); - } - - EditorGUILayout.EndHorizontal(); - - if (EditorGUI.EndChangeCheck()) { - minProperty.floatValue = min; - maxProperty.floatValue = max; - SceneView.RepaintAll(); - } - } - - public static void BoneZAngleInspector(HumanoidTarget.TargetedBone bone, float defaultMin, float defaultMax) { - float oldMin = bone.bone.minAngles.z; - float oldMax = bone.bone.maxAngles.z; - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField("Z Limits", GUILayout.MinWidth(70)); - - GUI.SetNextControlName(bone.bone.transform.name + "Z1"); - bone.bone.minAngles.z = EditorGUILayout.FloatField(bone.bone.minAngles.z, GUILayout.Width(65)); - - EditorGUILayout.MinMaxSlider(ref bone.bone.minAngles.z, ref bone.bone.maxAngles.z, -180, 180); - - GUI.SetNextControlName(bone.bone.transform.name + "Z2"); - bone.bone.maxAngles.z = EditorGUILayout.FloatField(bone.bone.maxAngles.z, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - bone.bone.minAngles.z = defaultMin; - bone.bone.maxAngles.z = defaultMax; - GUI.FocusControl(bone.bone.transform.name + "Z1"); - - } - - EditorGUILayout.EndHorizontal(); - - if (bone.bone.maxAngles.y != oldMax || bone.bone.minAngles.y != oldMin) - SceneView.RepaintAll(); - } - - public static void BoneZAngleInspector(HumanoidTarget.TargetedBone bone, SerializedProperty minProperty, SerializedProperty maxProperty, float defaultMin, float defaultMax) { - float min = minProperty.floatValue; - float max = maxProperty.floatValue; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField("Limits Z", GUILayout.MinWidth(70)); - - min = EditorGUILayout.FloatField(min, GUILayout.Width(65)); - GUI.SetNextControlName(bone.bone.transform.name + "Z1"); - EditorGUILayout.MinMaxSlider(ref min, ref max, -180, 180); - GUI.SetNextControlName(bone.bone.transform.name + "Z2"); - max = EditorGUILayout.FloatField(max, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - min = defaultMin; - max = defaultMax; - GUI.FocusControl(bone.bone.transform.name + "Z1"); - } - - EditorGUILayout.EndHorizontal(); - - if (EditorGUI.EndChangeCheck()) { - minProperty.floatValue = min; - maxProperty.floatValue = max; - SceneView.RepaintAll(); - } - } - - //public static void DrawTargetBone(HumanoidTarget.TargetedBone bone) { - // if (bone.target.transform != null) { - // Handles.color = Color.white; - // Handles.DrawLine(bone.target.transform.position, bone.target.transform.position + bone.target.transform.rotation * bone.target.normalDirection * bone.bone.length); - // } - //} - - #region xArcs - public static void DrawXArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle) { - DrawXArcs(position, rotation, minAngle, maxAngle, rotation * Vector3.down); - } - public static void DrawXArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 zeroDirection) { - Vector3 planeNormal = rotation * Vector3.right; - DrawXArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection); - } - public static void DrawXArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 planeNormal, Vector3 zeroDirection) { - DrawArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection, Color.red); - } - #endregion - #region yArcs - public static void DrawYArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle) { - DrawYArcs(position, rotation, minAngle, maxAngle, rotation * Vector3.forward); - } - - public static void DrawYArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 zeroDirection) { - Vector3 planeNormal = rotation * Vector3.up; - DrawYArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection); - } - - public static void DrawYArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 planeNormal, Vector3 zeroDirection) { - DrawArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection, Color.green); - } - #endregion - #region zArcs - public static void DrawZArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle) { - DrawZArcs(position, rotation, minAngle, maxAngle, rotation * Vector3.down); - } - - public static void DrawZArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 zeroDirection) { - Vector3 planeNormal = rotation * Vector3.forward; - DrawZArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection); - } - - public static void DrawZArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 planeNormal, Vector3 zeroDirection) { - DrawArcs(position, rotation, minAngle, maxAngle, planeNormal, zeroDirection, Color.blue); - } - #endregion - - public static void DrawArcs(Vector3 position, Quaternion rotation, float minAngle, float maxAngle, Vector3 planeNormal, Vector3 zeroDirection, Color color) { - color.a = 0.1F; - Handles.color = color; - Handles.DrawSolidArc(position, planeNormal, zeroDirection, minAngle, HandleUtility.GetHandleSize(position)); - Handles.DrawSolidArc(position, planeNormal, zeroDirection, maxAngle, HandleUtility.GetHandleSize(position)); - - color.a = 1; - Handles.color = color; - Handles.DrawWireArc(position, planeNormal, zeroDirection, minAngle, HandleUtility.GetHandleSize(position)); - Handles.DrawWireArc(position, planeNormal, zeroDirection, maxAngle, HandleUtility.GetHandleSize(position)); - - Handles.DrawLine(position, position + zeroDirection * HandleUtility.GetHandleSize(position)); - } - - #region MinMaxSlider - - } - - public class MinMaxSliderAttribute : PropertyAttribute { - public readonly string name; - public readonly float defaultMin; - public readonly float defaultMax; - public readonly float minLimit; - public readonly float maxLimit; - - public MinMaxSliderAttribute(string _name, float _defaultMin, float _defaultMax, float _minLimit, float _maxLimit) { - name = _name; - defaultMin = _defaultMin; - defaultMax = _defaultMax; - minLimit = _minLimit; - maxLimit = _maxLimit; - } - } - - [CustomPropertyDrawer(typeof(MinMaxSliderAttribute))] - class MinMaxSliderDrawer : PropertyDrawer { - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { - if (property.propertyType == SerializedPropertyType.Vector2) { - Vector2 range = property.vector2Value; - float min = range.x; - float max = range.y; - MinMaxSliderAttribute attr = attribute as MinMaxSliderAttribute; - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField(label, GUILayout.MinWidth(70)); - - min = EditorGUILayout.FloatField(min, GUILayout.Width(65)); - GUI.SetNextControlName(attr.name + "1"); - EditorGUI.MinMaxSlider(position, label, ref min, ref max, attr.minLimit, attr.maxLimit); - GUI.SetNextControlName(attr.name + "2"); - max = EditorGUILayout.FloatField(max, GUILayout.Width(65)); - - if (GUILayout.Button("R")) { - min = attr.defaultMin; - max = attr.defaultMax; - GUI.FocusControl(attr.name + "Y1"); - } - - if (EditorGUI.EndChangeCheck()) { - range.x = min; - range.y = max; - property.vector2Value = range; - } - - EditorGUILayout.EndHorizontal(); - } else { - EditorGUI.LabelField(position, label, "Use only with Vector2"); - } - } - } - #endregion -} diff --git a/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs.meta b/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs.meta deleted file mode 100644 index 2a5bc61..0000000 --- a/Editor/HumanoidFree/Targets/HumanoidTarget_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 8e84263607533aa4491faf24bb6dcbe7 -timeCreated: 1485418477 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Targets/Target_Editor.cs b/Editor/HumanoidFree/Targets/Target_Editor.cs deleted file mode 100644 index 1354903..0000000 --- a/Editor/HumanoidFree/Targets/Target_Editor.cs +++ /dev/null @@ -1,29 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer { - - public static class Target_Editor { - public static Target Inspector(Target target, string name) { - if (target == null) - return target; - - EditorGUILayout.BeginHorizontal(); - Transform defaultTargetTransform = null; // target.GetDefaultTarget(target.humanoid); - Transform targetTransform = target.transform ?? defaultTargetTransform; - targetTransform = (Transform)EditorGUILayout.ObjectField(name, targetTransform, typeof(Transform), true); - - if (!Application.isPlaying) { - if (targetTransform == defaultTargetTransform && GUILayout.Button("Show", GUILayout.MaxWidth(60))) { - // Call static method CreateTarget on target - target = (Target)target.GetType().GetMethod("CreateTarget").Invoke(null, new object[] { target }); - //} else if (targetTransform != target.transform) { - // target = (HumanoidTarget)target.GetType().GetMethod("SetTarget").Invoke(null, new object[] { target.humanoid, targetTransform }); - } - } - EditorGUILayout.EndHorizontal(); - return target; - } - } - -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Targets/Target_Editor.cs.meta b/Editor/HumanoidFree/Targets/Target_Editor.cs.meta deleted file mode 100644 index d86205f..0000000 --- a/Editor/HumanoidFree/Targets/Target_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 011af4b4943f20348824525c07b3d646 -timeCreated: 1553075920 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tools.meta b/Editor/HumanoidFree/Tools.meta deleted file mode 100644 index 2a8f58d..0000000 --- a/Editor/HumanoidFree/Tools.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f05b0c1d8cd1ec743976fd9877495eae -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs b/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs deleted file mode 100644 index 916de57..0000000 --- a/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs +++ /dev/null @@ -1,90 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace Passer.Humanoid { - - [CustomEditor(typeof(AvatarManager))] - public class AvatarManager_Editor : Editor { - - public void OnDisable() { - AvatarManager avatarManager = (AvatarManager)target; - Cleanup(avatarManager); - } - - public override void OnInspectorGUI() { - AvatarManager avatarManager = (AvatarManager)target; - - CurrentAvatarInspector(avatarManager); - - if (avatarManager.fpAvatars.Length == 0 || avatarManager.fpAvatars[avatarManager.fpAvatars.Length - 1] != null) - avatarManager.fpAvatars = Extend(avatarManager.fpAvatars, avatarManager.fpAvatars.Length + 1); - if (avatarManager.tpAvatars.Length < avatarManager.fpAvatars.Length) - avatarManager.tpAvatars = Extend(avatarManager.tpAvatars, avatarManager.fpAvatars.Length); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField("#", GUILayout.Width(20)); - EditorGUILayout.LabelField("First Person", GUILayout.MinWidth(100)); -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - EditorGUILayout.LabelField("Third Person", GUILayout.MinWidth(100)); -#endif - EditorGUILayout.EndHorizontal(); - for (int i = 0; i < avatarManager.fpAvatars.Length; i++) - AvatarInspector(avatarManager, i); - - //if (GUILayout.Button("Add Avatar")) -// AddAvatar(avatarManager); - - } - - private void CurrentAvatarInspector(AvatarManager avatarManager) { - int lastAvatarIndex = avatarManager.currentAvatarIndex; - avatarManager.currentAvatarIndex = EditorGUILayout.IntField("Current Avatar Index", avatarManager.currentAvatarIndex); - if (Application.isPlaying && avatarManager.currentAvatarIndex != lastAvatarIndex) - avatarManager.SetAvatar(avatarManager.currentAvatarIndex); - } - - private void AvatarInspector(AvatarManager avatarManager, int i) { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField(i.ToString(), GUILayout.Width(20)); - avatarManager.fpAvatars[i] = (Animator)EditorGUILayout.ObjectField(avatarManager.fpAvatars[i], typeof(Animator), false); -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - avatarManager.tpAvatars[i] = (Animator) EditorGUILayout.ObjectField(avatarManager.tpAvatars[i], typeof(Animator), false); -#endif - EditorGUILayout.EndHorizontal(); - } - - private void AddAvatar(AvatarManager avatarManager) { - avatarManager.fpAvatars = Extend(avatarManager.fpAvatars, avatarManager.fpAvatars.Length + 1); - } - - private Animator[] Extend(Animator[] animators, int n) { - Animator[] newAnimators = new Animator[n]; - - for (int i = 0; i < animators.Length; i++) - newAnimators[i] = animators[i]; - - return newAnimators; - } - - private void Cleanup(AvatarManager avatarManager) { - int nNonNullEntries = 0; - foreach (Animator animator in avatarManager.fpAvatars) { - if (animator != null) - nNonNullEntries++; - } - - if (nNonNullEntries == avatarManager.fpAvatars.Length) - return; - - Animator[] newFpAvatars = new Animator[nNonNullEntries]; - int j = 0; - for (int i = 0; i < avatarManager.fpAvatars.Length; i++) { - if (avatarManager.fpAvatars[i] != null) { - newFpAvatars[j] = avatarManager.fpAvatars[i]; - j++; - } - } - avatarManager.fpAvatars = newFpAvatars; - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs.meta b/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs.meta deleted file mode 100644 index 5656b51..0000000 --- a/Editor/HumanoidFree/Tools/AvatarManager_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 801fa352c79178a4f8fda2d82aa10dc6 -timeCreated: 1513776933 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs b/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs deleted file mode 100644 index bf16699..0000000 --- a/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs +++ /dev/null @@ -1,24 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace Passer.Humanoid { - [CustomEditor(typeof(ColoringInteractionPointer), true)] - public class ColoringInteractionPointer_Editor : InteractionPointer_Editor { - - #region Inspector - - public override void OnInspectorGUI() { - base.OnInspectorGUI(); - - SerializedProperty validMaterialProp = serializedObject.FindProperty("validMaterial"); - SerializedProperty invalidMaterialProp = serializedObject.FindProperty("invalidMaterial"); - - validMaterialProp.objectReferenceValue = EditorGUILayout.ObjectField("Valid Material", validMaterialProp.objectReferenceValue, typeof(Material), false); - invalidMaterialProp.objectReferenceValue = EditorGUILayout.ObjectField("Invalid Material", invalidMaterialProp.objectReferenceValue, typeof(Material), false); - - serializedObject.ApplyModifiedProperties(); - } - - #endregion - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs.meta b/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs.meta deleted file mode 100644 index aad80fb..0000000 --- a/Editor/HumanoidFree/Tools/ColoringInteractionPointer_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: e3b109299c0a20c479411a620f00d9d5 -timeCreated: 1575542779 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs b/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs deleted file mode 100644 index 0c523d5..0000000 --- a/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs +++ /dev/null @@ -1,8 +0,0 @@ -/* -using UnityEditor; - -namespace Passer.Humanoid { - [CustomEditor(typeof(HumanoidInteractionPointer), true)] - public class HumanoidInteractionPointer_Editor : InteractionPointer_Editor { } -} -*/ \ No newline at end of file diff --git a/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs.meta b/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs.meta deleted file mode 100644 index a8f40bf..0000000 --- a/Editor/HumanoidFree/Tools/HumanoidInteractionPointer_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 9aecdda3c9922be46a9d786db6d9f01a -timeCreated: 1520436447 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs b/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs deleted file mode 100644 index 469cca0..0000000 --- a/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs +++ /dev/null @@ -1,6 +0,0 @@ -using UnityEditor; - -namespace Passer.Humanoid { - [CustomEditor(typeof(Telegrabber))] - public class Telegrabber_Editor : InteractionPointer_Editor { } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs.meta b/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs.meta deleted file mode 100644 index f6253e0..0000000 --- a/Editor/HumanoidFree/Tools/Telegrabber_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: c2482999d2a9f744893fb4b0707b7fd2 -timeCreated: 1536833107 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/TrackedRigidbody_Editor.cs b/Editor/HumanoidFree/TrackedRigidbody_Editor.cs deleted file mode 100644 index e945dcb..0000000 --- a/Editor/HumanoidFree/TrackedRigidbody_Editor.cs +++ /dev/null @@ -1,56 +0,0 @@ -using UnityEditor; -using UnityEngine; - -namespace Passer { - using Passer.Tracking; - - [CustomEditor(typeof(TrackedRigidbody))] - public class TrackedRigidbody_Editor : Editor { - - public override void OnInspectorGUI() { - serializedObject.Update(); - - SensorInspector(); - HybridPhysics.PhysicsMode physicsMode = PhysicsModeInspector(); - if (physicsMode != HybridPhysics.PhysicsMode.Kinematic) { - StrengthInspector(); - if (physicsMode == HybridPhysics.PhysicsMode.HybridKinematic) - KinematicMass(); - } - - serializedObject.ApplyModifiedProperties(); - } - - protected virtual void SensorInspector() { - SerializedProperty sensorComponentProp = serializedObject.FindProperty("target"); - Transform sensorTransform = (Transform)sensorComponentProp.objectReferenceValue; - SensorComponent sensorComponent = - sensorTransform != null ? - sensorTransform.GetComponent() : - null; - sensorComponent = (SensorComponent)EditorGUILayout.ObjectField("Sensor", sensorComponent, typeof(SensorComponent), true); - sensorComponentProp.objectReferenceValue = - sensorComponent != null ? - sensorComponent.transform : - null; - } - - protected virtual HybridPhysics.PhysicsMode PhysicsModeInspector() { - SerializedProperty modeProp = serializedObject.FindProperty("mode"); - HybridPhysics.PhysicsMode physicsMode = (HybridPhysics.PhysicsMode)EditorGUILayout.EnumPopup("Physics Mode", (HybridPhysics.PhysicsMode)modeProp.intValue); - modeProp.intValue = (int)physicsMode; - return physicsMode; - } - - protected virtual void StrengthInspector() { - SerializedProperty strengthProp = serializedObject.FindProperty("strength"); - strengthProp.floatValue = EditorGUILayout.FloatField("Strength", strengthProp.floatValue); - } - - protected virtual void KinematicMass() { - SerializedProperty kinematicMassProp = serializedObject.FindProperty("kinematicMass"); - kinematicMassProp.floatValue = EditorGUILayout.FloatField("Kinematic Mass", kinematicMassProp.floatValue); - } - } - -} \ No newline at end of file diff --git a/Editor/HumanoidFree/TrackedRigidbody_Editor.cs.meta b/Editor/HumanoidFree/TrackedRigidbody_Editor.cs.meta deleted file mode 100644 index 6fd0977..0000000 --- a/Editor/HumanoidFree/TrackedRigidbody_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: d5a9507068fe76b4ab0f7e566de2e97c -timeCreated: 1569481259 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/HumanoidFree/Tracker_Editor.cs b/Editor/HumanoidFree/Tracker_Editor.cs deleted file mode 100644 index d6d2f0b..0000000 --- a/Editor/HumanoidFree/Tracker_Editor.cs +++ /dev/null @@ -1,55 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace Passer.Humanoid { - - public class Tracker_Editor : Editor { - public static void Inspector(HumanoidControl humanoid, HumanoidTracker tracker, SerializedProperty enabledProp, string resourceName) { - EditorGUILayout.BeginHorizontal(); - //EditorGUI.BeginChangeCheck(); - bool wasEnabled = enabledProp.boolValue; - enabledProp.boolValue = EditorGUILayout.ToggleLeft(tracker.name, enabledProp.boolValue, GUILayout.MinWidth(80)); - if (Application.isPlaying && enabledProp.boolValue) - EditorGUILayout.EnumPopup(tracker.status); - EditorGUILayout.EndHorizontal(); - - PrefabAssetType prefabType = PrefabUtility.GetPrefabAssetType(humanoid); - if (prefabType != PrefabAssetType.NotAPrefab) - return; - - if (tracker.humanoid == null) - tracker.humanoid = humanoid; - - //if (enabledProp.boolValue && resourceName != null) - // tracker.AddTracker(humanoid, resourceName); - //else if (wasEnabled) { - // RemoveTracker(tracker); - //} - - //tracker.ShowTracker(humanoid.showRealObjects && enabledProp.boolValue); - } - - - public static void Inspector(HumanoidTracker tracker, SerializedProperty enabledProp) { - EditorGUILayout.BeginHorizontal(); - //EditorGUI.BeginChangeCheck(); - enabledProp.boolValue = EditorGUILayout.ToggleLeft(tracker.name, enabledProp.boolValue, GUILayout.MinWidth(80)); - if (Application.isPlaying && enabledProp.boolValue) - EditorGUILayout.EnumPopup(tracker.status); - EditorGUILayout.EndHorizontal(); - } - - protected static void RemoveTracker(HumanoidTracker tracker) { - if (tracker.trackerComponent == null) - return; - DestroyImmediate(tracker.trackerComponent.gameObject, true); - } - - public static Transform RemoveTransform(Transform trackerTransform) { - if (trackerTransform != null) { - DestroyImmediate(trackerTransform.gameObject, true); - } - return null; - } - } -} \ No newline at end of file diff --git a/Editor/HumanoidFree/Tracker_Editor.cs.meta b/Editor/HumanoidFree/Tracker_Editor.cs.meta deleted file mode 100644 index 5eec07b..0000000 --- a/Editor/HumanoidFree/Tracker_Editor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: aa19d5a5a5c589147a017601069e6e26 -timeCreated: 1487856438 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree.meta b/Runtime/HumanoidFree.meta deleted file mode 100644 index 894cf6d..0000000 --- a/Runtime/HumanoidFree.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: bf656e8b8b24a4345804416a6861fb3d -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/DefaultConfiguration.asset b/Runtime/HumanoidFree/DefaultConfiguration.asset deleted file mode 100644 index 35aed9c..0000000 --- a/Runtime/HumanoidFree/DefaultConfiguration.asset +++ /dev/null @@ -1,37 +0,0 @@ -%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: f15f0b7c56552b443a87b2cf84b2083c, type: 3} - m_Name: DefaultConfiguration - m_EditorClassIdentifier: - openVRSupport: 1 - steamVrSupport: 0 - viveTrackerSupport: 0 - oculusSupport: 1 - windowsMRSupport: 1 - vrtkSupport: 1 - neuronSupport: 0 - hi5Support: 0 - realsenseSupport: 0 - leapSupport: 0 - kinect1Support: 0 - kinect2Support: 0 - kinect4Support: 0 - astraSupport: 0 - hydraSupport: 0 - arkitSupport: 0 - tobiiSupport: 0 - optitrackSupport: 0 - pupilSupport: 0 - antilatencySupport: 0 - networkingSupport: 0 - networkingVoiceSupport: 0 - humanoidSceneName: diff --git a/Runtime/HumanoidFree/DefaultConfiguration.asset.meta b/Runtime/HumanoidFree/DefaultConfiguration.asset.meta deleted file mode 100644 index c0a75bc..0000000 --- a/Runtime/HumanoidFree/DefaultConfiguration.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7c620c6539f83ba4a9ef59558546da7f -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/GameControllerInputSettings.zip b/Runtime/HumanoidFree/GameControllerInputSettings.zip deleted file mode 100644 index 126b26c..0000000 Binary files a/Runtime/HumanoidFree/GameControllerInputSettings.zip and /dev/null differ diff --git a/Runtime/HumanoidFree/GameControllerInputSettings.zip.meta b/Runtime/HumanoidFree/GameControllerInputSettings.zip.meta deleted file mode 100644 index 17875b9..0000000 --- a/Runtime/HumanoidFree/GameControllerInputSettings.zip.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ddd35f516c607da4ab4f97b210606169 -timeCreated: 1453468358 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/HumanoidPreferences.cs b/Runtime/HumanoidFree/HumanoidPreferences.cs deleted file mode 100644 index f29e5e4..0000000 --- a/Runtime/HumanoidFree/HumanoidPreferences.cs +++ /dev/null @@ -1,168 +0,0 @@ -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace Passer.Humanoid { - - /// - /// Sets preferences for \ref Humanoid "Humanoid Control" - /// - /// - /// The preferences can be accessed by the Edit->Preferences... menu. - /// - /// \image html HumanoidPreferences.png - /// - /// * SteamVR Support, enables support for SteamVR devices beyound Unity XR (VR, Plus, Pro) - /// * Vive Tracker Support, enables support for Vive Trackers (Plus, Pro) - /// * Leap Motion Support, enables support for Leap Motion (Plus, Pro) - /// * Kinect 1 Support, enables support for Microsoft Kinect 360/Kinect for Windows (Plus, Pro) - /// * Kinect 2 Support, enables support for Microsoft Kinect 2 (Plus, Pro) - /// * Azure Kinect Support, enables support for Azure Kinect (Plus, Pro) - /// * Orbbec Astra Support, enables support for Orbbec Astra (Plus, Pro) - /// * Hydra Support, enables support for Razer Hydra (Pro) - /// * Tobii Support, enables support for Tobii desktop eye tracking (Pro) - /// * Perception Neuron Support, enables support for Perception Neuron (Pro) - /// * OptiTrack Support, enables support for OptiTrack (Pro) - /// * Antilatency Support, enables support for Antilatency (Pro) - /// - /// * The Testing Visitor selects which Visitor Scene will be used when a Site is started in Play mode. - /// - //[System.Serializable] - public class HumanoidPreferences : ScriptableObject { - public static bool help = false; - public const string settingsPath = "Assets/Passer/Humanoid/HumanoidPreferences.asset"; - - public Configuration configuration; - - //internal static HumanoidPreferences GetOrCreateSettings() { - // string humanoidPath = Configuration_Editor.FindHumanoidFolder(); - // humanoidPath = humanoidPath.Substring(0, humanoidPath.Length - 1); // strip last / - // humanoidPath = humanoidPath.Substring(0, humanoidPath.LastIndexOf('/') + 1); // strip Scripts; - // string settingsPath = "Assets" + humanoidPath + "HumanoidPreferences.asset"; - // HumanoidPreferences settings = AssetDatabase.LoadAssetAtPath(settingsPath); - // SerializedObject serializedSettings = new SerializedObject(settings); - // if (settings == null) { - // settings = CreateInstance(); - - // AssetDatabase.CreateAsset(settings, settingsPath); - // } - // if (settings.configuration == null) { - // string configurationString = EditorPrefs.GetString("HumanoidConfigurationKey", "DefaultConfiguration"); - // Configuration configuration = Configuration_Editor.LoadConfiguration(configurationString); - // if (configuration == null) { - // configurationString = "DefaultConfiguration"; - // Configuration_Editor.LoadConfiguration(configurationString); - // if (configuration == null) { - // Debug.Log("Created new Default Configuration"); - // // Create new Default Configuration - // configuration = CreateInstance(); - // string path = "Assets" + humanoidPath + configurationString + ".asset"; - // AssetDatabase.CreateAsset(configuration, path); - // AssetDatabase.SaveAssets(); - // } - // } - // SerializedProperty configurationProp = serializedSettings.FindProperty("configuration"); - // configurationProp.objectReferenceValue = configuration; - // EditorUtility.SetDirty(settings); - // } - // serializedSettings.ApplyModifiedProperties(); - // return (HumanoidPreferences)serializedSettings.targetObject;//settings; - //} - - //internal static SerializedObject GetOrCreateSerializedSettings() { - // string humanoidPath = Configuration_Editor.FindHumanoidFolder(); - // humanoidPath = humanoidPath.Substring(0, humanoidPath.Length - 1); // strip last / - // humanoidPath = humanoidPath.Substring(0, humanoidPath.LastIndexOf('/') + 1); // strip Scripts; - // string settingsPath = "Assets" + humanoidPath + "HumanoidPreferences.asset"; - // HumanoidPreferences settings = AssetDatabase.LoadAssetAtPath(settingsPath); - - // if (settings == null) { - // Debug.Log("Created new Settings"); - // settings = CreateInstance(); - - // AssetDatabase.CreateAsset(settings, settingsPath); - // } - // if (settings.configuration == null) { - // Debug.Log("Settings Configuration is not set"); - // string configurationString = "DefaultConfiguration"; - // Configuration configuration = Configuration_Editor.LoadConfiguration(configurationString); - // if (configuration == null) { - // configurationString = "DefaultConfiguration"; - // Configuration_Editor.LoadConfiguration(configurationString); - // if (configuration == null) { - // Debug.Log("Created new Default Configuration"); - // // Create new Default Configuration - // configuration = CreateInstance(); - // string path = "Assets" + humanoidPath + configurationString + ".asset"; - // AssetDatabase.CreateAsset(configuration, path); - // AssetDatabase.SaveAssets(); - // } - // } - // settings.configuration = configuration; - // } - // SerializedObject serializedSettings = new SerializedObject(settings); - // return serializedSettings; - //} - -#if UNITY_EDITOR - private const string networkingSupportKey = "HumanoidNetworkingSupport"; - public static NetworkingSystems networkingSupport { - get { - NetworkingSystems networkingSupport = (NetworkingSystems)EditorPrefs.GetInt(networkingSupportKey, 0); - return networkingSupport; - } - set { - EditorPrefs.SetInt(networkingSupportKey, (int)value); - } - } - - private const string visitorSceneNameKey = "VisitorSceneName"; - public static string visitorSceneName { - get { - string visitorSceneName = EditorPrefs.GetString(visitorSceneNameKey, ""); - return visitorSceneName; - } - set { - EditorPrefs.SetString(visitorSceneNameKey, value); - } - } -#endif - } - -#if UNITY_EDITOR - static class HumanoidPreferencesIMGUIRegister { - //public static bool reload; - - [SettingsProvider] - public static SettingsProvider CreateHumanoidSettingsProvider() { - var provider = new SettingsProvider("Preferences/HumanoidControlSettings", SettingsScope.User) { - label = "Humanoid Control", - guiHandler = (searchContext) => { - - VisitorSceneInspector(); - - }, - keywords = new HashSet( - new[] { "Humanoid", "Oculus", "SteamVR" } - ) - }; - return provider; - } - - private static string[] visitorNames; - private static bool VisitorSceneInspector() { - string visitorScenePath = HumanoidPreferences.visitorSceneName; - - SceneAsset sceneAsset = AssetDatabase.LoadAssetAtPath(visitorScenePath); - sceneAsset = (SceneAsset) EditorGUILayout.ObjectField("Visitor Scene", sceneAsset, typeof(SceneAsset), false); - visitorScenePath = AssetDatabase.GetAssetPath(sceneAsset); - - bool anyChanged = visitorScenePath != HumanoidPreferences.visitorSceneName; - - HumanoidPreferences.visitorSceneName = visitorScenePath; - - return anyChanged; - } - } -#endif -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/HumanoidPreferences.cs.meta b/Runtime/HumanoidFree/HumanoidPreferences.cs.meta deleted file mode 100644 index 14692be..0000000 --- a/Runtime/HumanoidFree/HumanoidPreferences.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 2a3c0fc4c73d35b419d46a829c66a232 -timeCreated: 1559823791 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries.meta b/Runtime/HumanoidFree/Libraries.meta deleted file mode 100644 index 3c1268f..0000000 --- a/Runtime/HumanoidFree/Libraries.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 1db13c7a2ec237b4caee962814512306 -folderAsset: yes -timeCreated: 1480088539 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core.meta b/Runtime/HumanoidFree/Libraries/Core.meta deleted file mode 100644 index 9993b66..0000000 --- a/Runtime/HumanoidFree/Libraries/Core.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 686cf920b09d4d645a864e3d18018632 -folderAsset: yes -timeCreated: 1480088552 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Angle.cs b/Runtime/HumanoidFree/Libraries/Core/Angle.cs deleted file mode 100644 index 33491bd..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Angle.cs +++ /dev/null @@ -1,42 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid.Tracking { - public class Angle { - // Normalize an angle to the range -180 < angle <= 180 - public static float Normalize(float angle) { - while (angle <= -180) angle += 360; - while (angle > 180) angle -= 360; - return angle; - } - - // clamp the angle between the given min and max values - // Angles are normalized - public static float Clamp(float angle, float min, float max) { - float normalizedAngle = Normalize(angle); - return Mathf.Clamp(normalizedAngle, min, max); - } - } - - public struct Angles { - // Normalize all vector angles to the range -180 < angle < 180 - public static Vector Normalize(Vector angles) { - float x = Angle.Normalize(angles.x); - float y = Angle.Normalize(angles.y); - float z = Angle.Normalize(angles.z); - return new Vector(x, y, z); - } - - // Clamp all vector acis between the given min and max values - // Angles are normalized - public static Vector Clamp(Vector angles, Vector min, Vector max) { - float x = Angle.Clamp(angles.x, min.x, max.x); - float y = Angle.Clamp(angles.y, min.y, max.y); - float z = Angle.Clamp(angles.z, min.z, max.z); - return new Vector(x, y, z); - } - - //public static Rotation ToRotation(Vector angles) { - // return Rotation.Euler(angles.x, angles.y, angles.z); - //} - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Angle.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Angle.cs.meta deleted file mode 100644 index ee2f386..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Angle.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: f6d14a63d690bb5449dc0fe3dbf0cf01 -timeCreated: 1535359362 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Rotation.cs b/Runtime/HumanoidFree/Libraries/Core/Rotation.cs deleted file mode 100644 index 84e0a5c..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Rotation.cs +++ /dev/null @@ -1,310 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid.Tracking { - public struct Rotation { - public float x; - public float y; - public float z; - public float w; - - public static Rotation identity { - get { - return new Rotation(0, 0, 0, 1); - } - } - - public Rotation(float _x, float _y, float _z, float _w) { - x = _x; - y = _y; - z = _z; - w = _w; - } - - public Rotation(Vector _xyz, float _w) { - x = _xyz.x; - y = _xyz.y; - z = _xyz.z; - w = _w; - } - - public Vector xyz { - set { - x = value.x; - y = value.y; - z = value.z; - } - get { - return new Vector(x, y, z); - } - } - - public float Length { - get { - return Mathf.Sqrt(x * x + y * y + z * z + w * w); - } - } - - public float LengthSquared { - get { - return x * x + y * y + z * z + w * w; - } - } - - public void Normalize() { - float scale = 1.0f / this.Length; - xyz *= scale; - w *= scale; - } - public static Rotation Normalize(Rotation q) { - Rotation result; - Normalize(ref q, out result); - return result; - } - public static void Normalize(ref Rotation q, out Rotation result) { - float scale = 1.0f / q.Length; - result = new Rotation(q.xyz * scale, q.w * scale); - } - - public static float Dot(Rotation a, Rotation b) { - return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w; - } - - /* no the same as UnityEngine version! - public static Rotation Euler(float x, float y, float z) { - return FromEulerRad(new Vector(x, y, z) * Mathf.Deg2Rad); - } - private static Rotation FromEulerRad(Vector euler) { - var yaw = euler.x; - var pitch = euler.z; - var roll = euler.y; - - float rollOver2 = roll * 0.5f; - float sinRollOver2 = (float)System.Math.Sin(rollOver2); - float cosRollOver2 = (float)System.Math.Cos(rollOver2); - float pitchOver2 = pitch * 0.5f; - float sinPitchOver2 = (float)System.Math.Sin(pitchOver2); - float cosPitchOver2 = (float)System.Math.Cos(pitchOver2); - float yawOver2 = yaw * 0.5f; - float sinYawOver2 = (float)System.Math.Sin(yawOver2); - float cosYawOver2 = (float)System.Math.Cos(yawOver2); - - Rotation result = identity; - result.x = cosYawOver2 * cosPitchOver2 * cosRollOver2 + sinYawOver2 * sinPitchOver2 * sinRollOver2; - result.y = cosYawOver2 * cosPitchOver2 * sinRollOver2 - sinYawOver2 * sinPitchOver2 * cosRollOver2; - result.z = cosYawOver2 * sinPitchOver2 * cosRollOver2 + sinYawOver2 * cosPitchOver2 * sinRollOver2; - result.w = sinYawOver2 * cosPitchOver2 * cosRollOver2 - cosYawOver2 * sinPitchOver2 * sinRollOver2; - return result; - - } - */ - - public static Vector ToAngles(Rotation q1) { - float test = q1.x * q1.y + q1.z * q1.w; - if (test > 0.499) { // singularity at north pole - return new Vector( - 0, - 2 * Mathf.Atan2(q1.x, q1.w) * Mathf.Rad2Deg, - 90 - ); - } - else if (test < -0.499) { // singularity at south pole - return new Vector( - 0, - -2 * Mathf.Atan2(q1.x, q1.w) * Mathf.Rad2Deg, - -90 - ); - } - else { - float sqx = q1.x * q1.x; - float sqy = q1.y * q1.y; - float sqz = q1.z * q1.z; - - return new Vector( - Mathf.Atan2(2 * q1.x * q1.w - 2 * q1.y * q1.z, 1 - 2 * sqx - 2 * sqz) * Mathf.Rad2Deg, - Mathf.Atan2(2 * q1.y * q1.w - 2 * q1.x * q1.z, 1 - 2 * sqy - 2 * sqz) * Mathf.Rad2Deg, - Mathf.Asin(2 * test) * Mathf.Rad2Deg - ); - } - } - - //public static Rotation Clamp(Rotation o, Vector min, Vector max) { - // Vector angles = ToAngles(o); - // angles = Angles.Clamp(angles, min, max); - // return Rotation.Euler(angles); // Angles.ToRotation(angles); - //} - - public static Rotation operator *(Rotation r1, Rotation r2) { - return new Rotation( - r1.x * r2.w + r1.y * r2.z - r1.z * r2.y + r1.w * r2.x, - -r1.x * r2.z + r1.y * r2.w + r1.z * r2.x + r1.w * r2.y, - r1.x * r2.y - r1.y * r2.x + r1.z * r2.w + r1.w * r2.z, - -r1.x * r2.x - r1.y * r2.y - r1.z * r2.z + r1.w * r2.w - ); - } - - public static Rotation Inverse(Rotation r) { - float n = Mathf.Sqrt(r.x * r.x + r.y * r.y + r.z * r.z + r.w * r.w); - return new Rotation(-r.x / n, -r.y / n, -r.z / n, r.w / n); - } - - public static Rotation LookRotation(Vector forward, Vector upwards) { - return LookRotation(ref forward, ref upwards); - } - public static Rotation LookRotation(Vector forward) { - Vector up = Vector.up; - return LookRotation(ref forward, ref up); - } - private static Rotation LookRotation(ref Vector forward, ref Vector up) { - forward = Vector.Normalize(forward); - Vector right = Vector.Normalize(Vector.Cross(up, forward)); - up = Vector.Cross(forward, right); - var m00 = right.x; - var m01 = right.y; - var m02 = right.z; - var m10 = up.x; - var m11 = up.y; - var m12 = up.z; - var m20 = forward.x; - var m21 = forward.y; - var m22 = forward.z; - - - float num8 = (m00 + m11) + m22; - var quaternion = identity; - if (num8 > 0f) { - var num = Mathf.Sqrt(num8 + 1f); - quaternion.w = num * 0.5f; - num = 0.5f / num; - quaternion.x = (m12 - m21) * num; - quaternion.y = (m20 - m02) * num; - quaternion.z = (m01 - m10) * num; - return quaternion; - } - if ((m00 >= m11) && (m00 >= m22)) { - var num7 = Mathf.Sqrt(((1f + m00) - m11) - m22); - var num4 = 0.5f / num7; - quaternion.x = 0.5f * num7; - quaternion.y = (m01 + m10) * num4; - quaternion.z = (m02 + m20) * num4; - quaternion.w = (m12 - m21) * num4; - return quaternion; - } - if (m11 > m22) { - var num6 = Mathf.Sqrt(((1f + m11) - m00) - m22); - var num3 = 0.5f / num6; - quaternion.x = (m10 + m01) * num3; - quaternion.y = 0.5f * num6; - quaternion.z = (m21 + m12) * num3; - quaternion.w = (m20 - m02) * num3; - return quaternion; - } - var num5 = (float)System.Math.Sqrt(((1f + m22) - m00) - m11); - var num2 = 0.5f / num5; - quaternion.x = (m20 + m02) * num2; - quaternion.y = (m21 + m12) * num2; - quaternion.z = 0.5f * num5; - quaternion.w = (m01 - m10) * num2; - return quaternion; - } - - /* Does not work correctly! - public static Rotation FromToRotation(Vector fromDirection, Vector toDirection) { - return RotateTowards(LookRotation(fromDirection), LookRotation(toDirection), float.MaxValue); - } - //*/ - - public static Rotation RotateTowards(Rotation from, Rotation to, float maxDegreesDelta) { - float num = Angle(from, to); - if (num == 0f) { - return to; - } - float t = Mathf.Min(1f, maxDegreesDelta / num); - return SlerpUnclamped(from, to, t); - } - - public static Rotation AngleAxis(float angle, Vector axis) { - return AngleAxis(angle, ref axis); - } - private static Rotation AngleAxis(float degress, ref Vector axis) { - if (Vector.SqrMagnitude(axis) == 0.0f) - return identity; - - Rotation result = identity; - var radians = degress * Mathf.Deg2Rad; - radians *= 0.5f; - Vector.Normalize(axis); - axis = axis * (float)System.Math.Sin(radians); - result.x = axis.x; - result.y = axis.y; - result.z = axis.z; - result.w = (float)System.Math.Cos(radians); - - return Normalize(result); - } - - public static float Angle(Rotation a, Rotation b) { - float f = Rotation.Dot(a, b); - return Mathf.Acos(Mathf.Min(Mathf.Abs(f), 1f)) * 2f * Mathf.Rad2Deg; - } - - public static Rotation Slerp(Rotation a, Rotation b, float t) { - return Slerp(ref a, ref b, t); - } - private static Rotation Slerp(ref Rotation a, ref Rotation b, float t) { - if (t > 1) t = 1; - if (t < 0) t = 0; - return SlerpUnclamped(ref a, ref b, t); - } - - public static Rotation SlerpUnclamped(Rotation a, Rotation b, float t) { - return SlerpUnclamped(ref a, ref b, t); - } - private static Rotation SlerpUnclamped(ref Rotation a, ref Rotation b, float t) { - // if either input is zero, return the other. - if (a.LengthSquared == 0.0f) { - if (b.LengthSquared == 0.0f) { - return identity; - } - return b; - } - else if (b.LengthSquared == 0.0f) { - return a; - } - - - float cosHalfAngle = a.w * b.w + Vector.Dot(a.xyz, b.xyz); - - if (cosHalfAngle >= 1.0f || cosHalfAngle <= -1.0f) { - // angle = 0.0f, so just return one input. - return a; - } - else if (cosHalfAngle < 0.0f) { - b.xyz = -b.xyz; - b.w = -b.w; - cosHalfAngle = -cosHalfAngle; - } - - float blendA; - float blendB; - if (cosHalfAngle < 0.99f) { - // do proper slerp for big angles - float halfAngle = (float)System.Math.Acos(cosHalfAngle); - float sinHalfAngle = (float)System.Math.Sin(halfAngle); - float oneOverSinHalfAngle = 1.0f / sinHalfAngle; - blendA = (float)System.Math.Sin(halfAngle * (1.0f - t)) * oneOverSinHalfAngle; - blendB = (float)System.Math.Sin(halfAngle * t) * oneOverSinHalfAngle; - } - else { - // do lerp if angle is really small. - blendA = 1.0f - t; - blendB = t; - } - - Rotation result = new Rotation(blendA * a.xyz + blendB * b.xyz, blendA * a.w + blendB * b.w); - if (result.LengthSquared > 0.0f) - return Normalize(result); - else - return identity; - } - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Rotation.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Rotation.cs.meta deleted file mode 100644 index bbabd48..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Rotation.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 60acb0a725c6dd64fb0044ce3a03bbbd -timeCreated: 1535358987 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors.meta deleted file mode 100644 index 54c5c08..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: b8384e7e3f7b6e54181b1f2078019a21 -folderAsset: yes -timeCreated: 1535359545 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs deleted file mode 100644 index 6fb59e4..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace Passer.Humanoid.Tracking { - - public class ControllerButtons { - public float stickHorizontal; - public float stickVertical; - public bool stickPress; - public bool stickTouch; - public bool up; - public bool down; - public bool left; - public bool right; - - public bool[] buttons = new bool[4]; - - public float trigger1; - public float trigger2; - - public bool option; - } - - public class ArmController : ArmSensor { - - - public ControllerButtons input; - - public ArmController(bool isLeft, DeviceView deviceView) : base(isLeft, deviceView) { - input = new ControllerButtons(); - } - - public virtual void UpdateInput() { } - - public virtual void Vibrate(float length, float strength) { } - } - -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs.meta deleted file mode 100644 index 0fa649a..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmController.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 6d2f20550b201514cb4e927eb7281965 -timeCreated: 1535359205 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs deleted file mode 100644 index 377a13b..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; - -namespace Passer.Humanoid.Tracking { - public enum FingerBones { - Proximal = 0, - Intermediate = 1, - Distal = 2, - LastBone = 3 - } - - public class ArmSensor : Sensor { - public bool isLeft; - - public TargetData shoulder; - public TargetData upperArm; - public TargetData forearm; - public TargetData hand; - - public class Finger { - public float curl; - public TargetData proximal = new TargetData(); - public TargetData intermediate = new TargetData(); - public TargetData distal = new TargetData(); - } - - public Finger thumb; - public Finger indexFinger; - public Finger middleFinger; - public Finger ringFinger; - public Finger littleFinger; - public Finger[] fingers; - - public ArmSensor(bool isLeft, DeviceView deviceView) : base(deviceView) { - this.isLeft = isLeft; - - shoulder = new TargetData(); - upperArm = new TargetData(); - forearm = new TargetData(); - hand = new TargetData(); - - thumb = new Finger(); - indexFinger = new Finger(); - middleFinger = new Finger(); - ringFinger = new Finger(); - littleFinger = new Finger(); - - fingers = new Finger[] { - thumb, - indexFinger, - middleFinger, - ringFinger, - littleFinger - }; - } - - protected virtual void UpdateHand() { - hand.rotation = _sensorRotation * _sensor2TargetRotation; - hand.confidence.rotation = _rotationConfidence; - - hand.position = _sensorPosition + hand.rotation * _sensor2TargetPosition; - hand.confidence.position = _positionConfidence; - } - - private const float Rad2Deg = 57.29578F; - public static Rotation CalculateUpperArmOrientation(Vector upperArmPosition, float upperArmLength, Vector forearmUp, float forearmLength, Vector handPosition, bool isLeft) { - Rotation upperArmRotation = Rotation.LookRotation(handPosition - upperArmPosition, forearmUp); - - float upperArm2HandDistance = Vector.Distance(upperArmPosition, handPosition); - float upperArm2HandDistance2 = upperArm2HandDistance * upperArm2HandDistance; - float upperArmLength2 = upperArmLength * upperArmLength; - float forearmLength2 = forearmLength * forearmLength; - float elbowAngle = (float)System.Math.Acos((upperArm2HandDistance2 + upperArmLength2 - forearmLength2) / (2 * upperArm2HandDistance * upperArmLength)) * Rad2Deg; - if (float.IsNaN(elbowAngle)) elbowAngle = 10; - if (isLeft) - elbowAngle = -elbowAngle; - - upperArmRotation = Rotation.AngleAxis(elbowAngle, upperArmRotation * Vector.up) * upperArmRotation; - - if (isLeft) - upperArmRotation *= Rotation.AngleAxis(90, Vector.up); // Euler(0, 90, 0) - else - upperArmRotation *= Rotation.AngleAxis(-90, Vector.up); // Euler(0, -90, 0) - - return upperArmRotation; - } - public static Rotation CalculateArmOrientation(Vector joint1Position, Vector joint1Up, Vector joint2Position, bool isLeft) { - Vector boneForward = joint2Position - joint1Position; - Rotation boneRotation = Rotation.LookRotation(boneForward, joint1Up); - - if (isLeft) - boneRotation *= Rotation.AngleAxis(90, Vector.up); // Euler(0, 90, 0) - else - boneRotation *= Rotation.AngleAxis(-90, Vector.up); // Euler(0, -90, 0) - - return boneRotation; - } - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs.meta deleted file mode 100644 index cd9dd18..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/ArmSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4f0192b954f10bb48966e97356dc05f3 -timeCreated: 1535359219 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs deleted file mode 100644 index d804d20..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs +++ /dev/null @@ -1,91 +0,0 @@ -namespace Passer.Humanoid.Tracking { - public enum FaceBone { - LeftOuterBrow, - LeftBrow, - LeftInnerBrow, - RightInnerBrow, - RightBrow, - RightOuterBrow, - - LeftCheek, - RightCheek, - - NoseTopLeft, - NoseTop, - NoseTopRight, - NoseTip, - NoseBottomLeft, - NoseBottom, - NoseBottomRight, - - UpperLipLeft, - UpperLip, - UpperLipRight, - LipLeft, - LipRight, - LowerLipLeft, - LowerLip, - LowerLipRight, - LastBone - } - - public class FaceSensor : Sensor { - public TrackedBrow leftBrow = new TrackedBrow(); - public TrackedBrow rightBrow = new TrackedBrow(); - - public TrackedEye leftEye = new TrackedEye(); - public TrackedEye rightEye = new TrackedEye(); - - public TargetData leftCheek = new TargetData(); - public TargetData rightCheek = new TargetData(); - - public TrackedNose nose = new TrackedNose(); - - public TrackedMouth mouth = new TrackedMouth(); - - public TargetData jaw = new TargetData(); - - public float smile; - public float pucker; - public float frown; - - public FaceSensor(DeviceView deviceView) : base(deviceView) { } - - public class TrackedBrow { - public TargetData inner; - public TargetData center; - public TargetData outer; - } - - public class TrackedEye { - public float closed; - } - - public class TrackedNose { - public TargetData top; - public TargetData topLeft; - public TargetData topRight; - public TargetData tip; - public TargetData bottom; - public TargetData bottomLeft; - public TargetData bottomRight; - } - - public class TrackedMouth { - public TargetData upperLipLeft; - public TargetData upperLip; - public TargetData upperLipRight; - - public TargetData lipLeft; - public TargetData lipRight; - - public TargetData lowerLipLeft; - public TargetData lowerLip; - public TargetData lowerLipRight; - } - - public class FaceTargetData : TargetData { - public new Vector startPosition; - } - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs.meta deleted file mode 100644 index b880e38..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/FaceSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 0daaa99661b2a6845ada7430949365d2 -timeCreated: 1535359279 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs deleted file mode 100644 index 7fae5d6..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs +++ /dev/null @@ -1,72 +0,0 @@ -namespace Passer.Humanoid.Tracking { - /// - /// Humanoid head tracking sensor - /// - public class HeadSensor : Sensor { - public TargetData neck; - public TargetData head; - - //public TrackedBrow leftBrow; - //public TrackedBrow rightBrow; - - //public TrackedEye leftEye; - //public TrackedEye rightEye; - - //public TrackedMouth mouth; - - //public TargetData jaw; - - //public float smile; - - public HeadSensor(DeviceView deviceView) : base(deviceView) { - neck = new TargetData(); - head = new TargetData(); - - // leftBrow = new TrackedBrow(); - // rightBrow = new TrackedBrow(); - - // leftEye = new TrackedEye(); - // rightEye = new TrackedEye(); - - // mouth = new TrackedMouth(); - - // jaw = new TargetData(); - } - - //public class TrackedBrow { - // public TargetData inner; - // public TargetData center; - // public TargetData outer; - //} - - //public class TrackedEye { - // public float closed; - //} - - //public class TrackedMouth { - // public TargetData upperLipLeft; - // public TargetData upperLip; - // public TargetData upperLipRight; - - // public TargetData lipLeft; - // public TargetData lipRight; - - // public TargetData lowerLipLeft; - // public TargetData lowerLip; - // public TargetData lowerLipRight; - - // //public TrackedMouth() { - // // upperLipLeft = new TargetData(); - // // upperLip = new TargetData(); - // // upperLipRight = new TargetData(); - - // // lipLeft = new TargetData(); - // // lipRight = new TargetData(); - - // // lowerLipLeft = new TargetData(); - // // lowerLip = new TargetData(); - // // lowerLipRight = new TargetData(); - // //} - //} - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs.meta deleted file mode 100644 index 0a8a59f..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/HeadSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: d29807d7513f6fb4c877730de91a1bd0 -timeCreated: 1535359169 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs deleted file mode 100644 index 7fd0850..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Passer.Humanoid.Tracking { - - public class LegSensor : Sensor { - public bool isLeft; - - public TargetData upperLeg; - public TargetData lowerLeg; - public TargetData foot; - - public LegSensor(bool isLeft, DeviceView deviceView) : base(deviceView) { - this.isLeft = isLeft; - - upperLeg = new TargetData(); - lowerLeg = new TargetData(); - foot = new TargetData(); - } - - public static Rotation CalculateLegOrientation(Vector joint1Position, Vector joint2Position, Rotation hipsRotation) { - Vector boneUp = hipsRotation * Vector.back; - Vector boneForward = Rotation.AngleAxis(180, Vector.up) * (joint2Position - joint1Position); - Rotation boneRotation = Rotation.LookRotation(boneForward, boneUp); - boneRotation *= Rotation.AngleAxis(270, Vector.right); - return boneRotation; - } - } - -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs.meta deleted file mode 100644 index 972660c..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/LegSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: cdbde1b8cd99fa54a8f081318df158d0 -timeCreated: 1535359302 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs deleted file mode 100644 index 43f359f..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs +++ /dev/null @@ -1,192 +0,0 @@ -using UnityEngine; // This should disappear! - -namespace Passer.Humanoid.Tracking { - public class Rotation_ { - public static Rotation Euler(Vector v) { - return Euler(v.x, v.y, v.z); - } - - public static Rotation Euler(float x, float y, float z) { - // temporary... - Quaternion q = Quaternion.Euler(x, y, z); - return new Rotation(q.x, q.y, q.z, q.w); - } - - public static Rotation FromToRotation(Vector v1, Vector v2) { - Vector3 uv1 = HumanoidTarget.ToVector3(v1); - Vector3 uv2 = HumanoidTarget.ToVector3(v2); - Quaternion r = Quaternion.FromToRotation(uv1, uv2); - return HumanoidTarget.ToRotation(r); - } - } - - /// - /// Humanoid Tracking sensor - /// - public class Sensor { - /// - /// The device to which the sensor belongs - /// - public DeviceView device; - - /// - /// Status of the sensor - /// - public Tracker.Status status = Tracker.Status.Unavailable; - - public struct State { - public int sensorID; - public Vector position; - public Rotation rotation; - public float confidence; - public bool present; - } - - public enum ID { - Head, - LeftHand, - RightHand, - Hips, - LeftFoot, - RightFoot, - - Tracker1, - Tracker2, - Tracker3, - Tracker4, - Count - } - - /// - /// Create new sensor the the device - /// - /// - public Sensor(DeviceView _device) { - device = _device; - } - - /// - /// Update the sensor state - /// - /// Status of the sensor after the update - public virtual Tracker.Status Update() { - return Tracker.Status.Unavailable; - } - - public static Rotation CalculateBoneRotation(Vector bonePosition, Vector parentBonePosition, Vector upDirection) { - Vector direction = bonePosition - parentBonePosition; - if (Vector.Magnitude(direction) > 0) { - return Rotation.LookRotation(direction, upDirection); - } - else - return Rotation.identity; - } - - // The tracker's position and rotation - protected Vector _localSensorPosition; - public Vector localSensorPosition { - get { return _localSensorPosition; } - } - protected Rotation _localSensorRotation; - public Rotation localSensorRotation { - get { return _localSensorRotation; } - } - - protected Vector _sensorPosition; - public Vector sensorPosition { - get { return _sensorPosition; } - } - protected Rotation _sensorRotation; - public Rotation sensorRotation { - get { return _sensorRotation; } - } - - protected void UpdateSensor() { - _sensorRotation = device.ToWorldOrientation(_localSensorRotation); - _sensorPosition = device.ToWorldPosition(_localSensorPosition); - } - - /// - /// Tracking confidence - /// - protected float _positionConfidence; - public float positionConfidence { - get { return _positionConfidence; } - } - protected float _rotationConfidence; - public float rotationConfidence { - get { return _rotationConfidence; } - } - - /// - /// The position of the tracker relative to the origin of the object it is tracking - /// - protected Vector _sensor2TargetPosition = Vector.zero; - public Vector sensor2TargetPosition { - set { _sensor2TargetPosition = value; } - get { return _sensor2TargetPosition; } - } - protected Rotation _sensor2TargetRotation = Rotation.identity; - public Rotation sensor2TargetRotation { - set { _sensor2TargetRotation = value; } - get { return _sensor2TargetRotation; } - } - } - - public class Controller : Sensor { - public Controller(DeviceView _device) : base(_device) { } - } - - - - - // Most of these should move to difference files... - - public enum Status { - Unavailable, - Present, - Tracking - } - - public class TargetData { - public Vector position = Vector.zero; - public Rotation rotation = Rotation.identity; - public float length; - public Confidence confidence; - - public Vector startPosition = Vector.zero; - } - - public struct Confidence { - public float position { get; set; } - public float rotation { get; set; } - public float length { get; set; } - - private const float degradationPerFrame = -0.01F; // PER FRAME!!!! - public void Degrade() { - position = Mathf.Clamp01(position + degradationPerFrame); - rotation = Mathf.Clamp01(rotation + degradationPerFrame); - length = Mathf.Clamp01(length + degradationPerFrame); - } - - public static Confidence none { - get { - return new Confidence { position = 0, rotation = 0, length = 0 }; - } - } - } - - public class DeviceView { - public Vector position; - public Rotation orientation; - - public virtual Vector ToWorldPosition(Vector localPosition) { - return position + orientation * localPosition; - } - - public virtual Rotation ToWorldOrientation(Rotation localRotation) { - return orientation * localRotation; - } - } - -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs.meta deleted file mode 100644 index ddd54d9..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/Sensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: c8da3cffabf9d3c4096196cde2e96374 -timeCreated: 1480088564 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs b/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs deleted file mode 100644 index d141423..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Passer.Humanoid.Tracking { - public class TorsoSensor : Sensor { - public TargetData chest; - public TargetData spine; - public TargetData hips; - - public TorsoSensor(DeviceView deviceView) : base(deviceView) { - chest = new TargetData(); - spine = new TargetData(); - hips = new TargetData(); - } - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs.meta deleted file mode 100644 index 3969d08..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Sensors/TorsoSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 23f5d07c0f866854da1e575474ce727d -timeCreated: 1535359326 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Core/Vector.cs b/Runtime/HumanoidFree/Libraries/Core/Vector.cs deleted file mode 100644 index 94a56e9..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Vector.cs +++ /dev/null @@ -1,97 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid.Tracking { - public struct Vector { - public float x; - public float y; - public float z; - - public static Vector zero { get { return new Vector(0, 0, 0); } } - public static Vector right { get { return new Vector(1, 0, 0); } } - public static Vector up { get { return new Vector(0, 1, 0); } } - public static Vector forward { get { return new Vector(0, 0, 1); } } - public static Vector back { get { return new Vector(0, 0, -1); } } - - public Vector(float _x, float _y, float _z) { - x = _x; - y = _y; - z = _z; - } - - public static float Magnitude(Vector a) { - return Mathf.Sqrt(a.x * a.x + a.y * a.y + a.z * a.z); - } - - public static float SqrMagnitude(Vector a) { - return a.x * a.x + a.y * a.y + a.z * a.z; - } - - public static Vector Normalize(Vector v) { - float num = Magnitude(v); - Vector result; - if (num > 1E-05f) { - result = v / num; - } - else { - result = zero; - } - return result; - } - public static Vector operator -(Vector p1) { - return new Vector(-p1.x, -p1.y, -p1.z); - } - public static Vector operator -(Vector p1, Vector p2) { - return new Vector(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z); - } - public static Vector operator +(Vector p1, Vector t1) { - return new Vector(p1.x + t1.x, p1.y + t1.y, p1.z + t1.z); - } - public static Vector Scale(Vector p1, Vector p2) { - return new Vector(p1.x * p2.x, p1.y * p2.y, p1.z * p2.z); - } - public static Vector operator *(float f, Vector p) { - return new Vector(f * p.x, f * p.y, f * p.z); - } - public static Vector operator *(Vector p, float f) { - return new Vector(p.x * f, p.y * f, p.z * f); - } - public static Vector operator *(Rotation o, Vector p) { - float num = o.x * 2f; - float num2 = o.y * 2f; - float num3 = o.z * 2f; - float num4 = o.x * num; - float num5 = o.y * num2; - float num6 = o.z * num3; - float num7 = o.x * num2; - float num8 = o.x * num3; - float num9 = o.y * num3; - float num10 = o.w * num; - float num11 = o.w * num2; - float num12 = o.w * num3; - Vector result = Vector.zero; - result.x = (1f - (num5 + num6)) * p.x + (num7 - num12) * p.y + (num8 + num11) * p.z; - result.y = (num7 + num12) * p.x + (1f - (num4 + num6)) * p.y + (num9 - num10) * p.z; - result.z = (num8 - num11) * p.x + (num9 + num10) * p.y + (1f - (num4 + num5)) * p.z; - return result; - } - public static Vector operator /(Vector a, float d) { - return new Vector(a.x / d, a.y / d, a.z / d); - } - - public static float Dot(Vector v1, Vector v2) { - return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z; - } - - public static float Distance(Vector p1, Vector p2) { - return Magnitude(p1 - p2); - } - - public static Vector Cross(Vector v1, Vector v2) { - return new Vector(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x); - } - - //public float Length() { - // return Mathf.Sqrt(x * x + y * y + z * z); - //} - } -} diff --git a/Runtime/HumanoidFree/Libraries/Core/Vector.cs.meta b/Runtime/HumanoidFree/Libraries/Core/Vector.cs.meta deleted file mode 100644 index b3cabb9..0000000 --- a/Runtime/HumanoidFree/Libraries/Core/Vector.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: dc399eafe69085649961ea3ea4bcf729 -timeCreated: 1535359025 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Tracking.meta b/Runtime/HumanoidFree/Libraries/Tracking.meta deleted file mode 100644 index 9f9f5bf..0000000 --- a/Runtime/HumanoidFree/Libraries/Tracking.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 02c28d0bb00e7214eb7f47fb1563b3af -folderAsset: yes -timeCreated: 1483015126 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs b/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs deleted file mode 100644 index d6f0b40..0000000 --- a/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs +++ /dev/null @@ -1,940 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using UnityEngine; - -namespace Passer.Humanoid.Tracking { - - - public enum BoneType { - AllBones, - CenterBones, - SideBones, - FaceBones - } - - public enum Bone : byte { - None, - - #region Center Bones - // Torso - Hips, - Spine, - Spine1, - Spine2, - Chest, - - // Head - Neck, - Head, - #endregion - - #region Left Side Bones - // Left Arm - LeftShoulder, - LeftUpperArm, - LeftForearm, - LeftForearmTwist, - LeftHand, - - // Thumb - LeftThumbProximal, - LeftThumbIntermediate, - LeftThumbDistal, - - // Index Finger - LeftIndexMetacarpal, - LeftIndexProximal, - LeftIndexIntermediate, - LeftIndexDistal, - - // Middle Finger - LeftMiddleMetacarpal, - LeftMiddleProximal, - LeftMiddleIntermediate, - LeftMiddleDistal, - - // Ring Finger - LeftRingMetacarpal, - LeftRingProximal, - LeftRingIntermediate, - LeftRingDistal, - - // Little Finger - LeftLittleMetacarpal, - LeftLittleProximal, - LeftLittleIntermediate, - LeftLittleDistal, - - // Left Leg - LeftUpperLeg, - LeftLowerLeg, - LeftFoot, - LeftToes, - #endregion - - #region Right Side Bones - // Right Arm - RightShoulder, - RightUpperArm, - RightForearm, - RightForearmTwist, - RightHand, - - // Thumb - RightThumbProximal, - RightThumbIntermediate, - RightThumbDistal, - - // Index Finger - RightIndexMetacarpal, - RightIndexProximal, - RightIndexIntermediate, - RightIndexDistal, - - // Middle Finger - RightMiddleMetacarpal, - RightMiddleProximal, - RightMiddleIntermediate, - RightMiddleDistal, - - // Ring Finger - RightRingMetacarpal, - RightRingProximal, - RightRingIntermediate, - RightRingDistal, - - // Little Finger - RightLittleMetacarpal, - RightLittleProximal, - RightLittleIntermediate, - RightLittleDistal, - - // Right Leg - RightUpperLeg, - RightLowerLeg, - RightFoot, - RightToes, - #endregion - - #region Face Bones - - // Eyes - LeftUpperLid, - LeftEye, - LeftLowerLid, - RightUpperLid, - RightEye, - RightLowerLid, - - // Brows - LeftOuterBrow, - LeftBrow, - LeftInnerBrow, - RightInnerBrow, - RightBrow, - RightOuterBrow, - - // Ears - LeftEar, - RightEar, - - // Cheeks - LeftCheek, - RightCheek, - - // Nose - NoseTop, - NoseTip, - NoseBottomLeft, - NoseBottom, - NoseBottomRight, - - // Mouth - UpperLipLeft, - UpperLip, - UpperLipRight, - LipLeft, - LipRight, - LowerLipLeft, - LowerLip, - LowerLipRight, - - Jaw, - Chin, - #endregion - - Count - }; - - public enum CenterBone { - Unknown, - - // Torso - Hips, - Spine, - Spine1, - Spine2, - Chest, - - // Head - Neck, - Head, - - Count - } - - public enum SideBone { - None, - - // Arm - Shoulder, - UpperArm, - Forearm, - ForearmTwist, - Hand, - - // Thumb - ThumbProximal, - ThumbIntermediate, - ThumbDistal, - - // Index Finger - IndexMetacarpal, - IndexProximal, - IndexIntermediate, - IndexDistal, - - // Middle Finger - MiddleMetacarpal, - MiddleProximal, - MiddleIntermediate, - MiddleDistal, - - // Ring Finger - RingMetacarpal, - RingProximal, - RingIntermediate, - RingDistal, - - // Little Finger - LittleMetacarpal, - LittleProximal, - LittleIntermediate, - LittleDistal, - - // Left Leg - UpperLeg, - LowerLeg, - Foot, - Toes, - - Count - }; - - public enum Finger { - Thumb, - Index, - Middle, - Ring, - Little, - Count - }; - - public enum FingerBone { - Metacarpal, - Proximal, - Intermediate, - Distal, - Tip, - Count - }; - - public enum FacialBone { - Unknown, - - // Eyes - LeftUpperLid, - LeftEye, - LeftLowerLid, - RightUpperLid, - RightEye, - RightLowerLid, - - // Brows - LeftOuterBrow, - LeftBrow, - LeftInnerBrow, - RightInnerBrow, - RightBrow, - RightOuterBrow, - - // Ears - LeftEar, - RightEar, - - // Cheeks - LeftCheek, - RightCheek, - - // Nose - NoseTop, - NoseTip, - NoseBottomLeft, - NoseBottom, - NoseBottomRight, - - // Mouth - UpperLipLeft, - UpperLip, - UpperLipRight, - LipLeft, - LipRight, - LowerLipLeft, - LowerLip, - LowerLipRight, - - Jaw, - Chin, - - Count - } - - public class Bones { - public static bool IsLeftSideBone(Bone bone) { - return (bone >= Bone.LeftShoulder && bone <= Bone.LeftToes); - } - - public static bool IsRightSideBone(Bone bone) { - return (bone >= Bone.RightShoulder && bone <= Bone.RightToes); - } - } - - [Serializable] - public class BoneReference { - public BoneType type; - public Side side; - [SerializeField] - private Bone _boneId; - [SerializeField] - private SideBone _sideBoneId; - - public Bone boneId { - get { return _boneId; } - set { - _boneId = value; - _sideBoneId = HumanoidSideBone(_boneId); - } - } - public CenterBone centerBoneId { - get { return HumanoidCenterBone(boneId); } - set { boneId = HumanoidBone(value); } - } - public SideBone sideBoneId { - get { return _sideBoneId; } - set { - _sideBoneId = value; - _boneId = HumanoidBone(side, _sideBoneId); - } - } - public FacialBone faceBoneId { - get { return HumanoidFaceBone(boneId); } - set { boneId = HumanoidBone(value); } - } - public HumanBodyBones humanBodyBone { - get { return humanBodyBones[(int)boneId]; } - } - - public bool isCenterBone { - get { return (_boneId >= Bone.Hips && _boneId <= Bone.Head); } - } - public bool isSideBone { - //get { return (_boneId >= Bone.LeftShoulder && _boneId <= Bone.RightToes); } - get { return (_sideBoneId != SideBone.None); } - } - public bool isLeftSideBone { - get { return Bones.IsLeftSideBone(_boneId); } - } - public bool isRightSideBone { - get { return Bones.IsRightSideBone(_boneId); } - } - public bool isHandBone { - get { - bool boneIsHand = (_boneId >= Bone.LeftThumbProximal && _boneId <= Bone.RightLittleDistal); - bool sideBoneIsHand = (_sideBoneId >= SideBone.ThumbProximal && _sideBoneId <= SideBone.LittleDistal); - return boneIsHand || sideBoneIsHand; - //(_boneId >= Bone.LeftThumbProximal && _boneId <= Bone.RightLittleDistal) || - //(_sideBoneId >= SideBone.ThumbProximal && _sideBoneId <= SideBone.LittleDistal); - } - } - public bool isLeftHandBone { - get { return (_boneId >= Bone.LeftThumbProximal && _boneId <= Bone.LeftLittleDistal); } - } - public bool isRightHandBone { - get { return (_boneId >= Bone.RightThumbProximal && _boneId <= Bone.RightLittleDistal); } - } - public bool isFacialBone { - get { return (_boneId >= Bone.LeftUpperLid && _boneId <= Bone.Chin); } - } - - public static Bone HumanoidBone(CenterBone centerBone) { - return (Bone)centerBone; - } - - public static CenterBone HumanoidCenterBone(Bone bone) { - return (CenterBone)bone; - } - - public static Bone HumanoidBone(Side side, SideBone sideBone) { - if (sideBone == Tracking.SideBone.None) - return Bone.None; - - int shoulderIx; - int sideBoneIx; - switch (side) { - case Side.Left: - shoulderIx = (int)Bone.LeftShoulder; - sideBoneIx = (int)sideBone; - return (Bone)(shoulderIx + sideBoneIx - 1); - //return (int)Bone.LeftShoulder + ((int)sideBone - 1); - case Side.Right: - shoulderIx = (int)Bone.RightShoulder; - sideBoneIx = (int)sideBone; - return (Bone)(shoulderIx + sideBoneIx - 1); - default: - return Bone.None; - } - } - - public static SideBone HumanoidSideBone(Bone bone) { - if (bone >= Bone.LeftShoulder && bone <= Bone.LeftToes) { - return (SideBone)(int)bone - (int)Bone.LeftShoulder + 1; - } - else if (bone >= Bone.RightShoulder && bone <= Bone.RightToes) { - return (SideBone)(int)bone - (int)Bone.RightShoulder + 1; - } - else { - return Tracking.SideBone.None; - } - } - public static SideBone HumanoidSideBone(Finger fingerId, FingerBone fingerBoneId) { - SideBone boneId = (SideBone)(((int)Tracking.SideBone.ThumbProximal - 1) + (int)fingerId * 4 + (int)fingerBoneId); - return boneId; - } - public static SideBone HumanoidSideBone(Bone bone, out Side side) { - if (bone >= Bone.LeftShoulder && bone <= Bone.LeftToes) { - side = Side.Left; - return (SideBone)(int)bone - (int)Bone.LeftShoulder + 1; - } - else if (bone >= Bone.RightShoulder && bone <= Bone.RightToes) { - side = Side.Right; - return (SideBone)(int)bone - (int)Bone.RightShoulder + 1; - } - else { - side = Side.Left; //AnySide; - return Tracking.SideBone.None; - } - } - - public static Bone HumanoidBone(FacialBone faceBone) { - return (int)Bone.LeftUpperLid + ((Bone)faceBone - 1); - } - public static FacialBone HumanoidFaceBone(Bone bone) { - return (FacialBone)(int)bone - (int)Bone.LeftUpperLid + 1; - } - - public static HumanBodyBones HumanBodyBone(Bone bone) { - return humanBodyBones[(int)bone]; - } - private static HumanBodyBones[] humanBodyBones = new HumanBodyBones[(int)Bone.Count] { - HumanBodyBones.LastBone, - HumanBodyBones.Hips, - HumanBodyBones.Spine, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.Chest, - - HumanBodyBones.Neck, - HumanBodyBones.Head, - - HumanBodyBones.LeftShoulder, - HumanBodyBones.LeftUpperArm, - HumanBodyBones.LeftLowerArm, - HumanBodyBones.LastBone, - HumanBodyBones.LeftHand, - - HumanBodyBones.LeftThumbProximal, - HumanBodyBones.LeftThumbIntermediate, - HumanBodyBones.LeftThumbDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.LeftIndexProximal, - HumanBodyBones.LeftIndexIntermediate, - HumanBodyBones.LeftIndexDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.LeftMiddleProximal, - HumanBodyBones.LeftMiddleIntermediate, - HumanBodyBones.LeftMiddleDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.LeftRingProximal, - HumanBodyBones.LeftRingIntermediate, - HumanBodyBones.LeftRingDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.LeftLittleProximal, - HumanBodyBones.LeftLittleIntermediate, - HumanBodyBones.LeftLittleDistal, - - HumanBodyBones.LeftUpperLeg, - HumanBodyBones.LeftLowerLeg, - HumanBodyBones.LeftFoot, - HumanBodyBones.LeftToes, - - HumanBodyBones.RightShoulder, - HumanBodyBones.RightUpperArm, - HumanBodyBones.RightLowerArm, - HumanBodyBones.LastBone, - HumanBodyBones.RightHand, - - HumanBodyBones.RightThumbProximal, - HumanBodyBones.RightThumbIntermediate, - HumanBodyBones.RightThumbDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.RightIndexProximal, - HumanBodyBones.RightIndexIntermediate, - HumanBodyBones.RightIndexDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.RightMiddleProximal, - HumanBodyBones.RightMiddleIntermediate, - HumanBodyBones.RightMiddleDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.RightRingProximal, - HumanBodyBones.RightRingIntermediate, - HumanBodyBones.RightRingDistal, - - HumanBodyBones.LastBone, - HumanBodyBones.RightLittleProximal, - HumanBodyBones.RightLittleIntermediate, - HumanBodyBones.RightLittleDistal, - - HumanBodyBones.RightUpperLeg, - HumanBodyBones.RightLowerLeg, - HumanBodyBones.RightFoot, - HumanBodyBones.RightToes, - - HumanBodyBones.LastBone, - HumanBodyBones.LeftEye, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.RightEye, - HumanBodyBones.LastBone, - - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - HumanBodyBones.LastBone, - - HumanBodyBones.Jaw, - - HumanBodyBones.LastBone, - }; - } - - [StructLayout(LayoutKind.Sequential)] - public struct Vec2 { - public float x; - public float y; - - public Vec2(Vector2 v) { - x = v.x; - y = v.y; - } - public Vector2 Vector2 { - get { return new Vector2(x, y); } - } - } - - [StructLayout(LayoutKind.Sequential)] - public struct Vec3 { - public float x; - public float y; - public float z; - - public Vec3(Vector3 v) { - x = v.x; - y = v.y; - z = v.z; - } - public Vector3 Vector3 { - get { return new Vector3(x, y, z); } - } - } - - [StructLayout(LayoutKind.Sequential)] - public struct Quat { - public float x; - public float y; - public float z; - public float w; - - public Quat(Quaternion q) { - x = q.x; - y = q.y; - z = q.z; - w = q.w; - } - public Quaternion Quaternion { - get { return new Quaternion(x, y, z, w); } - } - } - - public class TrackerTransform { - private TrackingDevice tracker; - - protected float lastTime = 0; - - public TrackerTransform(TrackingDevice tracker) { - this.tracker = tracker; - } - - private void Update() { - if (Time.frameCount <= lastTime) - return; - - TrackingDevice.TrackerTransformC trackerTransform = tracker.GetTrackerData(); - - _status = trackerTransform.status; - _actorCount = trackerTransform.actorCount; - - lastTime = Time.frameCount; - } - - private Tracker.Status _status; - public Tracker.Status status { - get { - Update(); - return _status; - } - } - - private int _actorCount; - public int actorCount { - get { - Update(); - return _actorCount; - } - } - - } - - -#if hUNSAFE - unsafe public class SensorBone { - private TrackingDevice.SensorTransformC* pSensorTransform = null; - protected float lastTime = 0; - - unsafe public SensorBone(TrackingDevice.SensorTransformC* pSensorTransform) { - this.pSensorTransform = pSensorTransform; - } - - private void Update() { - if (pSensorTransform == null) - return; - if (Time.frameCount <= lastTime) - return; - - _position = pSensorTransform->position.Vector3; - _positionConfidence = pSensorTransform->positionConfidence; - _rotation = pSensorTransform->rotation.Quaternion; - _rotationConfidence = pSensorTransform->rotationConfidence; - - lastTime = Time.frameCount; - } -#else - public class SensorBone { - protected TrackingDevice tracker; - protected readonly uint actorId; - protected readonly Bone boneId; - protected readonly Side side; - protected readonly SideBone sideBoneId; - - protected float lastTime = 0; - - public SensorBone(TrackingDevice tracker, uint actorId, Side side, SideBone sideBoneId) { - this.tracker = tracker; - this.actorId = actorId; - this.boneId = Bone.None; - this.side = side; - this.sideBoneId = sideBoneId; - } - - public SensorBone(TrackingDevice tracker, uint actorId, Bone boneId) { - this.tracker = tracker; - this.actorId = actorId; - this.side = Side.AnySide; - this.boneId = boneId; - this.sideBoneId = SideBone.None; - } - - protected virtual void Update() { - if (Time.frameCount <= lastTime) - return; - - TrackingDevice.SensorTransformC sensorTransform = - (boneId == Bone.None) ? - tracker.GetBoneData(actorId, side, sideBoneId) : - tracker.GetBoneData(actorId, boneId); - - - _position = sensorTransform.position.Vector3; - _positionConfidence = sensorTransform.positionConfidence; - _rotation = sensorTransform.rotation.Quaternion; - _rotationConfidence = sensorTransform.rotationConfidence; - - lastTime = Time.frameCount; - } -#endif - protected Vector3 _position; - public virtual Vector3 position { - get { - Update(); - return _position; - } - } - - protected float _positionConfidence; - public virtual float positionConfidence { - get { - Update(); - return _positionConfidence; - } - } - - protected Quaternion _rotation; - public virtual Quaternion rotation { - get { - Update(); - return _rotation; - } - } - - protected float _rotationConfidence; - public virtual float rotationConfidence { - get { - Update(); - return _rotationConfidence; - } - } - - private float _lengthConfidence; - - public float length = 0; - - public Vector3 velocity; - public Quaternion rotationalVelocity; - } - - public class ControllerState { - private TrackingDevice tracker; - private readonly uint actorId; - private readonly Side side; - - //private float lastTime = 0; - - public ControllerState(TrackingDevice tracker, uint actorId, Side side) { - this.tracker = tracker; - this.actorId = actorId; - this.side = side; - } - - public void Update() { - TrackingDevice.ControllerStateC controllerState = - tracker.GetControllerState(actorId, side); - - //if (lastTime >= targetTransform.timestamp) - // return; - - for (int i = 0; i < input3dCount; i++) - input3d[i] = controllerState.input3d.Vector3; //[i].Vector3; - //for (int i = 0; i < input1dCount; i++) - // input1d[i] = controllerState.input1d[i]; - - //lastTime = controllerState.timestamp; - - } - - public const int input3dCount = 1; //2; - public const int input1dCount = 7; - - public Vector3[] input3d = new Vector3[input3dCount]; - public float[] input1d = new float[input1dCount]; - - } - public class TrackingDevice { - [StructLayout(LayoutKind.Sequential)] - public struct TrackerTransformC { - public float timestamp; - - public Vec3 position; - public Quat rotation; - - public Tracker.Status status; - - public int actorCount; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SensorTransformC { - public float timestamp; - public uint id; - - public Vec3 position; - public float positionConfidence; - public Vec3 velocity; - - public Quat rotation; - public float rotationConfidence; - public Quat rotationalVelocity; - - public float length; - public float lengthConfidence; - - public Vec3 sensor2TargetPosition; - public Quat sensor2TargetRotation; - - public Vec3 targetPosition; - public Quat targetRotation; - } - - [StructLayout(LayoutKind.Sequential)] - public struct ControllerStateC { - public float timestamp; - - public Vec3 input3d; - //public float[] input1d; - } - - protected IntPtr device; - - public virtual void Init() { } - public virtual void Stop() { } - - public virtual void Update() { } - - protected void LogError(int errorIndex, string[] errorMsgs) { - if (errorIndex >= errorMsgs.Length - 1) - Debug.LogError(errorMsgs[errorMsgs.Length - 1] + errorIndex); - else - Debug.LogError(errorMsgs[errorIndex]); - } - - #region Tracker - public virtual Tracker.Status status { - get { return Tracker.Status.Unavailable; } - } - public virtual Vector3 position { - set { } - } - public virtual Quaternion rotation { - set { } - } - public virtual TrackerTransform GetTracker() { - return new TrackerTransform(this); - } - public virtual TrackerTransformC GetTrackerData() { - return new TrackerTransformC(); - } - #endregion - - #region Bone - public virtual Vector3 GetBonePosition(uint actorId, Bone boneId) { - return Vector3.zero; - } - public virtual Quaternion GetBoneRotation(uint actorId, Bone boneId) { - return Quaternion.identity; - } - public virtual float GetBoneConfidence(uint actorId, Bone boneId) { - return 0; - } - -#if hUNSAFE - unsafe public virtual SensorBone GetBone(uint actorId, Bone boneId) { - return new SensorBone(null); - } -#else - public virtual SensorBone GetBone(uint actorId, Bone boneId) { - return new SensorBone(this, actorId, boneId); - } -#endif - public virtual SensorTransformC GetBoneData(uint actorId, Bone boneId) { - return new SensorTransformC(); - } - -#if hUNSAFE - unsafe public virtual SensorBone GetBone(uint actorId, Side side, SideBone boneId) { - return new SensorBone(null); - } -#else - public virtual SensorBone GetBone(uint actorId, Side side, SideBone boneId) { - return new SensorBone(this, actorId, side, boneId); - } -#endif - public virtual SensorTransformC GetBoneData(uint actorId, Side side, SideBone boneId) { - return new SensorTransformC(); - } - public virtual Vector3 GetBonePosition(uint actorId, Side side, SideBone boneId) { - return Vector3.zero; - } - public virtual Quaternion GetBoneRotation(uint actorId, Side side, SideBone boneId) { - return Quaternion.identity; - } - public virtual float GetBoneConfidence(uint actorId, Side side, SideBone boneId) { - return 0; - } - - public Quaternion GetBoneRotation(uint actorId, Side side, Finger fingerId, FingerBone fingerboneId) { - SideBone sideBoneId = BoneReference.HumanoidSideBone(fingerId, fingerboneId); - Quaternion q = GetBoneRotation(actorId, side, sideBoneId); - return q; - } - #endregion - - #region Controllers - public virtual ControllerState GetController(uint actorId, Side side) { - return new ControllerState(this, actorId, side); - } - - public virtual ControllerStateC GetControllerState(uint actorId, Side side) { - return new ControllerStateC(); - } - #endregion - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs.meta b/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs.meta deleted file mode 100644 index 6541f7d..0000000 --- a/Runtime/HumanoidFree/Libraries/Tracking/Tracking.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: a46c28db66593be4aa670f3c35712387 -timeCreated: 1533109553 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Online documentation.url b/Runtime/HumanoidFree/Online documentation.url deleted file mode 100644 index d73e0d7..0000000 --- a/Runtime/HumanoidFree/Online documentation.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -IDList= -URL=http://passervr.com/documentation/humanoid-control/ diff --git a/Runtime/HumanoidFree/Online documentation.url.meta b/Runtime/HumanoidFree/Online documentation.url.meta deleted file mode 100644 index 7290514..0000000 --- a/Runtime/HumanoidFree/Online documentation.url.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 98766d76e4b52764fa8296b73664d24b -timeCreated: 1472981280 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Passer VR Support.url b/Runtime/HumanoidFree/Passer VR Support.url deleted file mode 100644 index ccfd189..0000000 --- a/Runtime/HumanoidFree/Passer VR Support.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -IDList= -URL=http://passervr.com/support diff --git a/Runtime/HumanoidFree/Passer VR Support.url.meta b/Runtime/HumanoidFree/Passer VR Support.url.meta deleted file mode 100644 index c94daa3..0000000 --- a/Runtime/HumanoidFree/Passer VR Support.url.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d4eacf6a2f3714b4f99e575eeaa18399 -timeCreated: 1472981280 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses.meta b/Runtime/HumanoidFree/Poses.meta deleted file mode 100644 index d99499e..0000000 --- a/Runtime/HumanoidFree/Poses.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 91f511b5c3eae41429994005d0922ba5 -folderAsset: yes -timeCreated: 1536905145 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Body.meta b/Runtime/HumanoidFree/Poses/Body.meta deleted file mode 100644 index c54222f..0000000 --- a/Runtime/HumanoidFree/Poses/Body.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 2350fe055039e4b4a9e23170e8ec8375 -folderAsset: yes -timeCreated: 1536905160 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Body/Body Sit.asset b/Runtime/HumanoidFree/Poses/Body/Body Sit.asset deleted file mode 100644 index 1177b13..0000000 --- a/Runtime/HumanoidFree/Poses/Body/Body Sit.asset +++ /dev/null @@ -1,118 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Body Sit - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 1 - _sideBoneId: 0 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: -0.4106223, z: 0} - rotation: {x: 0, y: 2.332854e-10, z: -0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 7 - _sideBoneId: 0 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: -0.00000007235212, y: -0.41062236, z: 0.00000015646219} - rotation: {x: 2.138692e-19, y: -6.980372e-10, z: 9.1677066e-10, w: 1.0000001} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 12 - _sideBoneId: 5 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: -0.28309324, y: -0.49971843, z: 0.039168745} - rotation: {x: 0.00000002993613, y: -6.529149e-10, z: 0.57357657, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 40 - _sideBoneId: 5 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0.28000042, y: -0.5024111, z: 0.039168753} - rotation: {x: -0.00000002993613, y: 0.000000014131831, z: -0.5735762, w: 0.8191524} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 34 - _sideBoneId: 27 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: -0.00044578314, z: 0.41803014} - rotation: {x: 0.000000007450581, y: -9.01764e-10, z: -0.0000000031486707, w: 1.0000001} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 62 - _sideBoneId: 27 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: -0.00000014901161, z: 0.39403233} - rotation: {x: -7.665768e-19, y: 2.1145752e-10, z: -0.0000000032860044, w: 1} - scale: {x: 0, y: 0, z: 0} - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Body/Body Sit.asset.meta b/Runtime/HumanoidFree/Poses/Body/Body Sit.asset.meta deleted file mode 100644 index 569ac8b..0000000 --- a/Runtime/HumanoidFree/Poses/Body/Body Sit.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 242d59e24641f91478531553196cd98f -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset b/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset deleted file mode 100644 index 8ed5b54..0000000 --- a/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset +++ /dev/null @@ -1,117 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Body T-pose - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 1 - _sideBoneId: 0 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 2.333987e-10, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 7 - _sideBoneId: 0 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 12 - _sideBoneId: 5 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: -0.6467809, y: -0.09569061, z: 0.015764892} - rotation: {x: 2.3283064e-10, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 40 - _sideBoneId: 5 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0.65204, y: -0.09483445, z: 0.015242219} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 34 - _sideBoneId: 27 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 0 - side: 0 - _boneId: 62 - _sideBoneId: 27 - referenceBoneRef: - type: 0 - side: 0 - _boneId: 0 - _sideBoneId: 0 - setTranslation: 1 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} diff --git a/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset.meta b/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset.meta deleted file mode 100644 index bd2cf23..0000000 --- a/Runtime/HumanoidFree/Poses/Body/Body T-pose.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c953898596aa7fa4ba6dc3729d2ab116 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand.meta b/Runtime/HumanoidFree/Poses/Hand.meta deleted file mode 100644 index d9b9652..0000000 --- a/Runtime/HumanoidFree/Poses/Hand.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 68e620d93d782364182abe6512a92c86 -folderAsset: yes -timeCreated: 1536905151 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset b/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset deleted file mode 100644 index 122eb86..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset +++ /dev/null @@ -1,271 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Hand Closed - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.5, w: 0.8660254} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 12 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.42261827, w: 0.90630776} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.57357645, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 16 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.86602545, w: 0.49999997} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 20 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.53729963, w: 0.8433914} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6427876, w: 0.76604444} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.9063078, w: 0.42261824} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 24 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.5, w: 0.8660254} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: -0.0000008311435, y: -0.0000014144609, z: 0.46759272, w: 0.88394445} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 7 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.00008726646, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 8 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 7 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.00008726646, w: 1} - scale: {x: 0, y: 0, z: 0} - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset.meta b/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset.meta deleted file mode 100644 index aa2752a..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Closed.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8da1d6d26d38d91478f3f8fa534ca3f9 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset b/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset deleted file mode 100644 index e2c1142..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset +++ /dev/null @@ -1,254 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Hand Gun - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 12 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.57357645, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 16 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.86602545, w: 0.49999997} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 20 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.53729963, w: 0.8433914} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6427876, w: 0.76604444} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.9063078, w: 0.42261824} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 24 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.5, w: 0.8660254} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: -8.242821e-13, y: 0.4226183, z: 3.843691e-13, w: 0.90630776} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 7 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0.08715572, z: 0, w: 0.9961947} - scale: {x: 0, y: 0, z: 0} - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset.meta b/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset.meta deleted file mode 100644 index 97bfaac..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Gun.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 83a4175cc21a99548bbd101892bf2cde -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset b/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset deleted file mode 100644 index 0736b8c..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset +++ /dev/null @@ -1,16 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Hand Open - m_EditorClassIdentifier: - bonePoses: [] - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset.meta b/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset.meta deleted file mode 100644 index 42f5b02..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Open.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c52c874da441cac4d9d63d2c2650a0c2 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset b/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset deleted file mode 100644 index 9d2318e..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset +++ /dev/null @@ -1,254 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Hand Pointing - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0.022665638, y: 0.17216259, z: 0.12854323, w: 0.9763826} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 7 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0.08715588, z: 0, w: -0.99619466} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.57357645, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 16 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.86602545, w: 0.49999997} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 20 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.53729963, w: 0.8433914} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6427876, w: 0.76604444} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.9063078, w: 0.42261824} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 24 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.5, w: 0.8660254} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 12 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0, w: 1} - scale: {x: 0, y: 0, z: 0} - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset.meta b/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset.meta deleted file mode 100644 index 550a5d7..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Pointing.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 248415098d8c35a4f96f7175e00bb7d2 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset b/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset deleted file mode 100644 index 980c9da..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset +++ /dev/null @@ -1,254 +0,0 @@ -%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: 95a43ff8c7b21ef4abd21b58b897b26f, type: 3} - m_Name: Hand Thumb Up - m_EditorClassIdentifier: - bonePoses: - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.57357645, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 10 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 12 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 11 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.57357645, w: 0.81915206} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 14 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.81915206, w: 0.57357645} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 16 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 15 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6087614, w: 0.7933533} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 18 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.86602545, w: 0.49999997} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 20 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 19 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.53729963, w: 0.8433914} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.6427876, w: 0.76604444} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 22 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.9063078, w: 0.42261824} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 24 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 23 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0, z: 0.5, w: 0.8660254} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 5 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: -8.242821e-13, y: 0.4226183, z: 3.843691e-13, w: 0.90630776} - scale: {x: 0, y: 0, z: 0} - - boneType: 0 - boneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 7 - referenceBoneRef: - type: 2 - side: 0 - _boneId: 0 - _sideBoneId: 6 - setTranslation: 0 - setRotation: 1 - setScale: 0 - translation: {x: 0, y: 0, z: 0} - rotation: {x: 0, y: 0.08715572, z: 0, w: 0.9961947} - scale: {x: 0, y: 0, z: 0} - blendshapePoses: [] diff --git a/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset.meta b/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset.meta deleted file mode 100644 index 1cff759..0000000 --- a/Runtime/HumanoidFree/Poses/Hand/Hand Thumb Up.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c2f0a8c488286c24da9c12491666c1e4 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs.meta b/Runtime/HumanoidFree/Prefabs.meta deleted file mode 100644 index 2e1477d..0000000 --- a/Runtime/HumanoidFree/Prefabs.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: c7e2cf262e5681d439a6b6aa27307ac8 -folderAsset: yes -timeCreated: 1466886324 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Humanoid.prefab b/Runtime/HumanoidFree/Prefabs/Humanoid.prefab deleted file mode 100644 index d9c5a78..0000000 --- a/Runtime/HumanoidFree/Prefabs/Humanoid.prefab +++ /dev/null @@ -1,5680 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1003187176396958 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4968286101144654} - - component: {fileID: 114146988969048474} - - component: {fileID: 114262253121122728} - m_Layer: 0 - m_Name: Humanoid - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4968286101144654 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1003187176396958} - 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_Children: - - {fileID: 2524207632691600911} - - {fileID: 7740277310296953960} - - {fileID: 819564781098235500} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114146988969048474 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1003187176396958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b8af60788a29495468933ff82a4527ba, type: 3} - m_Name: - m_EditorClassIdentifier: - path: es/com.passervr.humanoidcontrol_free/Runtime/HumanoidFree/Scripts/ - headTarget: {fileID: 7980081989387465033} - leftHandTarget: {fileID: 6924276445279774429} - rightHandTarget: {fileID: 728085395196276210} - hipsTarget: {fileID: 35313795358146351} - leftFootTarget: {fileID: 280133226183094106} - rightFootTarget: {fileID: 1098007683880924658} - primaryTarget: 0 - targetsRig: {fileID: 1370077731969516542} - showTargetRig: 0 - avatarRig: {fileID: 0} - showAvatarRig: 1 - avatarNeckHeight: 0 - showMuscleTension: 0 - calculateBodyPose: 1 - animatorEnabled: 1 - animatorController: {fileID: 0} - pose: {fileID: 0} - editPose: 0 - remoteAvatar: {fileID: 0} - playerType: 0 - syncRootTransform: 1 - remoteTrackerIpAddress: - humanoidId: 0 - showRealObjects: 1 - _showSkeletons: 0 - physics: 1 - useGravity: 1 - generateColliders: 1 - haptics: 0 - startPosition: 0 - scaling: 1 - calibrateAtStart: 0 - dontDestroyOnLoad: 0 - disconnectInstances: 0 - gameControllerEnabled: 1 - gameControllerIndex: 0 - gameController: 0 - unityXR: - enabled: 1 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114146988969048474} - leapTracker: - enabled: 0 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114146988969048474} - isHeadMounted: 0 - custom: - enabled: 0 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114146988969048474} - forwardSpeed: 1 - backwardSpeed: 0.6 - sidewardSpeed: 1 - maxAcceleration: 1 - rotationSpeed: 60 - stepOffset: 0.3 - proximitySpeed: 0 - proximitySpeedRate: 0.8 - bodyPull: 0 - velocity: {x: 0, y: 0, z: 0} - targetVelocity: {x: 0, y: 0, z: 0} - acceleration: {x: 0, y: 0, z: 0} - turningVelocity: 0 - triggerEntered: 0 - collided: 0 - hitNormal: {x: 0, y: 0, z: 0} - humanoidRigidbody: {fileID: 0} - characterRigidbody: {fileID: 0} - bodyCapsule: {fileID: 0} - bodyCollider: {fileID: 0} - ground: {fileID: 0} - groundVelocity: {x: 0, y: 0, z: 0} - groundAngularVelocity: 0 - useLegLengthCorrection: 0 - animatorParameterForward: - animatorParameterSideward: - animatorParameterRotation: - animatorParameterHeight: - animatorParameterForwardIndex: 0 - animatorParameterSidewardIndex: 0 - animatorParameterRotationIndex: 0 - animatorParameterHeightIndex: 0 - isRemote: 0 - nwId: 0 - id: -1 ---- !u!114 &114262253121122728 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1003187176396958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: db813424629662a42ac8ec7f8fbfd7ce, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - fingerMovements: 1 - gameController: 0 - leftInputEvents: - - id: 0 - label: Stick Vertical - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: - - eventType: 6 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 1003187176396958} - methodName: Passer.Humanoid.HumanoidControl/MoveForward - parameters: - - fromEvent: 1 - localProperty: From Event - type: 1 - floatConstant: 0 - intConstant: 0 - boolConstant: 0 - stringConstant: - vector3Constant: {x: 0, y: 0, z: 0} - gameObjectConstant: {fileID: 0} - rigidbodyConstant: {fileID: 0} - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] - defaultParameterProperty: leftStickVertical - - id: 1 - label: Stick Horizontal - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: - - eventType: 6 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 1003187176396958} - methodName: Passer.Humanoid.HumanoidControl/MoveSideward - parameters: - - fromEvent: 1 - localProperty: From Event - type: 1 - floatConstant: 0 - intConstant: 0 - boolConstant: 0 - stringConstant: - vector3Constant: {x: 0, y: 0, z: 0} - gameObjectConstant: {fileID: 0} - rigidbodyConstant: {fileID: 0} - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] - defaultParameterProperty: leftStickHorizontal - - id: 2 - label: Stick Button - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 3 - label: Touchpad Vertical - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: leftTouchpadVertical - - id: 4 - label: Touchpad Horizontal - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: leftTouchpadHorizontal - - id: 5 - label: Touchpad Button - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 6 - label: Button 1 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 7 - label: Button 2 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 8 - label: Button 3 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 9 - label: Button 4 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 10 - label: Trigger 1 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 11 - label: Trigger 2 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 12 - label: Option - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - rightInputEvents: - - id: 0 - label: Stick Vertical - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 1 - label: Stick Horizontal - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 2 - label: Stick Button - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 3 - label: Touchpad Vertical - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 4 - label: Touchpad Horizontal - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 5 - label: Touchpad Button - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 6 - label: Button 1 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 7 - label: Button 2 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 8 - label: Button 3 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 9 - label: Button 4 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 10 - label: Trigger 1 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 11 - label: Trigger 2 - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: - - id: 12 - label: Option - tooltip: - eventTypeLabels: - - Never - - On Press - - On Release - - While Down - - While Up - - On Change - - Continuous - fromEventLabel: - events: [] - defaultParameterProperty: ---- !u!1 &292419999129953214 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3592547833315222537} - m_Layer: 0 - m_Name: Head_End_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3592547833315222537 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 292419999129953214} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.16325943, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8929222153988242160} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &304514990093418807 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4263678514780110732} - m_Layer: 0 - m_Name: Spine1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4263678514780110732 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 304514990093418807} - m_LocalRotation: {x: -0, y: -4.5145178e-32, z: -9.332244e-15, w: 1} - m_LocalPosition: {x: -4.2351647e-22, y: 0.11258185, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 146483180050904319} - m_Father: {fileID: 3987134310708048551} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &366792621749089684 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2773869395817682926} - m_Layer: 0 - m_Name: RightUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2773869395817682926 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 366792621749089684} - m_LocalRotation: {x: 0.0047789654, y: 0.00012399603, z: 0.0000005923608, w: 0.9999886} - m_LocalPosition: {x: 0.1564886, y: -1.6219496e-16, z: -3.679029e-39} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4249058868384445712} - m_Father: {fileID: 424115898826659248} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &563621270418297471 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6333793700588530597} - - component: {fileID: 35313795358146351} - m_Layer: 0 - m_Name: Hips - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6333793700588530597 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 563621270418297471} - m_LocalRotation: {x: -0, y: -0, z: -9.20181e-15, w: 1} - m_LocalPosition: {x: 0, y: 1.1138859, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6332245014863019486} - - {fileID: 5272594642193707320} - - {fileID: 3987134310708048551} - m_Father: {fileID: 2524207632691600911} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &35313795358146351 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 563621270418297471} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a92bd8efd3050c94ca4271d58273b4e0, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - hipsBaseHeight: -0.96801895 - newSpineIK: 0 - torsoAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - bodyRotation: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - chest: - name: - boneId: 5 - target: - length: 1.5575587 - transform: {fileID: 4263678514780110732} - baseRotation: {x: 0.13881722, y: 2.215905e-18, z: -1.455672e-17, w: 0.9903181} - basePosition: {x: -4.135903e-25, y: 0.09838284, z: -0.0000000055879354} - toBoneRotation: {x: 6.661338e-16, y: 3.4521218e-31, z: 5.182325e-16, w: 1} - bone: - transform: {fileID: 0} - length: 0.3582629 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: -5.182325e-16, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: -3.4521218e-31, z: -5.182325e-16, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - spine: - name: - boneId: 2 - target: - length: 0 - transform: {fileID: 3987134310708048551} - baseRotation: {x: -0.14465712, y: -2.1299905e-18, z: 1.4569539e-17, w: 0.98948187} - basePosition: {x: 0, y: 0.099871434, z: 0.0000000038999133} - toBoneRotation: {x: 4.6566195e-10, y: -4.1043502e-24, z: -8.814012e-15, w: 1} - bone: - transform: {fileID: 0} - length: 0.11258185 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 8.814012e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -4.6566195e-10, y: 4.1043502e-24, z: 8.814012e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hips: - name: - boneId: 1 - target: - length: 8.432076 - transform: {fileID: 6333793700588530597} - baseRotation: {x: 0.0016913532, y: 0, z: 0, w: 0.99999857} - basePosition: {x: 2.7755599e-18, y: 0.96801895, z: -0.07455683} - toBoneRotation: {x: 0, y: -0, z: 9.20181e-15, w: 1} - bone: - transform: {fileID: 0} - length: 0.09609294 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hipsTarget: {fileID: 35313795358146351} - bendingFactor: 1 - torsoLength: 0.5669377 - spine2HipsRotation: {x: 0, y: 0, z: -9.064944e-15, w: 1} ---- !u!1 &586576478049088199 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7713468394923976787} - m_Layer: 0 - m_Name: LeftShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7713468394923976787 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 586576478049088199} - m_LocalRotation: {x: -0, y: -1.1754944e-38, z: 5.1823254e-16, w: 1} - m_LocalPosition: {x: -0.04904938, y: 0.040630825, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5057495325285210709} - m_Father: {fileID: 3113660505878548270} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &715920286258790153 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5473054254573834404} - m_Layer: 0 - m_Name: RightHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5473054254573834404 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 715920286258790153} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802063, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8283956867106449357} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &832882597606729072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2535018421292305422} - m_Layer: 0 - m_Name: RightHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2535018421292305422 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832882597606729072} - m_LocalRotation: {x: -0.00013389184, y: 0.010465758, z: -0.01279156, w: 0.99986345} - m_LocalPosition: {x: 0.033593573, y: 0.00000000212642, z: -0.000000003319423} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8283956867106449357} - m_Father: {fileID: 2565122355157459722} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1044431757901746770 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3437189322826192555} - m_Layer: 0 - m_Name: RightHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3437189322826192555 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1044431757901746770} - m_LocalRotation: {x: -0.0000068470836, y: 0.0010127202, z: -0.0067608743, w: 0.99997663} - m_LocalPosition: {x: 0.049120463, y: 5.529728e-10, z: 0.0000000029795046} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3195765373362933698} - m_Father: {fileID: 7694011445082085447} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1058846922495316709 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7740277310296953960} - m_Layer: 0 - m_Name: Real World - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7740277310296953960 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1058846922495316709} - 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_Children: [] - m_Father: {fileID: 4968286101144654} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1150885721021700503 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1367469362349161091} - m_Layer: 0 - m_Name: RightHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1367469362349161091 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1150885721021700503} - m_LocalRotation: {x: 0.00004510139, y: -0.0043779872, z: -0.01030091, w: 0.9999374} - m_LocalPosition: {x: 0.037417915, y: -0.000000001542503, z: -0.0000000014879333} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7102781216452166161} - m_Father: {fileID: 5421611334272513992} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1203612774220683083 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 424115898826659248} - m_Layer: 0 - m_Name: RightShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &424115898826659248 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1203612774220683083} - m_LocalRotation: {x: -0, y: -1.1754944e-38, z: 5.1823254e-16, w: 1} - m_LocalPosition: {x: 0.049049404, y: 0.040627964, z: -0.012485102} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2773869395817682926} - m_Father: {fileID: 3113660505878548270} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1366324885650531596 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 82171149504432471} - - component: {fileID: 280133226183094106} - m_Layer: 0 - m_Name: LeftFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &82171149504432471 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1366324885650531596} - m_LocalRotation: {x: 0.020767761, y: -0.0000067159554, z: -0.004095184, w: -0.999776} - m_LocalPosition: {x: 0.0000000018626451, y: -0.46714398, z: -0.000000013038516} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 173989879821802103} - m_Father: {fileID: 8168424681774074368} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &280133226183094106 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1366324885650531596} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb3310a2943ad7741b6c53520f451c91, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - isLeft: 1 - side: 1 - otherFoot: {fileID: 1098007683880924658} - rotationSpeedLimitation: 0 - legAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - animationSpeed: 1 - velocityAnimationSpeed: 0 - isMoving: 0 - scale: {x: 1, y: 1, z: 1} - f: 0 - prevFrame: 0 - nextFrame: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 2 - upperLeg: - name: - boneId: 32 - target: - length: 0 - transform: {fileID: 6332245014863019486} - baseRotation: {x: 0.051287744, y: 0.0005637996, z: 0.010977737, w: 0.99862343} - basePosition: {x: -0.11306503, y: 0.0038180987, z: -0.0076525463} - toBoneRotation: {x: -0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} - bone: - transform: {fileID: 0} - length: 0.4569167 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -130, y: -45, z: -50} - maxAngles: {x: 30, y: 40, z: 30} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - lowerLeg: - name: - boneId: 33 - target: - length: 0.3890994 - transform: {fileID: 8168424681774074368} - baseRotation: {x: -0.061178457, y: 0.0014482728, z: 0.034985777, w: 0.9975125} - basePosition: {x: -9.313226e-10, y: -0.4977099, z: 0.000000037252903} - toBoneRotation: {x: -0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} - bone: - transform: {fileID: 0} - length: 0.46714398 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -15, y: NaN, z: NaN} - maxAngles: {x: 130, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - foot: - name: - boneId: 34 - target: - length: 0.3890995 - transform: {fileID: 82171149504432471} - baseRotation: {x: 0.0082407575, y: 0.0005350625, z: -0.045995984, w: 0.9989076} - basePosition: {x: -0.0664299, y: 0.089666426, z: -0.12843405} - toBoneRotation: {x: -0, y: 0, z: 0.00000000818479, w: 1} - bone: - transform: {fileID: 0} - length: 0.14564736 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -45, y: 0, z: -30} - maxAngles: {x: 70, y: 0, z: 20} - baseRotation: {x: 0.28736073, y: -0.00000032279587, z: 0.00000009684347, w: 0.95782244} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - toes: - name: - boneId: 35 - target: - length: 0 - transform: {fileID: 173989879821802103} - baseRotation: {x: 2.0411606e-17, y: 7.275969e-12, z: -0.000000008381947, w: 1.0000002} - basePosition: {x: -0.005016463, y: -0.07128256, z: 0.11779294} - toBoneRotation: {x: -0, y: 0, z: 1.7763568e-15, w: 1} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -70, y: NaN, z: NaN} - maxAngles: {x: 45, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - jointLimitations: 1 - slidePrevention: 0 - physics: 1 - groundEvent: - id: 1 - label: Ground Event - tooltip: 'Call function based on ground standing - - Parameter: the ground - object' - eventTypeLabels: - - Never - - On Grounded - - On not Grounded - - While Grounded - - While not Grounded - - When Ground Changes - - Always - fromEventLabel: ground.gameObject - events: [] - ground: {fileID: 0} - groundNormal: {x: 0, y: 1, z: 0} - groundTranslation: {x: 0, y: 0, z: 0} - groundDistance: -0.060000002 - soleThicknessFoot: 0 - soleThicknessToes: 0 ---- !u!1 &1386737684889340643 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4672632719228974860} - m_Layer: 0 - m_Name: LeftHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4672632719228974860 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1386737684889340643} - m_LocalRotation: {x: 9.382326e-10, y: -7.190296e-18, z: 0.00000004003126, w: 1} - m_LocalPosition: {x: -0.029778114, y: 0.000015687518, z: 0.00024009302} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7059981216850048614} - m_Father: {fileID: 815571997958144132} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1846343395287115980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7102781216452166161} - m_Layer: 0 - m_Name: RightHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7102781216452166161 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1846343395287115980} - m_LocalRotation: {x: -0.000002926688, y: 0.00021634062, z: -0.0135223325, w: 0.9999086} - m_LocalPosition: {x: 0.023639005, y: 0.0000000011276597, z: 0.0000000018753248} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4410791377464064158} - m_Father: {fileID: 1367469362349161091} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1858689555776778019 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4299558758846679023} - m_Layer: 0 - m_Name: LeftHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4299558758846679023 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1858689555776778019} - m_LocalRotation: {x: -6.938894e-18, y: 6.203854e-25, z: -0.000000048550163, w: 1} - m_LocalPosition: {x: -0.024411585, y: -0.00263807, z: 0.00006414011} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7787582702427072999} - m_Father: {fileID: 5079013459638452076} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2188552291069739373 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3195765373362933698} - m_Layer: 0 - m_Name: RightHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3195765373362933698 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2188552291069739373} - m_LocalRotation: {x: -0.00007100405, y: 0.0031085527, z: -0.022835713, w: 0.9997344} - m_LocalPosition: {x: 0.0278478, y: 7.5198514e-10, z: 0.000000003433486} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7355896404086969169} - m_Father: {fileID: 3437189322826192555} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2308373696081536077 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5662060846631334664} - m_Layer: 0 - m_Name: RightHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5662060846631334664 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2308373696081536077} - m_LocalRotation: {x: -0.004359492, y: 0.059448313, z: -0.07300611, w: 0.9955486} - m_LocalPosition: {x: 0.061303847, y: -0.0061584087, z: -0.019985441} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5687024761866430405} - m_Father: {fileID: 6263786910353907211} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2510354884015271288 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7244628977030808089} - m_Layer: 0 - m_Name: LeftHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7244628977030808089 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2510354884015271288} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.04567215, y: 0.007352142, z: -0.0017597537} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4570772102465016956} - m_Father: {fileID: 8467765973942035875} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2595729650083529388 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2565122355157459722} - m_Layer: 0 - m_Name: RightHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2565122355157459722 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2595729650083529388} - m_LocalRotation: {x: 0.000012148868, y: -0.0026570668, z: -0.0045712627, w: 0.999986} - m_LocalPosition: {x: 0.05360672, y: -0.0000000024738256, z: -0.000000006730261} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2535018421292305422} - m_Father: {fileID: 3541944507320363570} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2710170906446370886 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2524207632691600911} - - component: {fileID: 1370077731969516542} - m_Layer: 0 - m_Name: Target Rig - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2524207632691600911 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2710170906446370886} - 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_Children: - - {fileID: 4368098808873916007} - - {fileID: 6333793700588530597} - m_Father: {fileID: 4968286101144654} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!95 &1370077731969516542 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2710170906446370886} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 0ef46fdec482c674c8bd176e0b18d448, type: 3} - m_Controller: {fileID: 0} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 1 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1 &2742881518587708218 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5057495325285210709} - m_Layer: 0 - m_Name: LeftUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5057495325285210709 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2742881518587708218} - m_LocalRotation: {x: 0.0047750277, y: 0.000000042146848, z: 7.940934e-22, w: 0.9999886} - m_LocalPosition: {x: -0.15648837, y: 1.6219474e-16, z: 3.679024e-39} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 796111769679837225} - m_Father: {fileID: 7713468394923976787} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2831637195797682081 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 146483180050904319} - m_Layer: 0 - m_Name: Spine2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &146483180050904319 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2831637195797682081} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.0527506e-16, y: 0.120330654, z: -1.9229062e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3113660505878548270} - m_Father: {fileID: 4263678514780110732} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2892946025019427136 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2247109597199933487} - m_Layer: 0 - m_Name: LeftHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2247109597199933487 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2892946025019427136} - m_LocalRotation: {x: 0.000022361754, y: 0.003334172, z: 0.006706791, w: 0.999972} - m_LocalPosition: {x: -0.049120728, y: -0.0000000011423253, z: -2.0736479e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5079013459638452076} - m_Father: {fileID: 2184748261822125251} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3053674495249087924 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6263786910353907211} - m_Layer: 0 - m_Name: RightHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6263786910353907211 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3053674495249087924} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.045672074, y: 0.0073501584, z: -0.0017598001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5662060846631334664} - m_Father: {fileID: 7624083477925197851} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3060281951275387980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2694456733257721404} - m_Layer: 0 - m_Name: RightHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2694456733257721404 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3060281951275387980} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04375305, y: 0.006900177, z: 0.026853401} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7694011445082085447} - m_Father: {fileID: 7624083477925197851} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3124535111232271493 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 149435229864705591} - m_Layer: 0 - m_Name: RightHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &149435229864705591 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3124535111232271493} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029778594, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 906338171309068915} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3267643143930698079 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7624083477925197851} - - component: {fileID: 728085395196276210} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7624083477925197851 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3267643143930698079} - m_LocalRotation: {x: 0.0033267322, y: -0.061557796, z: 0.026148276, w: 0.9977554} - m_LocalPosition: {x: 0.28401995, y: -2.943768e-16, z: -6.677277e-39} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2694456733257721404} - - {fileID: 7576604284763044995} - - {fileID: 6732661480139142313} - - {fileID: 6263786910353907211} - - {fileID: 6729240872577082944} - m_Father: {fileID: 4249058868384445712} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &728085395196276210 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3267643143930698079} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2c296d86543384d49ba4e7f2ea1179cb, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - isLeft: 0 - side: 2 - outward: {x: 1, y: 0, z: 0} - up: {x: 0, y: 0, z: 0} - fingers: - handTarget: {fileID: 728085395196276210} - thumb: - proximal: - name: - boneId: 41 - target: - length: 0 - transform: {fileID: 6729240872577082944} - baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} - basePosition: {x: 0.038734883, y: -0.0075387624, z: 0.017603258} - toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} - bone: - transform: {fileID: 0} - length: 0.049988925 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 42 - target: - length: 0 - transform: {fileID: 8208221923192374018} - baseRotation: {x: 0.00000067185977, y: 0.00068486726, z: 0.00097989, w: 0.9999994} - basePosition: {x: 0.043193325, y: 0.00000009033829, z: -0.000000072061084} - toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} - bone: - transform: {fileID: 0} - length: 0.0347243 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 43 - target: - length: 0 - transform: {fileID: 4154170314777914177} - baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} - basePosition: {x: 0.034723707, y: 0.000028712675, z: -0.00020204074} - toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - index: - proximal: - name: - boneId: 45 - target: - length: 0 - transform: {fileID: 7694011445082085447} - baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} - basePosition: {x: 0.110632144, y: -0.0052804938, z: 0.02043517} - toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} - bone: - transform: {fileID: 0} - length: 0.049120452 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 46 - target: - length: 0 - transform: {fileID: 3437189322826192555} - baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} - basePosition: {x: 0.031812068, y: 0.0000000115833245, z: 0.000000050424205} - toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} - bone: - transform: {fileID: 0} - length: 0.027847793 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 47 - target: - length: 0 - transform: {fileID: 3195765373362933698} - baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} - basePosition: {x: 0.020972585, y: -0.000000033031938, z: -0.000000030615826} - toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - middle: - proximal: - name: - boneId: 49 - target: - length: 0 - transform: {fileID: 3541944507320363570} - baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} - basePosition: {x: 0.10902338, y: 0.00000002005254, z: 0.00000002089655} - toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} - bone: - transform: {fileID: 0} - length: 0.053606734 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 50 - target: - length: 0 - transform: {fileID: 2565122355157459722} - baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} - basePosition: {x: 0.03919523, y: -0.000000031330273, z: 0.00000006695336} - toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} - bone: - transform: {fileID: 0} - length: 0.033593573 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 51 - target: - length: 0 - transform: {fileID: 2535018421292305422} - baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} - basePosition: {x: 0.02793408, y: 0.000000012776582, z: -0.000000037167183} - toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - ring: - proximal: - name: - boneId: 53 - target: - length: 0 - transform: {fileID: 5662060846631334664} - baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} - basePosition: {x: 0.104699, y: -0.0033326682, z: -0.023172297} - toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} - bone: - transform: {fileID: 0} - length: 0.046718344 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 54 - target: - length: 0 - transform: {fileID: 5687024761866430405} - baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} - basePosition: {x: 0.034748368, y: 0.000000041851308, z: 0.00000003387686} - toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} - bone: - transform: {fileID: 0} - length: 0.03241227 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 55 - target: - length: 0 - transform: {fileID: 8979637045327617032} - baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} - basePosition: {x: 0.021958932, y: 0.000000003812829, z: 0.000000039618854} - toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - little: - proximal: - name: - boneId: 57 - target: - length: 0 - transform: {fileID: 5421611334272513992} - baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} - basePosition: {x: 0.10166885, y: -0.0052805147, z: -0.044119988} - toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} - bone: - transform: {fileID: 0} - length: 0.03741792 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 58 - target: - length: 0 - transform: {fileID: 1367469362349161091} - baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} - basePosition: {x: 0.029196553, y: 0.000000012631062, z: 0.000000029656803} - toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} - bone: - transform: {fileID: 0} - length: 0.023638997 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 59 - target: - length: 0 - transform: {fileID: 7102781216452166161} - baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} - basePosition: {x: 0.013552905, y: 0.000000024650944, z: 0.000000012807} - toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - allFingers: - - proximal: - name: - boneId: 41 - target: - length: 0 - transform: {fileID: 6729240872577082944} - baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} - basePosition: {x: 0.038734883, y: -0.0075387624, z: 0.017603258} - toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} - bone: - transform: {fileID: 0} - length: 0.049988925 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 42 - target: - length: 0 - transform: {fileID: 8208221923192374018} - baseRotation: {x: 0.00000067185977, y: 0.00068486726, z: 0.00097989, w: 0.9999994} - basePosition: {x: 0.043193325, y: 0.00000009033829, z: -0.000000072061084} - toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} - bone: - transform: {fileID: 0} - length: 0.0347243 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 43 - target: - length: 0 - transform: {fileID: 4154170314777914177} - baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} - basePosition: {x: 0.034723707, y: 0.000028712675, z: -0.00020204074} - toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 45 - target: - length: 0 - transform: {fileID: 7694011445082085447} - baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} - basePosition: {x: 0.110632144, y: -0.0052804938, z: 0.02043517} - toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} - bone: - transform: {fileID: 0} - length: 0.049120452 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 46 - target: - length: 0 - transform: {fileID: 3437189322826192555} - baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} - basePosition: {x: 0.031812068, y: 0.0000000115833245, z: 0.000000050424205} - toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} - bone: - transform: {fileID: 0} - length: 0.027847793 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 47 - target: - length: 0 - transform: {fileID: 3195765373362933698} - baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} - basePosition: {x: 0.020972585, y: -0.000000033031938, z: -0.000000030615826} - toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 49 - target: - length: 0 - transform: {fileID: 3541944507320363570} - baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} - basePosition: {x: 0.10902338, y: 0.00000002005254, z: 0.00000002089655} - toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} - bone: - transform: {fileID: 0} - length: 0.053606734 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 50 - target: - length: 0 - transform: {fileID: 2565122355157459722} - baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} - basePosition: {x: 0.03919523, y: -0.000000031330273, z: 0.00000006695336} - toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} - bone: - transform: {fileID: 0} - length: 0.033593573 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 51 - target: - length: 0 - transform: {fileID: 2535018421292305422} - baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} - basePosition: {x: 0.02793408, y: 0.000000012776582, z: -0.000000037167183} - toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 53 - target: - length: 0 - transform: {fileID: 5662060846631334664} - baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} - basePosition: {x: 0.104699, y: -0.0033326682, z: -0.023172297} - toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} - bone: - transform: {fileID: 0} - length: 0.046718344 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 54 - target: - length: 0 - transform: {fileID: 5687024761866430405} - baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} - basePosition: {x: 0.034748368, y: 0.000000041851308, z: 0.00000003387686} - toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} - bone: - transform: {fileID: 0} - length: 0.03241227 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 55 - target: - length: 0 - transform: {fileID: 8979637045327617032} - baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} - basePosition: {x: 0.021958932, y: 0.000000003812829, z: 0.000000039618854} - toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 57 - target: - length: 0 - transform: {fileID: 5421611334272513992} - baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} - basePosition: {x: 0.10166885, y: -0.0052805147, z: -0.044119988} - toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} - bone: - transform: {fileID: 0} - length: 0.03741792 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 58 - target: - length: 0 - transform: {fileID: 1367469362349161091} - baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} - basePosition: {x: 0.029196553, y: 0.000000012631062, z: 0.000000029656803} - toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} - bone: - transform: {fileID: 0} - length: 0.023638997 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 59 - target: - length: 0 - transform: {fileID: 7102781216452166161} - baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} - basePosition: {x: 0.013552905, y: 0.000000024650944, z: 0.000000012807} - toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - rotationSpeedLimitation: 0 - unity: {fileID: 0} - armAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - armSwing: 0 - unityXR: - enabled: 1 - target: {fileID: 728085395196276210} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - controller: {fileID: 0} - leap: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - stretchlessTarget: {fileID: 0} - shoulder: - name: - boneId: 36 - target: - length: 0 - transform: {fileID: 424115898826659248} - baseRotation: {x: -0.004315328, y: 0.16464703, z: -0.04999076, w: 0.9850756} - basePosition: {x: 0.0195458, y: 0.28317055, z: 0.052202977} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.1564886 - jointLimitations: 1 - maxAngle: 30 - minAngles: {x: 0, y: -45, z: 0} - maxAngles: {x: 0, y: 0, z: 45} - baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - upperArm: - name: - boneId: 37 - target: - length: 0 - transform: {fileID: 2773869395817682926} - baseRotation: {x: -0.055432968, y: -0.0940898, z: 0.018999131, w: 0.99383783} - basePosition: {x: 0.17596613, y: -9.313226e-10, z: 0.000000007450581} - toBoneRotation: {x: 2.328313e-10, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.25876004 - jointLimitations: 0 - maxAngle: 120 - minAngles: {x: -180, y: -130, z: -45} - maxAngles: {x: 60, y: 45, z: 180} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -2.328313e-10, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - forearm: - name: - boneId: 38 - target: - length: 0.26173532 - transform: {fileID: 4249058868384445712} - baseRotation: {x: 0.000000034648366, y: -0.17829426, z: -0.0000000033409975, - w: 0.98397756} - basePosition: {x: 0.20965332, y: 0.0000000018626454, z: 0.00000006717164} - toBoneRotation: {x: 6.938894e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.28401992 - jointLimitations: 0 - maxAngle: 130 - minAngles: {x: 0, y: -150, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.938894e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hand: - name: - boneId: 40 - target: - length: 0 - transform: {fileID: 7624083477925197851} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: -0.009768442, y: 0.06193218, z: -0.025749847, w: 0.99770033} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 100 - minAngles: {x: -90, y: -20, z: -70} - maxAngles: {x: 45, y: 50, z: 70} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.009768442, y: -0.06193218, z: 0.025749847, w: 0.99770033} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - poseMethod: 0 - physics: 1 - physicsMode: 2 - strength: 100 - grabbingTechnique: 0 - touchInteraction: 1 - poseMixer: - mixedPoses: [] - poseMode: 0 - grabSocket: {fileID: 0} - pinchSocket: {fileID: 0} - grabbedPrefab: {fileID: 0} - grabbedObject: {fileID: 0} - grabbedHandle: {fileID: 0} - targetToHandle: {x: 0, y: 0, z: 0} - grabbedRigidbody: 0 - grabbedKinematicRigidbody: 0 - colliders: [] - twoHandedGrab: 0 - targetToSecondaryHandle: {x: 0, y: 0, z: 0} - poseEvent: - id: 1 - label: Pose Event - tooltip: 'Call functions based on recognized posesParameter: the index of the - recognized pose' - eventTypeLabels: - - Never - - On Pose Recognized - - On No Pose Recongnized - - While Pose Recognized - - While No Pose Recognized - - When Pose Changes - - Always - fromEventLabel: poseMixer.detectedPoseIx - events: [] - touchEvent: - id: 2 - label: Touch Event - tooltip: 'Call funtions based on touched objectsParameter: the touched object' - eventTypeLabels: - - Never - - On Touch Start - - On Touch End - - While Touching - - While not Touching - - On Touched Object Changes - - Always - fromEventLabel: touchedObject - events: [] - grabEvent: - id: 3 - label: Grab Event - tooltip: 'Call functions based on grabbed objectsParameter: the grabbed object' - eventTypeLabels: - - Never - - On Grab Start - - On Grab End - - While Holding Object - - While not Holding Object - - On Grabbed Object Changes - - Always - fromEventLabel: grabbedObject - events: [] - handPalm: {fileID: 0} - handRigidbody: {fileID: 0} - handPhysics: {fileID: 0} - grabbedChanged: 0 - directFingerMovements: 1 ---- !u!1 &3307463942974374587 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4368098808873916007} - - component: {fileID: 2919380765310490023} - - component: {fileID: 6950067159559971973} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4368098808873916007 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3307463942974374587} - m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2524207632691600911} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2919380765310490023 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3307463942974374587} - m_Mesh: {fileID: 4300000, guid: fcf9a9e3fb67cb64887a4d17ddc7c85c, type: 3} ---- !u!23 &6950067159559971973 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3307463942974374587} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 15932f28e65def049945387d8ce8f70c, 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: 0 - 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 ---- !u!1 &3371603549962327117 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1469898898888776885} - m_Layer: 0 - m_Name: LeftHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1469898898888776885 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3371603549962327117} - m_LocalRotation: {x: 0.000043546504, y: 0.0030319644, z: 0.014361531, w: 0.9998923} - m_LocalPosition: {x: -0.023639707, y: -0.0000000011557972, z: 0.0000000047519753} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5883492204566660873} - m_Father: {fileID: 240730503903211994} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3395789967097393385 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2184748261822125251} - m_Layer: 0 - m_Name: LeftHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2184748261822125251 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3395789967097393385} - m_LocalRotation: {x: -0.00317021, y: -0.06252101, z: 0.05054191, w: 0.99675804} - m_LocalPosition: {x: -0.075136304, y: -0.0066132913, z: -0.000988517} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2247109597199933487} - m_Father: {fileID: 575118281284780715} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3606168334051517744 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2120030401919416590} - m_Layer: 0 - m_Name: LeftHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2120030401919416590 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3606168334051517744} - m_LocalRotation: {x: -0.000000008381903, y: 0.0000023022294, z: -0.0023784682, w: 0.9999972} - m_LocalPosition: {x: -0.046718843, y: 4.5110937e-10, z: 0.0000000026047928} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5266872343266854744} - m_Father: {fileID: 4570772102465016956} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3682125884130507289 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5687024761866430405} - m_Layer: 0 - m_Name: RightHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5687024761866430405 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3682125884130507289} - m_LocalRotation: {x: 0.000013167039, y: 0.003797423, z: 0.0034671898, w: 0.99998677} - m_LocalPosition: {x: 0.04671835, y: 4.2200554e-10, z: 0.000000007697963} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8979637045327617032} - m_Father: {fileID: 5662060846631334664} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3704755307910488008 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4073333712384793646} - - component: {fileID: 7980081989387465033} - m_Layer: 0 - m_Name: Head - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4073333712384793646 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3704755307910488008} - m_LocalRotation: {x: 2.26e-43, y: -4.7019774e-38, z: -1.5585271e-15, w: 1} - m_LocalPosition: {x: 1.1911401e-21, y: 0.10004067, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8929222153988242160} - m_Father: {fileID: 3458644235406456004} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &7980081989387465033 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3704755307910488008} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 35164cbaf9701d94a8a457b1aeadc9dd, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - tracking: 0 - unity: {fileID: 0} - headAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - headAnimation: 1 - faceAnimation: 1 - unityXR: - enabled: 1 - target: {fileID: 7980081989387465033} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - sensorComponent: {fileID: 0} - head: - name: - boneId: 7 - target: - length: 0 - transform: {fileID: 4073333712384793646} - baseRotation: {x: -0.05107844, y: 0.00006798714, z: 0.001423687, w: 0.9986939} - basePosition: {x: 0.00029400006, y: 1.6174197, z: -0.09445348} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - neck: - name: - boneId: 6 - target: - length: 0.103641346 - transform: {fileID: 3458644235406456004} - baseRotation: {x: 0.055280615, y: -0.00006199547, z: -0.0014239603, w: 0.99847007} - basePosition: {x: -2.729696e-23, y: 0.35208222, z: 0} - toBoneRotation: {x: 6.661338e-16, y: -1.0381878e-30, z: -1.5585273e-15, w: 1} - bone: - transform: {fileID: 0} - length: 0.100040674 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -55, y: -70, z: -35} - maxAngles: {x: 80, y: 70, z: 35} - baseRotation: {x: 0, y: 0, z: 1.5585273e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 1.0381878e-30, z: 1.5585273e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - headTarget: {fileID: 7980081989387465033} - audioEnergy: 0 - lookDirection: {x: 0, y: 0, z: 1} - localLookDirection: {x: 0, y: 0, z: 1} - neck2eyes: {x: -7.9873386e-11, y: 0.13, z: 0.13} - head2eyes: {x: 0.017554123, y: 0.029959321, z: 0.12880936} - collisionFader: 0 - isInsideCollider: 0 - virtual3d: 0 - screenTransform: {fileID: 0} - trackingEvent: - id: 1 - label: Tracking Event - tooltip: 'Call functions using the HMD tracking status - - Parameter: HMD - tracking' - eventTypeLabels: - - Never - - On Tracking Start - - On Tracking Stop - - While Tracking - - While not Tracking - - On Tracking Changes - - Always - fromEventLabel: tracking - events: [] - audioEvent: - id: 2 - label: Audio Event - tooltip: 'Call functions based on the microphone audio level - - Parameter: - the audio level' - eventTypeLabels: - - Never - - On Loud Start - - On Silence Start - - While Noisy - - While Silent - - On Level Changes - - Always - fromEventLabel: audioEnergy - events: [] - insideColliderEvent: - id: 5 - label: In Collider Event - tooltip: 'Call functions using the head being inside Colliders - - Parameter: - isInsideCollider state' - eventTypeLabels: - - Never - - When Head Enters Collider - - When Head Exits Collider - - While Head is inside Collider - - While Head outside Collider - - When Enters/Exists Collider - - Always - fromEventLabel: Inside Collider - events: [] - smRenderer: {fileID: 0} - headRigidbody: {fileID: 0} ---- !u!1 &4050125997345165171 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7261840188996162573} - m_Layer: 0 - m_Name: LeftHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7261840188996162573 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4050125997345165171} - m_LocalRotation: {x: 1.1672813e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.026661986, y: -0.0027456665, z: 0.0000018486779} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8056735918173110953} - m_Father: {fileID: 7109531786445315003} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4093552793815176161 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8979637045327617032} - m_Layer: 0 - m_Name: RightHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8979637045327617032 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4093552793815176161} - m_LocalRotation: {x: -0.000035283232, y: 0.0021739898, z: -0.016227672, w: 0.999866} - m_LocalPosition: {x: 0.03241226, y: -8.913208e-10, z: 0.0000000020934112} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6766280550936899431} - m_Father: {fileID: 5687024761866430405} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4137438995953446816 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 906338171309068915} - m_Layer: 0 - m_Name: RightHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &906338171309068915 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4137438995953446816} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.029777298, y: 0.00011596679, z: 0.00026114538} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 149435229864705591} - m_Father: {fileID: 4154170314777914177} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4295241878036380561 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8467765973942035875} - - component: {fileID: 6924276445279774429} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8467765973942035875 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4295241878036380561} - m_LocalRotation: {x: 0.0033115982, y: 0.061764855, z: -0.02614338, w: 0.99774283} - m_LocalPosition: {x: -0.28402025, y: 2.9437706e-16, z: 6.677284e-39} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 575118281284780715} - - {fileID: 3120831056339158160} - - {fileID: 2718435911021713927} - - {fileID: 7244628977030808089} - - {fileID: 2937189714163428199} - m_Father: {fileID: 796111769679837225} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6924276445279774429 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4295241878036380561} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2c296d86543384d49ba4e7f2ea1179cb, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - isLeft: 1 - side: 1 - outward: {x: -1, y: 0, z: 0} - up: {x: 0, y: 0, z: 0} - fingers: - handTarget: {fileID: 6924276445279774429} - thumb: - proximal: - name: - boneId: 13 - target: - length: 0 - transform: {fileID: 2937189714163428199} - baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} - basePosition: {x: -0.03873508, y: -0.0075387624, z: 0.017603243} - toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} - bone: - transform: {fileID: 0} - length: 0.049988233 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 14 - target: - length: 0 - transform: {fileID: 1767130827922383620} - baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} - basePosition: {x: -0.04319329, y: 0.00000006798655, z: 0.0000000021536835} - toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} - bone: - transform: {fileID: 0} - length: 0.03472507 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 15 - target: - length: 0 - transform: {fileID: 815571997958144132} - baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} - basePosition: {x: -0.03472478, y: -0.00007951213, z: 0.00010129184} - toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - index: - proximal: - name: - boneId: 17 - target: - length: 0 - transform: {fileID: 2184748261822125251} - baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} - basePosition: {x: -0.11063229, y: -0.005280541, z: 0.020435156} - toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} - bone: - transform: {fileID: 0} - length: 0.04912074 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 18 - target: - length: 0 - transform: {fileID: 2247109597199933487} - baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} - basePosition: {x: -0.03181219, y: 0.000000007945346, z: 0.0000000391301} - toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} - bone: - transform: {fileID: 0} - length: 0.02784785 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 19 - target: - length: 0 - transform: {fileID: 5079013459638452076} - baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} - basePosition: {x: -0.020972619, y: 0.000000031586296, z: 0.000000031773837} - toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - middle: - proximal: - name: - boneId: 21 - target: - length: 0 - transform: {fileID: 6734234515771128407} - baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} - basePosition: {x: -0.109023385, y: -0.000000021798769, z: -0.000000044412445} - toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} - bone: - transform: {fileID: 0} - length: 0.053606123 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 22 - target: - length: 0 - transform: {fileID: 8049467791892340524} - baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} - basePosition: {x: -0.039195392, y: 0.0000000031141099, z: 0.000000044878107} - toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} - bone: - transform: {fileID: 0} - length: 0.033593606 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 23 - target: - length: 0 - transform: {fileID: 7109531786445315003} - baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} - basePosition: {x: -0.027933791, y: 0.00000003290188, z: 0.000000039216047} - toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - ring: - proximal: - name: - boneId: 25 - target: - length: 0 - transform: {fileID: 4570772102465016956} - baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} - basePosition: {x: -0.10469905, y: -0.003332876, z: -0.02317215} - toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} - bone: - transform: {fileID: 0} - length: 0.046718832 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 26 - target: - length: 0 - transform: {fileID: 2120030401919416590} - baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, - w: 0.9999972} - basePosition: {x: -0.034748577, y: 0.000000013533281, z: 0.000000019106665} - toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} - bone: - transform: {fileID: 0} - length: 0.032411408 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 27 - target: - length: 0 - transform: {fileID: 5266872343266854744} - baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} - basePosition: {x: -0.021958793, y: 0.0000000024233486, z: 0.000000054079365} - toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - little: - proximal: - name: - boneId: 29 - target: - length: 0 - transform: {fileID: 7460476021837470159} - baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} - basePosition: {x: -0.10166924, y: -0.0052805482, z: -0.04411999} - toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} - bone: - transform: {fileID: 0} - length: 0.03741744 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 30 - target: - length: 0 - transform: {fileID: 240730503903211994} - baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} - basePosition: {x: -0.029196521, y: -0.00000001839362, z: -0.00000003594323} - toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} - bone: - transform: {fileID: 0} - length: 0.023639701 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 31 - target: - length: 0 - transform: {fileID: 1469898898888776885} - baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} - basePosition: {x: -0.013552994, y: -0.000000018131686, z: 0.0000000046262745} - toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - allFingers: - - proximal: - name: - boneId: 13 - target: - length: 0 - transform: {fileID: 2937189714163428199} - baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} - basePosition: {x: -0.03873508, y: -0.0075387624, z: 0.017603243} - toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} - bone: - transform: {fileID: 0} - length: 0.049988233 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 14 - target: - length: 0 - transform: {fileID: 1767130827922383620} - baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} - basePosition: {x: -0.04319329, y: 0.00000006798655, z: 0.0000000021536835} - toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} - bone: - transform: {fileID: 0} - length: 0.03472507 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 15 - target: - length: 0 - transform: {fileID: 815571997958144132} - baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} - basePosition: {x: -0.03472478, y: -0.00007951213, z: 0.00010129184} - toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 17 - target: - length: 0 - transform: {fileID: 2184748261822125251} - baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} - basePosition: {x: -0.11063229, y: -0.005280541, z: 0.020435156} - toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} - bone: - transform: {fileID: 0} - length: 0.04912074 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 18 - target: - length: 0 - transform: {fileID: 2247109597199933487} - baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} - basePosition: {x: -0.03181219, y: 0.000000007945346, z: 0.0000000391301} - toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} - bone: - transform: {fileID: 0} - length: 0.02784785 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 19 - target: - length: 0 - transform: {fileID: 5079013459638452076} - baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} - basePosition: {x: -0.020972619, y: 0.000000031586296, z: 0.000000031773837} - toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 21 - target: - length: 0 - transform: {fileID: 6734234515771128407} - baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} - basePosition: {x: -0.109023385, y: -0.000000021798769, z: -0.000000044412445} - toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} - bone: - transform: {fileID: 0} - length: 0.053606123 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 22 - target: - length: 0 - transform: {fileID: 8049467791892340524} - baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} - basePosition: {x: -0.039195392, y: 0.0000000031141099, z: 0.000000044878107} - toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} - bone: - transform: {fileID: 0} - length: 0.033593606 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 23 - target: - length: 0 - transform: {fileID: 7109531786445315003} - baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} - basePosition: {x: -0.027933791, y: 0.00000003290188, z: 0.000000039216047} - toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 25 - target: - length: 0 - transform: {fileID: 4570772102465016956} - baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} - basePosition: {x: -0.10469905, y: -0.003332876, z: -0.02317215} - toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} - bone: - transform: {fileID: 0} - length: 0.046718832 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 26 - target: - length: 0 - transform: {fileID: 2120030401919416590} - baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, - w: 0.9999972} - basePosition: {x: -0.034748577, y: 0.000000013533281, z: 0.000000019106665} - toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} - bone: - transform: {fileID: 0} - length: 0.032411408 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 27 - target: - length: 0 - transform: {fileID: 5266872343266854744} - baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} - basePosition: {x: -0.021958793, y: 0.0000000024233486, z: 0.000000054079365} - toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 29 - target: - length: 0 - transform: {fileID: 7460476021837470159} - baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} - basePosition: {x: -0.10166924, y: -0.0052805482, z: -0.04411999} - toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} - bone: - transform: {fileID: 0} - length: 0.03741744 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 30 - target: - length: 0 - transform: {fileID: 240730503903211994} - baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} - basePosition: {x: -0.029196521, y: -0.00000001839362, z: -0.00000003594323} - toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} - bone: - transform: {fileID: 0} - length: 0.023639701 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 31 - target: - length: 0 - transform: {fileID: 1469898898888776885} - baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} - basePosition: {x: -0.013552994, y: -0.000000018131686, z: 0.0000000046262745} - toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - rotationSpeedLimitation: 0 - unity: {fileID: 0} - armAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - armSwing: 0 - unityXR: - enabled: 1 - target: {fileID: 6924276445279774429} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - controller: {fileID: 0} - leap: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - stretchlessTarget: {fileID: 0} - shoulder: - name: - boneId: 8 - target: - length: 0 - transform: {fileID: 7713468394923976787} - baseRotation: {x: -0.0043154173, y: -0.16464704, z: 0.049991153, w: 0.9850756} - basePosition: {x: -0.0195459, y: 0.28317055, z: 0.052202977} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.15648837 - jointLimitations: 1 - maxAngle: 30 - minAngles: {x: 0, y: 0, z: -45} - maxAngles: {x: 0, y: 45, z: 0} - baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - upperArm: - name: - boneId: 9 - target: - length: 0 - transform: {fileID: 5057495325285210709} - baseRotation: {x: -0.05543213, y: 0.09408962, z: -0.018999647, w: 0.9938379} - basePosition: {x: -0.17596605, y: 0.000000013154931, z: -0.0000000144355} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.25876033 - jointLimitations: 0 - maxAngle: 120 - minAngles: {x: -180, y: -45, z: -180} - maxAngles: {x: 60, y: 130, z: 45} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - forearm: - name: - boneId: 10 - target: - length: 0.26173538 - transform: {fileID: 796111769679837225} - baseRotation: {x: -0.0000000060664687, y: 0.17829445, z: 0.000000030004518, - w: 0.98397744} - basePosition: {x: -0.20965345, y: -0.00000002561137, z: 0.000000029220246} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 0} - length: 0.28402025 - jointLimitations: 0 - maxAngle: 130 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 150, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hand: - name: - boneId: 12 - target: - length: 0 - transform: {fileID: 8467765973942035875} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: -0.00976131, y: -0.061932433, z: 0.02574325, w: 0.9977005} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 100 - minAngles: {x: -180, y: -50, z: -70} - maxAngles: {x: 90, y: 20, z: 90} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00976131, y: 0.061932433, z: -0.02574325, w: 0.9977005} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - poseMethod: 0 - physics: 1 - physicsMode: 2 - strength: 100 - grabbingTechnique: 0 - touchInteraction: 1 - poseMixer: - mixedPoses: [] - poseMode: 0 - grabSocket: {fileID: 0} - pinchSocket: {fileID: 0} - grabbedPrefab: {fileID: 0} - grabbedObject: {fileID: 0} - grabbedHandle: {fileID: 0} - targetToHandle: {x: 0, y: 0, z: 0} - grabbedRigidbody: 0 - grabbedKinematicRigidbody: 0 - colliders: [] - twoHandedGrab: 0 - targetToSecondaryHandle: {x: 0, y: 0, z: 0} - poseEvent: - id: 1 - label: Pose Event - tooltip: 'Call functions based on recognized posesParameter: the index of the - recognized pose' - eventTypeLabels: - - Never - - On Pose Recognized - - On No Pose Recongnized - - While Pose Recognized - - While No Pose Recognized - - When Pose Changes - - Always - fromEventLabel: poseMixer.detectedPoseIx - events: [] - touchEvent: - id: 2 - label: Touch Event - tooltip: 'Call funtions based on touched objectsParameter: the touched object' - eventTypeLabels: - - Never - - On Touch Start - - On Touch End - - While Touching - - While not Touching - - On Touched Object Changes - - Always - fromEventLabel: touchedObject - events: [] - grabEvent: - id: 3 - label: Grab Event - tooltip: 'Call functions based on grabbed objectsParameter: the grabbed object' - eventTypeLabels: - - Never - - On Grab Start - - On Grab End - - While Holding Object - - While not Holding Object - - On Grabbed Object Changes - - Always - fromEventLabel: grabbedObject - events: [] - handPalm: {fileID: 0} - handRigidbody: {fileID: 0} - handPhysics: {fileID: 0} - grabbedChanged: 0 - directFingerMovements: 1 ---- !u!1 &4329175924662657879 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7355896404086969169} - m_Layer: 0 - m_Name: RightHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7355896404086969169 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4329175924662657879} - m_LocalRotation: {x: 0.0000000011378876, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.024410933, y: -0.002639923, z: -0.0001821129} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4136488690284276010} - m_Father: {fileID: 3195765373362933698} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4362768375276474282 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3987134310708048551} - m_Layer: 0 - m_Name: Spine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3987134310708048551 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4362768375276474282} - m_LocalRotation: {x: -0, y: 4.514519e-32, z: 1.8015822e-14, w: 1} - m_LocalPosition: {x: 0, y: 0.09609294, z: 0.0000000027939677} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4263678514780110732} - m_Father: {fileID: 6333793700588530597} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4431182774716857911 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3541944507320363570} - m_Layer: 0 - m_Name: RightHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3541944507320363570 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4431182774716857911} - m_LocalRotation: {x: -0.0037662666, y: 0.06238191, z: -0.0601467, w: 0.9962313} - m_LocalPosition: {x: 0.07128249, y: -0.00702011, z: -0.01027932} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2565122355157459722} - m_Father: {fileID: 6732661480139142313} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4442798847181081318 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6734234515771128407} - m_Layer: 0 - m_Name: LeftHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6734234515771128407 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4442798847181081318} - m_LocalRotation: {x: -0.003777611, y: -0.062540606, z: 0.06017423, w: 0.99621964} - m_LocalPosition: {x: -0.07128274, y: -0.0070205675, z: -0.010279345} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8049467791892340524} - m_Father: {fileID: 2718435911021713927} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4482389128125142635 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4410791377464064158} - m_Layer: 0 - m_Name: RightHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4410791377464064158 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4482389128125142635} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.0222126, y: -0.0022802735, z: 0.00006594256} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7844866516120787077} - m_Father: {fileID: 7102781216452166161} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4588590747506760803 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8208221923192374018} - m_Layer: 0 - m_Name: RightHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8208221923192374018 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4588590747506760803} - m_LocalRotation: {x: 0.00000067055225, y: 0.0006848648, z: 0.0009798884, w: 0.99999934} - m_LocalPosition: {x: 0.04998892, y: -1.4551915e-11, z: -0.0000000041873136} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4154170314777914177} - m_Father: {fileID: 6729240872577082944} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4606189430149036080 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2653163421365880598} - m_Layer: 0 - m_Name: LeftHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2653163421365880598 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4606189430149036080} - m_LocalRotation: {x: 4.6251358e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02503746, y: -0.002580261, z: -0.00006344959} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3694653657785549028} - m_Father: {fileID: 5266872343266854744} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4612303279402890508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6732661480139142313} - m_Layer: 0 - m_Name: RightHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6732661480139142313 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4612303279402890508} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04592308, y: 0.0070201107, z: 0.010279321} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3541944507320363570} - m_Father: {fileID: 7624083477925197851} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4614617810154233602 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5883492204566660873} - m_Layer: 0 - m_Name: LeftHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5883492204566660873 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4614617810154233602} - m_LocalRotation: {x: -9.123824e-10, y: 4.8709725e-17, z: 0.000000053387403, w: 1} - m_LocalPosition: {x: -0.022208022, y: -0.00232193, z: 0.000012555385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1660153915451003223} - m_Father: {fileID: 1469898898888776885} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4616827264577384177 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7109531786445315003} - m_Layer: 0 - m_Name: LeftHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7109531786445315003 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4616827264577384177} - m_LocalRotation: {x: -0.00002413182, y: -0.0018862897, z: 0.012792739, w: 0.99991643} - m_LocalPosition: {x: -0.03359361, y: 2.2457414e-10, z: -0.000000003947975} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7261840188996162573} - m_Father: {fileID: 8049467791892340524} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4712347637658734481 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3694653657785549028} - m_Layer: 0 - m_Name: LeftHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3694653657785549028 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4712347637658734481} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025170134, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2653163421365880598} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4792797724671228719 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8168424681774074368} - m_Layer: 0 - m_Name: LeftLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8168424681774074368 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4792797724671228719} - m_LocalRotation: {x: 0.022657834, y: 7.275958e-12, z: 8.1326856e-10, w: 0.9997433} - m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 82171149504432471} - m_Father: {fileID: 6332245014863019486} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4801137131488431162 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 173989879821802103} - m_Layer: 0 - m_Name: LeftToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &173989879821802103 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4801137131488431162} - m_LocalRotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - m_LocalPosition: {x: -0.00000008527422, y: -0.080176204, z: 0.12159336} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5102001948768682033} - m_Father: {fileID: 82171149504432471} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4939765737404104998 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 815571997958144132} - m_Layer: 0 - m_Name: LeftHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &815571997958144132 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4939765737404104998} - m_LocalRotation: {x: -0.0000037042141, y: 0.0025506972, z: -0.0014522823, w: 0.9999957} - m_LocalPosition: {x: -0.034725063, y: -6.3632966e-10, z: -0.000000005125133} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4672632719228974860} - m_Father: {fileID: 1767130827922383620} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5202748564857717650 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8283956867106449357} - m_Layer: 0 - m_Name: RightHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8283956867106449357 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5202748564857717650} - m_LocalRotation: {x: 2.2268e-41, y: 1.0339768e-25, z: 0.000000044477652, w: 1} - m_LocalPosition: {x: 0.026656894, y: -0.0027399855, z: -0.0005033262} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5473054254573834404} - m_Father: {fileID: 2535018421292305422} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5238587301101571996 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1767130827922383620} - m_Layer: 0 - m_Name: LeftHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1767130827922383620 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5238587301101571996} - m_LocalRotation: {x: 0.0000065267095, y: 0.002753094, z: 0.0023710353, w: 0.99999344} - m_LocalPosition: {x: -0.049988233, y: 6.184564e-10, z: 0.0000000015934347} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 815571997958144132} - m_Father: {fileID: 2937189714163428199} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5326529324907084404 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4613317634665403842} - m_Layer: 0 - m_Name: RightHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4613317634665403842 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5326529324907084404} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025169373, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6766280550936899431} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5438789711899787960 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6766280550936899431} - m_Layer: 0 - m_Name: RightHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6766280550936899431 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5438789711899787960} - m_LocalRotation: {x: 3.7002212e-10, y: 1.7525295e-17, z: -0.000000047362832, w: 1} - m_LocalPosition: {x: 0.0249897, y: -0.002992096, z: -0.00024336025} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4613317634665403842} - m_Father: {fileID: 8979637045327617032} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5685092676533829970 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 606395546357305354} - m_Layer: 0 - m_Name: RightToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &606395546357305354 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5685092676533829970} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6384243072889662843} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5724017776532405150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8056735918173110953} - m_Layer: 0 - m_Name: LeftHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8056735918173110953 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5724017776532405150} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802978, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7261840188996162573} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5828733120279369828 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8049467791892340524} - m_Layer: 0 - m_Name: LeftHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8049467791892340524 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828733120279369828} - m_LocalRotation: {x: 0.000016403153, y: 0.0036615173, z: 0.0044799605, w: 0.99998325} - m_LocalPosition: {x: -0.05360612, y: -1.4551915e-10, z: 0.000000005631591} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7109531786445315003} - m_Father: {fileID: 6734234515771128407} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5904556102705291760 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2718435911021713927} - m_Layer: 0 - m_Name: LeftHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2718435911021713927 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5904556102705291760} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.045923002, y: 0.0070205685, z: 0.010279348} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6734234515771128407} - m_Father: {fileID: 8467765973942035875} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6131207695716876702 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2937189714163428199} - m_Layer: 0 - m_Name: LeftHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2937189714163428199 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6131207695716876702} - m_LocalRotation: {x: -0.0015786077, y: -0.06299851, z: 0.025000213, w: 0.9976992} - m_LocalPosition: {x: -0.03886753, y: 0.001484307, z: 0.037806235} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1767130827922383620} - m_Father: {fileID: 8467765973942035875} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6143004620397198761 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6332245014863019486} - m_Layer: 0 - m_Name: LeftUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6332245014863019486 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6143004620397198761} - m_LocalRotation: {x: 0.001890329, y: -0.00008607621, z: 0.0040942887, w: -0.99998987} - m_LocalPosition: {x: -0.1055315, y: -0.08806288, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8168424681774074368} - m_Father: {fileID: 6333793700588530597} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6173665104271330704 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7576604284763044995} - m_Layer: 0 - m_Name: RightHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7576604284763044995 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6173665104271330704} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04291298, y: 0.0063700867, z: -0.016306998} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5421611334272513992} - m_Father: {fileID: 7624083477925197851} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6208244537816975144 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6729240872577082944} - m_Layer: 0 - m_Name: RightHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6729240872577082944 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6208244537816975144} - m_LocalRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.9975902} - m_LocalPosition: {x: 0.038868114, y: 0.0014898591, z: 0.03780609} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8208221923192374018} - m_Father: {fileID: 7624083477925197851} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6286802332267957403 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4570772102465016956} - m_Layer: 0 - m_Name: LeftHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4570772102465016956 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6286802332267957403} - m_LocalRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.99606603} - m_LocalPosition: {x: -0.061303318, y: -0.006159441, z: -0.019985357} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2120030401919416590} - m_Father: {fileID: 7244628977030808089} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6363070122290882725 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6384243072889662843} - m_Layer: 0 - m_Name: RightToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6384243072889662843 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6363070122290882725} - m_LocalRotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - m_LocalPosition: {x: 0.00000008527422, y: -0.080176204, z: 0.12159336} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 606395546357305354} - m_Father: {fileID: 5623307778277919503} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6974821445028395073 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3113660505878548270} - m_Layer: 0 - m_Name: Spine3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3113660505878548270 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6974821445028395073} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.52742e-16, y: 0.117230676, z: 0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7713468394923976787} - - {fileID: 3458644235406456004} - - {fileID: 424115898826659248} - m_Father: {fileID: 146483180050904319} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7252232762915606751 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3458644235406456004} - m_Layer: 0 - m_Name: Neck - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3458644235406456004 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7252232762915606751} - m_LocalRotation: {x: -0, y: 3.526483e-38, z: 2.0767596e-15, w: 1} - m_LocalPosition: {x: -2.5253393e-16, y: 0.12070156, z: -0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4073333712384793646} - m_Father: {fileID: 3113660505878548270} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7255106938120831372 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 506702829398492897} - m_Layer: 0 - m_Name: RightLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &506702829398492897 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7255106938120831372} - m_LocalRotation: {x: 0.022657834, y: -7.275958e-12, z: -8.1326856e-10, w: 0.9997433} - m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5623307778277919503} - m_Father: {fileID: 5272594642193707320} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7276790893818719689 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5266872343266854744} - m_Layer: 0 - m_Name: LeftHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5266872343266854744 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7276790893818719689} - m_LocalRotation: {x: -0.000020047919, y: -0.001295886, z: 0.01546941, w: 0.99987954} - m_LocalPosition: {x: -0.032411378, y: -0.0000000021809456, z: 0.0000000011952758} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2653163421365880598} - m_Father: {fileID: 2120030401919416590} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7325065536697401311 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7460476021837470159} - m_Layer: 0 - m_Name: LeftHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7460476021837470159 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7325065536697401311} - m_LocalRotation: {x: -0.0032092885, y: -0.059774566, z: 0.05351657, w: 0.99677116} - m_LocalPosition: {x: -0.051732518, y: -0.0060922033, z: -0.026886078} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 240730503903211994} - m_Father: {fileID: 3120831056339158160} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7395480487940366479 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5079013459638452076} - m_Layer: 0 - m_Name: LeftHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5079013459638452076 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7395480487940366479} - m_LocalRotation: {x: -0.00000673482, y: -0.00029616614, z: 0.022725834, w: 0.9997417} - m_LocalPosition: {x: -0.027847849, y: 4.160441e-10, z: -0.0000000019606765} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4299558758846679023} - m_Father: {fileID: 2247109597199933487} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7460461591810884424 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5272594642193707320} - m_Layer: 0 - m_Name: RightUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5272594642193707320 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7460461591810884424} - m_LocalRotation: {x: 0.001890329, y: 0.00008607621, z: -0.0040942887, w: -0.99998987} - m_LocalPosition: {x: 0.1055315, y: -0.08806288, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 506702829398492897} - m_Father: {fileID: 6333793700588530597} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7538446906611121590 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7694011445082085447} - m_Layer: 0 - m_Name: RightHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7694011445082085447 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7538446906611121590} - m_LocalRotation: {x: -0.003058635, y: 0.060362756, z: -0.050513405, w: 0.99689287} - m_LocalPosition: {x: 0.07513694, y: -0.006617789, z: -0.0009887274} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3437189322826192555} - m_Father: {fileID: 2694456733257721404} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7678528835387023431 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5421611334272513992} - m_Layer: 0 - m_Name: RightHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5421611334272513992 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7678528835387023431} - m_LocalRotation: {x: -0.0034078602, y: 0.0635157, z: -0.053468242, w: 0.99654174} - m_LocalPosition: {x: 0.051733363, y: -0.006087698, z: -0.02688626} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1367469362349161091} - m_Father: {fileID: 7576604284763044995} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7709896988833430696 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4249058868384445712} - m_Layer: 0 - m_Name: RightForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4249058868384445712 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7709896988833430696} - m_LocalRotation: {x: 0.0016829239, y: -0.00033157127, z: 0.0000005439917, w: 0.9999985} - m_LocalPosition: {x: 0.25876004, y: -2.6819575e-16, z: -6.083419e-39} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7624083477925197851} - m_Father: {fileID: 2773869395817682926} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7754924066500042447 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7844866516120787077} - m_Layer: 0 - m_Name: RightHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7844866516120787077 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7754924066500042447} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329407, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4410791377464064158} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8151119430542648939 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4154170314777914177} - m_Layer: 0 - m_Name: RightHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4154170314777914177 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8151119430542648939} - m_LocalRotation: {x: -0.000012000173, y: -0.007268562, z: 0.0016510474, w: 0.9999723} - m_LocalPosition: {x: 0.0347243, y: 1.6370205e-10, z: 0.0000000021583548} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 906338171309068915} - m_Father: {fileID: 8208221923192374018} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8192117815503859511 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3120831056339158160} - m_Layer: 0 - m_Name: LeftHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3120831056339158160 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8192117815503859511} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.042913206, y: 0.006371307, z: -0.016307002} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7460476021837470159} - m_Father: {fileID: 8467765973942035875} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8373040940228144085 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4136488690284276010} - m_Layer: 0 - m_Name: RightHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4136488690284276010 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8373040940228144085} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553984, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7355896404086969169} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8443925879093192845 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7059981216850048614} - m_Layer: 0 - m_Name: LeftHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7059981216850048614 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8443925879093192845} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029779052, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4672632719228974860} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8520950601248945736 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5623307778277919503} - - component: {fileID: 1098007683880924658} - m_Layer: 0 - m_Name: RightFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5623307778277919503 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8520950601248945736} - m_LocalRotation: {x: 0.020767761, y: 0.0000067159554, z: 0.004095184, w: -0.999776} - m_LocalPosition: {x: -0.0000000018626451, y: -0.46714398, z: -0.000000013038516} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 6384243072889662843} - m_Father: {fileID: 506702829398492897} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1098007683880924658 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8520950601248945736} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb3310a2943ad7741b6c53520f451c91, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114146988969048474} - isLeft: 0 - side: 2 - otherFoot: {fileID: 280133226183094106} - rotationSpeedLimitation: 0 - legAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - animationSpeed: 1 - velocityAnimationSpeed: 0 - isMoving: 0 - scale: {x: 1, y: 1, z: 1} - f: 0 - prevFrame: 0 - nextFrame: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 2 - upperLeg: - name: - boneId: 60 - target: - length: 0 - transform: {fileID: 5272594642193707320} - baseRotation: {x: 0.051287577, y: -0.0005638482, z: -0.010978722, w: 0.99862343} - basePosition: {x: 0.11306499, y: 0.0038180987, z: -0.0076525463} - toBoneRotation: {x: -0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} - bone: - transform: {fileID: 0} - length: 0.4569167 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -130, y: -40, z: -30} - maxAngles: {x: 30, y: 45, z: 50} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - lowerLeg: - name: - boneId: 61 - target: - length: 0.38909963 - transform: {fileID: 506702829398492897} - baseRotation: {x: -0.061178114, y: -0.0014482929, z: -0.034986246, w: 0.99751246} - basePosition: {x: 0, y: -0.49770975, z: 0.000000033527613} - toBoneRotation: {x: -0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} - bone: - transform: {fileID: 0} - length: 0.46714398 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -15, y: NaN, z: NaN} - maxAngles: {x: 130, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - foot: - name: - boneId: 62 - target: - length: 0.38909963 - transform: {fileID: 5623307778277919503} - baseRotation: {x: 0.008240594, y: -0.00053507095, z: 0.04599743, w: 0.9989074} - basePosition: {x: 0.06642776, y: 0.089666486, z: -0.128434} - toBoneRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - bone: - transform: {fileID: 0} - length: 0.14564736 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -45, y: 0, z: -20} - maxAngles: {x: 50, y: 0, z: 30} - baseRotation: {x: 0.28736073, y: 0.00000032279587, z: -0.00000009684347, w: 0.95782244} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - toes: - name: - boneId: 63 - target: - length: 0 - transform: {fileID: 6384243072889662843} - baseRotation: {x: 2.0411606e-17, y: -7.275969e-12, z: 0.000000008381947, w: 1.0000002} - basePosition: {x: 0.005015458, y: -0.07128226, z: 0.11779303} - toBoneRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} - bone: - transform: {fileID: 0} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -70, y: NaN, z: NaN} - maxAngles: {x: 45, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: 1.7763568e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - jointLimitations: 1 - slidePrevention: 0 - physics: 1 - groundEvent: - id: 1 - label: Ground Event - tooltip: 'Call function based on ground standing - - Parameter: the ground - object' - eventTypeLabels: - - Never - - On Grounded - - On not Grounded - - While Grounded - - While not Grounded - - When Ground Changes - - Always - fromEventLabel: ground.gameObject - events: [] - ground: {fileID: 0} - groundNormal: {x: 0, y: 1, z: 0} - groundTranslation: {x: 0, y: 0, z: 0} - groundDistance: -0.060000002 - soleThicknessFoot: 0 - soleThicknessToes: 0 ---- !u!1 &8661400644288573173 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1660153915451003223} - m_Layer: 0 - m_Name: LeftHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1660153915451003223 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8661400644288573173} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329101, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5883492204566660873} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8930598610249476027 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 240730503903211994} - m_Layer: 0 - m_Name: LeftHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &240730503903211994 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8930598610249476027} - m_LocalRotation: {x: -0.000039089708, y: -0.0037677626, z: 0.010374232, w: 0.9999391} - m_LocalPosition: {x: -0.03741743, y: -7.858034e-10, z: 0.0000000016225385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1469898898888776885} - m_Father: {fileID: 7460476021837470159} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9003014281068769941 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8929222153988242160} - m_Layer: 0 - m_Name: Head_End - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8929222153988242160 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9003014281068769941} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5254398e-16, y: 0.16325943, z: -2.58904e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3592547833315222537} - m_Father: {fileID: 4073333712384793646} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9066350029934180735 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7787582702427072999} - m_Layer: 0 - m_Name: LeftHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7787582702427072999 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9066350029934180735} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553832, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4299558758846679023} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9117899991736050356 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 575118281284780715} - m_Layer: 0 - m_Name: LeftHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &575118281284780715 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9117899991736050356} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.043752592, y: 0.0068923947, z: 0.026853435} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2184748261822125251} - m_Father: {fileID: 8467765973942035875} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9151513446690494071 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 796111769679837225} - m_Layer: 0 - m_Name: LeftForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &796111769679837225 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9151513446690494071} - m_LocalRotation: {x: 0.0016893777, y: 0.000000042145203, z: -4.5932005e-10, w: 0.9999986} - m_LocalPosition: {x: -0.25876033, y: 2.6819604e-16, z: 6.083426e-39} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 8467765973942035875} - m_Father: {fileID: 5057495325285210709} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9198597044500055828 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5102001948768682033} - m_Layer: 0 - m_Name: LeftToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5102001948768682033 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9198597044500055828} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 173989879821802103} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &7964632619259579814 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 4968286101144654} - m_Modifications: - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112455146, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - propertyPath: m_Name - value: MakeHuman_simple_TP - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} ---- !u!4 &819564781098235500 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, - type: 3} - m_PrefabInstance: {fileID: 7964632619259579814} - m_PrefabAsset: {fileID: 0} diff --git a/Runtime/HumanoidFree/Prefabs/Humanoid.prefab.meta b/Runtime/HumanoidFree/Prefabs/Humanoid.prefab.meta deleted file mode 100644 index 05810fd..0000000 --- a/Runtime/HumanoidFree/Prefabs/Humanoid.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b09ff8d1366440649b959c12df4d1076 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: possessions - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction.meta b/Runtime/HumanoidFree/Prefabs/Interaction.meta deleted file mode 100644 index d5416b9..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: f68160b803350c243b65ed6d249fa204 -folderAsset: yes -timeCreated: 1500889552 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab b/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab deleted file mode 100644 index e9d9763..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab +++ /dev/null @@ -1,169 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1920008230009440} - m_IsPrefabParent: 1 ---- !u!1 &1546582905884452 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4960832296103046} - - component: {fileID: 33316256071041488} - - component: {fileID: 23246705097504348} - m_Layer: 0 - m_Name: Sphere - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &1920008230009440 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4097380247123054} - - component: {fileID: 114707417445159516} - m_Layer: 0 - m_Name: Gaze Interaction - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4097380247123054 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1920008230009440} - 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_Children: - - {fileID: 4960832296103046} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &4960832296103046 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1546582905884452} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 1} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_Children: [] - m_Father: {fileID: 4097380247123054} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &23246705097504348 -MeshRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1546582905884452} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!33 &33316256071041488 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1546582905884452} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!114 &114707417445159516 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1920008230009440} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: baa00f2ba726a3e4bb5b4277991f5ce0, type: 3} - m_Name: - m_EditorClassIdentifier: - active: 1 - timedClick: 0 - focusPointObj: {fileID: 1546582905884452} - objectInFocus: {fileID: 0} - rayType: 0 - maxDistance: 10 - resolution: 0.2 - speed: 3 - radius: 0.1 - focusEvent: - id: 0 - label: Focus Event - tooltip: 'Call functions using the current focus - - Parameter: the Object in Focus' - eventTypeLabels: [] - fromEventLabel: - events: [] - focusPointEvent: - id: 0 - label: Focus Point Event - tooltip: 'Call functions using the current focus point - - Parameter: the position of the focus point' - eventTypeLabels: [] - fromEventLabel: - events: [] - clickEvent: - id: 0 - label: Click Event - tooltip: 'Call functions using the clicking status - - Parameter: the Object in Focus when clicking' - eventTypeLabels: [] - fromEventLabel: - events: [] - activeEvent: - eventType: 5 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab.meta b/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab.meta deleted file mode 100644 index b05b842..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Gaze Interaction.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e970aecce96aef84f9bc21ce2909bd43 -timeCreated: 1500889557 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab b/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab deleted file mode 100644 index c6fe41e..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab +++ /dev/null @@ -1,215 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1506512070192592} - m_IsPrefabParent: 1 ---- !u!1 &1506512070192592 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4203962424901806} - - component: {fileID: 114419366447163772} - m_Layer: 0 - m_Name: Pointing Interaction (Left Hand) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &1928874022496684 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4283117259222822} - - component: {fileID: 120282844928825292} - m_Layer: 0 - m_Name: FocusPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4203962424901806 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506512070192592} - m_LocalRotation: {x: 0.049915366, y: -0.7475986, z: 0.05825866, w: 0.65970504} - m_LocalPosition: {x: -0.1986, y: -0.0214, z: 0.0105} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4283117259222822} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -90, y: 0, z: 180} ---- !u!4 &4283117259222822 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1928874022496684} - 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_Children: [] - m_Father: {fileID: 4203962424901806} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114419366447163772 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506512070192592} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: baa00f2ba726a3e4bb5b4277991f5ce0, type: 3} - m_Name: - m_EditorClassIdentifier: - active: 1 - timedClick: 0 - focusPointObj: {fileID: 1928874022496684} - objectInFocus: {fileID: 0} - rayType: 0 - maxDistance: 1 - resolution: 0.2 - speed: 3 - radius: 0.1 - focusEvent: - id: 0 - label: - tooltip: 'Call functions using the current focus - - Parameter: the Object in Focus' - eventTypeLabels: [] - fromEventLabel: - events: [] - focusPointEvent: - id: 1 - label: - tooltip: 'Call functions using the current focus point - - Parameter: the position of the focus point' - eventTypeLabels: [] - fromEventLabel: - events: [] - clickEvent: - id: 2 - label: - tooltip: 'Call functions using the clicking status - - Parameter: the Object in Focus when clicking' - eventTypeLabels: [] - fromEventLabel: - events: [] - activeEvent: - eventType: 5 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 ---- !u!120 &120282844928825292 -LineRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1928874022496684} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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_Positions: - - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 1} - m_Parameters: - serializedVersion: 2 - widthMultiplier: 0.01 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 2 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 0 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 0 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - generateLightingData: 0 - m_UseWorldSpace: 0 - m_Loop: 0 diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab.meta b/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab.meta deleted file mode 100644 index ce17d94..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Left Hand).prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5ababd5de8d8f8e4aaeb08fe5af60a11 -timeCreated: 1500889749 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab b/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab deleted file mode 100644 index 97b9ce5..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab +++ /dev/null @@ -1,215 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1130533662438836} - m_IsPrefabParent: 1 ---- !u!1 &1130533662438836 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4292122423356310} - - component: {fileID: 114480165119839050} - m_Layer: 0 - m_Name: Pointing Interaction (Right Hand) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &1693684524854490 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4117829805348478} - - component: {fileID: 120785097428075678} - m_Layer: 0 - m_Name: FocusPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4117829805348478 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1693684524854490} - 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_Children: [] - m_Father: {fileID: 4292122423356310} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &4292122423356310 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1130533662438836} - m_LocalRotation: {x: -0.04484354, y: -0.75274163, z: 0.06267053, w: -0.6537902} - m_LocalPosition: {x: 0.2039, y: -0.0223, z: 0.0092} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4117829805348478} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -188.8, y: -82.01599, z: -180.83698} ---- !u!114 &114480165119839050 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1130533662438836} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: baa00f2ba726a3e4bb5b4277991f5ce0, type: 3} - m_Name: - m_EditorClassIdentifier: - active: 0 - timedClick: 0 - focusPointObj: {fileID: 1693684524854490} - objectInFocus: {fileID: 0} - rayType: 0 - maxDistance: 1 - resolution: 0.2 - speed: 3 - radius: 0.1 - focusEvent: - id: 0 - label: - tooltip: 'Call functions using the current focus - - Parameter: the Object in Focus' - eventTypeLabels: [] - fromEventLabel: - events: [] - focusPointEvent: - id: 1 - label: - tooltip: 'Call functions using the current focus point - - Parameter: the position of the focus point' - eventTypeLabels: [] - fromEventLabel: - events: [] - clickEvent: - id: 2 - label: - tooltip: 'Call functions using the clicking status - - Parameter: the Object in Focus when clicking' - eventTypeLabels: [] - fromEventLabel: - events: [] - activeEvent: - eventType: 5 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 ---- !u!120 &120785097428075678 -LineRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1693684524854490} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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_Positions: - - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 1} - m_Parameters: - serializedVersion: 2 - widthMultiplier: 0.01 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 2 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 0 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - generateLightingData: 0 - m_UseWorldSpace: 0 - m_Loop: 0 diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab.meta b/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab.meta deleted file mode 100644 index cf97672..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Pointing Interaction (Right Hand).prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 853fd08a3894f2748a10c79b58fdea1c -timeCreated: 1500889569 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab b/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab deleted file mode 100644 index 0e52ead..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab +++ /dev/null @@ -1,97 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1885100685090920} - m_IsPrefabParent: 1 ---- !u!1 &1885100685090920 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4044325400065940} - - component: {fileID: 114747576506849884} - m_Layer: 0 - m_Name: Telegrabber - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4044325400065940 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1885100685090920} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114747576506849884 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1885100685090920} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8982c07c713722c4887905242b5816bf, type: 3} - m_Name: - m_EditorClassIdentifier: - active: 0 - timedClick: 0 - focusPointObj: {fileID: 0} - objectInFocus: {fileID: 0} - rayType: 3 - maxDistance: 3 - resolution: 0.2 - speed: 3 - radius: 0.1 - focusEvent: - id: 0 - label: Focus Event - tooltip: 'Call functions using the current focus - - Parameter: the Object in Focus' - eventTypeLabels: [] - fromEventLabel: - events: [] - focusPointEvent: - id: 0 - label: Focus Point Event - tooltip: 'Call functions using the current focus point - - Parameter: the position of the focus point' - eventTypeLabels: [] - fromEventLabel: - events: [] - clickEvent: - id: 0 - label: Click Event - tooltip: 'Call functions using the clicking status - - Parameter: the Object in Focus when clicking' - eventTypeLabels: [] - fromEventLabel: - events: [] - activeEvent: - eventType: 5 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab.meta b/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab.meta deleted file mode 100644 index b7875d2..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Telegrabber.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bcdd858be91b5e848a0084fc0e8d680e -timeCreated: 1536834276 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab b/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab deleted file mode 100644 index 6d041f1..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab +++ /dev/null @@ -1,217 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1388748481647940} - m_IsPrefabParent: 1 ---- !u!1 &1388748481647940 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4142586981455554} - - component: {fileID: 114892861703443658} - m_Layer: 0 - m_Name: Teleporter (Right Hand) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &1913745800415636 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 4551381712481998} - - component: {fileID: 120032916900830638} - m_Layer: 0 - m_Name: FocusPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4142586981455554 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1388748481647940} - m_LocalRotation: {x: -0.04484354, y: -0.75274163, z: 0.06267053, w: -0.6537902} - m_LocalPosition: {x: 0.2039, y: -0.0223, z: 0.0092} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4551381712481998} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: -188.8, y: -82.01599, z: -180.83698} ---- !u!4 &4551381712481998 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1913745800415636} - 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_Children: [] - m_Father: {fileID: 4142586981455554} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114892861703443658 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1388748481647940} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a0d888a4d12f3544e8199b7558f232fd, type: 3} - m_Name: - m_EditorClassIdentifier: - active: 0 - timedClick: 0 - focusPointObj: {fileID: 1913745800415636} - objectInFocus: {fileID: 0} - rayType: 0 - maxDistance: 1 - resolution: 0.2 - speed: 3 - radius: 0.1 - focusEvent: - id: 0 - label: - tooltip: 'Call functions using the current focus - - Parameter: the Object in Focus' - eventTypeLabels: [] - fromEventLabel: - events: [] - focusPointEvent: - id: 1 - label: - tooltip: 'Call functions using the current focus point - - Parameter: the position of the focus point' - eventTypeLabels: [] - fromEventLabel: - events: [] - clickEvent: - id: 2 - label: - tooltip: 'Call functions using the clicking status - - Parameter: the Object in Focus when clicking' - eventTypeLabels: [] - fromEventLabel: - events: [] - activeEvent: - eventType: 5 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - transportType: 0 - transformToTeleport: {fileID: 0} ---- !u!120 &120032916900830638 -LineRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1913745800415636} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_Materials: - - {fileID: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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_Positions: - - {x: 0, y: 0, z: 0} - - {x: 0, y: 0, z: 1} - m_Parameters: - serializedVersion: 2 - widthMultiplier: 0.01 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 2 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 0 - atime3: 0 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 0 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - generateLightingData: 0 - m_UseWorldSpace: 0 - m_Loop: 0 diff --git a/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab.meta b/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab.meta deleted file mode 100644 index 1029c12..0000000 --- a/Runtime/HumanoidFree/Prefabs/Interaction/Teleporter (Right Hand).prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7aa50343b5920fa438bb3447193bec4c -timeCreated: 1518452745 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking.meta b/Runtime/HumanoidFree/Prefabs/Networking.meta deleted file mode 100644 index 84464f3..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 3f445a30d027839419746141af0aea8e -folderAsset: yes -timeCreated: 1470901856 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters.meta b/Runtime/HumanoidFree/Prefabs/Networking/Characters.meta deleted file mode 100644 index 3bea9aa..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 60872314cfe8ce14ca4b6f823cc323da -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab b/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab deleted file mode 100644 index 8821198..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab +++ /dev/null @@ -1,2767 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1013922709025916 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4020857003718316} - m_Layer: 0 - m_Name: RightForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4020857003718316 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1013922709025916} - m_LocalRotation: {x: -2.3283062e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.25876004, y: -5.813945e-12, z: 4.4668338e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4388123769618922} - m_Father: {fileID: 4539672956612472} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1015272508457484 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4602458008216608} - m_Layer: 0 - m_Name: RightHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4602458008216608 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1015272508457484} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329407, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4238523835879206} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1017111697310652 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4594412105052764} - m_Layer: 0 - m_Name: LeftLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4594412105052764 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1017111697310652} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.012004041, y: -0.45650727, z: -0.015162091} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4614227722333004} - m_Father: {fileID: 4853197623524236} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1021161642985360 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4558240690773950} - m_Layer: 0 - m_Name: LeftShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4558240690773950 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021161642985360} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.04904938, y: 0.0406308, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4945798737231434} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1033916591818018 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4897756725022398} - m_Layer: 0 - m_Name: RightToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4897756725022398 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1033916591818018} - m_LocalRotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - m_LocalPosition: {x: 0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4420243079123968} - m_Father: {fileID: 4845693691525688} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1060478984554138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4677958979611272} - m_Layer: 0 - m_Name: LeftHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4677958979611272 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1060478984554138} - m_LocalRotation: {x: 4.6251358e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02503746, y: -0.002580261, z: -0.00006344959} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4317310911040790} - m_Father: {fileID: 4618234235717974} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1068892541665356 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4185642012009948} - m_Layer: 0 - m_Name: Spine1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4185642012009948 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068892541665356} - m_LocalRotation: {x: -4.656613e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -1.9845957e-15, y: 0.11258178, z: -3.9639472e-11} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4321058117585574} - m_Father: {fileID: 4703656715930640} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098145141473308 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4853197623524236} - m_Layer: 0 - m_Name: LeftUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4853197623524236 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098145141473308} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4594412105052764} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098284834131522 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4527379878525070} - m_Layer: 0 - m_Name: LeftHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4527379878525070 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098284834131522} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.07022827, y: -0.0011416626, z: 0.004263849} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4141782078933880} - m_Father: {fileID: 4034292906043112} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098523101444156 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4864647067298810} - m_Layer: 0 - m_Name: RightHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4864647067298810 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098523101444156} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.027794037, y: -0.0017300415, z: -0.000012518613} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4405910821065408} - m_Father: {fileID: 4755313617476360} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1110025933181608 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4247556009045498} - m_Layer: 0 - m_Name: Spine3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4247556009045498 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1110025933181608} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.52742e-16, y: 0.117230676, z: 0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4558240690773950} - - {fileID: 4143409446020670} - - {fileID: 4981416426651850} - m_Father: {fileID: 4321058117585574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1110373897718044 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4608424988925430} - m_Layer: 0 - m_Name: RightHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4608424988925430 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1110373897718044} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04375305, y: 0.006900177, z: 0.026853401} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4198118768489570} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1115736632720636 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4885334286591018} - m_Layer: 0 - m_Name: LeftHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4885334286591018 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115736632720636} - m_LocalRotation: {x: 1.7373489e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.0334935, y: -0.0025872802, z: 0.00014287948} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4468941225946244} - m_Father: {fileID: 4141782078933880} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1116129957090148 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4238523835879206} - m_Layer: 0 - m_Name: RightHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4238523835879206 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1116129957090148} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.0222126, y: -0.0022802735, z: 0.00006594256} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4602458008216608} - m_Father: {fileID: 4970408688845060} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1126967404723980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4539672956612472} - m_Layer: 0 - m_Name: RightUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4539672956612472 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1126967404723980} - m_LocalRotation: {x: 2.3283064e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.1564886, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4020857003718316} - m_Father: {fileID: 4981416426651850} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1140778296366970 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4500357875551362} - m_Layer: 0 - m_Name: RightHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4500357875551362 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1140778296366970} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.056183014, y: -0.00035995478, z: -0.014798106} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4049969287411434} - m_Father: {fileID: 4229670953639224} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1157445315310822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4034292906043112} - m_Layer: 0 - m_Name: LeftHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4034292906043112 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1157445315310822} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.045923002, y: 0.0070205685, z: 0.010279348} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4527379878525070} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1165229942477720 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4520241488013312} - m_Layer: 0 - m_Name: RightHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4520241488013312 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1165229942477720} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.03472366, y: 0.000028686509, z: -0.00020205184} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4556940821754954} - m_Father: {fileID: 4111323599385598} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1175738748580054 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4151093633662824} - m_Layer: 0 - m_Name: LeftHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4151093633662824 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1175738748580054} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029779052, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4801437705384802} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1184008569229792 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4981416426651850} - m_Layer: 0 - m_Name: RightShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4981416426651850 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184008569229792} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.049049404, y: 0.04062805, z: -0.012485102} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4539672956612472} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1200376388689808 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4801437705384802} - m_Layer: 0 - m_Name: LeftHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4801437705384802 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200376388689808} - m_LocalRotation: {x: 9.382326e-10, y: -7.190296e-18, z: 0.00000004003126, w: 1} - m_LocalPosition: {x: -0.029778114, y: 0.000015687518, z: 0.00024009302} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4151093633662824} - m_Father: {fileID: 4044276183876396} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1227526719274706 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4936289302321692} - m_Layer: 0 - m_Name: LeftHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4936289302321692 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1227526719274706} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.04567215, y: 0.007352142, z: -0.0017597537} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4208306150548480} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1235055050112846 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4647155121876880} - m_Layer: 0 - m_Name: RightHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4647155121876880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235055050112846} - m_LocalRotation: {x: 2.571394e-39, y: -2.1196503e-24, z: -0.0000000889553, w: 1} - m_LocalPosition: {x: 0.033493422, y: -0.0025901617, z: 0.000085894324} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4649621898448202} - m_Father: {fileID: 4182831468102996} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1237657638124524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4826023243270814} - m_Layer: 0 - m_Name: RightHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4826023243270814 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1237657638124524} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.033787, y: 0.0025801086, z: 0.042356003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4111323599385598} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1237953593474150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4141782078933880} - m_Layer: 0 - m_Name: LeftHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4141782078933880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1237953593474150} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.053481977, y: -0.003643341, z: -0.00015678957} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4885334286591018} - m_Father: {fileID: 4527379878525070} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1258497856504126 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4139726322110278} - - component: {fileID: 33910490985778178} - - component: {fileID: 23863490358980508} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4139726322110278 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 100, y: 100, z: 100} - m_Children: [] - m_Father: {fileID: 4746777317671054} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &33910490985778178 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_Mesh: {fileID: 4300000, guid: fcf9a9e3fb67cb64887a4d17ddc7c85c, type: 3} ---- !u!23 &23863490358980508 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 15932f28e65def049945387d8ce8f70c, 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: 0 - 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 ---- !u!1 &1282323654634568 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4031332134401838} - m_Layer: 0 - m_Name: LeftHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4031332134401838 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282323654634568} - m_LocalRotation: {x: -9.123824e-10, y: 4.8709725e-17, z: 0.000000053387403, w: 1} - m_LocalPosition: {x: -0.022208022, y: -0.00232193, z: 0.000012555385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4871368328097880} - m_Father: {fileID: 4496119973859378} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1282551738059702 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4657458840255468} - m_Layer: 0 - m_Name: RightHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4657458840255468 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282551738059702} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.062955014, y: -0.00029998776, z: -0.0065212003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4284520946962660} - m_Father: {fileID: 4940625000453716} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1288469714210180 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4143409446020670} - m_Layer: 0 - m_Name: Neck - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4143409446020670 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1288469714210180} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.1879386e-16, y: 0.120701596, z: -0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4643022250758746} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1296454132969236 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4618234235717974} - m_Layer: 0 - m_Name: LeftHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4618234235717974 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1296454132969236} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.03232788, y: -0.0023251341, z: 0.000018807203} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4677958979611272} - m_Father: {fileID: 4880954805439224} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1301950514373280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4996372359689838} - m_Layer: 0 - m_Name: RightHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4996372359689838 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1301950514373280} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029778594, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4556940821754954} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1323181385765068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4653958478622642} - m_Layer: 0 - m_Name: RightHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4653958478622642 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1323181385765068} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04592308, y: 0.0070201107, z: 0.010279321} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4836652144944730} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340156926473822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4416949517587016} - m_Layer: 0 - m_Name: LeftHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4416949517587016 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340156926473822} - m_LocalRotation: {x: -6.938894e-18, y: 6.203854e-25, z: -0.000000048550163, w: 1} - m_LocalPosition: {x: -0.024411585, y: -0.00263807, z: 0.00006414011} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4279258841442284} - m_Father: {fileID: 4933210508217398} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340216024363490 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4369941294081632} - m_Layer: 0 - m_Name: LeftHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4369941294081632 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340216024363490} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.043752592, y: 0.0068923947, z: 0.026853435} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4541786926279050} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340863644878772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4198118768489570} - m_Layer: 0 - m_Name: RightHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4198118768489570 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340863644878772} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.070869066, y: -0.0012400817, z: 0.013564706} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4755313617476360} - m_Father: {fileID: 4608424988925430} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1346911220311386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4317310911040790} - m_Layer: 0 - m_Name: LeftHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4317310911040790 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1346911220311386} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025170134, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4677958979611272} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1351568090274164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4405910821065408} - m_Layer: 0 - m_Name: RightHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4405910821065408 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1351568090274164} - m_LocalRotation: {x: 0.0000000011378876, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.024410933, y: -0.002639923, z: -0.0001821129} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4744505505259998} - m_Father: {fileID: 4864647067298810} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1354593843412354 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4429971395333998} - m_Layer: 0 - m_Name: LeftHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4429971395333998 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1354593843412354} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: 8.881784e-16, w: 1} - m_LocalPosition: {x: -0.049987946, y: 0.00012684021, z: -0.00012565777} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4044276183876396} - m_Father: {fileID: 4353235304731280} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1356961387841328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4744505505259998} - m_Layer: 0 - m_Name: RightHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4744505505259998 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1356961387841328} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553984, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4405910821065408} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1362156033337370 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4933210508217398} - m_Layer: 0 - m_Name: LeftHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4933210508217398 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362156033337370} - m_LocalRotation: {x: -1.517253e-39, y: 1.8611566e-24, z: 0.000000097100354, w: 1} - m_LocalPosition: {x: -0.0277937, y: -0.0017312705, z: 0.000109813955} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4416949517587016} - m_Father: {fileID: 4051421714285294} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1366343764086228 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4321058117585574} - m_Layer: 0 - m_Name: Spine2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4321058117585574 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1366343764086228} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.0527506e-16, y: 0.120330654, z: -1.9229062e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4247556009045498} - m_Father: {fileID: 4185642012009948} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1372313101893982 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4845693691525688} - m_Layer: 0 - m_Name: RightFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4845693691525688 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1372313101893982} - m_LocalRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - m_LocalPosition: {x: -0.0044376277, y: -0.46711615, z: -0.0025090335} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4897756725022398} - m_Father: {fileID: 4284033142102930} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1379923748956450 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4468941225946244} - m_Layer: 0 - m_Name: LeftHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4468941225946244 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379923748956450} - m_LocalRotation: {x: 1.1672813e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.026661986, y: -0.0027456665, z: 0.0000018486779} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4457508282459534} - m_Father: {fileID: 4885334286591018} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1404256305067948 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4940625000453716} - m_Layer: 0 - m_Name: RightHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4940625000453716 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1404256305067948} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.045672074, y: 0.0073501584, z: -0.0017598001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4657458840255468} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1414372552533312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4293642491721424} - m_Layer: 0 - m_Name: LeftHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4293642491721424 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1414372552533312} - m_LocalRotation: {x: 9.849145e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.03736122, y: -0.002046814, z: 0.00010685041} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4496119973859378} - m_Father: {fileID: 4141517989867146} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1420245713514594 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4284520946962660} - m_Layer: 0 - m_Name: RightHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4284520946962660 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1420245713514594} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.046512604, y: -0.0043777465, z: 0.00012611701} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4190442107530260} - m_Father: {fileID: 4657458840255468} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1446520034660392 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4460837836933230} - m_Layer: 0 - m_Name: RightHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4460837836933230 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446520034660392} - m_LocalRotation: {x: 3.7002212e-10, y: 1.7525295e-17, z: -0.000000047362832, w: 1} - m_LocalPosition: {x: 0.0249897, y: -0.002992096, z: -0.00024336025} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4470399520913036} - m_Father: {fileID: 4190442107530260} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1468121793114350 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4044276183876396} - m_Layer: 0 - m_Name: LeftHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4044276183876396 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1468121793114350} - m_LocalRotation: {x: -6.938894e-18, y: -4.135903e-25, z: -0.000000040031257, w: 1} - m_LocalPosition: {x: -0.034724806, y: -0.00007960955, z: 0.00010122135} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4801437705384802} - m_Father: {fileID: 4429971395333998} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1506927701114692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4182831468102996} - m_Layer: 0 - m_Name: RightHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4182831468102996 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1506927701114692} - m_LocalRotation: {x: 2.7723215e-10, y: -1.9675563e-17, z: 0.00000007097143, w: 1} - m_LocalPosition: {x: 0.053482816, y: -0.003639984, z: -0.00013987467} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4647155121876880} - m_Father: {fileID: 4836652144944730} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1512494148778312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4970408688845060} - m_Layer: 0 - m_Name: RightHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4970408688845060 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1512494148778312} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.023571929, y: -0.0017774963, z: 0.00009028032} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4238523835879206} - m_Father: {fileID: 4049969287411434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1536452568738772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4284033142102930} - m_Layer: 0 - m_Name: RightLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4284033142102930 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536452568738772} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.012004041, y: -0.45650727, z: -0.015162091} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4845693691525688} - m_Father: {fileID: 4285708893687638} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1538613054430410 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4111323599385598} - m_Layer: 0 - m_Name: RightHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4111323599385598 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1538613054430410} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.049988404, y: -0.000057678237, z: -0.00022398635} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4520241488013312} - m_Father: {fileID: 4826023243270814} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1574763856061922 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4353235304731280} - m_Layer: 0 - m_Name: LeftHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4353235304731280 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1574763856061922} - m_LocalRotation: {x: -6.938894e-18, y: -2.2959e-41, z: 0.00000002384746, w: 1} - m_LocalPosition: {x: -0.033786695, y: 0.002574768, z: 0.04235597} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4429971395333998} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1601672230453298 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4285708893687638} - m_Layer: 0 - m_Name: RightUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4285708893687638 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1601672230453298} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4284033142102930} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1611260466696856 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4703656715930640} - m_Layer: 0 - m_Name: Spine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4703656715930640 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611260466696856} - m_LocalRotation: {x: 4.6566195e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 1.7684579e-15, y: 0.096092984, z: 0.0000000023841857} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4185642012009948} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1623765817312144 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4705635283009600} - m_Layer: 0 - m_Name: Head_End_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4705635283009600 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1623765817312144} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.16325943, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4859466552975116} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1637669774204796 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4643022250758746} - m_Layer: 0 - m_Name: Head - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4643022250758746 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1637669774204796} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.1183214e-16, y: 0.100040585, z: -2.3736567e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4859466552975116} - m_Father: {fileID: 4143409446020670} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1655126710600840 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4983645719502506} - m_Layer: 0 - m_Name: LeftToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4983645719502506 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1655126710600840} - m_LocalRotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - m_LocalPosition: {x: -0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4234289099827942} - m_Father: {fileID: 4614227722333004} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1666304877136126 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4871368328097880} - m_Layer: 0 - m_Name: LeftHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4871368328097880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1666304877136126} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329101, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4031332134401838} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1679796588345304 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4836652144944730} - m_Layer: 0 - m_Name: RightHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4836652144944730 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679796588345304} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.070227966, y: -0.0011398315, z: 0.004263851} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4182831468102996} - m_Father: {fileID: 4653958478622642} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1687898318833826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4746777317671054} - - component: {fileID: 95905176592788846} - m_Layer: 0 - m_Name: EmptyCharacter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4746777317671054 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1687898318833826} - m_LocalRotation: {x: 0.000000081460335, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4139726322110278} - - {fileID: 4181504975483354} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!95 &95905176592788846 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1687898318833826} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 0ef46fdec482c674c8bd176e0b18d448, type: 3} - m_Controller: {fileID: 0} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 1 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1 &1688168515294058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4234289099827942} - m_Layer: 0 - m_Name: LeftToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4234289099827942 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688168515294058} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4983645719502506} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1689562266869402 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4281010555487502} - m_Layer: 0 - m_Name: RightHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4281010555487502 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1689562266869402} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802063, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4649621898448202} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1723346527823006 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4496119973859378} - m_Layer: 0 - m_Name: LeftHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4496119973859378 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1723346527823006} - m_LocalRotation: {x: -8.3417817e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02357231, y: -0.0017794799, z: -0.00011877301} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4031332134401838} - m_Father: {fileID: 4293642491721424} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1732198550211476 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4420243079123968} - m_Layer: 0 - m_Name: RightToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4420243079123968 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1732198550211476} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4897756725022398} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1740140316850160 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4614227722333004} - m_Layer: 0 - m_Name: LeftFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4614227722333004 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1740140316850160} - m_LocalRotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} - m_LocalPosition: {x: 0.0044376277, y: -0.46711615, z: -0.0025090335} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4983645719502506} - m_Father: {fileID: 4594412105052764} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1741233635479078 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4541786926279050} - m_Layer: 0 - m_Name: LeftHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4541786926279050 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741233635479078} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.07086868, y: -0.0012365723, z: 0.013564725} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4051421714285294} - m_Father: {fileID: 4369941294081632} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1759428941890862 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4049969287411434} - m_Layer: 0 - m_Name: RightHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4049969287411434 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759428941890862} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.03736191, y: -0.0020390318, z: -0.00017240926} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4970408688845060} - m_Father: {fileID: 4500357875551362} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1759871676179508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4839389822556444} - m_Layer: 0 - m_Name: LeftForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4839389822556444 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759871676179508} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.2587603, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4836098136808748} - m_Father: {fileID: 4945798737231434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1764391134343402 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4859466552975116} - m_Layer: 0 - m_Name: Head_End - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4859466552975116 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764391134343402} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5254398e-16, y: 0.16325943, z: -2.58904e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4705635283009600} - m_Father: {fileID: 4643022250758746} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1773833581693880 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4755313617476360} - m_Layer: 0 - m_Name: RightHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4755313617476360 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773833581693880} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.049062192, y: -0.002389984, z: 0.00008839682} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4864647067298810} - m_Father: {fileID: 4198118768489570} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1774990846042824 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4181504975483354} - m_Layer: 0 - m_Name: Hips - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4181504975483354 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1774990846042824} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 1.1138859, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4853197623524236} - - {fileID: 4285708893687638} - - {fileID: 4703656715930640} - m_Father: {fileID: 4746777317671054} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1780295947606908 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4945798737231434} - m_Layer: 0 - m_Name: LeftUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4945798737231434 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1780295947606908} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.15648837, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4839389822556444} - m_Father: {fileID: 4558240690773950} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1783024770570700 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4279258841442284} - m_Layer: 0 - m_Name: LeftHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4279258841442284 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1783024770570700} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553832, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4416949517587016} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1787220505458482 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4190442107530260} - m_Layer: 0 - m_Name: RightHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4190442107530260 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1787220505458482} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.032289885, y: -0.0028092957, z: -0.00015483782} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4460837836933230} - m_Father: {fileID: 4284520946962660} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1787276421764996 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4470399520913036} - m_Layer: 0 - m_Name: RightHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4470399520913036 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1787276421764996} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025169373, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4460837836933230} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1800926129486508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4211326451096924} - m_Layer: 0 - m_Name: LeftHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4211326451096924 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800926129486508} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.042913206, y: 0.006371307, z: -0.016307002} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4141517989867146} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1800997498218726 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4556940821754954} - m_Layer: 0 - m_Name: RightHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4556940821754954 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800997498218726} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.029777298, y: 0.00011596679, z: 0.00026114538} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4996372359689838} - m_Father: {fileID: 4520241488013312} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1820661632411804 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4836098136808748} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4836098136808748 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1820661632411804} - m_LocalRotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.28402027, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4369941294081632} - - {fileID: 4211326451096924} - - {fileID: 4034292906043112} - - {fileID: 4936289302321692} - - {fileID: 4353235304731280} - m_Father: {fileID: 4839389822556444} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1854339969901812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4457508282459534} - m_Layer: 0 - m_Name: LeftHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4457508282459534 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854339969901812} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802978, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4468941225946244} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1869968226402612 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4649621898448202} - m_Layer: 0 - m_Name: RightHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4649621898448202 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1869968226402612} - m_LocalRotation: {x: 2.2268e-41, y: 1.0339768e-25, z: 0.000000044477652, w: 1} - m_LocalPosition: {x: 0.026656894, y: -0.0027399855, z: -0.0005033262} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4281010555487502} - m_Father: {fileID: 4647155121876880} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1871057163034284 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4229670953639224} - m_Layer: 0 - m_Name: RightHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4229670953639224 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1871057163034284} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04291298, y: 0.0063700867, z: -0.016306998} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4500357875551362} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1900168544683678 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4208306150548480} - m_Layer: 0 - m_Name: LeftHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4208306150548480 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1900168544683678} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.06295448, y: -0.00030258176, z: -0.006521179} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4880954805439224} - m_Father: {fileID: 4936289302321692} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1926295627984376 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4880954805439224} - m_Layer: 0 - m_Name: LeftHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4880954805439224 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1926295627984376} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.046582032, y: -0.0035731506, z: 0.000023220333} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4618234235717974} - m_Father: {fileID: 4208306150548480} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1926641755231346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4051421714285294} - m_Layer: 0 - m_Name: LeftHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4051421714285294 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1926641755231346} - m_LocalRotation: {x: -6.938894e-18, y: 1.42345e-39, z: -0.00000008561503, w: 1} - m_LocalPosition: {x: -0.049062345, y: -0.002390747, z: -0.00012319013} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4933210508217398} - m_Father: {fileID: 4541786926279050} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1942275194123670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4141517989867146} - m_Layer: 0 - m_Name: LeftHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4141517989867146 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942275194123670} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.056182478, y: -0.00036621088, z: -0.0147980675} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4293642491721424} - m_Father: {fileID: 4211326451096924} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1999458028057688 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4388123769618922} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4388123769618922 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1999458028057688} - m_LocalRotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.28401995, y: 0, z: -2.1760372e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4608424988925430} - - {fileID: 4229670953639224} - - {fileID: 4653958478622642} - - {fileID: 4940625000453716} - - {fileID: 4826023243270814} - m_Father: {fileID: 4020857003718316} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab.meta deleted file mode 100644 index 888218e..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters/EmptyCharacter.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7754bb471c5918f4da4a9cd4289ffd51 -timeCreated: 1489139162 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources.meta b/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources.meta deleted file mode 100644 index ff24e8d..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ed397d272bcc7c14eb9d4a69d7ba578f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab b/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab deleted file mode 100644 index a8863cb..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab +++ /dev/null @@ -1,75 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &7338513305112486102 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 100156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_Name - value: MakeHuman_simple_TP Variant - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400156, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 13700000, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 457a25bacfd81c34d8db8c9aad406f55, type: 2} - - target: {fileID: 13700002, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 0ca0d02c198ab15498856b7fa22650b6, type: 2} - - target: {fileID: 13700004, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 1924927a790c5b24eb77f51e7fffdbb5, type: 2} - - target: {fileID: 13700006, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: 5603bff079abbbf40b7d0569a9ca2e45, type: 2} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d00d05e5d77de9f438f68e5f5367a627, type: 3} diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab.meta deleted file mode 100644 index 63eb076..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Characters/Resources/MakeHuman_simple_TP.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 86f7ba3098b1d6d4f846836e83c3cb42 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab b/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab deleted file mode 100644 index bf02d36..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab +++ /dev/null @@ -1,55 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1710487389362922 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4788302188427668} - - component: {fileID: 114290523140433344} - m_Layer: 0 - m_Name: NetworkingStarter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4788302188427668 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1710487389362922} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114290523140433344 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1710487389362922} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4cbec1273b9ee82479bf4cc64c900bd0, type: 3} - m_Name: - m_EditorClassIdentifier: - autoStart: 1 - serverIpAddress: 127.0.0.1 - roomName: default - gameVersion: 1 - playerPrefab: {fileID: 0} - serverType: 0 - useRoleFile: 0 - roleFileName: Role.txt - role: 0 - sendRate: 25 diff --git a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab.meta deleted file mode 100644 index 5842dc2..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStarter.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c0b3d881af094aa40ac3c1862af284a6 -timeCreated: 1500101595 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab b/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab deleted file mode 100644 index 20bab9f..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab +++ /dev/null @@ -1,194 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1547744635115364} - m_IsPrefabParent: 1 ---- !u!1 &1102845541656492 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 224080167443833264} - - component: {fileID: 222382479412892260} - - component: {fileID: 114935358240423544} - - component: {fileID: 114123306642843232} - m_Layer: 0 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &1547744635115364 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 224268792594220398} - - component: {fileID: 223133106560874972} - - component: {fileID: 114215111648024090} - - component: {fileID: 114000307814322182} - m_Layer: 0 - m_Name: NetworkingStatusCanvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &114000307814322182 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1547744635115364} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &114123306642843232 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1102845541656492} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d7994b261fec79c4a9a1c329820642f3, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &114215111648024090 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1547744635115364} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, 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 ---- !u!114 &114935358240423544 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1102845541656492} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 10 - m_MaxSize: 40 - m_Alignment: 1 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: New Text ---- !u!222 &222382479412892260 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1102845541656492} ---- !u!223 &223133106560874972 -Canvas: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1547744635115364} - 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: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &224080167443833264 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1102845541656492} - 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_Children: [] - m_Father: {fileID: 224268792594220398} - 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: 160, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &224268792594220398 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1547744635115364} - m_LocalRotation: {x: -0.0000015646192, y: -0.0000072655666, z: -0.0000067270753, - w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.5} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} - m_Children: - - {fileID: 224080167443833264} - m_Father: {fileID: 0} - 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: 0} - m_SizeDelta: {x: 160, y: 40} - m_Pivot: {x: 0.5, y: 0.5} diff --git a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab.meta deleted file mode 100644 index d309462..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/NetworkingStatusCanvas.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 98288e125d6c3254d8319efa526a57c6 -timeCreated: 1571670294 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources.meta b/Runtime/HumanoidFree/Prefabs/Networking/Resources.meta deleted file mode 100644 index ccec62b..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 5f51144cb410d594c9433e3f3fc71ce6 -folderAsset: yes -timeCreated: 1466886388 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab b/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab deleted file mode 100644 index 0c4b782..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab +++ /dev/null @@ -1,46 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1810220956971058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4191195719973714} - - component: {fileID: 114636771493283014} - m_Layer: 0 - m_Name: HumanoidPlayer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4191195719973714 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1810220956971058} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114636771493283014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1810220956971058} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb69cd2012a95b549a6c414c3619432c, type: 3} - m_Name: - m_EditorClassIdentifier: - _debug: 3 diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab.meta deleted file mode 100644 index 0a21289..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayer.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: def06cb2d19a8f74b8f61ea42324f172 -timeCreated: 1573641610 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab b/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab deleted file mode 100644 index 21610e0..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab +++ /dev/null @@ -1,46 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1975277086177212 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4875575016833090} - - component: {fileID: 114766607560202908} - m_Layer: 0 - m_Name: HumanoidPlayerVoice - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4875575016833090 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1975277086177212} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.4449122, y: 0.7732841, z: 0.9059857} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114766607560202908 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1975277086177212} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 69a31162e39169c4fad112f52654bd40, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 0} diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab.meta deleted file mode 100644 index c14f136..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/HumanoidPlayerVoice.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 292b36fb4fbed0946809b597bcf91709 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 100100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab b/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab deleted file mode 100644 index 1a68642..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab +++ /dev/null @@ -1,6351 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1068371214717390 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4910927767604654} - m_Layer: 0 - m_Name: Real World - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4910927767604654 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068371214717390} - 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_Children: - - {fileID: 4153804107837248} - m_Father: {fileID: 4002121168554758} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1156171507316346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4002121168554758} - - component: {fileID: 114826855137666514} - m_Layer: 0 - m_Name: RemoteHumanoid - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4002121168554758 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1156171507316346} - 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_Children: - - {fileID: 4910927767604654} - - {fileID: 591672401800481527} - - {fileID: 8109726074850029706} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &114826855137666514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1156171507316346} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b8af60788a29495468933ff82a4527ba, type: 3} - m_Name: - m_EditorClassIdentifier: - path: es/com.passervr.humanoidcontrol_free/Runtime/HumanoidFree/Scripts/ - headTarget: {fileID: 6535551684303757468} - leftHandTarget: {fileID: 5430091419956194140} - rightHandTarget: {fileID: 5695062431921951012} - hipsTarget: {fileID: 1365793322016220254} - leftFootTarget: {fileID: 6550504753529324966} - rightFootTarget: {fileID: 1486322366812613318} - primaryTarget: 0 - targetsRig: {fileID: 6588191272736249102} - showTargetRig: 0 - avatarRig: {fileID: 680728534872647447} - showAvatarRig: 1 - avatarNeckHeight: 0 - showMuscleTension: 0 - calculateBodyPose: 1 - animatorEnabled: 1 - animatorController: {fileID: 0} - pose: {fileID: 0} - editPose: 0 - remoteAvatar: {fileID: 0} - playerType: 0 - syncRootTransform: 1 - remoteTrackerIpAddress: - humanoidId: 0 - showRealObjects: 0 - _showSkeletons: 0 - physics: 0 - useGravity: 0 - generateColliders: 1 - haptics: 0 - startPosition: 0 - scaling: 1 - calibrateAtStart: 0 - dontDestroyOnLoad: 1 - disconnectInstances: 0 - gameControllerEnabled: 1 - gameControllerIndex: 0 - gameController: 0 - unityXR: - enabled: 0 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114826855137666514} - leapTracker: - enabled: 0 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114826855137666514} - isHeadMounted: 0 - custom: - enabled: 0 - status: 0 - trackerComponent: {fileID: 0} - humanoid: {fileID: 114826855137666514} - forwardSpeed: 1 - backwardSpeed: 0.6 - sidewardSpeed: 1 - maxAcceleration: 1 - rotationSpeed: 60 - stepOffset: 0.3 - proximitySpeed: 0 - proximitySpeedRate: 0.8 - bodyPull: 0 - velocity: {x: 0, y: 0, z: 0} - targetVelocity: {x: 0, y: 0, z: 0} - acceleration: {x: 0, y: 0, z: 0} - turningVelocity: 0 - triggerEntered: 0 - collided: 0 - hitNormal: {x: 0, y: 0, z: 0} - humanoidRigidbody: {fileID: 0} - characterRigidbody: {fileID: 0} - bodyCapsule: {fileID: 0} - bodyCollider: {fileID: 0} - ground: {fileID: 0} - groundVelocity: {x: 0, y: 0, z: 0} - groundAngularVelocity: 0 - useLegLengthCorrection: 0 - animatorParameterForward: - animatorParameterSideward: - animatorParameterRotation: - animatorParameterHeight: - animatorParameterForwardIndex: 0 - animatorParameterSidewardIndex: 0 - animatorParameterRotationIndex: 0 - animatorParameterHeightIndex: 0 - isRemote: 1 - nwId: 0 - id: -1 ---- !u!1 &1438423234026816 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4153804107837248} - m_Layer: 0 - m_Name: UnityVR root - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4153804107837248 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1438423234026816} - 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_Children: [] - m_Father: {fileID: 4910927767604654} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &110993911186761263 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4678371473388366681} - m_Layer: 0 - m_Name: RightHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4678371473388366681 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110993911186761263} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04375305, y: 0.006900177, z: 0.026853401} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 9158715631570718542} - m_Father: {fileID: 1384819643979957732} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &397614198376578787 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6150805920862007962} - m_Layer: 0 - m_Name: LeftHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6150805920862007962 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 397614198376578787} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.04567215, y: 0.007352142, z: -0.0017597537} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4442985438921477946} - m_Father: {fileID: 919348708173214003} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &479529688020740513 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6735140066322804363} - m_Layer: 0 - m_Name: Head_End_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6735140066322804363 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 479529688020740513} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.16325943, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 709233542956437696} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &484799425235078165 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2713318210032818432} - m_Layer: 0 - m_Name: RightShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2713318210032818432 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 484799425235078165} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.049049404, y: 0.04062805, z: -0.012485102} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2993339013639300881} - m_Father: {fileID: 4851635416193594777} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &490060395861007360 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6234380805957646450} - m_Layer: 0 - m_Name: LeftHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6234380805957646450 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 490060395861007360} - m_LocalRotation: {x: 4.6251358e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02503746, y: -0.002580261, z: -0.00006344959} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7917293258167048292} - m_Father: {fileID: 398250952924521470} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &500297651496945363 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 240270227194397222} - m_Layer: 0 - m_Name: RightHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &240270227194397222 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 500297651496945363} - m_LocalRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.9975902} - m_LocalPosition: {x: 0.03886811, y: 0.0014897734, z: 0.037806094} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3729545316828013208} - m_Father: {fileID: 1384819643979957732} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &854419929232051711 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5447568556864230259} - m_Layer: 0 - m_Name: RightHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5447568556864230259 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 854419929232051711} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.029777298, y: 0.00011596679, z: 0.00026114538} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 1366346773419824448} - m_Father: {fileID: 4399054845172348296} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &860611544100834437 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5872600203917322580} - m_Layer: 0 - m_Name: RightHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5872600203917322580 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860611544100834437} - m_LocalRotation: {x: 0.0000000011378876, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.024410933, y: -0.002639923, z: -0.0001821129} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3037357661330717418} - m_Father: {fileID: 8211182712089123295} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1149554402099084491 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6098882891468322813} - m_Layer: 0 - m_Name: LeftHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6098882891468322813 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1149554402099084491} - m_LocalRotation: {x: 9.382326e-10, y: -7.190296e-18, z: 0.00000004003126, w: 1} - m_LocalPosition: {x: -0.029778114, y: 0.000015687518, z: 0.00024009302} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6704703070946735464} - m_Father: {fileID: 2292926569716310678} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1200124775660971479 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7434154772457376502} - m_Layer: 0 - m_Name: RightHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7434154772457376502 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200124775660971479} - m_LocalRotation: {x: 0.00004510139, y: -0.0043779872, z: -0.01030091, w: 0.9999374} - m_LocalPosition: {x: 0.037417922, y: -6.1118044e-10, z: -5.5661076e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 907053709369681044} - m_Father: {fileID: 3910605594806730540} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1244233456858155309 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 398250952924521470} - m_Layer: 0 - m_Name: LeftHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &398250952924521470 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1244233456858155309} - m_LocalRotation: {x: -0.000020047919, y: -0.001295886, z: 0.01546941, w: 0.99987954} - m_LocalPosition: {x: -0.032411378, y: -0.0000000021809456, z: 0.0000000011952758} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6234380805957646450} - m_Father: {fileID: 1608308491504492002} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1378371120558837934 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2993339013639300881} - m_Layer: 0 - m_Name: RightUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2993339013639300881 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1378371120558837934} - m_LocalRotation: {x: 0.0047789654, y: 0.00012399603, z: 0.0000005923608, w: 0.9999886} - m_LocalPosition: {x: 0.1564886, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 8018328997836410923} - m_Father: {fileID: 2713318210032818432} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1380205179337919127 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7859618097178837723} - m_Layer: 0 - m_Name: LeftHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7859618097178837723 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1380205179337919127} - m_LocalRotation: {x: -0.00002413182, y: -0.0018862897, z: 0.012792739, w: 0.99991643} - m_LocalPosition: {x: -0.03359361, y: 2.5367797e-10, z: -0.000000003947975} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6865831656060715499} - m_Father: {fileID: 7766524584644067847} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1405978076164717847 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1097111955822560577} - m_Layer: 0 - m_Name: LeftShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1097111955822560577 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1405978076164717847} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.04904938, y: 0.0406308, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3771841623590078335} - m_Father: {fileID: 4851635416193594777} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1601736762126055393 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1384819643979957732} - - component: {fileID: 5695062431921951012} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1384819643979957732 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1601736762126055393} - m_LocalRotation: {x: 0.0033266186, y: -0.06155748, z: 0.026148034, w: 0.9977554} - m_LocalPosition: {x: 0.28401995, y: 0, z: -2.1760372e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4678371473388366681} - - {fileID: 8617168008173460055} - - {fileID: 1420219454966049270} - - {fileID: 6235808150517036823} - - {fileID: 240270227194397222} - m_Father: {fileID: 8018328997836410923} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5695062431921951012 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1601736762126055393} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2c296d86543384d49ba4e7f2ea1179cb, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - isLeft: 0 - side: 2 - outward: {x: 1, y: 0, z: 0} - up: {x: 0, y: 0, z: 0} - fingers: - handTarget: {fileID: 5695062431921951012} - thumb: - proximal: - name: - boneId: 41 - target: - length: 0.049988925 - transform: {fileID: 240270227194397222} - baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} - basePosition: {x: 0.03886811, y: 0.0014897735, z: 0.037806097} - toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} - bone: - transform: {fileID: 592209053228630247} - length: 0.049988925 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 42 - target: - length: 0.0347243 - transform: {fileID: 3729545316828013208} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000001} - basePosition: {x: 0.049988385, y: -0.00005773319, z: -0.0002239871} - toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} - bone: - transform: {fileID: 587804392524347783} - length: 0.0347243 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 43 - target: - length: 0 - transform: {fileID: 4399054845172348296} - baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} - basePosition: {x: 0.03472366, y: 0.000028669496, z: -0.0002020542} - toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} - bone: - transform: {fileID: 591898873456255609} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - index: - proximal: - name: - boneId: 45 - target: - length: 0.049120452 - transform: {fileID: 9158715631570718542} - baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} - basePosition: {x: 0.11888999, y: 0.0002823022, z: 0.025864676} - toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} - bone: - transform: {fileID: 587787833625476635} - length: 0.049120452 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 46 - target: - length: 0.027847793 - transform: {fileID: 677432047852665798} - baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} - basePosition: {x: 0.04912045, y: -9.0221874e-10, z: 0.000000004813046} - toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} - bone: - transform: {fileID: 591716680847479153} - length: 0.027847793 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 47 - target: - length: 0 - transform: {fileID: 8211182712089123295} - baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} - basePosition: {x: 0.027847815, y: 0.000000002294211, z: 0.000000009025048} - toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} - bone: - transform: {fileID: 592117385482609027} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - middle: - proximal: - name: - boneId: 49 - target: - length: 0.053606734 - transform: {fileID: 565004533149221812} - baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} - basePosition: {x: 0.11720556, y: -0.00000008469215, z: 0.0000000012223609} - toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} - bone: - transform: {fileID: 592215833839741987} - length: 0.053606734 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 50 - target: - length: 0.033593573 - transform: {fileID: 1865794860401661921} - baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} - basePosition: {x: 0.053606734, y: -6.1118044e-10, z: -0.0000000048676156} - toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} - bone: - transform: {fileID: 587732405497794349} - length: 0.033593573 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 51 - target: - length: 0 - transform: {fileID: 1710781727407224163} - baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} - basePosition: {x: 0.033593573, y: 0.000000002068301, z: -0.0000000014859074} - toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} - bone: - transform: {fileID: 591754207646721513} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - ring: - proximal: - name: - boneId: 53 - target: - length: 0.046718344 - transform: {fileID: 2263684503888298213} - baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} - basePosition: {x: 0.10697592, y: 0.0011916641, z: -0.021745238} - toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} - bone: - transform: {fileID: 591761754503770517} - length: 0.046718344 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 54 - target: - length: 0.03241227 - transform: {fileID: 5548564568391483902} - baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} - basePosition: {x: 0.04671835, y: 4.947651e-10, z: 0.0000000039981387} - toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} - bone: - transform: {fileID: 588264554391329437} - length: 0.03241227 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 55 - target: - length: 0 - transform: {fileID: 7311126809661861561} - baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} - basePosition: {x: 0.03241226, y: -9.638832e-10, z: 0.000000005818594} - toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} - bone: - transform: {fileID: 587777949355484781} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - little: - proximal: - name: - boneId: 57 - target: - length: 0.03741792 - transform: {fileID: 3910605594806730540} - baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} - basePosition: {x: 0.094646335, y: 0.0002823029, z: -0.043193262} - toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} - bone: - transform: {fileID: 588048282746980091} - length: 0.03741792 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 58 - target: - length: 0.023638997 - transform: {fileID: 7434154772457376502} - baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} - basePosition: {x: 0.037417922, y: -6.1118044e-10, z: -5.5661076e-10} - toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} - bone: - transform: {fileID: 587918410384112787} - length: 0.023638997 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 59 - target: - length: 0 - transform: {fileID: 907053709369681044} - baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} - basePosition: {x: 0.02363899, y: -2.3899815e-10, z: 0.000000007521256} - toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} - bone: - transform: {fileID: 592081850737412989} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - allFingers: - - proximal: - name: - boneId: 41 - target: - length: 0.049988925 - transform: {fileID: 240270227194397222} - baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} - basePosition: {x: 0.03886811, y: 0.0014897735, z: 0.037806097} - toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} - bone: - transform: {fileID: 592209053228630247} - length: 0.049988925 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 42 - target: - length: 0.0347243 - transform: {fileID: 3729545316828013208} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000001} - basePosition: {x: 0.049988385, y: -0.00005773319, z: -0.0002239871} - toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} - bone: - transform: {fileID: 587804392524347783} - length: 0.0347243 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 43 - target: - length: 0 - transform: {fileID: 4399054845172348296} - baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} - basePosition: {x: 0.03472366, y: 0.000028669496, z: -0.0002020542} - toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} - bone: - transform: {fileID: 591898873456255609} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 45 - target: - length: 0.049120452 - transform: {fileID: 9158715631570718542} - baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} - basePosition: {x: 0.11888999, y: 0.0002823022, z: 0.025864676} - toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} - bone: - transform: {fileID: 587787833625476635} - length: 0.049120452 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 46 - target: - length: 0.027847793 - transform: {fileID: 677432047852665798} - baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} - basePosition: {x: 0.04912045, y: -9.0221874e-10, z: 0.000000004813046} - toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} - bone: - transform: {fileID: 591716680847479153} - length: 0.027847793 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 47 - target: - length: 0 - transform: {fileID: 8211182712089123295} - baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} - basePosition: {x: 0.027847815, y: 0.000000002294211, z: 0.000000009025048} - toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} - bone: - transform: {fileID: 592117385482609027} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 49 - target: - length: 0.053606734 - transform: {fileID: 565004533149221812} - baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} - basePosition: {x: 0.11720556, y: -0.00000008469215, z: 0.0000000012223609} - toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} - bone: - transform: {fileID: 592215833839741987} - length: 0.053606734 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 50 - target: - length: 0.033593573 - transform: {fileID: 1865794860401661921} - baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} - basePosition: {x: 0.053606734, y: -6.1118044e-10, z: -0.0000000048676156} - toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} - bone: - transform: {fileID: 587732405497794349} - length: 0.033593573 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 51 - target: - length: 0 - transform: {fileID: 1710781727407224163} - baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} - basePosition: {x: 0.033593573, y: 0.000000002068301, z: -0.0000000014859074} - toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} - bone: - transform: {fileID: 591754207646721513} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 53 - target: - length: 0.046718344 - transform: {fileID: 2263684503888298213} - baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} - basePosition: {x: 0.10697592, y: 0.0011916641, z: -0.021745238} - toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} - bone: - transform: {fileID: 591761754503770517} - length: 0.046718344 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 54 - target: - length: 0.03241227 - transform: {fileID: 5548564568391483902} - baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} - basePosition: {x: 0.04671835, y: 4.947651e-10, z: 0.0000000039981387} - toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} - bone: - transform: {fileID: 588264554391329437} - length: 0.03241227 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 55 - target: - length: 0 - transform: {fileID: 7311126809661861561} - baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} - basePosition: {x: 0.03241226, y: -9.638832e-10, z: 0.000000005818594} - toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} - bone: - transform: {fileID: 587777949355484781} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 57 - target: - length: 0.03741792 - transform: {fileID: 3910605594806730540} - baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} - basePosition: {x: 0.094646335, y: 0.0002823029, z: -0.043193262} - toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} - bone: - transform: {fileID: 588048282746980091} - length: 0.03741792 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 58 - target: - length: 0.023638997 - transform: {fileID: 7434154772457376502} - baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} - basePosition: {x: 0.037417922, y: -6.1118044e-10, z: -5.5661076e-10} - toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} - bone: - transform: {fileID: 587918410384112787} - length: 0.023638997 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 59 - target: - length: 0 - transform: {fileID: 907053709369681044} - baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} - basePosition: {x: 0.02363899, y: -2.3899815e-10, z: 0.000000007521256} - toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} - bone: - transform: {fileID: 592081850737412989} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - rotationSpeedLimitation: 0 - unity: {fileID: 0} - armAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - armSwing: 0 - unityXR: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - controller: {fileID: 0} - leap: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - stretchlessTarget: {fileID: 0} - shoulder: - name: - boneId: 36 - target: - length: 0.1564886 - transform: {fileID: 2713318210032818432} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0.049049404, y: 0.2781893, z: 0.000000019902345} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 592053285191912115} - length: 0.1564886 - jointLimitations: 1 - maxAngle: 30 - minAngles: {x: 0, y: -45, z: 0} - maxAngles: {x: 0, y: 0, z: 45} - baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - upperArm: - name: - boneId: 37 - target: - length: 0.25876004 - transform: {fileID: 2993339013639300881} - baseRotation: {x: 0.0047789654, y: 0.00012399603, z: 0.0000005923608, w: 0.9999886} - basePosition: {x: 0.1564886, y: -0.00000008568168, z: 0} - toBoneRotation: {x: 2.328313e-10, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 591932048778257665} - length: 0.25876004 - jointLimitations: 0 - maxAngle: 120 - minAngles: {x: -180, y: -130, z: -45} - maxAngles: {x: 60, y: 45, z: 180} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -2.328313e-10, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - forearm: - name: - boneId: 38 - target: - length: 0.28401992 - transform: {fileID: 8018328997836410923} - baseRotation: {x: 0.0040864795, y: -0.00029907306, z: 0.0000012221235, w: 0.9999917} - basePosition: {x: 0.25876004, y: -0.000000085681684, z: 2.1715267e-15} - toBoneRotation: {x: 6.938894e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 587894795616615637} - length: 0.28401992 - jointLimitations: 0 - maxAngle: 130 - minAngles: {x: 0, y: -150, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.938894e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hand: - name: - boneId: 40 - target: - length: 0 - transform: {fileID: 1384819643979957732} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: -0.009768442, y: 0.06193218, z: -0.025749847, w: 0.99770033} - bone: - transform: {fileID: 588072938308471699} - length: 0.02 - jointLimitations: 0 - maxAngle: 100 - minAngles: {x: -90, y: -20, z: -70} - maxAngles: {x: 45, y: 50, z: 70} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.009768442, y: -0.06193218, z: 0.025749847, w: 0.99770033} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - poseMethod: 0 - physics: 1 - physicsMode: 2 - strength: 100 - grabbingTechnique: 0 - touchInteraction: 1 - poseMixer: - mixedPoses: [] - poseMode: 0 - grabSocket: {fileID: 0} - pinchSocket: {fileID: 0} - grabbedPrefab: {fileID: 0} - grabbedObject: {fileID: 0} - grabbedHandle: {fileID: 0} - targetToHandle: {x: 0, y: 0, z: 0} - grabbedRigidbody: 0 - grabbedKinematicRigidbody: 0 - colliders: [] - twoHandedGrab: 0 - targetToSecondaryHandle: {x: 0, y: 0, z: 0} - poseEvent: - id: 1 - label: Pose Event - tooltip: 'Call functions based on recognized posesParameter: the index of the - recognized pose' - eventTypeLabels: - - Never - - On Pose Recognized - - On No Pose Recongnized - - While Pose Recognized - - While No Pose Recognized - - When Pose Changes - - Always - fromEventLabel: poseMixer.detectedPoseIx - events: [] - touchEvent: - id: 2 - label: Touch Event - tooltip: 'Call funtions based on touched objectsParameter: the touched object' - eventTypeLabels: - - Never - - On Touch Start - - On Touch End - - While Touching - - While not Touching - - On Touched Object Changes - - Always - fromEventLabel: touchedObject - events: [] - grabEvent: - id: 3 - label: Grab Event - tooltip: 'Call functions based on grabbed objectsParameter: the grabbed object' - eventTypeLabels: - - Never - - On Grab Start - - On Grab End - - While Holding Object - - While not Holding Object - - On Grabbed Object Changes - - Always - fromEventLabel: grabbedObject - events: [] - handPalm: {fileID: 6870900048621471814} - handRigidbody: {fileID: 0} - handPhysics: {fileID: 0} - grabbedChanged: 0 - directFingerMovements: 1 ---- !u!1 &1656027578077895783 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4645489448358034477} - - component: {fileID: 1486322366812613318} - m_Layer: 0 - m_Name: RightFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4645489448358034477 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1656027578077895783} - m_LocalRotation: {x: 0.020767761, y: 0.000006713889, z: 0.004095184, w: -0.999776} - m_LocalPosition: {x: -0.0000000018626451, y: -0.46714398, z: -0.000000013038516} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4386803634283647145} - m_Father: {fileID: 6426088298692440529} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1486322366812613318 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1656027578077895783} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb3310a2943ad7741b6c53520f451c91, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - isLeft: 0 - side: 2 - otherFoot: {fileID: 6550504753529324966} - rotationSpeedLimitation: 0 - legAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - animationSpeed: 1 - velocityAnimationSpeed: 0 - isMoving: 0 - scale: {x: 1, y: 1, z: 1} - f: 0 - prevFrame: 0 - nextFrame: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 2 - upperLeg: - name: - boneId: 60 - target: - length: 0.4569167 - transform: {fileID: 8225203620420219199} - baseRotation: {x: 0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} - basePosition: {x: 0.1055315, y: -0.08806288, z: -0.0085835215} - toBoneRotation: {x: -0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} - bone: - transform: {fileID: 588263001641534767} - length: 0.4569167 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -130, y: -40, z: -30} - maxAngles: {x: 30, y: 45, z: 50} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - lowerLeg: - name: - boneId: 61 - target: - length: 0.46714398 - transform: {fileID: 6426088298692440529} - baseRotation: {x: -0.01390668, y: -0.00034497335, z: -0.01789027, w: 0.9997432} - basePosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - toBoneRotation: {x: -0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} - bone: - transform: {fileID: 588264624391279083} - length: 0.46714398 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -15, y: NaN, z: NaN} - maxAngles: {x: 130, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - foot: - name: - boneId: 62 - target: - length: 0.14564736 - transform: {fileID: 4645489448358034477} - baseRotation: {x: -0.0026854733, y: 0.000012755864, z: 0.0047498476, w: 0.99998516} - basePosition: {x: 0.113097906, y: 0.102199554, z: -0.03873977} - toBoneRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - bone: - transform: {fileID: 592189132597178433} - length: 0.14564736 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -45, y: 0, z: -20} - maxAngles: {x: 50, y: 0, z: 30} - baseRotation: {x: 0.28736073, y: 0.00000032279587, z: -0.00000009684347, w: 0.95782244} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - toes: - name: - boneId: 63 - target: - length: 0 - transform: {fileID: 4386803634283647145} - baseRotation: {x: 3.0914171e-18, y: -7.275969e-12, z: 0.000000008381947, w: 1.0000002} - basePosition: {x: 0.00000008527422, y: -0.080176204, z: 0.12159335} - toBoneRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} - bone: - transform: {fileID: 592137291844797639} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -70, y: NaN, z: NaN} - maxAngles: {x: 45, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: 1.7763568e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - jointLimitations: 1 - slidePrevention: 0 - physics: 1 - groundEvent: - id: 1 - label: Ground Event - tooltip: 'Call function based on ground standing - - Parameter: the ground - object' - eventTypeLabels: - - Never - - On Grounded - - On not Grounded - - While Grounded - - While not Grounded - - When Ground Changes - - Always - fromEventLabel: ground.gameObject - events: [] - ground: {fileID: 0} - groundNormal: {x: 0, y: 1, z: 0} - groundTranslation: {x: 0, y: 0, z: 0} - groundDistance: -0.060000002 - soleThicknessFoot: 0 - soleThicknessToes: 0 ---- !u!1 &1763888452849778845 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6434463011997992280} - m_Layer: 0 - m_Name: Spine1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6434463011997992280 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1763888452849778845} - m_LocalRotation: {x: -4.656613e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -1.9845957e-15, y: 0.11258178, z: -3.9639472e-11} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1174311148405544848} - m_Father: {fileID: 7025303869138207558} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1799629767139349453 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6426088298692440529} - m_Layer: 0 - m_Name: RightLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6426088298692440529 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1799629767139349453} - m_LocalRotation: {x: 0.022657834, y: -7.275958e-12, z: -8.1326856e-10, w: 0.9997433} - m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4645489448358034477} - m_Father: {fileID: 8225203620420219199} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2056641521383547530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 907053709369681044} - m_Layer: 0 - m_Name: RightHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &907053709369681044 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2056641521383547530} - m_LocalRotation: {x: -0.000002926688, y: 0.00021634062, z: -0.0135223325, w: 0.9999086} - m_LocalPosition: {x: 0.02363899, y: -1.530509e-10, z: 1.4371793e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3445279865472850978} - m_Father: {fileID: 7434154772457376502} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2104485374557000277 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8225203620420219199} - m_Layer: 0 - m_Name: RightUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8225203620420219199 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2104485374557000277} - m_LocalRotation: {x: 0.001890329, y: 0.00008607621, z: -0.0040942887, w: -0.99998987} - m_LocalPosition: {x: 0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6426088298692440529} - m_Father: {fileID: 7685491658538494673} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2128700696309365482 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 709233542956437696} - m_Layer: 0 - m_Name: Head_End - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &709233542956437696 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2128700696309365482} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5254398e-16, y: 0.16325943, z: -2.58904e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6735140066322804363} - m_Father: {fileID: 6701725295753121135} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2184328169107614150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7352137019195285355} - m_Layer: 0 - m_Name: LeftForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7352137019195285355 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2184328169107614150} - m_LocalRotation: {x: 0.0016893777, y: 0.000000042145203, z: -4.5932e-10, w: 0.9999986} - m_LocalPosition: {x: -0.2587603, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 919348708173214003} - m_Father: {fileID: 3771841623590078335} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2286589848012526082 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6704703070946735464} - m_Layer: 0 - m_Name: LeftHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6704703070946735464 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2286589848012526082} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029779052, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6098882891468322813} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2463784103103566138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4851635416193594777} - m_Layer: 0 - m_Name: Spine3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4851635416193594777 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2463784103103566138} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.52742e-16, y: 0.117230676, z: 0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1097111955822560577} - - {fileID: 4090642884433967874} - - {fileID: 2713318210032818432} - m_Father: {fileID: 1174311148405544848} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2673215998404564474 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7766524584644067847} - m_Layer: 0 - m_Name: LeftHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7766524584644067847 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2673215998404564474} - m_LocalRotation: {x: 0.000016403153, y: 0.0036615173, z: 0.0044799605, w: 0.99998325} - m_LocalPosition: {x: -0.05360612, y: -1.7462298e-10, z: 0.000000006555638} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7859618097178837723} - m_Father: {fileID: 6207834740692185912} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2802830546007022942 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1366346773419824448} - m_Layer: 0 - m_Name: RightHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1366346773419824448 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2802830546007022942} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029778594, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5447568556864230259} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2820845679672422589 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 819857254125170195} - - component: {fileID: 2613846749418268648} - - component: {fileID: 1887690662489837828} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &819857254125170195 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2820845679672422589} - m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8109726074850029706} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2613846749418268648 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2820845679672422589} - m_Mesh: {fileID: 4300000, guid: fcf9a9e3fb67cb64887a4d17ddc7c85c, type: 3} ---- !u!23 &1887690662489837828 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2820845679672422589} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 15932f28e65def049945387d8ce8f70c, 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: 0 - 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 ---- !u!1 &3034462306792289506 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4442985438921477946} - m_Layer: 0 - m_Name: LeftHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4442985438921477946 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3034462306792289506} - m_LocalRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.99606603} - m_LocalPosition: {x: -0.061303318, y: -0.006159415, z: -0.019985357} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1608308491504492002} - m_Father: {fileID: 6150805920862007962} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3146359296243781668 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3729545316828013208} - m_Layer: 0 - m_Name: RightHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3729545316828013208 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3146359296243781668} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.049988404, y: -0.000057678237, z: -0.00022398635} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4399054845172348296} - m_Father: {fileID: 240270227194397222} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3194252863001404746 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8018328997836410923} - m_Layer: 0 - m_Name: RightForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8018328997836410923 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3194252863001404746} - m_LocalRotation: {x: 0.0016829243, y: -0.0003315707, z: 0.0000006533087, w: 0.9999985} - m_LocalPosition: {x: 0.25876004, y: -5.813945e-12, z: 4.4668338e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1384819643979957732} - m_Father: {fileID: 2993339013639300881} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3295700083079012718 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4635728229349713669} - m_Layer: 0 - m_Name: LeftHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4635728229349713669 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3295700083079012718} - m_LocalRotation: {x: -0.00000673482, y: -0.00029616614, z: 0.022725834, w: 0.9997417} - m_LocalPosition: {x: -0.027847834, y: -0.0000000016792647, z: -0.000000001873365} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4893676935283775881} - m_Father: {fileID: 6279907835955851790} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3595912130230952490 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8211182712089123295} - m_Layer: 0 - m_Name: RightHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8211182712089123295 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3595912130230952490} - m_LocalRotation: {x: -0.00007100405, y: 0.0031085527, z: -0.022835713, w: 0.9997344} - m_LocalPosition: {x: 0.027847815, y: 0.0000000023525182, z: 0.000000005328869} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5872600203917322580} - m_Father: {fileID: 677432047852665798} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3614654647190050685 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3445279865472850978} - m_Layer: 0 - m_Name: RightHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3445279865472850978 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3614654647190050685} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.0222126, y: -0.0022802735, z: 0.00006594256} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3704916445004212771} - m_Father: {fileID: 907053709369681044} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3660584524126182029 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7807540582941893714} - m_Layer: 0 - m_Name: LeftToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7807540582941893714 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3660584524126182029} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 3866327259047323023} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3739408186791980487 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5548564568391483902} - m_Layer: 0 - m_Name: RightHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5548564568391483902 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3739408186791980487} - m_LocalRotation: {x: 0.000013167039, y: 0.003797423, z: 0.0034671898, w: 0.99998677} - m_LocalPosition: {x: 0.04671835, y: 4.947651e-10, z: 0.0000000039981387} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7311126809661861561} - m_Father: {fileID: 2263684503888298213} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3740074654410037585 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8877015771765186437} - m_Layer: 0 - m_Name: LeftHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8877015771765186437 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3740074654410037585} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.045923002, y: 0.0070205685, z: 0.010279348} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6207834740692185912} - m_Father: {fileID: 919348708173214003} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3741633986665667442 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1608308491504492002} - m_Layer: 0 - m_Name: LeftHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1608308491504492002 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3741633986665667442} - m_LocalRotation: {x: -0.000000008381903, y: 0.0000023022294, z: -0.0023784682, w: 0.9999972} - m_LocalPosition: {x: -0.046718843, y: 4.5110937e-10, z: 0.0000000026047928} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 398250952924521470} - m_Father: {fileID: 4442985438921477946} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3819845607505742070 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1420219454966049270} - m_Layer: 0 - m_Name: RightHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1420219454966049270 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3819845607505742070} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04592308, y: 0.0070201107, z: 0.010279321} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 565004533149221812} - m_Father: {fileID: 1384819643979957732} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3844353888719314468 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9158715631570718542} - m_Layer: 0 - m_Name: RightHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &9158715631570718542 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3844353888719314468} - m_LocalRotation: {x: -0.003058635, y: 0.060362756, z: -0.050513405, w: 0.99689287} - m_LocalPosition: {x: 0.07513694, y: -0.006617875, z: -0.0009887256} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 677432047852665798} - m_Father: {fileID: 4678371473388366681} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3866220757510659405 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 21482624242654159} - m_Layer: 0 - m_Name: LeftHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &21482624242654159 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3866220757510659405} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329101, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4051080847338673407} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4029246906466120145 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6899290527063767051} - m_Layer: 0 - m_Name: LeftHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6899290527063767051 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4029246906466120145} - m_LocalRotation: {x: -0.000039089708, y: -0.0037677626, z: 0.010374232, w: 0.9999391} - m_LocalPosition: {x: -0.03741743, y: -3.2014214e-10, z: 0.0000000016225385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5266616833384180498} - m_Father: {fileID: 4712539179356354180} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4127448076751433800 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6005914055452777760} - m_Layer: 0 - m_Name: LeftHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6005914055452777760 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4127448076751433800} - m_LocalRotation: {x: 0.0000065267095, y: 0.002753094, z: 0.0023710353, w: 0.99999344} - m_LocalPosition: {x: -0.049987946, y: 0.00012684021, z: -0.00012565777} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2292926569716310678} - m_Father: {fileID: 369764102231270853} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4159512167118644495 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4893676935283775881} - m_Layer: 0 - m_Name: LeftHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4893676935283775881 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4159512167118644495} - m_LocalRotation: {x: -6.938894e-18, y: 6.203854e-25, z: -0.000000048550163, w: 1} - m_LocalPosition: {x: -0.024411585, y: -0.00263807, z: 0.00006414011} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5784702983956492263} - m_Father: {fileID: 4635728229349713669} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4316513562566075671 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7917293258167048292} - m_Layer: 0 - m_Name: LeftHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7917293258167048292 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4316513562566075671} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025170134, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6234380805957646450} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4783590354986351009 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7531675425121720509} - m_Layer: 0 - m_Name: LeftHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7531675425121720509 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4783590354986351009} - m_LocalRotation: {x: -0.00317021, y: -0.06252101, z: 0.05054191, w: 0.99675804} - m_LocalPosition: {x: -0.075136304, y: -0.0066132653, z: -0.000988517} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6279907835955851790} - m_Father: {fileID: 1361535315803653228} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5092260238687096344 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2292926569716310678} - m_Layer: 0 - m_Name: LeftHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2292926569716310678 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5092260238687096344} - m_LocalRotation: {x: -0.0000037042141, y: 0.0025506972, z: -0.0014522823, w: 0.9999957} - m_LocalPosition: {x: -0.034724806, y: -0.00007960955, z: 0.00010122135} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6098882891468322813} - m_Father: {fileID: 6005914055452777760} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5148210256678115869 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4090642884433967874} - m_Layer: 0 - m_Name: Neck - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4090642884433967874 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5148210256678115869} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.1879386e-16, y: 0.120701596, z: -0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6701725295753121135} - m_Father: {fileID: 4851635416193594777} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5387695712000450436 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5266616833384180498} - m_Layer: 0 - m_Name: LeftHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5266616833384180498 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5387695712000450436} - m_LocalRotation: {x: 0.000043546504, y: 0.0030319644, z: 0.014361531, w: 0.9998923} - m_LocalPosition: {x: -0.023639707, y: -0.0000000011557972, z: 0.0000000047519753} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4051080847338673407} - m_Father: {fileID: 6899290527063767051} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5400917428038188317 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 369764102231270853} - m_Layer: 0 - m_Name: LeftHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &369764102231270853 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5400917428038188317} - m_LocalRotation: {x: -0.0015786077, y: -0.06299851, z: 0.025000213, w: 0.9976992} - m_LocalPosition: {x: -0.03886753, y: 0.0014843331, z: 0.037806235} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6005914055452777760} - m_Father: {fileID: 919348708173214003} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5434387258109594772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7311126809661861561} - m_Layer: 0 - m_Name: RightHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7311126809661861561 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5434387258109594772} - m_LocalRotation: {x: -0.000035283232, y: 0.0021739898, z: -0.016227672, w: 0.999866} - m_LocalPosition: {x: 0.03241226, y: -9.638832e-10, z: 0.000000005818594} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5530583243913786415} - m_Father: {fileID: 5548564568391483902} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5884794299356656558 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8109726074850029706} - - component: {fileID: 6588191272736249102} - m_Layer: 0 - m_Name: Target Rig - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8109726074850029706 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5884794299356656558} - 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_Children: - - {fileID: 819857254125170195} - - {fileID: 7685491658538494673} - m_Father: {fileID: 4002121168554758} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!95 &6588191272736249102 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5884794299356656558} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 0ef46fdec482c674c8bd176e0b18d448, type: 3} - m_Controller: {fileID: 0} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 1 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1 &5948964867027496134 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6279907835955851790} - m_Layer: 0 - m_Name: LeftHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6279907835955851790 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5948964867027496134} - m_LocalRotation: {x: 0.000022361754, y: 0.003334172, z: 0.006706791, w: 0.999972} - m_LocalPosition: {x: -0.049120743, y: 7.421477e-10, z: -1.9281288e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4635728229349713669} - m_Father: {fileID: 7531675425121720509} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5985159037179994062 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7025303869138207558} - m_Layer: 0 - m_Name: Spine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7025303869138207558 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5985159037179994062} - m_LocalRotation: {x: 4.6566195e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 1.7684579e-15, y: 0.096092984, z: 0.0000000023841857} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6434463011997992280} - m_Father: {fileID: 7685491658538494673} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6135576018818268613 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6207834740692185912} - m_Layer: 0 - m_Name: LeftHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6207834740692185912 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6135576018818268613} - m_LocalRotation: {x: -0.003777611, y: -0.062540606, z: 0.06017423, w: 0.99621964} - m_LocalPosition: {x: -0.07128274, y: -0.0070205415, z: -0.010279346} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7766524584644067847} - m_Father: {fileID: 8877015771765186437} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6188873200100834796 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1710781727407224163} - m_Layer: 0 - m_Name: RightHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1710781727407224163 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6188873200100834796} - m_LocalRotation: {x: -0.00013389184, y: 0.010465758, z: -0.01279156, w: 0.99986345} - m_LocalPosition: {x: 0.033593573, y: 0.000000002068301, z: -0.0000000014859074} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3245149430415610841} - m_Father: {fileID: 1865794860401661921} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6214238708672682758 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3522780352200875708} - m_Layer: 0 - m_Name: LeftHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3522780352200875708 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6214238708672682758} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.042913206, y: 0.006371307, z: -0.016307002} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4712539179356354180} - m_Father: {fileID: 919348708173214003} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6245989478137266862 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3910605594806730540} - m_Layer: 0 - m_Name: RightHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3910605594806730540 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6245989478137266862} - m_LocalRotation: {x: -0.0034078602, y: 0.0635157, z: -0.053468242, w: 0.99654174} - m_LocalPosition: {x: 0.051733356, y: -0.0060877837, z: -0.02688626} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7434154772457376502} - m_Father: {fileID: 8617168008173460055} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6317864689481321338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4386803634283647145} - m_Layer: 0 - m_Name: RightToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4386803634283647145 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6317864689481321338} - m_LocalRotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - m_LocalPosition: {x: 0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4628523735288404646} - m_Father: {fileID: 4645489448358034477} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6365870559334511401 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2502186164034236010} - m_Layer: 0 - m_Name: LeftHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2502186164034236010 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6365870559334511401} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802978, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6865831656060715499} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6386933148181731869 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5784702983956492263} - m_Layer: 0 - m_Name: LeftHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5784702983956492263 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6386933148181731869} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553832, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4893676935283775881} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6401436532399952611 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6865831656060715499} - m_Layer: 0 - m_Name: LeftHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6865831656060715499 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6401436532399952611} - m_LocalRotation: {x: 1.1672813e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.026661986, y: -0.0027456665, z: 0.0000018486779} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2502186164034236010} - m_Father: {fileID: 7859618097178837723} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6451615673827960576 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6870900048621471814} - m_Layer: 0 - m_Name: Hand Palm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6870900048621471814 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6451615673827960576} - m_LocalRotation: {x: 0.5847027, y: 0.6116422, z: 0.39151293, w: 0.3615721} - m_LocalPosition: {x: 0.095612705, y: -0.015067069, z: 0.01803054} - m_LocalScale: {x: 1, y: 1.0000001, z: 1} - m_Children: [] - m_Father: {fileID: 588072938308471699} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6462497442292375965 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2263684503888298213} - m_Layer: 0 - m_Name: RightHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2263684503888298213 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6462497442292375965} - m_LocalRotation: {x: -0.004359492, y: 0.059448313, z: -0.07300611, w: 0.9955486} - m_LocalPosition: {x: 0.061303847, y: -0.0061584944, z: -0.019985437} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5548564568391483902} - m_Father: {fileID: 6235808150517036823} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6462628206916385770 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3704916445004212771} - m_Layer: 0 - m_Name: RightHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3704916445004212771 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6462628206916385770} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329407, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 3445279865472850978} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6592193010956666624 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6235808150517036823} - m_Layer: 0 - m_Name: RightHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6235808150517036823 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6592193010956666624} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.045672074, y: 0.0073501584, z: -0.0017598001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2263684503888298213} - m_Father: {fileID: 1384819643979957732} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6654346388703349368 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4051080847338673407} - m_Layer: 0 - m_Name: LeftHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4051080847338673407 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6654346388703349368} - m_LocalRotation: {x: -9.123824e-10, y: 4.8709725e-17, z: 0.000000053387403, w: 1} - m_LocalPosition: {x: -0.022208022, y: -0.00232193, z: 0.000012555385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 21482624242654159} - m_Father: {fileID: 5266616833384180498} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6699326072986593498 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4399054845172348296} - m_Layer: 0 - m_Name: RightHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4399054845172348296 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6699326072986593498} - m_LocalRotation: {x: -0.0000030765073, y: -0.0065837232, z: 0.0026309106, w: 0.9999749} - m_LocalPosition: {x: 0.03472366, y: 0.000028686509, z: -0.00020205184} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5447568556864230259} - m_Father: {fileID: 3729545316828013208} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6749113908123642179 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3965064985886840250} - m_Layer: 0 - m_Name: RightHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3965064985886840250 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6749113908123642179} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802063, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 3245149430415610841} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6802539356963669790 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3771841623590078335} - m_Layer: 0 - m_Name: LeftUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3771841623590078335 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6802539356963669790} - m_LocalRotation: {x: 0.0047750277, y: 0.000000042146848, z: -0, w: 0.9999886} - m_LocalPosition: {x: -0.15648837, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7352137019195285355} - m_Father: {fileID: 1097111955822560577} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6997327881582110496 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3037357661330717418} - m_Layer: 0 - m_Name: RightHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3037357661330717418 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6997327881582110496} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553984, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5872600203917322580} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7099804358865522957 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 442779148012923101} - m_Layer: 0 - m_Name: Hand Palm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &442779148012923101 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7099804358865522957} - m_LocalRotation: {x: 0.58471465, y: -0.61163, z: -0.39150488, w: 0.36158207} - m_LocalPosition: {x: -0.095611036, y: -0.015070653, z: 0.018030647} - m_LocalScale: {x: 1, y: 1.0000001, z: 1} - m_Children: [] - m_Father: {fileID: 592216370686089045} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7109741417248216700 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7685491658538494673} - - component: {fileID: 1365793322016220254} - m_Layer: 0 - m_Name: Hips - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7685491658538494673 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7109741417248216700} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1.1138859, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3246907761170798284} - - {fileID: 8225203620420219199} - - {fileID: 7025303869138207558} - m_Father: {fileID: 8109726074850029706} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1365793322016220254 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7109741417248216700} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a92bd8efd3050c94ca4271d58273b4e0, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - hipsBaseHeight: 0 - newSpineIK: 0 - torsoAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - bodyRotation: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - chest: - name: - boneId: 5 - target: - length: 0.3582629 - transform: {fileID: 6434463011997992280} - baseRotation: {x: -4.656613e-10, y: 0, z: 0, w: 1} - basePosition: {x: -1.9845957e-15, y: 0.112581804, z: 3.0493186e-10} - toBoneRotation: {x: 6.661338e-16, y: 3.4521218e-31, z: 5.182325e-16, w: 1} - bone: - transform: {fileID: 587729718550802341} - length: 0.3582629 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: -5.182325e-16, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: -3.4521218e-31, z: -5.182325e-16, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - spine: - name: - boneId: 2 - target: - length: 0.11258185 - transform: {fileID: 7025303869138207558} - baseRotation: {x: 4.6566195e-10, y: 0, z: 0, w: 1} - basePosition: {x: 1.7684579e-15, y: 0.09609294, z: 0.0000000027939677} - toBoneRotation: {x: 4.6566195e-10, y: -4.1043502e-24, z: -8.814012e-15, w: 1} - bone: - transform: {fileID: 591768369960814185} - length: 0.11258185 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 8.814012e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -4.6566195e-10, y: 4.1043502e-24, z: 8.814012e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hips: - name: - boneId: 1 - target: - length: 0.09609294 - transform: {fileID: 7685491658538494673} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 1.1138859, z: -0.012485122} - toBoneRotation: {x: 0, y: -0, z: 9.20181e-15, w: 1} - bone: - transform: {fileID: 587733836412091299} - length: 0.09609294 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hipsTarget: {fileID: 1365793322016220254} - bendingFactor: 1 - torsoLength: 0.5669377 - spine2HipsRotation: {x: 0, y: 0, z: -9.064944e-15, w: 1} ---- !u!1 &7319327518238929532 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3866327259047323023} - m_Layer: 0 - m_Name: LeftToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3866327259047323023 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7319327518238929532} - m_LocalRotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - m_LocalPosition: {x: -0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7807540582941893714} - m_Father: {fileID: 2839784120732361030} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7485520099787288015 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4712539179356354180} - m_Layer: 0 - m_Name: LeftHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4712539179356354180 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7485520099787288015} - m_LocalRotation: {x: -0.0032092885, y: -0.059774566, z: 0.05351657, w: 0.99677116} - m_LocalPosition: {x: -0.051732518, y: -0.0060921777, z: -0.026886078} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 6899290527063767051} - m_Father: {fileID: 3522780352200875708} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7640389427159050944 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1174311148405544848} - m_Layer: 0 - m_Name: Spine2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1174311148405544848 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7640389427159050944} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.0527506e-16, y: 0.120330654, z: -1.9229062e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4851635416193594777} - m_Father: {fileID: 6434463011997992280} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7665254941330135330 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6701725295753121135} - - component: {fileID: 6535551684303757468} - m_Layer: 0 - m_Name: Head - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6701725295753121135 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7665254941330135330} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.1183214e-16, y: 0.100040585, z: -2.3736567e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 709233542956437696} - m_Father: {fileID: 4090642884433967874} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6535551684303757468 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7665254941330135330} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 35164cbaf9701d94a8a457b1aeadc9dd, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - tracking: 0 - unity: {fileID: 0} - headAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - headAnimation: 1 - faceAnimation: 1 - unityXR: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - hmd: {fileID: 0} - sensorComponent: {fileID: 0} - head: - name: - boneId: 7 - target: - length: 0 - transform: {fileID: 6701725295753121135} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: -1.5664297e-16, y: 1.7808642, z: -0.0124851195} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 591846273415485475} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - neck: - name: - boneId: 6 - target: - length: 0.100040674 - transform: {fileID: 4090642884433967874} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 3.7132696e-16, y: 0.3582629, z: 3.4457087e-10} - toBoneRotation: {x: 6.661338e-16, y: -1.0381878e-30, z: -1.5585273e-15, w: 1} - bone: - transform: {fileID: 587842525752011847} - length: 0.100040674 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -55, y: -70, z: -35} - maxAngles: {x: 80, y: 70, z: 35} - baseRotation: {x: 0, y: 0, z: 1.5585273e-15, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 1.0381878e-30, z: 1.5585273e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - headTarget: {fileID: 6535551684303757468} - audioEnergy: 0 - lookDirection: {x: 0, y: 0, z: 1} - localLookDirection: {x: 0, y: 0, z: 1} - neck2eyes: {x: 0, y: 0.13, z: 0.13} - head2eyes: {x: 3.1183221e-16, y: 0.029959321, z: 0.13} - collisionFader: 0 - isInsideCollider: 0 - virtual3d: 0 - screenTransform: {fileID: 0} - trackingEvent: - id: 1 - label: Tracking Event - tooltip: 'Call functions using the HMD tracking status - - Parameter: HMD - tracking' - eventTypeLabels: - - Never - - On Tracking Start - - On Tracking Stop - - While Tracking - - While not Tracking - - On Tracking Changes - - Always - fromEventLabel: tracking - events: [] - audioEvent: - id: 2 - label: Audio Event - tooltip: 'Call functions based on the microphone audio level - - Parameter: - the audio level' - eventTypeLabels: - - Never - - On Loud Start - - On Silence Start - - While Noisy - - While Silent - - On Level Changes - - Always - fromEventLabel: audioEnergy - events: [] - insideColliderEvent: - id: 5 - label: In Collider Event - tooltip: 'Call functions using the head being inside Colliders - - Parameter: - isInsideCollider state' - eventTypeLabels: - - Never - - When Head Enters Collider - - When Head Exits Collider - - While Head is inside Collider - - While Head outside Collider - - When Enters/Exists Collider - - Always - fromEventLabel: Inside Collider - events: [] - smRenderer: {fileID: 0} - headRigidbody: {fileID: 0} ---- !u!1 &7723420553224489220 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3246907761170798284} - m_Layer: 0 - m_Name: LeftUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3246907761170798284 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7723420553224489220} - m_LocalRotation: {x: 0.001890329, y: -0.00008607621, z: 0.0040942887, w: -0.99998987} - m_LocalPosition: {x: -0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2200260967139671450} - m_Father: {fileID: 7685491658538494673} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &7949971311526426498 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2839784120732361030} - - component: {fileID: 6550504753529324966} - m_Layer: 0 - m_Name: LeftFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2839784120732361030 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7949971311526426498} - m_LocalRotation: {x: 0.020767761, y: -0.000006713889, z: -0.004095184, w: -0.999776} - m_LocalPosition: {x: 0.0000000018626451, y: -0.46714398, z: -0.000000013038516} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 3866327259047323023} - m_Father: {fileID: 2200260967139671450} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6550504753529324966 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7949971311526426498} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eb3310a2943ad7741b6c53520f451c91, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - isLeft: 1 - side: 1 - otherFoot: {fileID: 1486322366812613318} - rotationSpeedLimitation: 0 - legAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - animationSpeed: 1 - velocityAnimationSpeed: 0 - isMoving: 0 - scale: {x: 1, y: 1, z: 1} - f: 0 - prevFrame: 0 - nextFrame: 0 - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - sensorComponent: {fileID: 0} - attachedBone: 2 - upperLeg: - name: - boneId: 32 - target: - length: 0.4569167 - transform: {fileID: 3246907761170798284} - baseRotation: {x: 0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} - basePosition: {x: -0.1055315, y: -0.08806288, z: -0.0085835215} - toBoneRotation: {x: -0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} - bone: - transform: {fileID: 592199385941455349} - length: 0.4569167 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -130, y: -45, z: -50} - maxAngles: {x: 30, y: 40, z: 30} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - lowerLeg: - name: - boneId: 33 - target: - length: 0.46714398 - transform: {fileID: 2200260967139671450} - baseRotation: {x: -0.01390668, y: 0.00034497335, z: 0.01789027, w: 0.9997432} - basePosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - toBoneRotation: {x: -0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} - bone: - transform: {fileID: 591807009722497061} - length: 0.46714398 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -15, y: NaN, z: NaN} - maxAngles: {x: 130, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - foot: - name: - boneId: 34 - target: - length: 0.14564736 - transform: {fileID: 2839784120732361030} - baseRotation: {x: -0.0026854733, y: -0.000012755864, z: -0.0047498476, w: 0.99998516} - basePosition: {x: -0.113097906, y: 0.102199554, z: -0.03873977} - toBoneRotation: {x: -0, y: 0, z: 0.00000000818479, w: 1} - bone: - transform: {fileID: 591857611166196021} - length: 0.14564736 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -45, y: 0, z: -30} - maxAngles: {x: 70, y: 0, z: 20} - baseRotation: {x: 0.28736073, y: -0.00000032279587, z: 0.00000009684347, w: 0.95782244} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - toes: - name: - boneId: 35 - target: - length: 0 - transform: {fileID: 3866327259047323023} - baseRotation: {x: 3.0914171e-18, y: 7.275969e-12, z: -0.000000008381947, w: 1.0000002} - basePosition: {x: -0.00000008527422, y: -0.080176204, z: 0.12159335} - toBoneRotation: {x: -0, y: 0, z: 1.7763568e-15, w: 1} - bone: - transform: {fileID: 592051107303085267} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: -70, y: NaN, z: NaN} - maxAngles: {x: 45, y: NaN, z: NaN} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - jointLimitations: 1 - slidePrevention: 0 - physics: 1 - groundEvent: - id: 1 - label: Ground Event - tooltip: 'Call function based on ground standing - - Parameter: the ground - object' - eventTypeLabels: - - Never - - On Grounded - - On not Grounded - - While Grounded - - While not Grounded - - When Ground Changes - - Always - fromEventLabel: ground.gameObject - events: [] - ground: {fileID: 0} - groundNormal: {x: 0, y: 1, z: 0} - groundTranslation: {x: 0, y: 0, z: 0} - groundDistance: -0.060000002 - soleThicknessFoot: 0 - soleThicknessToes: 0 ---- !u!1 &8097050946659016412 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5530583243913786415} - m_Layer: 0 - m_Name: RightHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5530583243913786415 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8097050946659016412} - m_LocalRotation: {x: 3.7002212e-10, y: 1.7525295e-17, z: -0.000000047362832, w: 1} - m_LocalPosition: {x: 0.0249897, y: -0.002992096, z: -0.00024336025} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8015128946992668811} - m_Father: {fileID: 7311126809661861561} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8119796002674384894 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 677432047852665798} - m_Layer: 0 - m_Name: RightHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &677432047852665798 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8119796002674384894} - m_LocalRotation: {x: -0.0000068470836, y: 0.0010127202, z: -0.0067608743, w: 0.99997663} - m_LocalPosition: {x: 0.04912045, y: -8.440111e-10, z: 0.0000000011168595} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8211182712089123295} - m_Father: {fileID: 9158715631570718542} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8152009626164612293 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3245149430415610841} - m_Layer: 0 - m_Name: RightHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3245149430415610841 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8152009626164612293} - m_LocalRotation: {x: 2.2268e-41, y: 1.0339768e-25, z: 0.000000044477652, w: 1} - m_LocalPosition: {x: 0.026656894, y: -0.0027399855, z: -0.0005033262} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3965064985886840250} - m_Father: {fileID: 1710781727407224163} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8244081002525410385 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8015128946992668811} - m_Layer: 0 - m_Name: RightHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8015128946992668811 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8244081002525410385} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025169373, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5530583243913786415} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8482872705977235296 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 919348708173214003} - - component: {fileID: 5430091419956194140} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &919348708173214003 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8482872705977235296} - m_LocalRotation: {x: 0.0033115982, y: 0.06176473, z: -0.026143115, w: 0.99774283} - m_LocalPosition: {x: -0.28402027, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1361535315803653228} - - {fileID: 3522780352200875708} - - {fileID: 8877015771765186437} - - {fileID: 6150805920862007962} - - {fileID: 369764102231270853} - m_Father: {fileID: 7352137019195285355} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &5430091419956194140 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8482872705977235296} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2c296d86543384d49ba4e7f2ea1179cb, type: 3} - m_Name: - m_EditorClassIdentifier: - humanoid: {fileID: 114826855137666514} - isLeft: 1 - side: 1 - outward: {x: -1, y: 0, z: 0} - up: {x: 0, y: 0, z: 0} - fingers: - handTarget: {fileID: 5430091419956194140} - thumb: - proximal: - name: - boneId: 13 - target: - length: 0.049988233 - transform: {fileID: 369764102231270853} - baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} - basePosition: {x: -0.03886753, y: 0.0014843331, z: 0.037806235} - toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} - bone: - transform: {fileID: 588178245583050985} - length: 0.049988233 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 14 - target: - length: 0.03472507 - transform: {fileID: 6005914055452777760} - baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} - basePosition: {x: -0.04998791, y: 0.00012673126, z: -0.00012564684} - toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} - bone: - transform: {fileID: 588118633641870615} - length: 0.03472507 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 15 - target: - length: 0 - transform: {fileID: 2292926569716310678} - baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} - basePosition: {x: -0.0347248, y: -0.000079543715, z: 0.00010121836} - toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} - bone: - transform: {fileID: 587871477503691093} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - index: - proximal: - name: - boneId: 17 - target: - length: 0.04912074 - transform: {fileID: 7531675425121720509} - baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} - basePosition: {x: -0.11888889, y: 0.00027912942, z: 0.025864918} - toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} - bone: - transform: {fileID: 591930306437817331} - length: 0.04912074 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 18 - target: - length: 0.02784785 - transform: {fileID: 6279907835955851790} - baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} - basePosition: {x: -0.04912074, y: 6.475602e-10, z: 0.00000000719956} - toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} - bone: - transform: {fileID: 587917105982916759} - length: 0.02784785 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 19 - target: - length: 0 - transform: {fileID: 4635728229349713669} - baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} - basePosition: {x: -0.027847834, y: -0.0000000017368009, z: 0.0000000055188436} - toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} - bone: - transform: {fileID: 592031466902292047} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - middle: - proximal: - name: - boneId: 21 - target: - length: 0.053606123 - transform: {fileID: 6207834740692185912} - baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} - basePosition: {x: -0.11720574, y: 0.000000027139322, z: 0.0000000022700988} - toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} - bone: - transform: {fileID: 591874126504620791} - length: 0.053606123 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 22 - target: - length: 0.033593606 - transform: {fileID: 7766524584644067847} - baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} - basePosition: {x: -0.05360612, y: -1.7462298e-10, z: 0.000000006555638} - toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} - bone: - transform: {fileID: 587826596651204865} - length: 0.033593606 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 23 - target: - length: 0 - transform: {fileID: 7859618097178837723} - baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} - basePosition: {x: -0.03359361, y: 2.82661e-10, z: -0.000000005781467} - toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} - bone: - transform: {fileID: 592096832363146835} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - ring: - proximal: - name: - boneId: 25 - target: - length: 0.046718832 - transform: {fileID: 4442985438921477946} - baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} - basePosition: {x: -0.106975466, y: 0.001192727, z: -0.021745112} - toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} - bone: - transform: {fileID: 587760088401636985} - length: 0.046718832 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 26 - target: - length: 0.032411408 - transform: {fileID: 1608308491504492002} - baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, - w: 0.9999972} - basePosition: {x: -0.046718843, y: 3.929017e-10, z: 0.0000000063009793} - toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} - bone: - transform: {fileID: 592083656285520001} - length: 0.032411408 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 27 - target: - length: 0 - transform: {fileID: 398250952924521470} - baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} - basePosition: {x: -0.032411378, y: -0.0000000021809456, z: 0.0000000011952758} - toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} - bone: - transform: {fileID: 591870972026241839} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - little: - proximal: - name: - boneId: 29 - target: - length: 0.03741744 - transform: {fileID: 4712539179356354180} - baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} - basePosition: {x: -0.09464572, y: 0.00027912977, z: -0.04319308} - toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} - bone: - transform: {fileID: 587826890941441267} - length: 0.03741744 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 30 - target: - length: 0.023639701 - transform: {fileID: 6899290527063767051} - baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} - basePosition: {x: -0.03741743, y: -3.2014214e-10, z: 0.0000000016225385} - toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} - bone: - transform: {fileID: 588167023241182377} - length: 0.023639701 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 31 - target: - length: 0 - transform: {fileID: 5266616833384180498} - baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} - basePosition: {x: -0.023639707, y: -0.0000000011557972, z: 0.0000000047519753} - toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} - bone: - transform: {fileID: 588052850018982475} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - allFingers: - - proximal: - name: - boneId: 13 - target: - length: 0.049988233 - transform: {fileID: 369764102231270853} - baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} - basePosition: {x: -0.03886753, y: 0.0014843331, z: 0.037806235} - toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} - bone: - transform: {fileID: 588178245583050985} - length: 0.049988233 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 14 - target: - length: 0.03472507 - transform: {fileID: 6005914055452777760} - baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} - basePosition: {x: -0.04998791, y: 0.00012673126, z: -0.00012564684} - toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} - bone: - transform: {fileID: 588118633641870615} - length: 0.03472507 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 15 - target: - length: 0 - transform: {fileID: 2292926569716310678} - baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} - basePosition: {x: -0.0347248, y: -0.000079543715, z: 0.00010121836} - toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} - bone: - transform: {fileID: 587871477503691093} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 17 - target: - length: 0.04912074 - transform: {fileID: 7531675425121720509} - baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} - basePosition: {x: -0.11888889, y: 0.00027912942, z: 0.025864918} - toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} - bone: - transform: {fileID: 591930306437817331} - length: 0.04912074 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 18 - target: - length: 0.02784785 - transform: {fileID: 6279907835955851790} - baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} - basePosition: {x: -0.04912074, y: 6.475602e-10, z: 0.00000000719956} - toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} - bone: - transform: {fileID: 587917105982916759} - length: 0.02784785 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 19 - target: - length: 0 - transform: {fileID: 4635728229349713669} - baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} - basePosition: {x: -0.027847834, y: -0.0000000017368009, z: 0.0000000055188436} - toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} - bone: - transform: {fileID: 592031466902292047} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 21 - target: - length: 0.053606123 - transform: {fileID: 6207834740692185912} - baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} - basePosition: {x: -0.11720574, y: 0.000000027139322, z: 0.0000000022700988} - toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} - bone: - transform: {fileID: 591874126504620791} - length: 0.053606123 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 22 - target: - length: 0.033593606 - transform: {fileID: 7766524584644067847} - baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} - basePosition: {x: -0.05360612, y: -1.7462298e-10, z: 0.000000006555638} - toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} - bone: - transform: {fileID: 587826596651204865} - length: 0.033593606 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 23 - target: - length: 0 - transform: {fileID: 7859618097178837723} - baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} - basePosition: {x: -0.03359361, y: 2.82661e-10, z: -0.000000005781467} - toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} - bone: - transform: {fileID: 592096832363146835} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 25 - target: - length: 0.046718832 - transform: {fileID: 4442985438921477946} - baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} - basePosition: {x: -0.106975466, y: 0.001192727, z: -0.021745112} - toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} - bone: - transform: {fileID: 587760088401636985} - length: 0.046718832 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 26 - target: - length: 0.032411408 - transform: {fileID: 1608308491504492002} - baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, - w: 0.9999972} - basePosition: {x: -0.046718843, y: 3.929017e-10, z: 0.0000000063009793} - toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} - bone: - transform: {fileID: 592083656285520001} - length: 0.032411408 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 27 - target: - length: 0 - transform: {fileID: 398250952924521470} - baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} - basePosition: {x: -0.032411378, y: -0.0000000021809456, z: 0.0000000011952758} - toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} - bone: - transform: {fileID: 591870972026241839} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - - proximal: - name: - boneId: 29 - target: - length: 0.03741744 - transform: {fileID: 4712539179356354180} - baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} - basePosition: {x: -0.09464572, y: 0.00027912977, z: -0.04319308} - toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} - bone: - transform: {fileID: 587826890941441267} - length: 0.03741744 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - intermediate: - name: - boneId: 30 - target: - length: 0.023639701 - transform: {fileID: 6899290527063767051} - baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} - basePosition: {x: -0.03741743, y: -3.2014214e-10, z: 0.0000000016225385} - toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} - bone: - transform: {fileID: 588167023241182377} - length: 0.023639701 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - distal: - name: - boneId: 31 - target: - length: 0 - transform: {fileID: 5266616833384180498} - baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} - basePosition: {x: -0.023639707, y: -0.0000000011557972, z: 0.0000000047519753} - toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} - bone: - transform: {fileID: 588052850018982475} - length: 0.02 - jointLimitations: 0 - maxAngle: 0 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - rotationSpeedLimitation: 0 - unity: {fileID: 0} - armAnimator: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - armSwing: 0 - unityXR: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - controller: {fileID: 0} - leap: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - custom: - enabled: 1 - target: {fileID: 0} - sensorTransform: {fileID: 0} - sensor2TargetPosition: {x: 0, y: 0, z: 0} - sensor2TargetRotation: {x: 0, y: 0, z: 0, w: 0} - handSkeleton: {fileID: 0} - sensorComponent: {fileID: 0} - attachedBone: 0 - stretchlessTarget: {fileID: 0} - shoulder: - name: - boneId: 8 - target: - length: 0.15648837 - transform: {fileID: 1097111955822560577} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: -0.04904938, y: 0.27819216, z: -5.867516e-10} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 591913782881408455} - length: 0.15648837 - jointLimitations: 1 - maxAngle: 30 - minAngles: {x: 0, y: 0, z: -45} - maxAngles: {x: 0, y: 45, z: 0} - baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - upperArm: - name: - boneId: 9 - target: - length: 0.25876033 - transform: {fileID: 3771841623590078335} - baseRotation: {x: 0.0047750277, y: 0.000000042146848, z: 4.8700328e-26, w: 0.9999886} - basePosition: {x: -0.15648837, y: 0.000000026077032, z: 0} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 592018758415791155} - length: 0.25876033 - jointLimitations: 0 - maxAngle: 120 - minAngles: {x: -180, y: -45, z: -180} - maxAngles: {x: 60, y: 130, z: 45} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - forearm: - name: - boneId: 10 - target: - length: 0.28402025 - transform: {fileID: 7352137019195285355} - baseRotation: {x: 0.0040752487, y: -4.0309496e-13, z: -1.5751327e-10, w: 0.99999183} - basePosition: {x: -0.25876033, y: 0.000000026077032, z: 2.131628e-15} - toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} - bone: - transform: {fileID: 592195481697571685} - length: 0.28402025 - jointLimitations: 0 - maxAngle: 130 - minAngles: {x: 0, y: 0, z: 0} - maxAngles: {x: 0, y: 150, z: 0} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - hand: - name: - boneId: 12 - target: - length: 0 - transform: {fileID: 919348708173214003} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: -0.00976131, y: -0.061932433, z: 0.02574325, w: 0.9977005} - bone: - transform: {fileID: 592216370686089045} - length: 0.02 - jointLimitations: 0 - maxAngle: 100 - minAngles: {x: -180, y: -50, z: -70} - maxAngles: {x: 90, y: 20, z: 90} - baseRotation: {x: 0, y: 0, z: 0, w: 1} - basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00976131, y: 0.061932433, z: -0.02574325, w: 0.9977005} - rotationVelocity: {x: 0, y: 0, z: 0, w: 0} - velocity: {x: 0, y: 0, z: 0} - poseMethod: 0 - physics: 1 - physicsMode: 2 - strength: 100 - grabbingTechnique: 0 - touchInteraction: 1 - poseMixer: - mixedPoses: [] - poseMode: 0 - grabSocket: {fileID: 0} - pinchSocket: {fileID: 0} - grabbedPrefab: {fileID: 0} - grabbedObject: {fileID: 0} - grabbedHandle: {fileID: 0} - targetToHandle: {x: 0, y: 0, z: 0} - grabbedRigidbody: 0 - grabbedKinematicRigidbody: 0 - colliders: [] - twoHandedGrab: 0 - targetToSecondaryHandle: {x: 0, y: 0, z: 0} - poseEvent: - id: 1 - label: Pose Event - tooltip: 'Call functions based on recognized posesParameter: the index of the - recognized pose' - eventTypeLabels: - - Never - - On Pose Recognized - - On No Pose Recongnized - - While Pose Recognized - - While No Pose Recognized - - When Pose Changes - - Always - fromEventLabel: poseMixer.detectedPoseIx - events: [] - touchEvent: - id: 2 - label: Touch Event - tooltip: 'Call funtions based on touched objectsParameter: the touched object' - eventTypeLabels: - - Never - - On Touch Start - - On Touch End - - While Touching - - While not Touching - - On Touched Object Changes - - Always - fromEventLabel: touchedObject - events: [] - grabEvent: - id: 3 - label: Grab Event - tooltip: 'Call functions based on grabbed objectsParameter: the grabbed object' - eventTypeLabels: - - Never - - On Grab Start - - On Grab End - - While Holding Object - - While not Holding Object - - On Grabbed Object Changes - - Always - fromEventLabel: grabbedObject - events: [] - handPalm: {fileID: 442779148012923101} - handRigidbody: {fileID: 0} - handPhysics: {fileID: 0} - grabbedChanged: 0 - directFingerMovements: 1 ---- !u!1 &8487882874896419426 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1361535315803653228} - m_Layer: 0 - m_Name: LeftHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1361535315803653228 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8487882874896419426} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.043752592, y: 0.0068923947, z: 0.026853435} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7531675425121720509} - m_Father: {fileID: 919348708173214003} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8524818996204785211 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8617168008173460055} - m_Layer: 0 - m_Name: RightHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8617168008173460055 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8524818996204785211} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04291298, y: 0.0063700867, z: -0.016306998} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3910605594806730540} - m_Father: {fileID: 1384819643979957732} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8643061083555022003 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 565004533149221812} - m_Layer: 0 - m_Name: RightHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &565004533149221812 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8643061083555022003} - m_LocalRotation: {x: -0.0037662666, y: 0.06238191, z: -0.0601467, w: 0.9962313} - m_LocalPosition: {x: 0.071282476, y: -0.0070201955, z: -0.010279318} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1865794860401661921} - m_Father: {fileID: 1420219454966049270} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8712000402766898564 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2200260967139671450} - m_Layer: 0 - m_Name: LeftLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2200260967139671450 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8712000402766898564} - m_LocalRotation: {x: 0.022657834, y: 7.275958e-12, z: 8.1326856e-10, w: 0.9997433} - m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2839784120732361030} - m_Father: {fileID: 3246907761170798284} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8884343005685419436 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4628523735288404646} - m_Layer: 0 - m_Name: RightToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4628523735288404646 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8884343005685419436} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4386803634283647145} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8925407023456801010 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1865794860401661921} - m_Layer: 0 - m_Name: RightHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1865794860401661921 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8925407023456801010} - m_LocalRotation: {x: 0.000012148868, y: -0.0026570668, z: -0.0045712627, w: 0.999986} - m_LocalPosition: {x: 0.053606734, y: -6.1118044e-10, z: -0.0000000048676156} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1710781727407224163} - m_Father: {fileID: 565004533149221812} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &587394025672231545 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 4002121168554758} - m_Modifications: - - target: {fileID: 1687898318833826, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_Name - value: EmptyCharacter - objectReference: {fileID: 0} - - target: {fileID: 4020857003718316, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99999857 - objectReference: {fileID: 0} - - target: {fileID: 4020857003718316, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0017061848 - objectReference: {fileID: 0} - - target: {fileID: 4020857003718316, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.00029907556 - objectReference: {fileID: 0} - - target: {fileID: 4020857003718316, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.00000051049176 - objectReference: {fileID: 0} - - target: {fileID: 4044276183876396, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 4.656613e-10 - objectReference: {fileID: 0} - - target: {fileID: 4044276183876396, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000014361359 - objectReference: {fileID: 0} - - target: {fileID: 4044276183876396, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000043537483 - objectReference: {fileID: 0} - - target: {fileID: 4049969287411434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 5.551113e-17 - objectReference: {fileID: 0} - - target: {fileID: 4049969287411434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000054569664 - objectReference: {fileID: 0} - - target: {fileID: 4049969287411434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000010338223 - objectReference: {fileID: 0} - - target: {fileID: 4051421714285294, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -9.3132246e-10 - objectReference: {fileID: 0} - - target: {fileID: 4051421714285294, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000016969931 - objectReference: {fileID: 0} - - target: {fileID: 4051421714285294, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.00000008937111 - objectReference: {fileID: 0} - - target: {fileID: 4111323599385598, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99999934 - objectReference: {fileID: 0} - - target: {fileID: 4111323599385598, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0.0000058822297 - objectReference: {fileID: 0} - - target: {fileID: 4111323599385598, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.00066901493 - objectReference: {fileID: 0} - - target: {fileID: 4111323599385598, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.0009907628 - objectReference: {fileID: 0} - - target: {fileID: 4141517989867146, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 6.938894e-18 - objectReference: {fileID: 0} - - target: {fileID: 4141517989867146, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000029789107 - objectReference: {fileID: 0} - - target: {fileID: 4141517989867146, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000025960387 - objectReference: {fileID: 0} - - target: {fileID: 4141782078933880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 9.313224e-10 - objectReference: {fileID: 0} - - target: {fileID: 4141782078933880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.000000010335774 - objectReference: {fileID: 0} - - target: {fileID: 4141782078933880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000036112913 - objectReference: {fileID: 0} - - target: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: 1.1879461e-16 - objectReference: {fileID: 0} - - target: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.y - value: 0.12070156 - objectReference: {fileID: 0} - - target: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 1.3877788e-16 - objectReference: {fileID: 0} - - target: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -3.7470893e-30 - objectReference: {fileID: 0} - - target: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -1.8079308e-15 - objectReference: {fileID: 0} - - target: {fileID: 4181504975483354, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: 6.4416873e-15 - objectReference: {fileID: 0} - - target: {fileID: 4181504975483354, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4181504975483354, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 8.6091954e-15 - objectReference: {fileID: 0} - - target: {fileID: 4182831468102996, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 3.9423838e-16 - objectReference: {fileID: 0} - - target: {fileID: 4182831468102996, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000013096719 - objectReference: {fileID: 0} - - target: {fileID: 4182831468102996, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000069568244 - objectReference: {fileID: 0} - - target: {fileID: 4185642012009948, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566123e-10 - objectReference: {fileID: 0} - - target: {fileID: 4185642012009948, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -2.8062879e-25 - objectReference: {fileID: 0} - - target: {fileID: 4185642012009948, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -6.026436e-16 - objectReference: {fileID: 0} - - target: {fileID: 4190442107530260, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566123e-10 - objectReference: {fileID: 0} - - target: {fileID: 4190442107530260, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000002793967 - objectReference: {fileID: 0} - - target: {fileID: 4190442107530260, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000017614634 - objectReference: {fileID: 0} - - target: {fileID: 4198118768489570, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 6.938894e-18 - objectReference: {fileID: 0} - - target: {fileID: 4198118768489570, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -2.7648636e-10 - objectReference: {fileID: 0} - - target: {fileID: 4198118768489570, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.0000000032314342 - objectReference: {fileID: 0} - - target: {fileID: 4208306150548480, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -9.3132246e-10 - objectReference: {fileID: 0} - - target: {fileID: 4208306150548480, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000002947744 - objectReference: {fileID: 0} - - target: {fileID: 4208306150548480, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.0000000029721365 - objectReference: {fileID: 0} - - target: {fileID: 4284033142102930, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99917144 - objectReference: {fileID: 0} - - target: {fileID: 4284033142102930, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.036559694 - objectReference: {fileID: 0} - - target: {fileID: 4284033142102930, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0003069177 - objectReference: {fileID: 0} - - target: {fileID: 4284033142102930, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.01788163 - objectReference: {fileID: 0} - - target: {fileID: 4284520946962660, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0000000013969835 - objectReference: {fileID: 0} - - target: {fileID: 4284520946962660, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000028958305 - objectReference: {fileID: 0} - - target: {fileID: 4284520946962660, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000011612312 - objectReference: {fileID: 0} - - target: {fileID: 4285708893687638, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: -0.99978817 - objectReference: {fileID: 0} - - target: {fileID: 4285708893687638, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.018480463 - objectReference: {fileID: 0} - - target: {fileID: 4285708893687638, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.00039695128 - objectReference: {fileID: 0} - - target: {fileID: 4285708893687638, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.009049992 - objectReference: {fileID: 0} - - target: {fileID: 4293642491721424, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0000000023283064 - objectReference: {fileID: 0} - - target: {fileID: 4293642491721424, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000020496878 - objectReference: {fileID: 0} - - target: {fileID: 4293642491721424, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000005552084 - objectReference: {fileID: 0} - - target: {fileID: 4353235304731280, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566123e-10 - objectReference: {fileID: 0} - - target: {fileID: 4353235304731280, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -8.67287e-10 - objectReference: {fileID: 0} - - target: {fileID: 4353235304731280, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000026297869 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: 0.28401998 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.y - value: 0.000000011789268 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: -2.743369e-10 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9999791 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0.006466123 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.00022451516 - objectReference: {fileID: 0} - - target: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.00000066104127 - objectReference: {fileID: 0} - - target: {fileID: 4429971395333998, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566112e-10 - objectReference: {fileID: 0} - - target: {fileID: 4429971395333998, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000037641317 - objectReference: {fileID: 0} - - target: {fileID: 4429971395333998, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -1.6258282e-10 - objectReference: {fileID: 0} - - target: {fileID: 4496119973859378, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0.0000000023283064 - objectReference: {fileID: 0} - - target: {fileID: 4496119973859378, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.000000001856858 - objectReference: {fileID: 0} - - target: {fileID: 4496119973859378, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000074233975 - objectReference: {fileID: 0} - - target: {fileID: 4500357875551362, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -9.3132224e-10 - objectReference: {fileID: 0} - - target: {fileID: 4500357875551362, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000023137536 - objectReference: {fileID: 0} - - target: {fileID: 4500357875551362, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000010308664 - objectReference: {fileID: 0} - - target: {fileID: 4520241488013312, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99999934 - objectReference: {fileID: 0} - - target: {fileID: 4520241488013312, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0000058831674 - objectReference: {fileID: 0} - - target: {fileID: 4520241488013312, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0006690113 - objectReference: {fileID: 0} - - target: {fileID: 4520241488013312, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0009907673 - objectReference: {fileID: 0} - - target: {fileID: 4527379878525070, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566123e-10 - objectReference: {fileID: 0} - - target: {fileID: 4527379878525070, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000005773332 - objectReference: {fileID: 0} - - target: {fileID: 4527379878525070, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000004488579 - objectReference: {fileID: 0} - - target: {fileID: 4539672956612472, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99998873 - objectReference: {fileID: 0} - - target: {fileID: 4539672956612472, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0047599715 - objectReference: {fileID: 0} - - target: {fileID: 4539672956612472, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.00007447348 - objectReference: {fileID: 0} - - target: {fileID: 4539672956612472, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000003865656 - objectReference: {fileID: 0} - - target: {fileID: 4541786926279050, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 4.656613e-10 - objectReference: {fileID: 0} - - target: {fileID: 4541786926279050, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 9.404548e-10 - objectReference: {fileID: 0} - - target: {fileID: 4541786926279050, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000044378496 - objectReference: {fileID: 0} - - target: {fileID: 4558240690773950, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4558240690773950, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -1.010728e-30 - objectReference: {fileID: 0} - - target: {fileID: 4558240690773950, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -5.173889e-16 - objectReference: {fileID: 0} - - target: {fileID: 4594412105052764, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99917144 - objectReference: {fileID: 0} - - target: {fileID: 4594412105052764, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.036559694 - objectReference: {fileID: 0} - - target: {fileID: 4594412105052764, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0003069177 - objectReference: {fileID: 0} - - target: {fileID: 4594412105052764, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.01788163 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: 0.0044376245 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: -0.0025090203 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: -0.99979734 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.01808248 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.00009017341 - objectReference: {fileID: 0} - - target: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.008844197 - objectReference: {fileID: 0} - - target: {fileID: 4618234235717974, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566118e-10 - objectReference: {fileID: 0} - - target: {fileID: 4618234235717974, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000001840101 - objectReference: {fileID: 0} - - target: {fileID: 4618234235717974, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 5.7400293e-11 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: -3.118331e-16 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.y - value: 0.10004067 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: -2.7766862e-17 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 1.9428903e-16 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -5.529195e-30 - objectReference: {fileID: 0} - - target: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -2.5827585e-15 - objectReference: {fileID: 0} - - target: {fileID: 4647155121876880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -9.3132235e-10 - objectReference: {fileID: 0} - - target: {fileID: 4647155121876880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000033614913 - objectReference: {fileID: 0} - - target: {fileID: 4647155121876880, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000080392255 - objectReference: {fileID: 0} - - target: {fileID: 4657458840255468, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 6.938894e-18 - objectReference: {fileID: 0} - - target: {fileID: 4657458840255468, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 1.7462294e-10 - objectReference: {fileID: 0} - - target: {fileID: 4657458840255468, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.00000000545583 - objectReference: {fileID: 0} - - target: {fileID: 4703656715930640, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 4.6566223e-10 - objectReference: {fileID: 0} - - target: {fileID: 4703656715930640, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -1.6837723e-24 - objectReference: {fileID: 0} - - target: {fileID: 4703656715930640, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -3.6158625e-15 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4755313617476360, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0000000013969835 - objectReference: {fileID: 0} - - target: {fileID: 4755313617476360, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000035215626 - objectReference: {fileID: 0} - - target: {fileID: 4755313617476360, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000012348663 - objectReference: {fileID: 0} - - target: {fileID: 4826023243270814, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4826023243270814, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000002240994 - objectReference: {fileID: 0} - - target: {fileID: 4826023243270814, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 2.4408556e-10 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.y - value: 0.000000026121043 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: -0.0000000011147985 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99997914 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0.0064643747 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000061540746 - objectReference: {fileID: 0} - - target: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.00000004493508 - objectReference: {fileID: 0} - - target: {fileID: 4836652144944730, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 6.938894e-18 - objectReference: {fileID: 0} - - target: {fileID: 4836652144944730, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000055879337 - objectReference: {fileID: 0} - - target: {fileID: 4836652144944730, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.00000000419618 - objectReference: {fileID: 0} - - target: {fileID: 4839389822556444, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.99999857 - objectReference: {fileID: 0} - - target: {fileID: 4839389822556444, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0016894015 - objectReference: {fileID: 0} - - target: {fileID: 4839389822556444, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000042147324 - objectReference: {fileID: 0} - - target: {fileID: 4839389822556444, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -1.3005266e-10 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.x - value: -0.0044376245 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalPosition.z - value: -0.0025090203 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: -0.99979734 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.01808248 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.00009017341 - objectReference: {fileID: 0} - - target: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.008844197 - objectReference: {fileID: 0} - - target: {fileID: 4853197623524236, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: -0.99978817 - objectReference: {fileID: 0} - - target: {fileID: 4853197623524236, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.018480463 - objectReference: {fileID: 0} - - target: {fileID: 4853197623524236, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.00039695128 - objectReference: {fileID: 0} - - target: {fileID: 4853197623524236, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.009049992 - objectReference: {fileID: 0} - - target: {fileID: 4864647067298810, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -4.6566118e-10 - objectReference: {fileID: 0} - - target: {fileID: 4864647067298810, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000030267977 - objectReference: {fileID: 0} - - target: {fileID: 4864647067298810, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000040025716 - objectReference: {fileID: 0} - - target: {fileID: 4880954805439224, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 9.3132246e-10 - objectReference: {fileID: 0} - - target: {fileID: 4880954805439224, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000010861216 - objectReference: {fileID: 0} - - target: {fileID: 4880954805439224, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000037096202 - objectReference: {fileID: 0} - - target: {fileID: 4885334286591018, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0000000013969838 - objectReference: {fileID: 0} - - target: {fileID: 4885334286591018, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.0000000019439506 - objectReference: {fileID: 0} - - target: {fileID: 4885334286591018, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000004439142 - objectReference: {fileID: 0} - - target: {fileID: 4897756725022398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4897756725022398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -5.0931707e-11 - objectReference: {fileID: 0} - - target: {fileID: 4897756725022398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000007265385 - objectReference: {fileID: 0} - - target: {fileID: 4933210508217398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4933210508217398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.0000000031813472 - objectReference: {fileID: 0} - - target: {fileID: 4933210508217398, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.00000009310483 - objectReference: {fileID: 0} - - target: {fileID: 4945798737231434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9999886 - objectReference: {fileID: 0} - - target: {fileID: 4945798737231434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: 0.0047750035 - objectReference: {fileID: 0} - - target: {fileID: 4945798737231434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 0.000000042146848 - objectReference: {fileID: 0} - - target: {fileID: 4945798737231434, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -3.292761e-10 - objectReference: {fileID: 0} - - target: {fileID: 4970408688845060, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -9.31322e-10 - objectReference: {fileID: 0} - - target: {fileID: 4970408688845060, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -0.000000008440107 - objectReference: {fileID: 0} - - target: {fileID: 4970408688845060, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000010724188 - objectReference: {fileID: 0} - - target: {fileID: 4981416426651850, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4981416426651850, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: -1.010728e-30 - objectReference: {fileID: 0} - - target: {fileID: 4981416426651850, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -5.173889e-16 - objectReference: {fileID: 0} - - target: {fileID: 4983645719502506, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4983645719502506, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.y - value: 5.0931707e-11 - objectReference: {fileID: 0} - - target: {fileID: 4983645719502506, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} - propertyPath: m_LocalRotation.z - value: -0.000000007265385 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 7754bb471c5918f4da4a9cd4289ffd51, type: 3} ---- !u!4 &591930306437817331 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4541786926279050, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592216370686089045 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4836098136808748, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592195481697571685 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4839389822556444, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592018758415791155 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4945798737231434, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588052850018982475 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4496119973859378, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591874126504620791 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4527379878525070, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592096832363146835 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4885334286591018, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587760088401636985 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4208306150548480, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591913782881408455 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4558240690773950, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587729718550802341 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4185642012009948, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591768369960814185 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4703656715930640, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592137291844797639 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4897756725022398, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592189132597178433 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4845693691525688, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588264624391279083 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4284033142102930, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588263001641534767 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4285708893687638, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592051107303085267 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4983645719502506, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592083656285520001 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4880954805439224, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591870972026241839 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4618234235717974, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591857611166196021 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4614227722333004, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591807009722497061 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4594412105052764, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588178245583050985 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4353235304731280, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588118633641870615 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4429971395333998, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587871477503691093 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4044276183876396, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587842525752011847 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4143409446020670, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591846273415485475 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4643022250758746, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587733836412091299 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4181504975483354, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592053285191912115 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4981416426651850, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591932048778257665 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4539672956612472, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587894795616615637 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4020857003718316, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588072938308471699 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4388123769618922, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587787833625476635 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4198118768489570, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591716680847479153 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4755313617476360, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592117385482609027 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4864647067298810, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588048282746980091 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4500357875551362, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!95 &680728534872647447 stripped -Animator: - m_CorrespondingSourceObject: {fileID: 95905176592788846, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591672401800481527 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4746777317671054, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587918410384112787 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4049969287411434, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592081850737412989 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4970408688845060, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592031466902292047 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4933210508217398, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592215833839741987 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4836652144944730, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587732405497794349 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4182831468102996, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591754207646721513 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4647155121876880, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591761754503770517 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4657458840255468, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588264554391329437 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4284520946962660, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587777949355484781 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4190442107530260, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592209053228630247 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4826023243270814, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587804392524347783 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4111323599385598, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &591898873456255609 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4520241488013312, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587826596651204865 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4141782078933880, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587917105982916759 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4051421714285294, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &587826890941441267 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4141517989867146, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &588167023241182377 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4293642491721424, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} ---- !u!4 &592199385941455349 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4853197623524236, guid: 7754bb471c5918f4da4a9cd4289ffd51, - type: 3} - m_PrefabInstance: {fileID: 587394025672231545} - m_PrefabAsset: {fileID: 0} diff --git a/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab.meta b/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab.meta deleted file mode 100644 index 8fd39aa..0000000 --- a/Runtime/HumanoidFree/Prefabs/Networking/Resources/RemoteHumanoid.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e14d34d86987c9f459a0251873a654f4 -timeCreated: 1504015809 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Readme.txt b/Runtime/HumanoidFree/Readme.txt deleted file mode 100644 index abf0cc7..0000000 --- a/Runtime/HumanoidFree/Readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -Humanoid Control -Version: 4.0 beta 3 - -Improvements -- Support for hand tracking (Oculus, Leap & Vive) -- Support for startup.json in persistentData on Android -- Add Enter Site URL for Desktop Visitor -- Add site loading message -- Add Visitor Name -- Switch to Assembly Definitions -- Support for Unity 2021.2+ -- Interaction pointer color is now default orange -- Visitor pointing with hand tracking support \ No newline at end of file diff --git a/Runtime/HumanoidFree/Readme.txt.meta b/Runtime/HumanoidFree/Readme.txt.meta deleted file mode 100644 index 7529b12..0000000 --- a/Runtime/HumanoidFree/Readme.txt.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a4d5a0f617cc7a04194adb993af84560 -timeCreated: 1487237018 -licenseType: Free -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts.meta b/Runtime/HumanoidFree/Scripts.meta deleted file mode 100644 index 2cf7ba8..0000000 --- a/Runtime/HumanoidFree/Scripts.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 1dacec824bb170549bcb7095e057b073 -folderAsset: yes -timeCreated: 1467224536 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Animator.meta b/Runtime/HumanoidFree/Scripts/Animator.meta deleted file mode 100644 index f5439cc..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 09de213d34e2b104092be0094c39c972 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs b/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs deleted file mode 100644 index 61ef87c..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs +++ /dev/null @@ -1,145 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - [System.Serializable] - public class ArmPredictor : Humanoid.ArmSensor { - - public override Tracker.Status status { - get { return Tracker.Status.Tracking; } - set { } - } - } - - [System.Serializable] - public class ArmAnimator : Humanoid.ArmSensor { - private Quaternion handBaseRotation; - - public override Tracker.Status status { - get { return Tracker.Status.Tracking; } - set { } - } - - public bool armSwing; - [HideInInspector] - protected Vector3 foot2hand; - - public override void Start(HumanoidControl humanoid, Transform targetTransform) { - base.Start(humanoid, targetTransform); - target = targetTransform.GetComponent(); - - if (handTarget.isLeft) - handBaseRotation = Quaternion.Euler(-25, 0, 90); - else - handBaseRotation = Quaternion.Euler(-25, 0, -90); - - foot2hand = CalculateFoot2Hand(); - - } - - public override void Update() { - if (!handTarget.humanoid.animatorEnabled || !enabled || handTarget.humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (handTarget.hand.bone.transform == null || handTarget.upperArm.bone.transform == null) - return; - - if (armSwing) { - if (ArmSwingAnimation()) - return; - } - - Quaternion localAvatarRotation = Quaternion.Inverse(handTarget.humanoid.transform.rotation) * handTarget.humanoid.hipsTarget.hips.bone.targetRotation; - float avatarYangle = localAvatarRotation.eulerAngles.y; - Quaternion avatarRotation = handTarget.humanoid.transform.rotation * Quaternion.AngleAxis(avatarYangle, Vector3.up); - - Vector3 handPosition = CalulateIdleHandPosition(avatarRotation); - - Quaternion forearmRotation = handTarget.forearm.bone.targetRotation; - - Quaternion handRotation; - if (handTarget.forearm.target.confidence.rotation > 0.2F) - handRotation = avatarRotation * forearmRotation; - else - handRotation = avatarRotation * handBaseRotation; - - handTarget.hand.target.transform.position = handPosition; - handTarget.hand.target.transform.rotation = handRotation; - handTarget.hand.target.confidence.position = 0.2F; - handTarget.hand.target.confidence.rotation = 0.2F; - - // This should not be here, it will disable finger input when a pose is present - //handTarget.poseMixer.ResetAffectedBones(handTarget.humanoid, handTarget.side); - } - - protected Vector3 CalulateIdleHandPosition(Quaternion avatarRotation) { - HumanoidControl humanoid = handTarget.humanoid; - - float hipsWidth = 0.4F; - if (humanoid.leftFootTarget.upperLeg.bone.transform != null && humanoid.rightFootTarget.upperLeg.bone.transform != null) - hipsWidth = Vector3.Distance(humanoid.leftFootTarget.upperLeg.bone.transform.position, humanoid.rightFootTarget.upperLeg.bone.transform.position); - float handDistanceFromHips = hipsWidth / 2 + 0.15F; - - Vector3 positionBetweenArms = humanoid.headTarget.neck.target.transform.position; - if (handTarget.upperArm.bone.transform != null && handTarget.otherHand.upperArm.bone.transform != null) - positionBetweenArms = (handTarget.upperArm.bone.transform.position + handTarget.otherHand.upperArm.bone.transform.position) / 2; - - Vector3 handPosition = positionBetweenArms; - handPosition += avatarRotation * - new Vector3( - (handTarget.isLeft ? -handDistanceFromHips : handDistanceFromHips), - -(handTarget.upperArm.bone.length + handTarget.forearm.bone.length - 0.05F), - 0 - ); - - return handPosition; - } - - protected Vector3 CalculateFoot2Hand() { - HumanoidControl humanoid = handTarget.humanoid; - - Quaternion avatarRotation = humanoid.transform.rotation; - - Vector3 handPosition = CalulateIdleHandPosition(avatarRotation); - Vector3 footPosition = humanoid.transform.position; - if (humanoid.leftFootTarget.foot.bone.transform != null && humanoid.rightFootTarget.foot.bone.transform != null) - footPosition = handTarget.isLeft ? humanoid.rightFootTarget.foot.bone.transform.position : humanoid.leftFootTarget.foot.bone.transform.position; - Vector3 foot2hand = Quaternion.Inverse(humanoid.transform.rotation) * (handPosition - footPosition); - foot2hand += new Vector3(0, 0, 0.05F); - return foot2hand; - } - - - /// Animates the arm swing based on foot movements - /// boolean indicating is the arms are swinging - protected bool ArmSwingAnimation() { - HumanoidControl humanoid = handTarget.humanoid; - HipsTarget hipsTarget = humanoid.hipsTarget; - - Vector3 newPosition; - float localFootZ; - if (handTarget.isLeft) { - localFootZ = hipsTarget.transform.InverseTransformPoint(humanoid.rightFootTarget.transform.position).z; - Vector3 localFootPosition = Quaternion.Inverse(hipsTarget.hips.bone.targetRotation) * (humanoid.rightFootTarget.transform.position - humanoid.transform.position); - newPosition = localFootPosition + foot2hand; - - handTarget.hand.target.transform.rotation = handTarget.forearm.bone.targetRotation; - handTarget.hand.target.confidence.rotation = 0.2F; - } - else { - localFootZ = hipsTarget.transform.InverseTransformPoint(humanoid.leftFootTarget.transform.position).z; - Vector3 localFootPosition = Quaternion.Inverse(hipsTarget.hips.bone.targetRotation) * (humanoid.leftFootTarget.transform.position - humanoid.transform.position); - newPosition = localFootPosition + foot2hand; - - handTarget.hand.target.transform.rotation = handTarget.forearm.bone.targetRotation; - handTarget.hand.target.confidence.rotation = 0.2F; - } - - float newY = Mathf.Abs(localFootZ / 4 + 0.02f) - humanoid.transform.position.y; - handTarget.hand.target.transform.position = hipsTarget.transform.TransformPoint(new Vector3(newPosition.x, newY, newPosition.z)); - handTarget.hand.target.confidence.position = 0.2F; - return true; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs.meta b/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs.meta deleted file mode 100644 index ebb0eeb..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/ArmAnimator.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 0a0da005b6d20664896aa0a18c5336ec -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs b/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs deleted file mode 100644 index ffff5d3..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs +++ /dev/null @@ -1,47 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class HeadAnimator : HeadSensor { - public bool headAnimation = true; - public bool faceAnimation = true; - - #region Update - public override void Update() { - if (!headTarget.humanoid.animatorEnabled || !enabled || headTarget.humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (headAnimation) - UpdateNeck(); - } - - private void UpdateNeck() { - if (headTarget.neck.target.confidence.rotation > 0.25F) - return; - - Vector3 headPosition = headTarget.head.target.transform.position; - Quaternion headRotation = headTarget.head.target.transform.rotation; - - headTarget.neck.target.transform.rotation = headTarget.head.target.transform.rotation; - - headTarget.neck.target.transform.position = headPosition - headTarget.neck.target.transform.rotation * Vector3.up * headTarget.neck.bone.length; - - headTarget.head.target.transform.position = headPosition; - headTarget.head.target.transform.rotation = headRotation; - } - #endregion - - public static void UpdateNeckTargetFromHead(HeadTarget headTarget) { - Vector3 headPosition = headTarget.head.target.transform.position; - Quaternion headRotation = headTarget.head.target.transform.rotation; - - headTarget.neck.target.transform.rotation = headTarget.head.target.transform.rotation; - headTarget.neck.target.transform.position = headPosition - headTarget.neck.target.transform.rotation * Vector3.up * headTarget.neck.bone.length; - - headTarget.head.target.transform.position = headPosition; - headTarget.head.target.transform.rotation = headRotation; - } - - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs.meta b/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs.meta deleted file mode 100644 index 8f7ab4d..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/HeadAnimator.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 6ce301dde737ac6459dc58a11e54a392 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs b/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs deleted file mode 100644 index 8dcbee7..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs +++ /dev/null @@ -1,75 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class HeadPredictor : HeadSensor { - private Vector3 positionalVelocity; - private Quaternion rotationalVelocity; - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - } - - public override void Update() { - base.Update(); - if (headTarget.head.bone.transform == null) - return; - - CalculatePositionalVelocity(); - CalculateRotationalVelocity(); - - if (headTarget.neck.target.confidence.rotation > 0.1F) { - headTarget.neck.target.transform.rotation *= Quaternion.Slerp(Quaternion.identity, rotationalVelocity, Time.deltaTime); - headTarget.neck.target.confidence.rotation -= Time.deltaTime; // 0.1F; - } - - if (headTarget.neck.target.confidence.rotation > 0.1F) { - headTarget.neck.target.transform.position += positionalVelocity * Time.deltaTime; - headTarget.neck.target.confidence.position -= Time.deltaTime; // 0.1F; - } - } - - private Quaternion lastOrientation; - private float velocityChange; - private void CalculateRotationalVelocity() { - if (headTarget.neck.bone.transform == null) - return; - - if (lastOrientation.w != 0) { - Quaternion lastRotationalVelocity = rotationalVelocity; - - Quaternion rotation = Quaternion.Inverse(lastOrientation) * headTarget.neck.bone.targetRotation; - rotationalVelocity = Quaternion.SlerpUnclamped(Quaternion.identity, rotation, 1 / Time.deltaTime); - - velocityChange = (velocityChange + Quaternion.Angle(lastRotationalVelocity, rotationalVelocity)) / 2; - - // stabelize head - if (velocityChange < 1) - rotationalVelocity = Quaternion.Slerp(Quaternion.identity, rotationalVelocity, velocityChange); - } - lastOrientation = headTarget.neck.bone.targetRotation; - } - - private Vector3 lastPosition; - private float positionalVelocityChange; - private void CalculatePositionalVelocity() { - if (headTarget.neck.bone.transform == null) - return; - - if (lastPosition.sqrMagnitude != 0) { - Vector3 lastPositionalVelocity = positionalVelocity; - - Vector3 translation = headTarget.neck.bone.transform.position - lastPosition; - positionalVelocity = translation / Time.deltaTime; - - positionalVelocityChange = (positionalVelocityChange + (positionalVelocity - lastPositionalVelocity).magnitude) / 2; - - // stabelize head - if (positionalVelocityChange < 10) - positionalVelocity = positionalVelocity * (positionalVelocityChange / 10); - } - lastPosition = headTarget.neck.bone.transform.position; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs.meta b/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs.meta deleted file mode 100644 index fe64dc5..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/HeadPredictor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 112b64ca583574f48b7b822e631e2af5 -timeCreated: 1505900771 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs b/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs deleted file mode 100644 index f7c73fa..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs +++ /dev/null @@ -1,473 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - [System.Serializable] - public class LegAnimator : LegSensor { - private LegAnimator leftAnimator; - private LegAnimator rightAnimator; - - private float footSeparation; - - Vector3 prevPrintPosition = Vector3.zero; - Quaternion prevPrintOrientation = Quaternion.identity; - - public float animationSpeed = 1; - public bool velocityAnimationSpeed = false; - - #region Start - public override void Start(HumanoidControl humanoid, Transform targetTransform) { - base.Start(humanoid, targetTransform); - target = targetTransform.GetComponent(); - - if (Application.isPlaying) { - footSeparation = Vector3.Distance(humanoid.leftFootTarget.foot.target.transform.position, humanoid.rightFootTarget.foot.target.transform.position) / 2; - } - - lastPosition = targetTransform.position; - lastOrientation = targetTransform.rotation; - } - #endregion - - #region Update - - public override void Update() { - if (!footTarget.humanoid.animatorEnabled || !enabled) - return; - - Animator targetAnimator = footTarget.humanoid.targetsRig; - // Don't use procedural if the animator controller plays an animation clip - if (targetAnimator.runtimeAnimatorController != null && - targetAnimator.GetCurrentAnimatorClipInfoCount(0) > 0) - return; - - status = Tracker.Status.Tracking; - - leftAnimator = footTarget.humanoid.leftFootTarget.legAnimator; - rightAnimator = footTarget.humanoid.rightFootTarget.legAnimator; - - if (footTarget.foot.bone.transform == null) - return; - - FeetAnimation(); - UpdateAnimation(); - } - - [HideInInspector] - private Vector3 basePointStart, basePointDelta; - [HideInInspector] - private bool movedLast = false; - [HideInInspector] - private bool follow = false; - - protected void FeetAnimation() { - leftAnimator.scale = footTarget.humanoid.targetsRig.transform.localScale; - rightAnimator.scale = footTarget.humanoid.targetsRig.transform.localScale; - - CheckGroundChange(); - - if (footTarget.humanoid.ground == null) - basePointDelta = footTarget.humanoid.transform.position - basePointStart; - else - basePointDelta = (footTarget.humanoid.transform.position - footTarget.humanoid.ground.position) - basePointStart; - basePointDelta = new Vector3(basePointDelta.x, 0, basePointDelta.z); - - CheckRotation(); - CheckTranslation(); - CheckStaying(); - - FootStepping(this); - - //Debug.Log(footTarget.side + " isMoving:" + footTarget.legAnimator.isMoving + " movedLast:" + footTarget.legAnimator.movedLast + - // " follow:" + footTarget.legAnimator.follow); - footTarget.foot.target.confidence.position = 0.2F; - footTarget.foot.target.confidence.rotation = 0.2F; - } - - private void CheckRotation() { - // Don't start a step when a foot is moving - if (footTarget.legAnimator.isMoving || footTarget.otherFoot.legAnimator.isMoving) - return; - - Quaternion footAngle = Quaternion.FromToRotation(footTarget.humanoid.hipsTarget.hips.target.transform.forward, footTarget.foot.target.transform.forward); - Vector3 axis; - float angle; - footAngle.ToAngleAxis(out angle, out axis); - if (angle < 45) - return; - - float rotationDirection = Vector3.Angle(footTarget.humanoid.up, axis); - if (footTarget.isLeft && rotationDirection < 90) { - StartFootStep(footTarget); - footTarget.otherFoot.legAnimator.follow = true; - } - - else if (!footTarget.isLeft && rotationDirection > 90) { - StartFootStep(footTarget); - footTarget.otherFoot.legAnimator.follow = true; - } - } - - private void CheckTranslation() { - if (footTarget.foot.bone.transform == null || footTarget.otherFoot.foot.bone.transform == null) - return; - - Vector3 middleFootPosition = (footTarget.foot.bone.transform.position + footTarget.otherFoot.foot.bone.transform.position) / 2; - middleFootPosition = ProjectPointOnPlane(middleFootPosition, footTarget.humanoid.transform.position, Vector3.up); - Vector3 projectedCOM = ProjectedCenterOfMass(); - Vector3 com2Foot = projectedCOM - middleFootPosition; - - if (Vector3.Distance(projectedCOM, lastPosition) > 1) { // We probably teleported - ResetFoot(projectedCOM); - return; - } - - // Don't start a step when a foot is moving - if (footTarget.legAnimator.isMoving || footTarget.otherFoot.legAnimator.isMoving) - return; - - // We need to make a step to get the center of mass between te feet again. - if (com2Foot.magnitude > 0.10F && footTarget.humanoid.ground != null) { - if (footTarget.otherFoot.legAnimator.movedLast) { - // other foot did its step last, now it is our turn - StartFootStep(footTarget); - footTarget.otherFoot.legAnimator.follow = true; - } - - else if (!footTarget.legAnimator.movedLast) { - // This foot will make the first step now - //Debug.DrawLine(footTarget.foot.target.transform.position, middleFootPosition); - //Vector3 footDirection = footTarget.foot.target.transform.position - middleFootPosition; - //float angle = Vector3.Angle(com2Foot.normalized, footDirection.normalized); - - // Is this foot in the movement direction, then start a step - // Why this is here is not clear to me. - // But it prevents the first stepping to take place immediately. - //if (angle < 90) { - StartFootStep(footTarget); - footTarget.otherFoot.legAnimator.follow = true; - //} - } - } - else if (footTarget.legAnimator.follow && footTarget.otherFoot.legAnimator.movedLast) { - StartFootStep(footTarget); - } - } - - private void CheckStaying() { - if (footTarget.legAnimator.isMoving) - return; - - FootStaying(); - } - - public void ResetFoot(Vector3 com) { - Quaternion hipsRotation = Quaternion.LookRotation(footTarget.humanoid.hipsTarget.hips.target.transform.forward, footTarget.humanoid.up); - - Vector3 deltaX = footSeparation * (footTarget.isLeft ? Vector3.left : Vector3.right); - footTarget.foot.target.transform.position = com + (hipsRotation * deltaX); - lastPosition = footTarget.foot.target.transform.position; - - footTarget.foot.target.transform.rotation = footTarget.humanoid.hipsTarget.hips.target.transform.rotation; - lastOrientation = footTarget.foot.target.transform.rotation; - footTarget.legAnimator.isMoving = false; - footTarget.legAnimator.movedLast = false; - footTarget.legAnimator.follow = false; - basePointStart = footTarget.humanoid.transform.position; - if (footTarget.humanoid.ground != null) - basePointStart -= footTarget.humanoid.ground.position; - } - - private Transform lastGround; - private void CheckGroundChange() { - if (footTarget.humanoid.ground != lastGround) { - if (lastGround != null) - basePointStart += lastGround.position; - if (footTarget.humanoid.ground != null) - basePointStart -= footTarget.humanoid.ground.position; - } - lastGround = footTarget.humanoid.ground; - } - - private void StartFootStep(FootTarget footTarget) { - if (footTarget.legAnimator.isMoving) - return; - - basePointStart = footTarget.humanoid.transform.position; - if (footTarget.humanoid.ground != null) - basePointStart -= footTarget.humanoid.ground.position; - - footTarget.foot.target.transform.position = lastPosition; - footTarget.foot.target.transform.rotation = lastOrientation; - - prevPrintPosition = footTarget.foot.target.transform.position; - prevPrintOrientation = footTarget.foot.target.transform.rotation; - - footTarget.legAnimator.isMoving = true; - footTarget.legAnimator.movedLast = true; - footTarget.legAnimator.follow = false; - footTarget.otherFoot.legAnimator.movedLast = false; - } - - Vector3 lastPosition = Vector3.zero; - Quaternion lastOrientation = Quaternion.identity; - private void FootStaying() { - if (footTarget.humanoid.ground == null && !footTarget.otherFoot.legAnimator.isMoving) - FeetOffGround(); - else - FootStaysOnGround(); - } - - private void FootStaysOnGround() { - footTarget.foot.target.transform.position = lastPosition + (footTarget.humanoid.groundVelocity * Time.deltaTime); - footTarget.foot.target.transform.rotation = lastOrientation * Quaternion.AngleAxis(footTarget.humanoid.groundAngularVelocity * Time.deltaTime, footTarget.humanoid.up); - - prevPrintPosition = footTarget.foot.target.transform.position; - prevPrintOrientation = footTarget.foot.target.transform.rotation; - } - - private void FeetOffGround() { - HipsTarget hipsTarget = footTarget.humanoid.hipsTarget; - footTarget.foot.target.transform.rotation = Quaternion.AngleAxis(hipsTarget.hips.target.transform.eulerAngles.y, footTarget.humanoid.up) * Quaternion.AngleAxis(30, Vector3.right); - - float legLength = footTarget.upperLeg.bone.length + footTarget.lowerLeg.bone.length; - Vector3 localFootPosition = new Vector3(footTarget.isLeft ? -footSeparation : footSeparation, -legLength, 0); - footTarget.foot.target.transform.position = hipsTarget.hips.target.transform.position + hipsTarget.hips.target.transform.rotation * localFootPosition; - } - - private void FootStepping(LegAnimator footAnimation) { - if (footAnimation.f >= 1) { - footAnimation.isMoving = false; - footAnimation.f = 0; - - lastPosition = prevPrintPosition + GetPosition(footAnimation.step, 1); - return; - } - else if (footAnimation.f > 0) { - Vector3 nextFootPrint = CalculateNextFootPrint(); - - if (footTarget.humanoid.velocity.x != 0 || footTarget.humanoid.velocity.z != 0) { - Vector3 avgSpeed = basePointDelta / footAnimation.f; - nextFootPrint += avgSpeed * 0.2F; - if (footTarget.humanoid.isRemote && footTarget.isLeft) - Debug.DrawRay(nextFootPrint, Vector3.up, Color.green); - } - else if (footTarget.humanoid.isRemote && footTarget.isLeft) - - Debug.DrawRay(nextFootPrint, Vector3.up, Color.red); - - if (footTarget.humanoid.ground != null) - prevPrintPosition += footTarget.humanoid.groundVelocity * Time.deltaTime; - - footAnimation.step = nextFootPrint - prevPrintPosition; - Vector3 newPosition = prevPrintPosition + footAnimation.GetCurrentPosition(footAnimation.step, footAnimation.fWithinFrame); - - Quaternion newOrientation = Quaternion.LookRotation(footTarget.humanoid.hipsTarget.hips.target.transform.forward, footTarget.humanoid.up); - Quaternion orientationChange = Quaternion.Inverse(prevPrintOrientation) * newOrientation; - Quaternion newRotation = prevPrintOrientation * footAnimation.GetRotation(orientationChange, footAnimation.f); - - footAnimation.DrawCurve(prevPrintPosition, nextFootPrint - prevPrintPosition, prevPrintOrientation, orientationChange); - - footTarget.foot.target.transform.position = newPosition; - footTarget.foot.target.transform.rotation = newRotation; - } - lastPosition = footTarget.foot.target.transform.position; - lastOrientation = footTarget.foot.target.transform.rotation; - } - - private Vector3 CalculateNextFootPrint() { - Vector3 groundNormal = footTarget.humanoid.up; - - Quaternion hipsRotation = Quaternion.LookRotation(footTarget.humanoid.hipsTarget.hips.target.transform.forward, footTarget.humanoid.up); - - Vector3 com = GetCenterOfMass(); - Vector3 deltaX = footSeparation * (footTarget.isLeft ? Vector3.left : Vector3.right); - com += (hipsRotation * deltaX); - Vector3 footPosition = ProjectPointOnPlane(com, footTarget.humanoid.transform.position, groundNormal); - - float distance = footTarget.humanoid.GetDistanceToGroundAt(footPosition, 0.4F); - Vector3 footPrintPosition = footPosition + (distance + footTarget.soleThicknessFoot) * groundNormal; - footPrintPosition = PreventLegIntersection(footPrintPosition); - return footPrintPosition; - } - - private Vector3 PreventLegIntersection(Vector3 footPrintPosition) { - Vector3 otherFootLocation = footTarget.otherFoot.foot.target.transform.InverseTransformPoint(footPrintPosition); - if (footTarget.isLeft && otherFootLocation.x > 0.1F) - otherFootLocation.z -= -0.2F; - else if (!footTarget.isLeft && otherFootLocation.x < -0.1F) - otherFootLocation.z += 0.2F; - else - return footPrintPosition; - - footPrintPosition = footTarget.otherFoot.foot.target.transform.TransformPoint(otherFootLocation); - return footPrintPosition; - } - - private Vector3 GetCenterOfMass() { - if (footTarget.humanoid.hipsTarget.spine != null && footTarget.humanoid.hipsTarget.spine.bone.transform != null) - return footTarget.humanoid.hipsTarget.spine.bone.transform.position; - else if (footTarget.humanoid.hipsTarget.hips.bone.transform != null) { - Vector3 hipsUp = footTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.up; - Vector3 com = footTarget.humanoid.hipsTarget.hips.bone.transform.position + hipsUp * 0.2F; - return com; - } - else { - Vector3 hipsUp = footTarget.humanoid.hipsTarget.hips.target.transform.rotation * Vector3.up; - Vector3 com = footTarget.humanoid.hipsTarget.hips.target.transform.position + hipsUp * 0.2F; - return com; - } - } - - private Vector3 ProjectedCenterOfMass() { - Vector3 com = GetCenterOfMass(); - Vector3 projectedCOM = ProjectPointOnPlane(com, footTarget.humanoid.transform.position, footTarget.humanoid.up); - return projectedCOM; - } - - private Vector3 ProjectPointOnPlane(Vector3 point, Vector3 planeOrigin, Vector3 planeNormal) { - // Create the vector from the origin to the point - Vector3 v = point - planeOrigin; - // Then project this vector onto the plane - Vector3 v1 = Vector3.ProjectOnPlane(v, planeNormal); - // result is the point on the plane - return planeOrigin + v1; - } - - #endregion Update - - #region Animator - public bool isMoving = false; - public Vector3 scale = Vector3.one; - - private static int nrFrames = 100; - private KeyFrame[] keyFrames = { - new KeyFrame( 0, new Vector3(0F, 0.00F, 0.0F), new Vector3(67,0,0), nrFrames), - new KeyFrame(10, new Vector3(0F, 0.02F, 0.1F), new Vector3(58,0,0), nrFrames), - new KeyFrame(20, new Vector3(0F, 0.05F, 0.2F), new Vector3(55,0,0), nrFrames), - new KeyFrame(30, new Vector3(0F, 0.10F, 0.3F), new Vector3(38,0,0), nrFrames), - new KeyFrame(40, new Vector3(0F, 0.12F, 0.4F), new Vector3(38,0,0), nrFrames), - new KeyFrame(50, new Vector3(0F, 0.14F, 0.5F), new Vector3(26,0,0), nrFrames), - new KeyFrame(60, new Vector3(0F, 0.18F, 0.6F), new Vector3(12,0,0), nrFrames), - new KeyFrame(70, new Vector3(0F, 0.17F, 0.7F), new Vector3(29,0,0), nrFrames), - new KeyFrame(80, new Vector3(0F, 0.13F, 0.8F), new Vector3(63,0,0), nrFrames), - new KeyFrame(90, new Vector3(0F, 0.07F, 0.9F), new Vector3(80,0,0), nrFrames), - new KeyFrame(100, new Vector3(0F, 0.00F, 1.0F), new Vector3(85,0,0), nrFrames) - }; - private float frameSpeed = 200; - - public float f = 0; - private float fWithinFrame; - public int prevFrame, nextFrame; - - private void UpdateAnimation() { - if (!isMoving) { - f = 0; - return; - } - - // experimental automatic animation speed - if (velocityAnimationSpeed) { - float speed = footTarget.humanoid.velocity.magnitude; - f += Time.deltaTime * (frameSpeed / nrFrames) * speed; - } - else { - f += Time.deltaTime * (frameSpeed / nrFrames) * animationSpeed; - } - - DetermineKeyFrames(f, out prevFrame, out nextFrame); - fWithinFrame = CalulateFWithingFrame(f, prevFrame, nextFrame); - } - - private float CalulateFWithingFrame(float f, int prevFrame, int nextFrame) { - float frameDuration = keyFrames[nextFrame].f - keyFrames[prevFrame].f; - return (f - keyFrames[prevFrame].f) / frameDuration; - } - - private void DetermineKeyFrames(float f, out int prevFrame, out int nextFrame) { - prevFrame = 0; - nextFrame = 1; - - for (int i = 0; i < keyFrames.Length - 1; i++) { - if (f >= keyFrames[i].f && f <= keyFrames[i + 1].f) { - prevFrame = i; - nextFrame = i + 1; - } - } - } - - private Vector3 step = Vector3.one; - public Vector3 GetCurrentPosition(Vector3 step, float fWithinFrame) { - return GetCurrentPosition(step, fWithinFrame, prevFrame, nextFrame); - } - public Vector3 GetCurrentPosition(Vector3 step, float fWithinFrame, int prevFrame, int nextFrame) { - Vector3 interpolatedPosition = Vector3.Lerp(keyFrames[prevFrame].position, keyFrames[nextFrame].position, fWithinFrame); - - float scale = step.magnitude; - if (step.sqrMagnitude < 0.001F) { - step = footTarget.foot.target.transform.forward; - scale = 0; - } - - Quaternion rotation = Quaternion.LookRotation(step.normalized, footTarget.humanoid.up); - - Vector3 result = rotation * Vector3.Scale(interpolatedPosition, new Vector3(scale, 1, scale)); - return result; - } - - private Vector3 GetPosition(Vector3 step, float f) { - int prevFrame; - int nextFrame; - DetermineKeyFrames(f, out prevFrame, out nextFrame); - float fWithinFrame = CalulateFWithingFrame(f, prevFrame, nextFrame); - return GetCurrentPosition(step, fWithinFrame, prevFrame, nextFrame); - } - - public Quaternion GetCurrentRotation() { - return Quaternion.Slerp(keyFrames[prevFrame].rotation, keyFrames[nextFrame].rotation, fWithinFrame); - } - - private Quaternion GetCurrentRotation(float fWithinFrame, int prevFrame, int nextFrame) { - Quaternion interpolatedRotation = Quaternion.Slerp(keyFrames[prevFrame].rotation, keyFrames[nextFrame].rotation, fWithinFrame); - return interpolatedRotation; - } - - private Quaternion GetRotation(Quaternion orientationChange, float f) { - int prevFrame; - int nextFrame; - DetermineKeyFrames(f, out prevFrame, out nextFrame); - float fWithinFrame = CalulateFWithingFrame(f, prevFrame, nextFrame); - Quaternion interpolatedRotation = GetCurrentRotation(fWithinFrame, prevFrame, nextFrame); - Quaternion interpolatedOrientationChange = Quaternion.Slerp(Quaternion.identity, orientationChange, f); - return interpolatedOrientationChange * interpolatedRotation; - } - - private void DrawCurve(Vector3 start, Vector3 step, Quaternion startRot, Quaternion orientationChange) { - //Debug.DrawRay(start, step, Color.blue); - - //Vector3 lastPos = start + GetPosition(step, 0); - //for (float f = 0.1F; f <= 1; f += 0.099F) { - // Vector3 newPos = start + GetPosition(step, f); - // Debug.DrawLine(lastPos, newPos, Color.blue); - // Vector3 newOrientation = (startRot * GetRotation(orientationChange, f)) * Vector3.forward; - // Debug.DrawRay(newPos, newOrientation * 0.1F, Color.blue); - // lastPos = newPos; - //} - } - - [System.Serializable] - public class KeyFrame { - public float f; - public Vector3 position; - public Quaternion rotation; - - public KeyFrame(int _fromFrameNr, Vector3 _position, Vector3 _angles, float totalFrames) { - position = _position; - rotation = Quaternion.Euler(73 - _angles.x, _angles.y, _angles.z); - f = _fromFrameNr / totalFrames; - } - } - } - #endregion -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs.meta b/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs.meta deleted file mode 100644 index 295f408..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/LegAnimator.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: e83a9b64145a2524797b29788fbe3efb -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs b/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs deleted file mode 100644 index ad922d2..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs +++ /dev/null @@ -1,258 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - [System.Serializable] - public class TorsoAnimator : TorsoSensor { - - public enum BodyRotation { - HeadRotation = 1, - HeadAndHandRotation = 2, - NoRotation = 3, - } - public BodyRotation bodyRotation; - - private float torsoLength; - - private Quaternion torsoUprightOrientation; - - #region Start - - public override void Start(HumanoidControl humanoid, Transform targetTransform) { - base.Start(humanoid, targetTransform); - - if (humanoid.avatarRig == null || hipsTarget.hips.bone.transform == null) - return; - - Vector3 torsoDirection = humanoid.headTarget.neck.bone.transform.position - hipsTarget.hips.bone.transform.position; - torsoLength = torsoDirection.magnitude; - - torsoUprightOrientation = Quaternion.FromToRotation(humanoid.up, torsoDirection); - } - - #endregion - - #region Update - - public override void Update() { - if (!hipsTarget.humanoid.animatorEnabled || !enabled || hipsTarget.humanoid.targetsRig == null) - return; - if (hipsTarget.humanoid.avatarRig == null || hipsTarget.hips.bone.transform == null) - return; - - Animator targetAnimator = hipsTarget.humanoid.targetsRig; - // Don't use procedural if the animator controller plays an animation clip - if (targetAnimator.runtimeAnimatorController != null && - hipsTarget.humanoid.animatorParameterForward == null && - targetAnimator.GetCurrentAnimatorClipInfoCount(0) > 0) - return; - - status = Tracker.Status.Tracking; - - StoreTargets(); - UpdateHipsPosition(); - UpdateHipsRotation(); - RestoreTargets(); - } - - #region Target Preserve - - private Quaternion neckRotation; - private Vector3 neckPosition; - private Quaternion leftHandRotation; - private Vector3 leftHandPosition; - private Quaternion rightHandRotation; - private Vector3 rightHandPosition; - private Quaternion leftFootRotation; - private Vector3 leftFootPosition; - private Quaternion rightFootRotation; - private Vector3 rightFootPosition; - private void StoreTargets() { - neckRotation = hipsTarget.humanoid.headTarget.neck.target.transform.rotation; - neckPosition = hipsTarget.humanoid.headTarget.neck.target.transform.position; - leftHandRotation = hipsTarget.humanoid.leftHandTarget.hand.target.transform.rotation; - leftHandPosition = hipsTarget.humanoid.leftHandTarget.hand.target.transform.position; - rightHandRotation = hipsTarget.humanoid.rightHandTarget.hand.target.transform.rotation; - rightHandPosition = hipsTarget.humanoid.rightHandTarget.hand.target.transform.position; - leftFootRotation = hipsTarget.humanoid.leftFootTarget.foot.target.transform.rotation; - leftFootPosition = hipsTarget.humanoid.leftFootTarget.foot.target.transform.localPosition; - rightFootRotation = hipsTarget.humanoid.rightFootTarget.foot.target.transform.rotation; - rightFootPosition = hipsTarget.humanoid.rightFootTarget.foot.target.transform.localPosition; - } - - private void RestoreTargets() { - hipsTarget.humanoid.headTarget.neck.target.transform.rotation = neckRotation; - hipsTarget.humanoid.headTarget.neck.target.transform.position = neckPosition; - hipsTarget.humanoid.leftHandTarget.hand.target.transform.rotation = leftHandRotation; - hipsTarget.humanoid.leftHandTarget.hand.target.transform.position = leftHandPosition; - hipsTarget.humanoid.rightHandTarget.hand.target.transform.rotation = rightHandRotation; - hipsTarget.humanoid.rightHandTarget.hand.target.transform.position = rightHandPosition; - hipsTarget.humanoid.leftFootTarget.foot.target.transform.rotation = leftFootRotation; - hipsTarget.humanoid.leftFootTarget.foot.target.transform.localPosition = leftFootPosition; - hipsTarget.humanoid.rightFootTarget.foot.target.transform.rotation = rightFootRotation; - hipsTarget.humanoid.rightFootTarget.foot.target.transform.localPosition = rightFootPosition; - } - - #endregion Target Preserve - - private void UpdateHipsRotation() { - HeadTarget headTarget = hipsTarget.humanoid.headTarget; - HandTarget leftHandTarget = hipsTarget.humanoid.leftHandTarget; - HandTarget rightHandTarget = hipsTarget.humanoid.rightHandTarget; - - if (hipsTarget.hips.target.confidence.rotation < 0.5F) { - Quaternion hipsTargetRotation = hipsTarget.hips.target.transform.rotation; - Quaternion headTargetRotation = headTarget.head.target.transform.rotation; - - Vector3 neckTargetPosition = headTarget.neck.target.transform.position; - - if (bodyRotation == BodyRotation.NoRotation) { - - } - else if (!(bodyRotation == BodyRotation.HeadRotation) && - // still need to add foot based rotation - (leftHandTarget.hand.target.confidence.rotation > 0.5F && rightHandTarget.hand.target.confidence.rotation > 0.5F)) { - - Quaternion newHipsRotation = TorsoMovements.CalculateHipsRotation(hipsTarget.hips.target.transform.position, hipsTargetRotation, leftHandTarget.transform.rotation, rightHandTarget.transform.rotation, hipsTarget.humanoid.leftFootTarget.transform, hipsTarget.humanoid.rightFootTarget.transform, headTargetRotation, neckTargetPosition); - hipsTarget.hips.target.transform.rotation = newHipsRotation; - } - else { - // Does not seem to be working reliably when the humanoid.up != Vector3.up - - Vector3 hipsUpDirection = hipsTarget.humanoid.up; - // We need to rotate the head to the up direction to reliably determine the head forward direction - Quaternion headBoneRotation = headTarget.head.bone.targetRotation; - Quaternion rotationToUp = Quaternion.FromToRotation(headBoneRotation * Vector3.up, hipsTarget.humanoid.up); - Vector3 hipsBackDirection = -(rotationToUp * headBoneRotation * Vector3.forward); - - Quaternion q = Quaternion.LookRotation(hipsUpDirection, hipsBackDirection); - Quaternion hipRotation = q * Quaternion.Euler(90, 0, 0); - hipsTarget.hips.target.transform.rotation = hipRotation; - } - } - hipsTarget.hips.target.confidence.rotation = 0.2F; - } - - protected Vector3 oldPosition; // may be neck, head of hips ATM - - private void UpdateHipsPosition() { - if (hipsTarget.hips.target.confidence.rotation > 0.25F) - return; - - HumanoidControl humanoid = hipsTarget.humanoid; - HeadTarget headTarget = humanoid.headTarget; - - Vector3 oldHipPosition = hipsTarget.hips.target.transform.position; - Vector3 neckPosition = headTarget.neck.target.transform.position; - if (headTarget.neck.target.confidence.position == 0) - neckPosition = headTarget.head.target.transform.position + headTarget.head.target.transform.rotation * (headTarget.neck2eyes - headTarget.head2eyes); - - // This is necessary here because the avatar can be changed or scaled. - torsoLength = Vector3.Distance(headTarget.neck.bone.transform.position, hipsTarget.hips.bone.transform.position); - - //Quaternion headRotation = hipsTarget.humanoid.headTarget.head.target.transform.rotation; - //Quaternion hipsNeckRotation = Quaternion.Slerp(headRotation, hipsTarget.hips.target.transform.rotation, 0.5F); - //Debug.Log(neckRotation.eulerAngles + " " + hipsTarget.hips.target.transform.rotation.eulerAngles); - Quaternion hipsNeckRotation = Quaternion.identity; - - Quaternion hipsHeightRotation = CalculateHipsHeightRotation(humanoid); - - Vector3 torsoVector = /*Vector3.down*/ -humanoid.up * torsoLength; - Vector3 spine = hipsNeckRotation * hipsHeightRotation * torsoVector; - - Vector3 hipsPosition = neckPosition + spine; - //hipsPosition = UprightCheck(humanoid, hipsPosition, neckPosition, hipsTarget.hips.target.transform.InverseTransformDirection(-spine), torsoVector); - - hipsTarget.hips.target.transform.position = hipsPosition; - hipsTarget.hips.target.confidence.position = 0.2F; - - //Vector3 movementDirection = new Vector3(hipsPosition.x - oldHipPosition.x, 0, hipsPosition.z - oldHipPosition.z).normalized; - //float angle = Vector3.Angle(movementDirection, humanoid.hitNormal); - //if (humanoid.physics && (humanoid.collided && angle >= 90)) { - // hipsTarget.hips.target.transform.position = oldHipPosition; - //} - - // Make sure the neck position has not changed at all - headTarget.neck.target.transform.position = neckPosition; - oldPosition = neckPosition; - } - - private Vector3 CalculateHipsPosition() { - HumanoidControl humanoid = hipsTarget.humanoid; - HeadTarget headTarget = humanoid.headTarget; - - Vector3 oldHipPosition = hipsTarget.hips.target.transform.position; - Vector3 neckPosition = headTarget.neck.target.transform.position; - - // This is necessary here because the avatar can be changed or scaled. - torsoLength = Vector3.Distance(headTarget.neck.bone.transform.position, hipsTarget.hips.bone.transform.position); - - Quaternion hipsNeckRotation = Quaternion.identity; - - Quaternion hipsHeightRotation = CalculateHipsHeightRotation(humanoid); - - Vector3 torsoVector = -humanoid.up * torsoLength; - Vector3 spine = hipsNeckRotation * hipsHeightRotation * torsoVector; - - Vector3 hipsPosition = neckPosition + spine; - - //hipsTarget.hips.target.transform.position = hipsPosition; - - // Make sure the neck position has not changed at all - //headTarget.neck.target.transform.position = neckPosition; - //oldPosition = neckPosition; - return hipsPosition; - } - - private Quaternion CalculateHipsHeightRotation(HumanoidControl humanoid) { - //float heightFactor = - // (hipsTarget.hips.bone.transform.position.y - humanoid.transform.position.y - humanoid.leftFootTarget.soleThicknessFoot) / - // (humanoid.leftFootTarget.upperLeg.bone.length + humanoid.leftFootTarget.lowerLeg.bone.length); - - Vector3 localHipsPosition = humanoid.transform.InverseTransformPoint(hipsTarget.hips.bone.transform.position); - float hipsHeight = Vector3.Project(localHipsPosition, Vector3.up).magnitude; - float heightFactor = - (hipsHeight - humanoid.leftFootTarget.soleThicknessFoot) / - (humanoid.leftFootTarget.upperLeg.bone.length + humanoid.leftFootTarget.lowerLeg.bone.length); - if (heightFactor > 1) - heightFactor = 1; - - Quaternion hipsHeightRotation = Quaternion.AngleAxis(60 * (1 - heightFactor), hipsTarget.hips.target.transform.right); - return hipsHeightRotation; - } - - private Vector3 UprightCheck(HumanoidControl humanoid, Vector3 hipsPosition, Vector3 neckPosition, Vector3 spineDirection, Vector3 backVector) { - float headPositionY = neckPosition.y - humanoid.transform.position.y; - float hipsAngle = Vector3.Angle(humanoid.up, spineDirection); - float verticalBodyStretch = headPositionY - humanoid.avatarNeckHeight; - - if (verticalBodyStretch >= -0.01F && (hipsAngle < 20 || Mathf.Abs(spineDirection.normalized.x) < 0.2F || Mathf.Abs(spineDirection.z) < 0.15F)) { - // standing upright - //Debug.Log("Upright " + verticalBodyStretch + " " + hipsAngle + " " + spineDirection.normalized); - - Vector3 uprightSpine = humanoid.transform.rotation * torsoUprightOrientation * backVector; - Vector3 targetHipPosition = neckPosition + uprightSpine; - Vector3 toTargetHipPosition = targetHipPosition - hipsPosition; - - if (hipsAngle < 30) - hipsPosition = hipsPosition + Vector3.ClampMagnitude(toTargetHipPosition, 0.02F); - else - hipsPosition = targetHipPosition; - } - //else - // Debug.Log("Bent"); - return hipsPosition; - } - - public static Quaternion CalculateChestRotation(Quaternion chestRotation, Quaternion hipRotation, Quaternion headRotation) { - Vector3 chestAngles = chestRotation.eulerAngles; - Vector3 headAnglesCharacterSpace = (Quaternion.Inverse(hipRotation) * headRotation).eulerAngles; - float chestYRotation = UnityAngles.Normalize(headAnglesCharacterSpace.y) * 0.3F; - Quaternion newChestRotation = hipRotation * Quaternion.Euler(chestAngles.x, chestYRotation, chestAngles.z); - - return newChestRotation; - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs.meta b/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs.meta deleted file mode 100644 index dc7d823..0000000 --- a/Runtime/HumanoidFree/Scripts/Animator/TorsoAnimator.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: c3bc3e46854761d4da4b381213bd0918 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Cerebellum.meta b/Runtime/HumanoidFree/Scripts/Cerebellum.meta deleted file mode 100644 index cb14cfe..0000000 --- a/Runtime/HumanoidFree/Scripts/Cerebellum.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 599a624611783d643b1cd0b3bc42748f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs b/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs deleted file mode 100644 index 3a505fa..0000000 --- a/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs +++ /dev/null @@ -1,190 +0,0 @@ -#if pCEREBELLUM -using System; -using System.Runtime.InteropServices; -using UnityEngine; - -namespace Passer.Humanoid.Cerebellum { - - public class Cerebellum : ICerebellum { - const string dllName = "CerebellumH"; - - - private IntPtr pCerebellum; - - #region Init - - public Cerebellum() { - Debug.Log("Created cerebellum"); - pCerebellum = Cerebellum_Constructor(); - } - [DllImport(dllName)] - private static extern IntPtr Cerebellum_Constructor(); - - public void Init() { - Debug.Log("initialized cerebellum"); - Cerebellum_Init(pCerebellum); - } - [DllImport(dllName)] - private static extern void Cerebellum_Init(IntPtr pCerebellum); - - #endregion Init - - #region Update - - public void Update() { - //Debug.Log("update cerebellum"); - Cerebellum_Update(pCerebellum); - } - [DllImport(dllName)] - private static extern void Cerebellum_Update(IntPtr pCerebellum); - - #endregion Update - - #region Joint - - public ICerebellumJoint GetJoint(Tracking.Bone boneId) { - return GetJoint((sbyte)boneId); - } - - public ICerebellumJoint GetJoint(sbyte jointId) { - Joint joint = new Joint(pCerebellum, jointId); - return joint; - } - - public class Joint : ICerebellumJoint { - private readonly IntPtr pCerebellum; - private readonly sbyte jointId; - - public Joint(IntPtr pCerebellum, sbyte jointId) { - this.pCerebellum = pCerebellum; - this.jointId = jointId; - } - - public Vector3 position { - set { - Cerebellum_SetJointPosition(pCerebellum, jointId, new Vec3(value)); - } - } - [DllImport(dllName)] - private static extern void Cerebellum_SetJointPosition(IntPtr pCerebellum, int jointId, Vec3 position); - - - public Vector3 localPosition { - get { - return Cerebellum_GetLocalJointPosition(pCerebellum, (int)jointId).Vector3; - } - } - [DllImport(dllName)] - private static extern Vec3 Cerebellum_GetLocalJointPosition(IntPtr pCerebellum, int jointId); - - public Quaternion orientation { - get { - return Cerebellum_GetJointOrientation(pCerebellum, (int)jointId).Quaternion; - } - set { - Cerebellum_SetJointOrientation(pCerebellum, (int)jointId, new Quat(value)); - } - } - [DllImport(dllName)] - private static extern void Cerebellum_SetJointOrientation(IntPtr pHumpCerebellumanoid, int boneId, Quat orientation); - - [DllImport(dllName)] - private static extern Quat Cerebellum_GetJointOrientation(IntPtr pCerebellum, int jointId); - - public Quaternion localOrientation { - get { - return Cerebellum_GetLocalJointOrientation(pCerebellum, (int)jointId).Quaternion; - } - set { - Debug.LogError("Not implemented"); - } - } - [DllImport(dllName)] - private static extern Quat Cerebellum_GetLocalJointOrientation(IntPtr pCerebellum, int jointId); - - } - - #endregion Bone - - #region Target - - public ICerebellumTarget GetTarget(Tracking.Bone boneId) { - return GetTarget((sbyte)boneId); - } - - public ICerebellumTarget GetTarget(sbyte jointId) { - Target target = new Target(pCerebellum, jointId); - return target; - } - - public class Target : ICerebellumTarget { - - private readonly IntPtr pCerebellum; - private readonly sbyte jointId; - - public Target(IntPtr pCerebellum, sbyte jointId) { - this.pCerebellum = pCerebellum; - this.jointId = jointId; - } - - public Vector3 position { - get { - return Cerebellum_GetTargetPosition(pCerebellum, jointId).Vector3; - } - set { - SetPosition(value); - } - } - [DllImport(dllName)] - private static extern Vec3 Cerebellum_GetTargetPosition(IntPtr pCerebellum, int jointId); - - public void SetPosition(Vector3 position, float confidence = 1) { - Cerebellum_SetTargetPosition(pCerebellum, (int)jointId, new Vec3(position), confidence); - } - [DllImport(dllName)] - private static extern void Cerebellum_SetTargetPosition(IntPtr pCerebellum, int boneId, Vec3 position, float confidence); - - public Vector3 localPosition { - get { - return Cerebellum_GetLocalTargetPosition(pCerebellum, (int)jointId).Vector3; - } - set { - Debug.LogError("Not implemented"); - } - } - [DllImport(dllName)] - private static extern Vec3 Cerebellum_GetLocalTargetPosition(IntPtr pCerebellum, int jointId); - - public Quaternion orientation { - get { - return Cerebellum_GetTargetOrientation(pCerebellum, jointId).Quaternion; - } - set { - SetOrientation(value); - } - } - [DllImport(dllName)] - private static extern Quat Cerebellum_GetTargetOrientation(IntPtr pCerebellum, int boneId); - - public void SetOrientation(Quaternion orientation, float confidence = 1) { - Cerebellum_SetTargetOrientation(pCerebellum, jointId, new Quat(orientation), confidence); - } - [DllImport(dllName)] - private static extern void Cerebellum_SetTargetOrientation(IntPtr pCerebellum, int jointId, Quat orientation, float confidence); - - public Quaternion localOrientation { - get { - return Cerebellum_GetLocalTargetOrientation(pCerebellum, (int)jointId).Quaternion; - } - set { - Debug.LogError("Not implemented"); - } - } - [DllImport(dllName)] - private static extern Quat Cerebellum_GetLocalTargetOrientation(IntPtr pCerebellum, int jointId); - - } - #endregion Target - } -} -#endif \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs.meta b/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs.meta deleted file mode 100644 index 895a215..0000000 --- a/Runtime/HumanoidFree/Scripts/Cerebellum/Cerebellum.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8447d29769296b247a8efaad9a5692fe -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs b/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs deleted file mode 100644 index c0d5dc9..0000000 --- a/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs +++ /dev/null @@ -1,89 +0,0 @@ -using UnityEngine; - -namespace Passer { - /// - /// The Cerebellum interface defines the interface to control - /// - public interface ICerebellum { - - /// - /// Retrieve the target for the joint - /// - /// The identification of the joint - /// - ICerebellumTarget GetTarget(sbyte jointId); - - /// - /// Retrieve the joint - /// - /// The identification of the joint - /// - ICerebellumJoint GetJoint(sbyte jointId); - } - - /// - /// A joint target which is used to calculate how the joints need to move - /// - public interface ICerebellumTarget { - - /// - /// The position of the target in world space - /// - /// The confidence will be set to 1 (maximum) - Vector3 position { get; set; } - /// - /// The position of the target in the local space of the parent joint - /// - /// The confidence will be set to 1 (maximum) - Vector3 localPosition { get; set; } - - /// - /// The orientation of the target in world space - /// - /// The confidence will be set to 1 (maximum) - Quaternion orientation { get; set; } - /// - /// The orientation fo the target in the local space of the parent joint - /// - /// The confidence will be set to 1 (maximum) - Quaternion localOrientation { get; set; } - - /// - /// Set the position of the target in world space with a confidence value - /// - /// The position of the target in world space - /// The confidence of the position in the range 0..1 - void SetPosition(Vector3 position, float confidence); - /// - /// Set the orientation of the target in world space with a confidence value - /// - /// The orientation of the target in world space - /// The confidence of the orientation in the range 0..1 - void SetOrientation(Quaternion orientation, float confidence); - } - - /// - /// The joint itself - /// - public interface ICerebellumJoint { - - /// - /// The position of the joint in world space - /// - Vector3 position { set; } - /// - /// The position of the joint in the local space of the parent joint - /// - Vector3 localPosition { get; } - - /// - /// The orientation of the joint in world space - /// - Quaternion orientation { get; set; } - - /// - /// The orientation of the joint in the local space of the parent joint - /// - Quaternion localOrientation { get; set; } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs.meta b/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs.meta deleted file mode 100644 index dc313f5..0000000 --- a/Runtime/HumanoidFree/Scripts/Cerebellum/ICerebellum.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bb0410c81403af145bd8d6039e176a52 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Configuration.cs b/Runtime/HumanoidFree/Scripts/Configuration.cs deleted file mode 100644 index 3f171f7..0000000 --- a/Runtime/HumanoidFree/Scripts/Configuration.cs +++ /dev/null @@ -1,48 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - //[CreateAssetMenu(menuName = "Humanoid/Configuration", fileName = "HumanoidConfiguration", order = 100)] - //[System.Serializable] - public class Configuration /*: ScriptableObject*/ { - public bool openVRSupport = false; - public bool steamVrSupport = false; - public bool viveTrackerSupport = false; - public bool oculusSupport = true; - public bool windowsMRSupport = true; - public bool vrtkSupport = true; - public bool neuronSupport; - public bool hi5Support; - public bool realsenseSupport; - public bool leapSupport; - public bool kinect1Support; - public bool kinect2Support; - public bool kinect4Support; - public bool astraSupport; - public bool hydraSupport; - public bool arkitSupport; - public bool tobiiSupport; - public bool optitrackSupport; - public bool pupilSupport; - public bool antilatencySupport; - - public NetworkingSystems networkingSupport; - public bool networkingVoiceSupport; - - public string humanoidSceneName; - -// public static Configuration Load(string configurationName) { -//#if UNITY_EDITOR -// string[] foundAssets = UnityEditor.AssetDatabase.FindAssets(configurationName + " t:Configuration"); -// if (foundAssets.Length == 0) -// return null; - -// string path = UnityEditor.AssetDatabase.GUIDToAssetPath(foundAssets[0]); -// Configuration configuration = UnityEditor.AssetDatabase.LoadAssetAtPath(path); -// return configuration; -//#else -// return null; -//#endif -// } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Configuration.cs.meta b/Runtime/HumanoidFree/Scripts/Configuration.cs.meta deleted file mode 100644 index a8123eb..0000000 --- a/Runtime/HumanoidFree/Scripts/Configuration.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 390de57b567cb6341b5bef88105b0f83 -timeCreated: 1513783137 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Events.meta b/Runtime/HumanoidFree/Scripts/Events.meta deleted file mode 100644 index ffd3607..0000000 --- a/Runtime/HumanoidFree/Scripts/Events.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 55405995d8ddaba43b082e3930408364 -folderAsset: yes -timeCreated: 1551283727 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs b/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs deleted file mode 100644 index d6208b2..0000000 --- a/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs +++ /dev/null @@ -1,83 +0,0 @@ -using UnityEngine.Events; - -namespace Passer.Humanoid { - - [System.Serializable] - public class PoseEventList : EventHandlers { - public Pose value { - get { - if (events == null || events.Count == 0) - return null; - return events[0].value; - } - set { - foreach (PoseEvent poseEvent in events) - poseEvent.value = value; - } - } - } - - [System.Serializable] - public class UnityPoseEvent : UnityEvent { } - - [System.Serializable] - public class PoseEvent : EventHandler { - public PoseEvent() { - eventType = Type.OnChange; - } - - public UnityPoseEvent poseEvent; - - public Pose value { - get { return pose; } - set { - string valueName = value == null ? "" : value.name; - string poseName = pose == null ? "" : pose.name; - poseChanged = (valueName != poseName); - pose = value; - Update(); - } - } - - protected Pose pose; - protected bool poseChanged; - - public override void Update() { - if (poseEvent == null) - return; - - switch (eventType) { - case Type.WhileActive: - if (pose != null) - poseEvent.Invoke(pose); - break; - case Type.WhileInactive: - if (pose == null) - poseEvent.Invoke(pose); - break; - case Type.OnStart: - if (pose != null && poseChanged) - poseEvent.Invoke(pose); - break; - case Type.OnEnd: - if (pose == null && poseChanged) - poseEvent.Invoke(pose); - break; - case Type.OnChange: - if (poseChanged) - poseEvent.Invoke(pose); - break; - case Type.Continuous: - poseEvent.Invoke(pose); - break; - case Type.Never: - default: - break; - } - } - - //public override UnityEventBase GetUnityEventBase() { - // return poseEvent; - //} - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs.meta b/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs.meta deleted file mode 100644 index b0d8d45..0000000 --- a/Runtime/HumanoidFree/Scripts/Events/PoseEvent.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 66065595c20d4cf45b847e26c824b4d3 -timeCreated: 1551284370 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions.meta b/Runtime/HumanoidFree/Scripts/Extensions.meta deleted file mode 100644 index a0499f3..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 0a4659f1a67a88c46aef5aa1897262b5 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs deleted file mode 100644 index e61c5cc..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs +++ /dev/null @@ -1,428 +0,0 @@ -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace Passer.Humanoid { - using Passer.Tracking; - using Passer.Humanoid.Tracking; - - public class ArmSensor : HumanoidSensor { - protected HandTarget handTarget { - get { return target as HandTarget; } - } - - protected HumanoidControl humanoid { - get { return handTarget.humanoid; } - } - - protected new Humanoid.Tracking.ArmSensor sensor; - - public HandSkeleton handSkeleton; - - #region Manage - - protected virtual HandSkeleton FindHandSkeleton(bool isLeft) { - return null; - } - - protected virtual HandSkeleton CreateHandSkeleton(bool isLeft, bool showRealObjects) { - return null; - } - - public virtual void CheckSensor(HandTarget _handTarget) { - if (handTarget == null) - target = _handTarget; - } - - public virtual void CheckSensor(HandTarget handTarget, HumanoidTracker tracker) { - if (this.handTarget == null) - this.target = handTarget; - if (this.handTarget == null) - return; - - if (this.tracker == null) - this.tracker = tracker; - - if (enabled && tracker.enabled) { - if (handSkeleton == null) { - handSkeleton = FindHandSkeleton(handTarget.isLeft); - if (handSkeleton == null) - handSkeleton = CreateHandSkeleton(handTarget.isLeft, handTarget.showRealObjects); - } - } - else { -#if UNITY_EDITOR - if (!Application.isPlaying) { - if (handSkeleton != null) - Object.DestroyImmediate(handSkeleton.gameObject, true); - } -#endif - handSkeleton = null; - } - } - - #endregion - - #region Start - - public virtual void Init(HandTarget handTarget) { - target = handTarget; - } - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - target = targetTransform.GetComponent(); - } - -#if UNITY_EDITOR - public void InitController(SerializedProperty sensorProp, HandTarget handTarget) { - if (sensorProp == null) - return; - - Init(handTarget); - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = sensorTransform; - - SerializedProperty targetProp = sensorProp.FindPropertyRelative("target"); - targetProp.objectReferenceValue = target; - - if (tracker == null || !tracker.enabled || !enabled) - return; - - CheckSensorTransform(); - sensorTransformProp.objectReferenceValue = sensorTransform; - - ShowSensor(handTarget.humanoid.showRealObjects && handTarget.showRealObjects); - - SerializedProperty sensor2TargetPositionProp = sensorProp.FindPropertyRelative("sensor2TargetPosition"); - sensor2TargetPositionProp.vector3Value = sensor2TargetPosition; - SerializedProperty sensor2TargetRotationProp = sensorProp.FindPropertyRelative("sensor2TargetRotation"); - sensor2TargetRotationProp.quaternionValue = sensor2TargetRotation; - } - - public void RemoveController(SerializedProperty sensorProp) { - if (sensorProp == null) - return; - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = null; - } -#endif - - public void CheckSensorTransform(Transform targetTransform, bool isLeft) { - if (enabled && sensorTransform == null) - CreateSensorTransform(targetTransform, isLeft); - else if (!enabled && sensorTransform != null) - RemoveSensorTransform(); - } - - public virtual void CreateSensorTransform(Transform targetTransform, bool isLeft) { } - - protected virtual void CreateSensorTransform(string resourceName, Vector3 sensor2TargetPosition, Quaternion sensor2TargetRotation) { - CreateSensorTransform(handTarget.hand.target.transform, resourceName, sensor2TargetPosition, sensor2TargetRotation); - } - - public override void SetSensor2Target() { - if (sensorTransform == null || target == null) - return; - - sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * target.transform.rotation; - sensor2TargetPosition = -target.transform.InverseTransformPoint(sensorTransform.position); - } - - public virtual void SetSensor2Target(Vector3 targetPosition, Quaternion targetRotation) { - if (sensorTransform == null) - return; - - sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * targetRotation; - //sensor2TargetPosition = -targetTransform.InverseTransformPoint(sensorTransform.position); - - var worldToLocalMatrix = Matrix4x4.TRS(targetPosition, targetRotation, Vector3.one).inverse; - sensor2TargetPosition = -worldToLocalMatrix.MultiplyPoint3x4(sensorTransform.position); - } - - #endregion - - #region Update - protected void UpdateArm(Humanoid.Tracking.ArmSensor armSensor) { - float armConfidence = ArmConfidence(armSensor); - if (handTarget.hand.target.confidence.position > armConfidence) - UpdateArmIK(armSensor); - else - UpdateArmDirect(armSensor); - } - - private void UpdateArmDirect(Humanoid.Tracking.ArmSensor armSensor) { - UpdateShoulder(armSensor); - UpdateUpperArm(armSensor); - UpdateForearm(armSensor); - UpdateHand(armSensor); - } - - private void UpdateArmIK(Humanoid.Tracking.ArmSensor armSensor) { - Vector3 handTargetPosition = handTarget.hand.target.transform.position; - Quaternion handTargetRotation = handTarget.hand.target.transform.rotation; - - Vector3 forearmUpAxis = HumanoidTarget.ToQuaternion(armSensor.upperArm.rotation) * Vector3.up; - if (handTarget.upperArm.target.confidence.rotation < 0.9F) { - handTarget.upperArm.target.transform.rotation = ArmMovements.UpperArmRotationIK(handTarget.upperArm.target.transform.position, handTargetPosition, forearmUpAxis, handTarget.upperArm.target.length, handTarget.forearm.target.length, handTarget.isLeft); - handTarget.upperArm.target.confidence = armSensor.upperArm.confidence; - } - - if (handTarget.forearm.target.confidence.rotation < 0.9F) { - handTarget.forearm.target.transform.rotation = ArmMovements.ForearmRotationIK(handTarget.forearm.target.transform.position, handTargetPosition, forearmUpAxis, handTarget.isLeft); - handTarget.forearm.target.confidence = armSensor.forearm.confidence; - } - - handTarget.hand.target.transform.rotation = handTargetRotation; - handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation; - } - - protected void UpdateShoulder(Humanoid.Tracking.ArmSensor armSensor) { - if (handTarget.shoulder.target.transform == null) - return; - - if (armSensor.shoulder.confidence.position > 0) - handTarget.shoulder.target.transform.position = HumanoidTarget.ToVector3(armSensor.shoulder.position); - if (armSensor.shoulder.confidence.rotation > 0) - handTarget.shoulder.target.transform.rotation = HumanoidTarget.ToQuaternion(armSensor.shoulder.rotation); - handTarget.shoulder.target.confidence = armSensor.upperArm.confidence; - } - - protected virtual void UpdateUpperArm(Humanoid.Tracking.ArmSensor armSensor) { - if (handTarget.upperArm.target.transform != null) { - if (armSensor.upperArm.confidence.position > 0) - handTarget.upperArm.target.transform.position = HumanoidTarget.ToVector3(armSensor.upperArm.position); - else - handTarget.upperArm.target.transform.position = handTarget.shoulder.target.transform.position + handTarget.shoulder.target.transform.rotation * handTarget.outward * handTarget.shoulder.bone.length; - - if (armSensor.upperArm.confidence.rotation > 0) - handTarget.upperArm.target.transform.rotation = HumanoidTarget.ToQuaternion(armSensor.upperArm.rotation); - - handTarget.upperArm.target.confidence = armSensor.upperArm.confidence; - } - } - - protected virtual void UpdateForearm(Humanoid.Tracking.ArmSensor armSensor) { - if (handTarget.forearm.target.transform != null) { - if (armSensor.forearm.confidence.position > 0) - handTarget.forearm.target.transform.position = HumanoidTarget.ToVector3(armSensor.forearm.position); - else - handTarget.forearm.target.transform.position = handTarget.upperArm.target.transform.position + handTarget.upperArm.target.transform.rotation * handTarget.outward * handTarget.upperArm.bone.length; - - if (armSensor.forearm.confidence.rotation > 0) - handTarget.forearm.target.transform.rotation = HumanoidTarget.ToQuaternion(armSensor.forearm.rotation); - - handTarget.forearm.target.confidence = armSensor.forearm.confidence; - } - } - - protected virtual void UpdateHand(Humanoid.Tracking.ArmSensor armSensor) { - if (handTarget.hand.target.transform != null) { - if (armSensor.hand.confidence.position > 0 && armSensor.hand.confidence.position >= handTarget.hand.target.confidence.position) { - handTarget.hand.target.transform.position = HumanoidTarget.ToVector3(armSensor.hand.position); - handTarget.hand.target.confidence.position = armSensor.hand.confidence.position; - } - else if (handTarget.hand.target.confidence.position == 0) // Hmm. I could insert the arm model here when confidence.rotation > 0.5F for example! - handTarget.hand.target.transform.position = handTarget.forearm.target.transform.position + handTarget.forearm.target.transform.rotation * handTarget.outward * handTarget.forearm.bone.length; - - if (armSensor.hand.confidence.rotation > 0 && armSensor.hand.confidence.rotation >= handTarget.hand.target.confidence.rotation) { - handTarget.hand.target.transform.rotation = HumanoidTarget.ToQuaternion(armSensor.hand.rotation); - handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation; - } - } - } - protected virtual void UpdateHandTargetTransform(Humanoid.Tracking.ArmSensor armSensor) { - if (handTarget.hand.target.transform != null) { - if (armSensor.hand.confidence.rotation > 0 && armSensor.hand.confidence.rotation >= handTarget.hand.target.confidence.rotation) { - handTarget.hand.target.transform.rotation = sensorTransform.rotation * sensor2TargetRotation; - handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation; - } - if (armSensor.hand.confidence.position > 0 && armSensor.hand.confidence.position >= handTarget.hand.target.confidence.position) { - handTarget.hand.target.transform.position = sensorTransform.position + handTarget.hand.target.transform.rotation * sensor2TargetPosition; - handTarget.hand.target.confidence.position = armSensor.hand.confidence.position; - } - else if (handTarget.hand.target.confidence.position == 0) // Hmm. I could insert the arm model here when confidence.rotation > 0.5F for example! - handTarget.hand.target.transform.position = handTarget.forearm.target.transform.position + handTarget.forearm.target.transform.rotation * handTarget.outward * handTarget.forearm.bone.length; - - } - } - - protected virtual void UpdateFingers(Humanoid.Tracking.ArmSensor armSensor) { - for (int i = 0; i < (int)Humanoid.Tracking.Finger.Count; i++) { - UpdateFinger(armSensor.fingers[i], i); - } - } - - private void UpdateFinger(Humanoid.Tracking.ArmSensor.Finger fingerSensor, int i) { - Transform proximalTarget = handTarget.fingers.allFingers[i].proximal.target.transform; - proximalTarget.rotation = proximalTarget.parent.rotation * HumanoidTarget.ToQuaternion(fingerSensor.proximal.rotation); - - Transform intermediateTarget = handTarget.fingers.allFingers[i].intermediate.target.transform; - intermediateTarget.rotation = intermediateTarget.parent.rotation * HumanoidTarget.ToQuaternion(fingerSensor.intermediate.rotation); - - Transform distalTarget = handTarget.fingers.allFingers[i].distal.target.transform; - distalTarget.rotation = distalTarget.parent.rotation * HumanoidTarget.ToQuaternion(fingerSensor.distal.rotation); - - handTarget.DetermineFingerCurl((Humanoid.Tracking.Finger)i); - } - - #region Skeleton - - protected virtual void UpdateHandFromSkeleton() { - Transform wristBone = handSkeleton.GetWristBone(); - handTarget.hand.target.transform.position = wristBone.transform.position; - handTarget.hand.target.transform.rotation = wristBone.transform.rotation; - handTarget.hand.target.confidence.position = handSkeleton.positionConfidence; - handTarget.hand.target.confidence.rotation = handSkeleton.rotationConfidence; - - UpdateThumbFromSkeleton(); - UpdateIndexFingerFromSkeleton(); - UpdateMiddleFingerFromSkeleton(); - UpdateRingFingerFromSkeleton(); - UpdateLittleFingerFromSkeleton(); - - } - - protected virtual void UpdateThumbFromSkeleton() { - FingersTarget.TargetedFinger finger = handTarget.fingers.thumb; - UpdateFingerBoneFromSkeleton(finger.proximal.target.transform, Finger.Thumb, FingerBone.Proximal); - UpdateFingerBoneFromSkeleton(finger.intermediate.target.transform, Finger.Thumb, FingerBone.Intermediate); - UpdateFingerBoneFromSkeleton(finger.distal.target.transform, Finger.Thumb, FingerBone.Distal); - } - - protected void UpdateIndexFingerFromSkeleton() { - FingersTarget.TargetedFinger finger = handTarget.fingers.index; - UpdateFingerBoneFromSkeleton(finger.proximal.target.transform, Finger.Index, FingerBone.Proximal); - UpdateFingerBoneFromSkeleton(finger.intermediate.target.transform, Finger.Index, FingerBone.Intermediate); - UpdateFingerBoneFromSkeleton(finger.distal.target.transform, Finger.Index, FingerBone.Distal); - } - - protected void UpdateMiddleFingerFromSkeleton() { - FingersTarget.TargetedFinger finger = handTarget.fingers.middle; - UpdateFingerBoneFromSkeleton(finger.proximal.target.transform, Finger.Middle, FingerBone.Proximal); - UpdateFingerBoneFromSkeleton(finger.intermediate.target.transform, Finger.Middle, FingerBone.Intermediate); - UpdateFingerBoneFromSkeleton(finger.distal.target.transform, Finger.Middle, FingerBone.Distal); - } - - protected void UpdateRingFingerFromSkeleton() { - FingersTarget.TargetedFinger finger = handTarget.fingers.ring; - UpdateFingerBoneFromSkeleton(finger.proximal.target.transform, Finger.Ring, FingerBone.Proximal); - UpdateFingerBoneFromSkeleton(finger.intermediate.target.transform, Finger.Ring, FingerBone.Intermediate); - UpdateFingerBoneFromSkeleton(finger.distal.target.transform, Finger.Ring, FingerBone.Distal); - } - - protected void UpdateLittleFingerFromSkeleton() { - FingersTarget.TargetedFinger finger = handTarget.fingers.little; - UpdateFingerBoneFromSkeleton(finger.proximal.target.transform, Finger.Little, FingerBone.Proximal); - UpdateFingerBoneFromSkeleton(finger.intermediate.target.transform, Finger.Little, FingerBone.Intermediate); - UpdateFingerBoneFromSkeleton(finger.distal.target.transform, Finger.Little, FingerBone.Distal); - } - - protected virtual void UpdateFingerBoneFromSkeleton(Transform targetTransform, Finger finger, FingerBone fingerBone) { - if (handSkeleton == null) - return; - - Transform thisBoneTransform = handSkeleton.GetBone(finger, fingerBone); - Transform nextBoneTransform = handSkeleton.GetBone(finger, fingerBone + 1); - if (thisBoneTransform == null || nextBoneTransform == null) - return; - - Vector3 direction = nextBoneTransform.position - thisBoneTransform.position; - if (handTarget.isLeft) - targetTransform.rotation = Quaternion.LookRotation(direction, handTarget.hand.target.transform.forward) * Quaternion.Euler(-90, 0, 90); - else - targetTransform.rotation = Quaternion.LookRotation(direction, handTarget.hand.target.transform.forward) * Quaternion.Euler(-90, 0, -90); - } - - #endregion - - #endregion - - public float ArmConfidence(Humanoid.Tracking.ArmSensor armSensor) { - float armOrientationsConfidence = - //armSensor.shoulder.confidence.rotation * - armSensor.upperArm.confidence.rotation * - armSensor.forearm.confidence.rotation; - return armOrientationsConfidence; - } - - - public virtual void Vibrate(float length, float strength) { - } - } -} - -namespace Passer.Humanoid { - public class ArmController : Humanoid.ArmSensor { - protected Humanoid.Tracking.Sensor.ID sensorID; - protected Controller controllerInput; - public Humanoid.Tracking.ArmController oldController; - public Passer.Tracking.ControllerComponent controller; - - public override Tracker.Status status { - get { - if (oldController == null) - return Tracker.Status.Unavailable; - else - return oldController.status; - } - set { - if (oldController != null) - oldController.status = value; - } - } - - #region Start - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - sensorID = handTarget.isLeft ? Humanoid.Tracking.Sensor.ID.LeftHand : Humanoid.Tracking.Sensor.ID.RightHand; - controllerInput = Controllers.GetController(0); - } - #endregion - - #region Update - public override void Update() { - if (tracker == null || !tracker.enabled || !enabled) - return; - - oldController.Update(); - if (oldController.status != Tracker.Status.Tracking) - return; - - UpdateSensorTransform(oldController); - UpdateTargetTransform(); - } - - protected void UpdateInput(Controller controller, Humanoid.Tracking.ArmController armController) { - if (handTarget.isLeft) - SetControllerInput(controller.left, armController); - else - SetControllerInput(controller.right, armController); - } - - protected void SetControllerInput(ControllerSide controllerSide, Humanoid.Tracking.ArmController armController) { - controllerSide.stickHorizontal += armController.input.stickHorizontal; - controllerSide.stickVertical += armController.input.stickVertical; - controllerSide.stickButton |= armController.input.stickPress; - - //controllerSide.up |= armController.input.up; - //controllerSide.down |= armController.input.down; - //controllerSide.left |= armController.input.left; - //controllerSide.right |= armController.input.right; - - controllerSide.buttons[0] |= armController.input.buttons[0]; - controllerSide.buttons[1] |= armController.input.buttons[1]; - controllerSide.buttons[2] |= armController.input.buttons[2]; - controllerSide.buttons[3] |= armController.input.buttons[3]; - - controllerSide.trigger1 += armController.input.trigger1; - controllerSide.trigger2 += armController.input.trigger2; - - controllerSide.option |= armController.input.option; - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs.meta deleted file mode 100644 index e00d0a5..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/ArmSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 08d770d3363483140b1c0db795afb13a -timeCreated: 1550132632 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs b/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs deleted file mode 100644 index fa1fbd6..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Tracking { - - public class BodySkeleton : TrackerComponent { - - public bool show = false; - - protected List bones; - //protected static Material boneWhite; - - #region Start - - protected virtual void InitializeSkeleton() { - - } - -// protected TrackedBone AddBone(string name, Transform parent) { -// GameObject boneGO = new GameObject(name); -// boneGO.transform.SetParent(parent, false); - -// AddBoneRenderer(boneGO); - -// TrackedBone bone = new TrackedBone() { -// transform = boneGO.transform -// }; -// return bone; -// } - -// protected void AddBoneRenderer(GameObject boneGO) { -// LineRenderer boneRenderer = boneGO.AddComponent(); -// boneRenderer.startWidth = 0.01F; -// boneRenderer.endWidth = 0.01F; -// boneRenderer.useWorldSpace = false; -// boneRenderer.SetPosition(0, Vector3.zero); -// boneRenderer.SetPosition(1, Vector3.zero); -// boneRenderer.generateLightingData = true; -// boneRenderer.material = boneWhite; -// } - - #endregion - - #region Update - - protected void UpdateSkeletonRender() { - if (bones == null) - return; - - // Render Skeleton - foreach (TrackedBone bone in bones) { - if (bone == null) - continue; - LineRenderer boneRenderer = bone.transform.GetComponent(); - if (boneRenderer != null) { - Vector3 localParentPosition = bone.transform.InverseTransformPoint(bone.transform.parent.position); - boneRenderer.SetPosition(1, localParentPosition); - //boneRenderer.enabled = show; - } - } - } - - protected bool rendered; - protected void EnableRenderer() { - if (rendered || !show) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = true; - } - - rendered = true; - } - - protected void DisableRenderer() { - if (!rendered) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = false; - } - - rendered = false; - } - - #endregion - - } -} diff --git a/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs.meta deleted file mode 100644 index 6aeb745..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/BodySkeleton.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b8ba9579e9060864093ad9c0624cac88 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs b/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs deleted file mode 100644 index 19243e9..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Tracking { - - public class ControllerComponent : SensorComponent { - public bool isLeft; - - public Vector3 primaryAxis; - public Vector3 secondaryAxis; - public float trigger1; - public float trigger2; - public float button1; - public float button2; - public float button3; - public float button4; - public float option; - - public float battery; - - - #region Start - - public virtual void StartComponent(Transform trackerTransform, bool isLeft) { - StartComponent(trackerTransform); - this.isLeft = isLeft; - } - - #endregion - - #region Update - - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs.meta deleted file mode 100644 index 70e6d01..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/ControllerComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a8eae0d63c030eb46affefeec81f6f2d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs b/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs deleted file mode 100644 index 10c101c..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs +++ /dev/null @@ -1,105 +0,0 @@ -namespace Passer { - /// \version Humanoid Control 4 - /// \page Extensions Extensions and tracking - /// - /// Note: this documentation is still work in progress... - /// - /// The Humanoid Control framework allows you to add support for additional devices - /// which are not supported in the main packages. - /// This document decribes how this can be done. - /// - /// Basic architecture - /// =============== - /// Every extension consists of two main parts: - /// 1. The tracking device itself - /// 2. The projection of the tracking device on the humanoid - /// This chapter will decribe the principles for thes two parts: - /// - /// The tracking device - /// ------------------- - /// All tracking devices are represented as GameObject in the Real World of the Humanoid. - /// Most tracking devices consist of multiple parts. Usually we have one Tracker and multiple Sensors - /// - /// ### Tracker - /// The tracker GameObject is the representation of the full tracking device and its Transform is the origin of the tracking space. - /// Examples of this is the Kinect Camera itself, the origin of the OpenVR tracking space or the BaseStation of the Razer Hydra. - /// Every tracker GameObject should have a specific implementation of a Tracking::TrackerComponent attached. - /// Examples these tracker components are Tracking::AzureKinect, Tracking::OpenVR and Tracking::HydraBaseStation. - /// - /// ### Sensor - /// Each tracker GameObject can have multiple Sensor children. - /// A Sensor represents a tracking point within the tracking space around the tracker. - /// Examples of these are a tracked hand from the Kinect Camera, an OpenVR Hmd or an Razer Hydra Controller. - /// Every sensor GameObject should have a specific implementation of a Tracking::SensorComponent attached. - /// Examples of these sensor components are Tracking::OpenVRHmd and Tracking::HydraController. - /// The Kinect does not have specific sensor children, but uses Tracking::TrackedBone for skeletal tracking. - /// - /// Note: The TrackerComponent and SensorComponent are still simple. - /// In the future they are expected to be extended to simplify the implementation of new custom extsnsions. - /// - /// The project of the tracking device on the humanoid - /// -------------------------------------------------- - /// Like with the tracking device we have a similar setup for the project on the humanoid. - /// - /// ### Humanoid::HumanoidTracker - /// This implements the projection for the humanoid as a whole. - /// It has references to HumanoidSensors for the different parts of the body: head, hands, hips and feet - /// For every extension, an specific implementation of the Humanoid::HumanoidTracker should be created. - /// Examples of this are the Humanoid::KinectTracker, Humanoid::OpenVRHumanoidTracker and Humanoid::HydraTracker. - /// - /// ### Humanoid::HumanoidSensor - /// The humanoid sensor takes care of the projection of the sensor to the specific bone in the targets rig of the Humanoid. - /// Most sensors will project to a fixed bone in the rig. For example a VR HMD will always project onto the head bone of the target rig. - /// But sometimes it is possible to select to which bone the sensor will be projected. - /// An example of this is the Humanoid::ViveTrackerArm where you can choose to put it on the hand, forearm, upper arm or shoulder in the rig. - /// Exmples of humanoid sensors are Humanoid::Kinect4Arm, Humanoid::OpenVRHmd and Humanoid::RazerHydraHand. - /// - /// The rigs - /// ======== - /// Humanoid Control uses two rigs: the tracking rig and the avatar rig. - /// - /// ### Avatar rig - /// The avatar rig is the rig of the avatar as you know it: - /// the pose of this rig will determine the pose of the avatar how you will see it. - /// When you change the position of the hand for example, the avatar's hand will follow that hand directly. - /// - /// ### Tracking rig - /// The tracking rig is the target pose which is derived from the tracking devices. - /// Humanoid Control will try to align the avatar rig to the tracking rig using forward and inverse kinematics. - /// Note however that differeces will appear between the two rig in many situations. Most important are: - /// - Physical limitations of the avatar: - /// for example the arms of the avatar are not long enough to reach the hand target or the target rig will result in unnatural poses. - /// - Physics: - /// for example the hand target is inside a wall and Huamnoid::HumanoidControl::physics is enabled the avatar's hand will collide with the wall - /// preventing the hand to reacht the target. - /// - /// The tracking rig has actually two levels of detail: - /// - The target rig - /// This is a complete rig for all supported bones in the humanoid. It is often visible in the Unity Inspector as a TargetRig GameObject. - /// - The targets. There are 6 main targets: Head Target, Hips Target, 2 Hand Targets and 2 Foot Targets. - /// These targets are often directly visible in the Unity Inspector. - /// - /// The targets will actually match the transforms of the matching bones in the target rig. - /// For example the head target will have the same position and rotation as the head bone in the target rig. - /// - /// Tracking confidence - /// ================ - /// A key component in the use of multiple tracking devices simultaneously is the tracking confidence. - /// Every sensor component will have a specific quality in tracking. - /// For example the Kinect has good positional tracking quality but rotations are of lower quality. - /// This is because of the Kinect technology using a depth camera. - /// On the other hand Perception Neuton has good rotational quality but not so good positional quality. - /// This is because Perception Neuron uses IMUs (rotational sensors) to determine the pose of the user. - /// To cope with this and to be able to merge the data coming from different tracking devices we use tracking confidence. - /// - /// Every bone in the target rig has a positionConfidence and rotationConfidence. - /// When an Humanoid::HumanoidSensor updates the position and rotation of a bone in the target rig, it should also update - /// the positionConfidence and rotationConfidences of that bone. - /// The basic rule with this is: when the sensor data has a higher confidence than the target bone, - /// it will update the position and/or rotation and update the confidence of that bone. - /// The tracking confidence is a float in the range 0..1 where 1 represents an 100% certainty that the bone is at that position. - /// There are no hard rules about these values, but we use 0.2 for animated bones (no tracking), - /// 0.5 for fair tracking or values derived from other tracking data. 0.9 for good tracking and 0.99 for excellent tracking. - /// The value 1 is never use because then we have no possibility to override it if this is required. - /// -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs.meta deleted file mode 100644 index f6f6167..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Extensions_Doc.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f9906599f756902439b9fad7254da3ab -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs b/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs deleted file mode 100644 index 88a7fc1..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs +++ /dev/null @@ -1,177 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Tracking { - using Passer.Humanoid.Tracking; - - /// - /// Hand tracking skeleton - /// - public class HandSkeleton : SensorComponent { - - public bool isLeft; - - public new bool show = false; - - protected List bones; - //protected static Material boneWhite; - - public enum BoneId { - Invalid = -1, - Hand = 0, - ThumbProximal, - ThumbIntermediate, - ThumbDistal, - ThumbTip, - IndexMetaCarpal, - IndexProximal, - IndexIntermediate, - IndexDistal, - IndexTip, - MiddleMetaCarpal, - MiddleProximal, - MiddleIntermediate, - MiddleDistal, - MiddleTip, - RingMetaCarpal, - RingProximal, - RingIntermediate, - RingDistal, - RingTip, - LittleMetacarpal, - LittleProximal, - LittleIntermediate, - LittleDistal, - LittleTip, - - Forearm, - Count - } - - #region Start - - protected virtual void InitializeSkeleton() { - bones = new List(new TrackedBone[(int)BoneId.Count]); - - for (int i = 0; i < (int)Finger.Count; i++) { - Transform parent = this.transform; - for (int j = (int)FingerBone.Proximal; j <= (int)FingerBone.Tip; j++) { - BoneId boneId = BoneId.ThumbProximal + i * 5 + j - 1; - int boneIx = (int)boneId; - - bones[boneIx] = TrackedBone.Create(boneId.ToString(), parent); - parent = bones[boneIx].transform; - if (boneId == BoneId.ThumbProximal) { - bones[boneIx].transform.localPosition = new Vector3(0, 0, 0.02F); - if (isLeft) - bones[boneIx].transform.localRotation = Quaternion.Euler(0, 20, 25); - else - bones[boneIx].transform.localRotation = Quaternion.Euler(0, -20, 25); - } - else if (j == (int)FingerBone.Proximal) - bones[boneIx].transform.localPosition = new Vector3(isLeft ? -0.06F : 0.06F, 0, 0.04F - i * 0.02F); - else if (i == (int)Finger.Little) - bones[boneIx].transform.localPosition = new Vector3(isLeft ? -0.015F : 0.015F, 0, 0); - else if (i == (int)Finger.Middle) - bones[boneIx].transform.localPosition = new Vector3(isLeft ? -0.023F : 0.023F, 0, 0); - else - bones[boneIx].transform.localPosition = new Vector3(isLeft ? -0.02F : 0.02F, 0, 0); - } - } - int forearmIx = (int)BoneId.Forearm; - bones[forearmIx] = TrackedBone.Create(BoneId.Forearm.ToString(), this.transform); - bones[forearmIx].transform.localPosition = new Vector3(isLeft ? 0.2F : -0.2F, 0, 0); - } - - public static HandSkeleton FindHandSkeleton(Transform trackerTransform, bool isLeft) { - HandSkeleton[] handSkeletons = trackerTransform.GetComponentsInChildren(); - foreach (HandSkeleton handSkeleton in handSkeletons) { - if (handSkeleton.isLeft == isLeft) - return handSkeleton; - } - return null; - } - - public virtual GameObject CreateHandSkeleton(Transform trackerTransform, bool isLeft, bool showRealObjects) { - GameObject skeletonObj = new GameObject(isLeft ? "Left Hand Skeleton" : "Right Hand Skeleton"); - skeletonObj.transform.parent = trackerTransform; - skeletonObj.transform.localPosition = Vector3.zero; - skeletonObj.transform.localRotation = Quaternion.identity; - return skeletonObj; - } - - #endregion - - #region Update - - protected void UpdateSkeletonRender() { - if (bones == null) - return; - - // Render Skeleton - foreach (TrackedBone bone in bones) { - if (bone == null) - continue; - LineRenderer boneRenderer = bone.transform.GetComponent(); - if (boneRenderer != null) { - Vector3 localParentPosition = bone.transform.InverseTransformPoint(bone.transform.parent.position); - boneRenderer.SetPosition(1, localParentPosition); - boneRenderer.enabled = show; - } - } - } - - protected bool rendered; - protected void EnableRenderer() { - if (rendered || !show) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = true; - } - - rendered = true; - } - - protected void DisableRenderer() { - if (!rendered) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = false; - } - - rendered = false; - } - - #endregion - - public virtual Transform GetForearmBone() { - return bones[(int)BoneId.Forearm].transform; - } - - public virtual Transform GetWristBone() { - return this.transform; - } - - public virtual Transform GetBone(Finger finger, FingerBone fingerBone) { - if (bones == null) - return null; - - int boneId = GetBoneId(finger, fingerBone); - if (boneId == -1 || bones[boneId] == null) - return null; - - return bones[boneId].transform; - } - - public virtual int GetBoneId(Finger finger, FingerBone fingerBone) { - return -1; - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs.meta deleted file mode 100644 index 80bec99..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HandSkeleton.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4cd319ce23fd3ae4c819ce4bcdc3a069 -timeCreated: 1582299326 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs deleted file mode 100644 index 1195294..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs +++ /dev/null @@ -1,116 +0,0 @@ -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace Passer.Humanoid { - using Passer.Tracking; - - public class HeadSensor : HumanoidSensor { - protected HeadTarget headTarget { - get { return target as HeadTarget; } - } - - protected HumanoidControl humanoid { - get { return headTarget.humanoid; } - } - - protected new Humanoid.Tracking.HeadSensor sensor; - - public SensorComponent hmd; - - #region Manage - - public virtual void CheckSensor(HeadTarget headTarget) { - if (this.headTarget == null) - this.target = headTarget; - } - - #endregion - - #region Start - public virtual void Init(HeadTarget headTarget) { - target = headTarget; - } - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - target = targetTransform.GetComponent(); - base.Start(_humanoid, targetTransform); - } - -#if UNITY_EDITOR - public void InitController(SerializedProperty sensorProp, HeadTarget target) { - if (sensorProp == null) - return; - - Init(target); - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = sensorTransform; - - SerializedProperty targetProp = sensorProp.FindPropertyRelative("target"); - targetProp.objectReferenceValue = base.target; - - if (tracker == null || !tracker.enabled || !enabled) - return; - - CheckSensorTransform(); - ShowSensor(target.humanoid.showRealObjects && target.showRealObjects); - - SerializedProperty sensor2TargetPositionProp = sensorProp.FindPropertyRelative("sensor2TargetPosition"); - sensor2TargetPositionProp.vector3Value = sensor2TargetPosition; - SerializedProperty sensor2TargetRotationProp = sensorProp.FindPropertyRelative("sensor2TargetRotation"); - sensor2TargetRotationProp.quaternionValue = sensor2TargetRotation; - } - - public void RemoveController(SerializedProperty sensorProp) { - if (sensorProp == null) - return; - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = null; - } -#endif - - protected virtual void CreateSensorTransform(string resourceName, Vector3 sensor2TargetPosition, Quaternion sensor2TargetRotation) { - CreateSensorTransform(headTarget.head.target.transform, resourceName, sensor2TargetPosition, sensor2TargetRotation); - } - #endregion - - #region Update - public override void Update() { - if (tracker == null || !tracker.enabled || !enabled) - return; - - status = sensor.Update(); - UpdateSensorTransform(sensor); - - if (status != Tracker.Status.Tracking) - return; - - UpdateHeadTargetTransform(sensor); - } - - protected virtual void UpdateHeadTargetTransform(Humanoid.Tracking.HeadSensor headTracker) { - if (headTarget.head.target.transform != null) { - if (headTracker.head.confidence.rotation > 0) - headTarget.head.target.transform.rotation = HumanoidTarget.ToQuaternion(headTracker.head.rotation) * sensor2TargetRotation; - if (headTracker.head.confidence.position > 0) - headTarget.head.target.transform.position = HumanoidTarget.ToVector3(headTracker.head.position) + headTarget.head.target.transform.rotation * sensor2TargetPosition; - headTarget.head.target.confidence = headTracker.head.confidence; - } - } - - virtual protected void UpdateNeckTargetFromHead() { - Vector3 headPosition = headTarget.head.target.transform.position; - Quaternion headRotation = headTarget.head.target.transform.rotation; - - headTarget.neck.target.transform.rotation = headTarget.head.target.transform.rotation; - headTarget.neck.target.transform.position = headPosition - headTarget.neck.target.transform.rotation * Vector3.up * headTarget.neck.bone.length; - - headTarget.head.target.transform.position = headPosition; - headTarget.head.target.transform.rotation = headRotation; - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs.meta deleted file mode 100644 index 4ce1edb..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HeadSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 6c3d355aaa5a02540bd306f223bd6f3b -timeCreated: 1550132439 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs b/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs deleted file mode 100644 index b9f66d8..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Tracking { - - public class HeadSkeleton : SensorComponent { - - protected List bones; - - public enum BoneId { - Invalid = -1, - Neck = 0, - Head, - LeftEye, - RightEye, - - Count - } - - #region Start - - protected virtual void InitializeSkeleton() { - bones = new List(new TrackedBone[(int)BoneId.Count]); - - bones[(int)BoneId.Neck] = TrackedBone.Create(BoneId.Neck.ToString(), this.transform); - - bones[(int)BoneId.Head] = TrackedBone.Create(BoneId.Head.ToString(), bones[(int)BoneId.Neck].transform); - bones[(int)BoneId.Head].transform.localPosition = new Vector3(0, 0.13F, 0); - - bones[(int)BoneId.LeftEye] = TrackedBone.Create(BoneId.LeftEye.ToString(), bones[(int)BoneId.Head].transform); - bones[(int)BoneId.LeftEye].transform.localPosition = new Vector3(-0.03F, 0, 0.13F); - - bones[(int)BoneId.RightEye] = TrackedBone.Create(BoneId.RightEye.ToString(), bones[(int)BoneId.Head].transform); - bones[(int)BoneId.RightEye].transform.localPosition = new Vector3(0.03F, 0, 0.13F); - } - - #endregion Start - - #region Update - - protected void UpdateSkeletonRender() { - if (bones == null) - return; - - // Render Skeleton - foreach (TrackedBone bone in bones) { - if (bone == null) - continue; - - LineRenderer boneRenderer = bone.transform.GetComponent(); - if (boneRenderer != null) { - Vector3 localParentPosition = bone.transform.InverseTransformPoint(bone.transform.parent.position); - boneRenderer.SetPosition(1, localParentPosition); - boneRenderer.enabled = show; - } - } - } - - protected bool rendered; - protected void EnableRenderer() { - if (rendered || !show) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = true; - } - - rendered = true; - } - - protected void DisableRenderer() { - if (!rendered) - return; - - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (!(renderer is LineRenderer)) - renderer.enabled = false; - } - - rendered = false; - } - - #endregion Update - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs.meta deleted file mode 100644 index 6e5a5b7..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HeadSkeleton.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1e8f28188a24a3b49993687bdb0c1155 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs deleted file mode 100644 index 720c107..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs +++ /dev/null @@ -1,188 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Passer.Tracking; - - [System.Serializable] - public class HumanoidSensor : Sensor { - - public HumanoidSensor() { - enabled = true; - } - - public new HumanoidTracker tracker; - - protected Tracking.Sensor sensor; - - [System.NonSerialized] - public const string _name = ""; - public override string name { get { return _name; } } - - //public Transform sensorTransform; - - public Vector3 sensor2TargetPosition; - public Quaternion sensor2TargetRotation; - - #region Start - public virtual void Init(HumanoidTracker _tracker) { - tracker = _tracker; - } - - public virtual void Start(HumanoidControl _humanoid, Transform targetTransform) { - target = targetTransform.GetComponent(); - } - - public virtual void CheckSensorTransform() { - if (enabled && sensorTransform == null) - CreateSensorTransform(); - else if (!enabled && sensorTransform != null) - RemoveSensorTransform(); - - if (sensor2TargetRotation.x + sensor2TargetRotation.y + sensor2TargetRotation.z + sensor2TargetRotation.w == 0) - SetSensor2Target(); - } - - protected virtual void CreateSensorTransform() { - } - - protected void CreateSensorTransform(Transform targetTransform, string resourceName, Vector3 _sensor2TargetPosition, Quaternion _sensor2TargetRotation) { - GameObject sensorObject; - if (resourceName == null) { - sensorObject = new GameObject("Sensor"); - } - else { - Object controllerPrefab = Resources.Load(resourceName); - if (controllerPrefab == null) - sensorObject = new GameObject("Sensor"); - else - sensorObject = (GameObject)Object.Instantiate(controllerPrefab); - - sensorObject.name = resourceName; - } - - sensorTransform = sensorObject.transform; - sensorTransform.parent = tracker.trackerComponent.transform; - - sensor2TargetPosition = -_sensor2TargetPosition; - sensor2TargetRotation = Quaternion.Inverse(_sensor2TargetRotation); - - UpdateSensorTransformFromTarget(targetTransform); - } - - protected void RemoveSensorTransform() { - if (Application.isPlaying) - Object.Destroy(sensorTransform.gameObject); - else - Object.DestroyImmediate(sensorTransform.gameObject, true); - } - - public virtual void SetSensor2Target() { - if (sensorTransform == null || target == null) - return; - - sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * target.transform.rotation; - sensor2TargetPosition = -InverseTransformPointUnscaled(target.transform, sensorTransform.position); - } - - public static Vector3 InverseTransformPointUnscaled(Transform transform, Vector3 position) { - var worldToLocalMatrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one).inverse; - return worldToLocalMatrix.MultiplyPoint3x4(position); - } - #endregion - - #region Update - public override void Update() { - if (tracker == null || !tracker.enabled || !enabled) - return; - - if (sensor == null) - return; - - sensor.Update(); - if (sensor.status != Tracker.Status.Tracking) - return; - - UpdateSensorTransform(sensor); - UpdateTargetTransform(); - } - - protected void UpdateSensorTransform(Tracking.Sensor sensor) { - if (sensorTransform == null) - return; - - if (status == Tracker.Status.Tracking) { - sensorTransform.gameObject.SetActive(true); - sensorTransform.position = HumanoidTarget.ToVector3(sensor.sensorPosition); - sensorTransform.rotation = HumanoidTarget.ToQuaternion(sensor.sensorRotation); - } - else { - sensorTransform.gameObject.SetActive(false); - } - } - - public virtual void UpdateSensorTransformFromTarget(Transform targetTransform) { - if (sensorTransform == null) - return; - - sensorTransform.position = TransformPointUnscaled(targetTransform, -sensor2TargetPosition); - sensorTransform.rotation = targetTransform.rotation * Quaternion.Inverse(sensor2TargetRotation); - } - - protected static Vector3 TransformPointUnscaled(Transform transform, Vector3 position) { - var localToWorldMatrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one); - return localToWorldMatrix.MultiplyPoint3x4(position); - } - - protected virtual void UpdateTargetTransform() { - target.transform.rotation = sensorTransform.rotation * sensor2TargetRotation; - target.transform.position = sensorTransform.position + target.transform.rotation * sensor2TargetPosition; - } - #endregion - - #region Stop - public virtual void Stop() { } - #endregion - - public virtual void RefreshSensor() { - } - - public virtual void ShowSensor(HumanoidTarget target, bool shown) { } - //} - - //public class HumanoidSensor : UnitySensor { - - protected virtual void UpdateTarget(HumanoidTarget.TargetTransform target, Transform sensorTransform) { - if (target.transform == null || sensorTransform == null) - return; - - target.transform.rotation = GetTargetRotation(sensorTransform); - target.confidence.rotation = 0.5F; - - target.transform.position = GetTargetPosition(sensorTransform); - target.confidence.position = 0.5F; - } - - protected virtual void UpdateTarget(HumanoidTarget.TargetTransform target, SensorComponent sensorComponent) { - if (target == null || target.transform == null || - sensorComponent == null || sensorComponent.rotationConfidence + sensorComponent.positionConfidence <= 0) - return; - - target.transform.rotation = GetTargetRotation(sensorComponent.transform); - target.confidence.rotation = sensorComponent.rotationConfidence; - - target.transform.position = GetTargetPosition(sensorComponent.transform); - target.confidence.position = sensorComponent.positionConfidence; - } - - protected Vector3 GetTargetPosition(Transform sensorTransform) { - Vector3 targetPosition = sensorTransform.position + sensorTransform.rotation * sensor2TargetRotation * sensor2TargetPosition; - return targetPosition; - } - - protected Quaternion GetTargetRotation(Transform sensorTransform) { - Quaternion targetRotation = sensorTransform.rotation * sensor2TargetRotation; - return targetRotation; - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs.meta deleted file mode 100644 index 4effcc9..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4afff9ed8692750458dd8f22bd389613 -timeCreated: 1550131466 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs b/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs deleted file mode 100644 index a8136fa..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs +++ /dev/null @@ -1,162 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - using Passer.Tracking; - using Tracking; - - /// - /// A %Humanoid tracker - /// - public class HumanoidTracker : Tracker { - /// - /// The humanoid for this tracker - /// - public HumanoidControl humanoid; - - #region Manage - - /// - /// Check the status of the tracker - /// - /// The humanoid for which the tracker needs to be checked - public virtual void CheckTracker(HumanoidControl humanoid) { - if (this.humanoid == null) - this.humanoid = humanoid; - } - - /// - /// Function delegate for retrieving the tracker - /// - /// The root transform to start the searching of the tracker - /// The default local position of the tracker - /// The default local rotation of the tracker - /// The tracker component found or created - /// The default position/rotation is relative to the humanoid's real world. - public delegate TrackerComponent TrackerGetter(Transform transform, Vector3 localPosition, Quaternion localRotation); - /// - /// Function to check the status of a specific tracker - /// - /// The humanoid for which the tracker needs to be checked - /// Function delegate to retrieve the tracker - /// The default position/rotation for the tracker when created will be zero - public void CheckTracker(HumanoidControl humanoid, TrackerGetter getTracker) { - CheckTracker(humanoid, getTracker, Vector3.zero, Quaternion.identity); - } - - /// - /// Function to check the status of a specific tracker - /// - /// The humanoid for which the tracker needs to be checked - /// Function delegate to retrieve the tracker - /// The default local position of the tracker - /// The default local rotation of the tracker - public void CheckTracker(HumanoidControl humanoid, TrackerGetter getTracker, Vector3 localPosition, Quaternion localRotation) { - if (this.humanoid == null) - this.humanoid = humanoid; - if (this.humanoid == null) - return; - - if (enabled) { - if (trackerComponent == null) { - Transform realWorld = this.humanoid.realWorld; - - //Vector3 position = realWorld.TransformPoint(localPosition); - //Quaternion rotation = realWorld.rotation * localRotation; - trackerComponent = getTracker(realWorld, localPosition, localRotation); - } - if (trackerComponent == null) - return; - } - else { -#if UNITY_EDITOR - if (!Application.isPlaying) { - if (trackerComponent != null) - UnityEngine.Object.DestroyImmediate(trackerComponent.gameObject, true); - } -#endif - trackerComponent = null; - } - } - - #endregion Manage - - #region Device - -#if hFACE - public virtual Vector3 GetBonePosition(uint actorId, FacialBone boneId) { return Vector3.zero; } - public virtual Quaternion GetBoneRotation(uint actorId, FacialBone boneId) { return Quaternion.identity; } - public virtual float GetBoneConfidence(uint actorId, FacialBone boneId) { return 0; } -#endif - #endregion - - /// - /// Get the sensor for the head - /// - /// Will return null when this sensor is not present - public virtual HeadSensor headSensor { - get { return null; } - } - /// - /// Get the sensor for the left hand - /// - /// Will return null when this sensor is not present - public virtual ArmSensor leftHandSensor { - get { return null; } - } - /// - /// Get the sensor for the right hand - /// - /// Will return null when this sensor is not present - public virtual ArmSensor rightHandSensor { - get { return null; } - } - /// - /// Get the sensor for the hips - /// - /// Will return null when this sensor is not present - public virtual TorsoSensor hipsSensor { - get { return null; } - } - /// - /// Get the sensor for the left foot - /// - /// Will return null when this sensor is not present - public virtual LegSensor leftFootSensor { - get { return null; } - } - /// - /// Get the sensor for the right foot - /// - /// Will return null when this sensor is not present - public virtual LegSensor rightFootSensor { - get { return null; } - } - - private HumanoidSensor[] _sensors = new HumanoidSensor[0]; - /// - /// The sensors for this tracker - /// - public virtual HumanoidSensor[] sensors { - get { return _sensors; } - } - - #region Init - - /// Start the tracker - public virtual void StartTracker(HumanoidControl _humanoid) { - base.StartTracker(); - humanoid = _humanoid; - } - - #endregion Init - } - - public abstract class SubTracker : MonoBehaviour { - public HumanoidTracker tracker; - public int subTrackerId = -1; - - public abstract bool IsPresent(); - public abstract void UpdateTracker(bool showRealObjects); - } -} diff --git a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs.meta deleted file mode 100644 index 1b0aadb..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/HumanoidTracker.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 0fe405b63a2e3fa4e9907008bf910c57 -timeCreated: 1486189585 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs deleted file mode 100644 index 1bce1b8..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs +++ /dev/null @@ -1,107 +0,0 @@ -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace Passer.Humanoid { - - public class LegSensor : HumanoidSensor { - protected FootTarget footTarget { - get { return (FootTarget)target; } - } - protected new Humanoid.Tracking.LegSensor sensor; - - #region Start - public virtual void Init(FootTarget footTarget) { - target = footTarget; - } - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - target = targetTransform.GetComponent(); - } - -#if UNITY_EDITOR - public void InitController(SerializedProperty sensorProp, FootTarget footTarget) { - if (sensorProp == null) - return; - - Init(footTarget); - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = sensorTransform; - - SerializedProperty targetProp = sensorProp.FindPropertyRelative("target"); - targetProp.objectReferenceValue = target; - - if (!tracker.enabled || !enabled) - return; - - CheckSensorTransform(); - sensorTransformProp.objectReferenceValue = sensorTransform; - - ShowSensor(footTarget.humanoid.showRealObjects && footTarget.showRealObjects); - - SerializedProperty sensor2TargetPositionProp = sensorProp.FindPropertyRelative("sensor2TargetPosition"); - sensor2TargetPositionProp.vector3Value = sensor2TargetPosition; - SerializedProperty sensor2TargetRotationProp = sensorProp.FindPropertyRelative("sensor2TargetRotation"); - sensor2TargetRotationProp.quaternionValue = sensor2TargetRotation; - } - - public void RemoveController(SerializedProperty sensorProp) { - if (sensorProp == null) - return; - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = null; - } -#endif - protected virtual void CreateSensorTransform(string resourceName, Vector3 sensor2TargetPosition, Quaternion sensor2TargetRotation) { - CreateSensorTransform(footTarget.foot.target.transform, resourceName, sensor2TargetPosition, sensor2TargetRotation); - } - #endregion - - protected virtual void UpdateUpperLeg(Humanoid.Tracking.LegSensor legSensor) { - if (footTarget.upperLeg.target.transform != null) { - if (legSensor.upperLeg.confidence.position > 0) - footTarget.upperLeg.target.transform.position = HumanoidTarget.ToVector3(legSensor.upperLeg.position); - //else - // footTarget.upperLeg.target.transform.position = footTarget.shoulder.target.transform.position + footTarget.shoulder.target.transform.rotation * footTarget.outward * footTarget.shoulder.bone.length; - - if (legSensor.upperLeg.confidence.rotation > 0) - footTarget.upperLeg.target.transform.rotation = HumanoidTarget.ToQuaternion(legSensor.upperLeg.rotation); - - footTarget.upperLeg.target.confidence = legSensor.upperLeg.confidence; - } - } - - protected virtual void UpdateLowerLeg(Humanoid.Tracking.LegSensor legSensor) { - if (footTarget.lowerLeg.target.transform == null) - return; - - if (legSensor.lowerLeg.confidence.position > 0) - footTarget.lowerLeg.target.transform.position = HumanoidTarget.ToVector3(legSensor.lowerLeg.position); - else - footTarget.lowerLeg.target.transform.position = footTarget.upperLeg.target.transform.position + footTarget.upperLeg.target.transform.rotation * Vector3.down * footTarget.upperLeg.bone.length; - - if (legSensor.lowerLeg.confidence.rotation > 0) - footTarget.lowerLeg.target.transform.rotation = HumanoidTarget.ToQuaternion(legSensor.lowerLeg.rotation); - - footTarget.lowerLeg.target.confidence = legSensor.lowerLeg.confidence; - } - - protected virtual void UpdateFoot(Humanoid.Tracking.LegSensor legSensor) { - if (footTarget.foot.target.transform != null) { - if (legSensor.foot.confidence.position > 0) - footTarget.foot.target.transform.position = HumanoidTarget.ToVector3(legSensor.foot.position); - else - footTarget.foot.target.transform.position = footTarget.lowerLeg.target.transform.position + footTarget.lowerLeg.target.transform.rotation * Vector3.down * footTarget.lowerLeg.bone.length; - - if (legSensor.foot.confidence.rotation > 0) - footTarget.foot.target.transform.rotation = HumanoidTarget.ToQuaternion(legSensor.foot.rotation); - - footTarget.foot.target.confidence = legSensor.foot.confidence; - } - } - } -} diff --git a/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs.meta deleted file mode 100644 index 9189a73..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/LegSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 92559922146628643a52fe925ecf3847 -timeCreated: 1550133056 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs b/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs deleted file mode 100644 index c1683fc..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - - [CreateAssetMenu(menuName = "Humanoid/Real World Configuration", fileName = "RealWorldConfiguration", order = 102)] - [System.Serializable] - public class RealWorldConfiguration : ScriptableObject { - - public List trackers = new List(); - - [System.Serializable] - public class TrackingSpace { - public Passer.Tracking.TrackerId trackerId; - public Vector3 position; - public Quaternion rotation; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs.meta deleted file mode 100644 index 45b7a1d..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/RealWorldConfiguration.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 585599361fa6c7b43b39241bc7281a7d -timeCreated: 1562059195 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs deleted file mode 100644 index 763c313..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs +++ /dev/null @@ -1,40 +0,0 @@ -using UnityEngine; - -namespace Passer { - - [System.Serializable] - public class Sensor { - public bool enabled; - public virtual Tracker.Status status { get; set; } - - public Target target; - public Tracker tracker; - - public virtual string name { get { return ""; } } - - public Transform sensorTransform; - - public virtual void Start(Transform targetTransform) { - target = targetTransform.GetComponent(); - } - - public virtual void Update() { - if (tracker == null || !tracker.enabled || !enabled) - return; - } - - public virtual void ShowSensor(bool shown) { - if (sensorTransform == null) - return; - - if (!Application.isPlaying) - sensorTransform.gameObject.SetActive(shown); - - Renderer[] renderers = sensorTransform.GetComponentsInChildren(); - for (int i = 0; i < renderers.Length; i++) { - if (!(renderers[i] is LineRenderer)) - renderers[i].enabled = shown; - } - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs.meta deleted file mode 100644 index 04d115e..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Sensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 38bc33f3c3c5d0c4083f4e9e9dfdfd99 -timeCreated: 1553012077 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs b/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs deleted file mode 100644 index f344e68..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs +++ /dev/null @@ -1,72 +0,0 @@ -using UnityEngine; - -namespace Passer.Tracking { - - public class SensorComponent : MonoBehaviour { - protected Transform trackerTransform; - - public Tracker.Status status; - - public float rotationConfidence; - public float positionConfidence; - - public bool autoUpdate = true; - - protected bool _show; - public virtual bool show { - set { - if (value == true && !_show) { - renderController = true; - - _show = true; - } - else if (value == false && _show) { - renderController = false; - - _show = false; - } - } - get { - return _show; - } - } - - protected bool renderController { - set { - Renderer[] renderers = this.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) - renderer.enabled = value; - } - } - - virtual protected void Awake() { - if (trackerTransform == null) - trackerTransform = transform.parent; - } - - virtual protected void Start() { - //if (autoUpdate) - // StartComponent(trackerTransform); - } - - public virtual void StartComponent(Transform trackerTransform) { - // When this function has been called, the sensor will no longer update from Unity Updates. - // Instead, UpdateComponent needs to be called to update the sensor data - autoUpdate = false; - this.trackerTransform = trackerTransform; - } - - private void Update() { - if (autoUpdate) - UpdateComponent(); - } - - public virtual void UpdateComponent() { - status = Tracker.Status.Unavailable; - positionConfidence = 0; - rotationConfidence = 0; - //gameObject.SetActive(showRealObjects); - } - } - -} diff --git a/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs.meta deleted file mode 100644 index 609165b..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/SensorComponent.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: af314513ddd3a3b4a9bd47eca7193eee -timeCreated: 1480108485 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs b/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs deleted file mode 100644 index 5b87771..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs +++ /dev/null @@ -1,102 +0,0 @@ -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace Passer.Humanoid { - - public class TorsoSensor : HumanoidSensor { - //protected HipsTarget hipsTarget; - protected HipsTarget hipsTarget { - get { return (HipsTarget)target; } - } - protected new Humanoid.Tracking.TorsoSensor sensor; - - #region Start - public virtual void Init(HipsTarget hipsTarget) { - target = hipsTarget; - } - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - target = targetTransform.GetComponent(); - } - -#if UNITY_EDITOR - public void InitController(SerializedProperty sensorProp, HipsTarget hipsTarget) { - if (sensorProp == null) - return; - - Init(hipsTarget); - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = sensorTransform; - - SerializedProperty targetProp = sensorProp.FindPropertyRelative("target"); - targetProp.objectReferenceValue = target; - - if (!tracker.enabled || !enabled) - return; - - CheckSensorTransform(); - sensorTransformProp.objectReferenceValue = sensorTransform; - - ShowSensor(hipsTarget.humanoid.showRealObjects && hipsTarget.showRealObjects); - - SerializedProperty sensor2TargetPositionProp = sensorProp.FindPropertyRelative("sensor2TargetPosition"); - sensor2TargetPositionProp.vector3Value = sensor2TargetPosition; - SerializedProperty sensor2TargetRotationProp = sensorProp.FindPropertyRelative("sensor2TargetRotation"); - sensor2TargetRotationProp.quaternionValue = sensor2TargetRotation; - } - - public void RemoveController(SerializedProperty sensorProp) { - if (sensorProp == null) - return; - - SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform"); - sensorTransformProp.objectReferenceValue = null; - } -#endif - - protected virtual void CreateSensorTransform(string resourceName, Vector3 sensor2TargetPosition, Quaternion sensor2TargetRotation) { - CreateSensorTransform(hipsTarget.hips.target.transform, resourceName, sensor2TargetPosition, sensor2TargetRotation); - } - #endregion - - #region Update - /* - protected virtual void UpdateHipsTarget(HumanoidTarget.TargetTransform target, Transform sensorTransform) { - if (target.transform == null || sensorTransform == null) - return; - - target.transform.rotation = GetTargetRotation(sensorTransform); - target.confidence.rotation = 0.5F; - - target.transform.position = GetHipsTargetPosition(sensorTransform); - target.confidence.position = 0.5F; - } - - protected virtual void UpdateHipsTarget(HumanoidTarget.TargetTransform target, SensorComponent sensorComponent) { - if (target.transform == null || sensorComponent.rotationConfidence + sensorComponent.positionConfidence <= 0) - return; - - target.transform.rotation = GetTargetRotation(sensorComponent.transform); - target.confidence.rotation = sensorComponent.rotationConfidence; - - target.transform.position = GetHipsTargetPosition(sensorComponent.transform); - target.confidence.position = sensorComponent.positionConfidence; - } - - protected Vector3 GetHipsTargetPosition(Transform sensorTransform) { - Vector3 targetPosition = sensorTransform.position + sensorTransform.rotation * sensor2TargetRotation * sensor2TargetPosition; - return targetPosition; - } - - protected Quaternion GetTargetRotation(Transform sensorTransform) { - Quaternion targetRotation = sensorTransform.rotation * sensor2TargetRotation; - return targetRotation; - } - */ - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs.meta deleted file mode 100644 index ae82fda..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TorsoSensor.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 0870296604fbb8440a5c5a7f9e9da44e -timeCreated: 1550132969 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs b/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs deleted file mode 100644 index 2a5a30b..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs +++ /dev/null @@ -1,43 +0,0 @@ -using UnityEngine; - -namespace Passer.Tracking { - - public class TrackedBone { - public Transform transform; - public float positionConfidence; - public float rotationConfidence; - - protected static Material boneWhite; - - public static TrackedBone Create(string name, Transform parent) { - GameObject boneGO = new GameObject(name); - boneGO.transform.SetParent(parent, false); - - AddBoneRenderer(boneGO); - - TrackedBone bone = new TrackedBone() { - transform = boneGO.transform - }; - return bone; - } - - protected static void AddBoneRenderer(GameObject boneGO) { - LineRenderer boneRenderer = boneGO.AddComponent(); - boneRenderer.startWidth = 0.01F; - boneRenderer.endWidth = 0.01F; - boneRenderer.useWorldSpace = false; - boneRenderer.SetPosition(0, Vector3.zero); - boneRenderer.SetPosition(1, Vector3.zero); - boneRenderer.generateLightingData = true; - - if (boneWhite == null) { - boneWhite = new Material(Shader.Find("Standard")) { - name = "BoneWhite", - color = new Color(1, 1, 1), - }; - } - boneRenderer.material = boneWhite; - } - - } -} diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs.meta deleted file mode 100644 index 53cb2ad..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TrackedBone.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 415288b02a3049b41ac8cf359bc057ff -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs b/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs deleted file mode 100644 index 54f4c59..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs +++ /dev/null @@ -1,131 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer { - using Tracking; - - /// - /// A tracker - /// - public class Tracker { - /// - /// The tracking status - /// - public enum Status { - Unavailable, //< The tracking device is not available - Present, //< The tracking device is available but not tracking - Tracking //< The tracking device is actively tracking - } - - /// - /// The name of this tracker - /// - public virtual string name { get { return ""; } } - - /// - /// Is this tracker enabled? - /// - public bool enabled; - - /// - /// The tracking Status of the tracker - /// - public Status status; - - /// - /// The tracking device - /// - public TrackerComponent trackerComponent; - - #region SubTrackers - - // For lighthouses, tracking camera's etc. - // currently disabled, but may be used later again. - // Alternative: use them as sensors - - /// - /// Optional list of SubTrackers - /// - //public List subTrackers = new List(); - - //public virtual void UpdateSubTracker(int i) { - // if (subTrackers[i] != null) - // subTrackers[i].UpdateTracker(humanoid.showRealObjects); - //} - - //protected virtual Vector3 GetSubTrackerPosition(int i) { - // return Vector3.zero; - //} - - //protected virtual Quaternion GetSubTrackerRotation(int i) { - // return Quaternion.identity; - //} - - - #endregion SubTrackers - - #region Init - - /// - /// Start the tracker - /// - public virtual void StartTracker() { } - - #endregion Init - - #region Stop - - /// - /// Stop the tracker - /// - public virtual void StopTracker() { } - - #endregion Stop - - #region Update - - /// - /// Update the tracker state - /// - public virtual void UpdateTracker() { } - - #endregion Update - - /// - /// Show or hide the Tracker renderers - /// - /// Renderers are enabled when shown == true - public virtual void ShowTracker(bool shown) { - if (trackerComponent == null) - return; - - Renderer[] renderers = trackerComponent.GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - // LineRenderers are used for skeletons - if (!(renderer is LineRenderer)) - renderer.enabled = shown; - } - } - - - #region Calibration - - /// - /// Calibrate the tracker - /// - public virtual void Calibrate() { } - - /// - /// Adjust the position of the tracker by the given delat - /// - /// The positional delta to apply - /// The rotational delta to apply - public virtual void AdjustTracking(Vector3 positionalDelta, Quaternion rotationalDelta) { - if (trackerComponent != null) { - trackerComponent.transform.position += positionalDelta; - trackerComponent.transform.rotation *= rotationalDelta; - } - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs.meta deleted file mode 100644 index 54c7d55..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/Tracker.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: cb0c9a681b0bd4d41ad5fcdf352a1e9e -timeCreated: 1553012223 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs b/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs deleted file mode 100644 index d5eaa0d..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System.Diagnostics; -using UnityEngine; - -namespace Passer.Tracking { - - public enum TrackerId { - Oculus, - SteamVR, - WindowsMR, - LeapMotion, - Kinect1, - Kinect2, - OrbbecAstra, - Realsense, - RazerHydra, - Optitrack, - Tobii - }; - - /// - /// Generic Tracking device - /// - public class TrackerComponent : MonoBehaviour { - - public Tracker.Status status; - - protected Transform realWorld; - - //[SerializeField] - //protected bool _show = true; - //public virtual bool show { - // set { - // if (value == true && !_show) { - // renderTracker = true; - - // _show = true; - // } - // else if (value == false && _show) { - // renderTracker = false; - - // _show = false; - // } - // } - // get { - // return _show; - // } - //} - - //protected bool renderTracker { - // set { - // UnityEngine.Debug.Log("tracker show " + value); - // Renderer[] renderers = this.GetComponentsInChildren(); - // foreach (Renderer renderer in renderers) - // renderer.enabled = value; - // } - //} - - - protected virtual void Start() { } - - protected virtual void Update() { } - - public virtual void ShowSkeleton(bool shown) { } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs.meta deleted file mode 100644 index 23b7a1a..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/TrackerComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3cb9b333d97022a4a92c02c0333da513 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR.meta deleted file mode 100644 index 1800b78..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 76f9127ce67e3c0459573a6aa567492a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs deleted file mode 100644 index 51e9964..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs +++ /dev/null @@ -1,277 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - public class UnityXR : TrackerComponent { - - #region Manage - - /// - /// Find an UnityXR tracker - /// - /// The parent transform of the tracker - /// The tracker - public static UnityXR Find(Transform parentTransform) { - UnityXR unityXR = parentTransform.GetComponentInChildren(); - if (unityXR != null) - return unityXR; - - return null; - } - - /// Create a new UnityXR Tracker - public static UnityXR Get(Transform parentTransform, Vector3 localPosition, Quaternion localRotation) { - UnityXR unityXR = Find(parentTransform); - if (unityXR == null) { - GameObject trackerObj = new GameObject(nameof(UnityXR)); - Transform trackerTransform = trackerObj.transform; - - trackerTransform.parent = parentTransform; - trackerTransform.localPosition = localPosition; - trackerTransform.localRotation = localRotation; - - unityXR = trackerObj.AddComponent(); - unityXR.realWorld = parentTransform; - } - - return unityXR; - } - - #region Hmd - - protected UnityXRHmd _hmd; - public UnityXRHmd hmd { - get { - if (_hmd != null) - return _hmd; - - _hmd = this.GetComponentInChildren(); - if (_hmd != null) - return _hmd; - - _hmd = FindObjectOfType(); - return _hmd; - } - } - - public UnityXRHmd GetHmd(Vector3 position, Quaternion rotation) { - if (hmd == null) { - GameObject sensorObj = new GameObject("Hmd"); - Transform sensorTransform = sensorObj.transform; - - sensorTransform.parent = this.transform; - sensorTransform.position = position; - sensorTransform.rotation = rotation; - - _hmd = sensorTransform.gameObject.AddComponent(); - _hmd.tracker = this; - - _hmd.unityCamera = _hmd.GetComponent(); - if (_hmd.unityCamera == null) { - // There are 4 places where a UnityXR camera is created... - // 1 in UnityXR and 3 in UnityXRCamera - _hmd.unityCamera = _hmd.gameObject.AddComponent(); - _hmd.unityCamera.nearClipPlane = 0.1F; - _hmd.unityCamera.tag = "MainCamera"; - _hmd.unityCamera.clearFlags = CameraClearFlags.SolidColor; - - _hmd.gameObject.AddComponent(); - } - AddScreenFader(_hmd.unityCamera); - } - - return _hmd; - } - - protected static void AddScreenFader(Camera camera) { - if (camera == null) - return; - - Transform planeTransform = camera.transform.Find("Fader"); - if (planeTransform != null) - return; - - GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane); - plane.transform.name = "Fader"; - plane.transform.parent = camera.transform; - plane.transform.localEulerAngles = new Vector3(-90, 0, 0); - plane.transform.localPosition = new Vector3(0, 0, camera.nearClipPlane + 0.01F); - - Renderer renderer = plane.GetComponent(); - if (renderer != null) { - Shader fadeShader = Shader.Find("Standard"); - Material fadeMaterial = new Material(fadeShader); - fadeMaterial.name = "FadeMaterial"; - fadeMaterial.SetFloat("_Mode", 2); - fadeMaterial.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); - fadeMaterial.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); - fadeMaterial.SetInt("_ZWrite", 0); - fadeMaterial.DisableKeyword("_ALPHATEST_ON"); - fadeMaterial.EnableKeyword("_ALPHABLEND_ON"); - fadeMaterial.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - fadeMaterial.renderQueue = 3000; - Color color = Color.black; - color.a = 0.0F; - fadeMaterial.SetColor("_Color", new Color(0, 0, 0, 0)); - renderer.material = fadeMaterial; - renderer.enabled = false; - } - - Collider c = plane.GetComponent(); - Object.DestroyImmediate(c); - } - - private static void RemoveScreenFader(Transform cameraTransform) { - if (cameraTransform == null) - return; - - Transform plane = cameraTransform.Find("Fader"); - if (plane == null) - return; - - Object.DestroyImmediate(plane.gameObject); - } - - #endregion Hmd - - #region Controller - -#if pUNITYXR - protected UnityXRController _leftController; - protected UnityXRController _rightController; - - public UnityXRController leftController { - get { - if (_leftController != null) - return _leftController; - - _leftController = FindController(true); - return _leftController; - } - } - public UnityXRController rightController { - get { - if (_rightController != null) - return _rightController; - - _rightController = FindController(false); - return _rightController; - } - } - - public UnityXRController FindController(bool isLeft) { - UnityXRController[] unityControllers = this.GetComponentsInChildren(); - foreach (UnityXRController unityController in unityControllers) { - if (unityController.isLeft == isLeft) { - return unityController; - } - } - - unityControllers = FindObjectsOfType(); - foreach (UnityXRController hydraController in unityControllers) { - if (hydraController.isLeft == isLeft) { - return hydraController; - } - } - return null; - } - - public UnityXRController GetController(bool isLeft, Vector3 position, Quaternion rotation) { - UnityXRController controller = FindController(isLeft); - if (controller == null) { - GameObject sensorObj = new GameObject(isLeft ? "Left Controller" : "Right Controler"); - Transform sensorTransform = sensorObj.transform; - - sensorTransform.parent = this.transform; - sensorTransform.position = position; - sensorTransform.rotation = rotation; - - controller = sensorTransform.gameObject.AddComponent(); - //controller.tracker = this; - controller.isLeft = isLeft; - } - - if (isLeft) - _leftController = controller; - else - _rightController = controller; - - return controller; - } -#endif - - #endregion Controller - - #region HandSkeleton - - protected UnityXRHandSkeleton _leftSkeleton; - protected UnityXRHandSkeleton _rightSkeleton; - - public UnityXRHandSkeleton leftSkeleton { - get { - if (_leftSkeleton == null) - _leftSkeleton = FindSkeleton(true); - return _leftSkeleton; - } - } - public UnityXRHandSkeleton rightSkeleton { - get { - if (_rightSkeleton == null) - _rightSkeleton = FindSkeleton(false); - return _rightSkeleton; - } - } - - protected UnityXRHandSkeleton FindSkeleton(bool isLeft) { - UnityXRHandSkeleton[] skeletons = GetComponentsInChildren(); - foreach (UnityXRHandSkeleton skeleton in skeletons) { - if (skeleton.isLeft == isLeft) { - return skeleton; - } - } - return null; - } - - - #endregion - - #endregion Manage - - #region Init - - protected override void Start() { - base.Start(); - -#if pUNITYXR - if (hmd != null) - hmd.tracker = this; - - //if (leftController != null) - // leftController.tracker = this; - - //if (rightController != null) - // rightController.tracker = this; -#endif -#if hOCHAND - OculusDevice.Start(); -#endif - - } - - #endregion Init - - #region Update - - protected override void Update() { - base.Update(); - - if (hmd != null) - status = hmd.status; - } - - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs.meta deleted file mode 100644 index ad10e3d..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXR.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 45702e042f318964087b98846dc13f57 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs deleted file mode 100644 index 8c18e5f..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System.Collections.Generic; - -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - public class UnityXRCamera : SensorComponent { -#if pUNITYXR - public TrackerComponent tracker; - protected Camera unityCamera; - - protected InputDevice device; - - #region Start - - public static UnityXRCamera FindXRCamera(UnityXR unityXR) { - UnityXRCamera xrCamera = unityXR.GetComponentInChildren(); - return xrCamera; - } - - - /// Find or Create a new Unity XR Camera - //public static UnityXRCamera Get(UnityXR unityXR, Vector3 position, Quaternion rotation) { - // if (unityXR == null) - // return null; - - // //Transform cameraTransform = tracker.transform.Find("Camera"); - // //if (cameraTransform == null) { - // UnityXRCamera unityCamera = FindXRCamera(unityXR); - // if (unityCamera == null) { - // GameObject trackerObject = new GameObject("Camera"); - // Transform cameraTransform = trackerObject.transform; - - // cameraTransform.parent = unityXR.transform; - // cameraTransform.position = position; - // cameraTransform.rotation = rotation; - - // unityCamera = cameraTransform.gameObject.AddComponent(); - // unityCamera.tracker = unityXR; - - - // unityCamera.unityCamera = cameraTransform.GetComponent(); - // if (unityCamera.unityCamera == null) { - // // There are 4 places where a UnityXR camera is created... - // // 1 in UnityXR and 3 in UnityXRCamera - // unityCamera.unityCamera = cameraTransform.gameObject.AddComponent(); - // unityCamera.unityCamera.nearClipPlane = 0.1F; - // unityCamera.unityCamera.clearFlags = CameraClearFlags.SolidColor; - - // cameraTransform.gameObject.AddComponent(); - // } - // } - - // return unityCamera; - //} - - //public static UnityXRCamera Get(UnityXR unityXR, InputDevice device) { - // if (unityXR == null) - // return null; - - // UnityXRCamera unityCamera = FindXRCamera(unityXR); - // if (unityCamera == null) { - // GameObject trackerObject = new GameObject("Camera"); - // Transform cameraTransform = trackerObject.transform; - - // cameraTransform.parent = unityXR.transform; - // cameraTransform.localPosition = Vector3.zero; - // cameraTransform.localRotation = Quaternion.identity; - - // unityCamera = cameraTransform.gameObject.AddComponent(); - // unityCamera.tracker = unityXR; - - - // unityCamera.unityCamera = cameraTransform.GetComponent(); - // if (unityCamera.unityCamera == null) { - // // There are 4 places where a UnityXR camera is created... - // // 1 in UnityXR and 3 in UnityXRCamera - // unityCamera.unityCamera = cameraTransform.gameObject.AddComponent(); - // unityCamera.unityCamera.nearClipPlane = 0.1F; - // unityCamera.unityCamera.clearFlags = CameraClearFlags.SolidColor; - - // cameraTransform.gameObject.AddComponent(); - // } - // } - // unityCamera.device = device; - - // return unityCamera; - //} - - //public static Camera AddCamera(UnityXRCamera xrHmd) { - // xrHmd.unityCamera = xrHmd.GetComponent(); - // if (xrHmd.unityCamera == null) { - // // There are 4 places where a UnityXR camera is created... - // // 1 in UnityXR and 3 in UnityXRCamera - // xrHmd.unityCamera = xrHmd.gameObject.AddComponent(); - // xrHmd.unityCamera.nearClipPlane = 0.1F; - // xrHmd.unityCamera.clearFlags = CameraClearFlags.SolidColor; - - // xrHmd.gameObject.AddComponent(); - // } - - // //if (collisionFader) - // // AddScreenFader(xrHmd); - // //else - // // RemoveScreenFader(xrHmd.transform); - - // return xrHmd.unityCamera; - //} - - public static void RemoveCamera(UnityXRCamera xrHmd) { - Camera camera = xrHmd.GetComponentInChildren(); - if (camera != null) { - if (Application.isPlaying) - Destroy(camera); - else - DestroyImmediate(camera); - } - - AudioListener listener = xrHmd.GetComponentInChildren(); - if (listener != null) { - if (Application.isPlaying) - Destroy(listener); - else - DestroyImmediate(listener); - } - } - - #endregion - - #region Update - - private List nodeStates = new List(); - - public override void UpdateComponent() { - base.UpdateComponent(); - - status = Tracker.Status.Present; - positionConfidence = 0; - rotationConfidence = 0; - - // This is still legacy! - InputTracking.GetNodeStates(nodeStates); - foreach (XRNodeState nodeState in nodeStates) { - if (nodeState.nodeType == XRNode.CenterEye) { - Vector3 position; - if (nodeState.TryGetPosition(out position)) { - transform.position = tracker.transform.TransformPoint(position); - positionConfidence = 1; - status = Tracker.Status.Tracking; - } - Quaternion rotation; - if (nodeState.TryGetRotation(out rotation)) { - transform.rotation = tracker.transform.rotation * rotation; - rotationConfidence = 1; - status = Tracker.Status.Tracking; - } - - } - } - } - - public void Show(bool showModel) { - } - - #endregion -#endif - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs.meta deleted file mode 100644 index 7ca0bdc..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRCamera.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ae1d863e170753b40933b6d8f2c4e44b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs deleted file mode 100644 index 3fba407..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs +++ /dev/null @@ -1,256 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - public class UnityXRController : ControllerComponent { -#if pUNITYXR - //public TrackerComponent tracker; - //public Transform sensorTransform { - // get { return this.transform; } - //} - - protected InputDevice device; - - protected XRNode xrNode; - - public GameObject model; - - #region Manage - - /// - /// Find a Unity XR Controller - /// - /// - /// - /// - public static UnityXRController Find(UnityXR unityXR, bool isLeft) { - UnityXRController[] controllers = unityXR.GetComponentsInChildren(); - foreach (UnityXRController controller in controllers) { - if (controller.isLeft == isLeft) - return controller; - } - return null; - } - - /// - /// Find or Create a Unity XR Controller - /// - /// - /// - /// - public static UnityXRController Get(UnityXR unityXR, bool isLeft, Vector3 position, Quaternion rotation) { - if (unityXR == null || unityXR.transform == null) - return null; - - //Transform controllerTransform = tracker.transform.Find(name); - UnityXRController unityController = Find(unityXR, isLeft); - if (unityController == null) { - GameObject trackerObject = new GameObject(isLeft ? "Left Controller" : "Right Controller"); - Transform controllerTransform = trackerObject.transform; - - controllerTransform.parent = unityXR.transform; - controllerTransform.position = position; - controllerTransform.rotation = rotation; - - unityController = controllerTransform.gameObject.AddComponent(); - unityController.isLeft = isLeft; - } - - return unityController; - } - - protected Dictionary modelNames = new Dictionary() { - { "Oculus Touch Controller - Left", "Left Touch Controller" }, - { "Oculus Touch Controller - Right", "Right Touch Controller" }, - }; - - protected virtual void ShowModel(string deviceName) { - if (model != null) - Destroy(model); - - if (deviceName == null) - return; - - string modelName = deviceName; - if (modelNames.ContainsKey(modelName)) - modelName = modelNames[deviceName]; - - - CreateModel(modelName); - } - - protected void CreateModel() { -#if hLEGACY - switch (UnityTracker.DetermineLoadedDevice()) { - case UnityTracker.XRDeviceType.Oculus: - CreateModel(isLeft ? "Left Touch Controller" : "Right Touch Controller"); - break; - case UnityTracker.XRDeviceType.OpenVR: - CreateModel("Vive Controller"); - break; - case UnityTracker.XRDeviceType.None: - CreateModel("Generic Controller"); - break; - } -#endif - } - - protected void CreateModel(string resourceName) { - GameObject sensorObject; - if (resourceName == null) { - sensorObject = new GameObject("Model"); - } - else { - Object controllerPrefab = Resources.Load(resourceName); - if (controllerPrefab == null) - sensorObject = new GameObject("Model"); - else - sensorObject = (GameObject)Instantiate(controllerPrefab); - - sensorObject.name = resourceName; - } - - model = sensorObject; - model.transform.parent = this.transform; - model.transform.localPosition = Vector3.zero; - model.transform.localRotation = Quaternion.identity; - } - - #endregion - - #region Init - - protected override void Start() { - base.Start(); - - //if (tracker == null) - // tracker = GetComponentInParent(); - - xrNode = isLeft ? XRNode.LeftHand : XRNode.RightHand; - device = InputDevices.GetDeviceAtXRNode(xrNode); - ShowModel(device.name); - - InputDevices.deviceConnected += OnDeviceConnected; - InputDevices.deviceDisconnected += OnDeviceDisconnected; - } - - /// - /// Controller has connected - /// - /// The InputDevice of the controller - protected virtual void OnDeviceConnected(InputDevice device) { - bool isLeft = (device.characteristics & InputDeviceCharacteristics.Left) != 0; - bool isController = (device.characteristics & InputDeviceCharacteristics.Controller) != 0; - if (isController && isLeft == this.isLeft) { - if (this.device.name != device.name) - ShowModel(device.name); - this.device = device; - Show(true); - } - } - - /// - /// Controller has disconnected - /// - /// This also happens when the device is no longer tracked. - /// The InputDevice of the controller - protected virtual void OnDeviceDisconnected(InputDevice device) { - bool isLeft = (device.characteristics & InputDeviceCharacteristics.Left) != 0; - bool isController = (device.characteristics & InputDeviceCharacteristics.Controller) != 0; - if (isController && isLeft == this.isLeft) { - this.device = device; - Show(false); - } - } - - #endregion - - #region Update - - public override void UpdateComponent() { - base.UpdateComponent(); - - status = Tracker.Status.Unavailable; - positionConfidence = 0; - rotationConfidence = 0; - - if (device == null) - return; - - status = Tracker.Status.Present; - - Vector3 position; - if (device.TryGetFeatureValue(CommonUsages.devicePosition, out position)) { - transform.position = trackerTransform.TransformPoint(position); - positionConfidence = 1; - status = Tracker.Status.Tracking; - } - - Quaternion rotation; - if (device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation)) { - transform.rotation = trackerTransform.rotation * rotation; - rotationConfidence = 1; - status = Tracker.Status.Tracking; - } - - UpdateInput(); - - show = (status == Tracker.Status.Tracking); - } - - protected virtual void UpdateInput() { - device.TryGetFeatureValue(CommonUsages.trigger, out trigger1); - device.TryGetFeatureValue(CommonUsages.grip, out trigger2); - - bool buttonPress; - bool buttonTouch; - - device.TryGetFeatureValue(CommonUsages.primaryButton, out buttonPress); - device.TryGetFeatureValue(CommonUsages.primaryTouch, out buttonTouch); - button1 = buttonPress ? 1 : buttonTouch ? 0 : -1; - - device.TryGetFeatureValue(CommonUsages.secondaryButton, out buttonPress); - device.TryGetFeatureValue(CommonUsages.secondaryTouch, out buttonTouch); - button2 = buttonPress ? 1 : buttonTouch ? 0 : -1; - - device.TryGetFeatureValue(CommonUsages.menuButton, out buttonPress); - option = buttonPress ? 1 : 0; - - Vector2 axis; - float axisButton; - - device.TryGetFeatureValue(CommonUsages.primary2DAxis, out axis); - device.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out buttonPress); - device.TryGetFeatureValue(CommonUsages.primary2DAxisTouch, out buttonTouch); - axisButton = buttonPress ? 1 : buttonTouch ? 0 : -1; - primaryAxis = new Vector3(axis.x, axis.y, axisButton); - - device.TryGetFeatureValue(CommonUsages.secondary2DAxis, out axis); - device.TryGetFeatureValue(CommonUsages.secondary2DAxisClick, out buttonPress); - device.TryGetFeatureValue(CommonUsages.secondary2DAxisTouch, out buttonTouch); - axisButton = buttonPress ? 1 : buttonTouch ? 0 : -1; - secondaryAxis = new Vector3(axis.x, axis.y, axisButton); - - device.TryGetFeatureValue(CommonUsages.batteryLevel, out battery); - } - - public void Show(bool showModel) { - if (model == null) - return; - - if (!Application.isPlaying) - model.SetActive(showModel); - - Renderer[] renderers = model.GetComponentsInChildren(); - for (int i = 0; i < renderers.Length; i++) - renderers[i].enabled = showModel; - } - - #endregion Init -#endif - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs.meta deleted file mode 100644 index 98bc4e6..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d8f7bcc95d95da646a6030b02b957ba0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs deleted file mode 100644 index ee73c8b..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs +++ /dev/null @@ -1,40 +0,0 @@ -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - public static class UnityXRDevice { - - public static void Start() { - xrDevice = DetermineLoadedDevice(); - } - - public enum XRDeviceType { - None, - Oculus, - OpenVR, - WindowsMR, - Cardboard, - }; - public static XRDeviceType xrDevice = XRDeviceType.None; - - private static XRDeviceType DetermineLoadedDevice() { - if (XRSettings.enabled) { - switch (XRSettings.loadedDeviceName) { - case "OpenVR": - case "OpenVR Display": - return XRDeviceType.OpenVR; - case "Oculus": - case "Oculus Display": - case "oculus display": - return XRDeviceType.Oculus; - case "WindowsMR": - return XRDeviceType.WindowsMR; - case "cardboard": - return XRDeviceType.Cardboard; - } - } - return XRDeviceType.None; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs.meta deleted file mode 100644 index 886da3e..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRDevice.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 417511998d4487b4eae102c6f677d595 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs deleted file mode 100644 index 7671fd9..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs +++ /dev/null @@ -1,229 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Passer.Tracking; - - [System.Serializable] - public class UnityXRHand : ArmController { -#if pUNITYXR - public override string name => "Unity XR"; - - protected UnityXRTracker unityXR => humanoid.unityXR; - - #region Manage - - public override void CheckSensor(HandTarget handTarget) { -#if pUNITYXR - if (this.handTarget == null) - this.target = handTarget; - if (this.handTarget == null) - return; - - if (unityXR.trackerComponent == null && enabled) - unityXR.CheckTracker(handTarget.humanoid); - - if (enabled && unityXR.trackerComponent != null && unityXR.trackerComponent.enabled) { - if (controller == null) { - Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F); - Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90); - Quaternion rotation = handTarget.transform.rotation * localRotation; -#if hSTEAMVR - if (UnityXRDevice.xrDevice == UnityXRDevice.XRDeviceType.OpenVR) { - SteamVR steamVR = unityXR.trackerComponent as SteamVR; - controller = steamVR.GetController(handTarget.isLeft, position, rotation); - } - else -#endif - { - UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR; - controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation); - } - } - - if (controller != null) - sensorTransform = controller.transform; - - if (!Application.isPlaying) - SetSensor2Target(); - } - else { -#if UNITY_EDITOR - if (!Application.isPlaying) { - if (controller != null) - Object.DestroyImmediate(controller.gameObject, true); - } -#endif - controller = null; - sensorTransform = null; - } -#endif - } - - #endregion Manage - - #region Init - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - - tracker = handTarget.humanoid.unityXR; - if (tracker == null || tracker.enabled == false) - return; - - Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F); - Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90); - Quaternion rotation = handTarget.transform.rotation * localRotation; - - UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR; - if (unityXRcomponent != null) - controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation); - - if (controller != null) { - controller.show = handTarget.humanoid.showRealObjects && handTarget.showRealObjects; - sensorTransform = controller.transform; - } - - SetSensor2Target(); - -#if UNITY_ANDROID && hOCHAND - if (unityXR.oculusHandTracking) - handSkeleton = OculusHandSkeleton.Get(unityXR.trackerComponent.transform, handTarget.isLeft); -#endif -#if hVIVEHAND - if (unityXR.viveHandTracking) - handSkeleton = ViveHandSkeleton.Get(unityXR.trackerComponent.transform, handTarget.isLeft); -#endif - } - - #endregion Init - - #region Update - - public override void Update() { - status = Tracker.Status.Unavailable; - if (tracker == null || tracker.enabled == false || !enabled) - return; - - if (controller != null) { - controller.UpdateComponent(); - UpdateInput(); - } - if (handSkeleton != null) { - handSkeleton.show = humanoid.showSkeletons; - handSkeleton.UpdateComponent(); - } - - if (controller != null && controller.status == Tracker.Status.Tracking) - UpdateTarget(handTarget.hand.target, controller); - else if (handSkeleton != null && handSkeleton.status == Tracker.Status.Tracking) - UpdateHandFromSkeleton(); - } - - #region Controller - - private void UpdateInput() { - if (controllerInput == null) - return; - - if (handTarget.isLeft) - UpdateInputSide(controllerInput.left); - else - UpdateInputSide(controllerInput.right); - } - - private void UpdateInputSide(ControllerSide controllerInputSide) { - if (controllerInputSide == null || controller == null) - return; - - controllerInputSide.stickHorizontal += controller.primaryAxis.x; - controllerInputSide.stickVertical += controller.primaryAxis.y; - controllerInputSide.stickButton |= (controller.primaryAxis.z > 0.5F); - controllerInputSide.stickTouch |= (controller.primaryAxis.z > -0.5F); - - controllerInputSide.touchpadHorizontal += controller.secondaryAxis.x; - controllerInputSide.touchpadVertical += controller.secondaryAxis.y; - controllerInputSide.touchpadPress |= (controller.secondaryAxis.z > 0.5F); - controllerInputSide.touchpadTouch |= (controller.secondaryAxis.z > -0.5F); - - controllerInputSide.buttons[0] |= (controller.button1 > 0.5F); - controllerInputSide.buttons[1] |= (controller.button2 > 0.5F); - - controllerInputSide.trigger1 += controller.trigger1; - controllerInputSide.trigger2 += controller.trigger2; - controllerInputSide.option |= controller.option > 0; - } - - // arm model for 3DOF tracking: position is calculated from rotation - static public Vector3 CalculateHandPosition(HandTarget handTarget, Vector3 sensor2TargetPosition) { - Quaternion hipsYRotation = Quaternion.AngleAxis(handTarget.humanoid.hipsTarget.transform.eulerAngles.y, handTarget.humanoid.up); - - Vector3 pivotPoint = handTarget.humanoid.hipsTarget.transform.position + hipsYRotation * (handTarget.isLeft ? new Vector3(-0.25F, 0.15F, -0.05F) : new Vector3(0.25F, 0.15F, -0.05F)); - Quaternion forearmRotation = handTarget.hand.target.transform.rotation * (handTarget.isLeft ? Quaternion.Euler(0, -90, 0) : Quaternion.Euler(0, 90, 0)); - - Vector3 localForearmDirection = handTarget.humanoid.hipsTarget.transform.InverseTransformDirection(forearmRotation * Vector3.forward); - - if (localForearmDirection.x < 0 || localForearmDirection.y > 0) { - pivotPoint += hipsYRotation * Vector3.forward * Mathf.Lerp(0, 0.15F, -localForearmDirection.x * 3 + localForearmDirection.y); - } - if (localForearmDirection.y > 0) { - pivotPoint += hipsYRotation * Vector3.up * Mathf.Lerp(0, 0.2F, localForearmDirection.y); - } - - if (localForearmDirection.z < 0.2F) { - localForearmDirection = new Vector3(localForearmDirection.x, localForearmDirection.y, 0.2F); - forearmRotation = Quaternion.LookRotation(handTarget.humanoid.hipsTarget.transform.TransformDirection(localForearmDirection), forearmRotation * Vector3.up); - } - - handTarget.hand.target.transform.position = pivotPoint + forearmRotation * Vector3.forward * handTarget.forearm.bone.length; - - Vector3 handPosition = handTarget.hand.target.transform.TransformPoint(-sensor2TargetPosition); - - return handPosition; - } - - #endregion Controller - - #region Skeleton - - protected override void UpdateHandFromSkeleton() { - Transform wristBone = handSkeleton.GetWristBone(); - handTarget.hand.target.transform.position = wristBone.transform.position; - if (handTarget.isLeft) - handTarget.hand.target.transform.rotation = wristBone.transform.rotation * Quaternion.Euler(180, 180, 0); - else - handTarget.hand.target.transform.rotation = wristBone.transform.rotation * Quaternion.Euler(0, 180, 0); - - UpdateThumbFromSkeleton(); - UpdateIndexFingerFromSkeleton(); - UpdateMiddleFingerFromSkeleton(); - UpdateRingFingerFromSkeleton(); - UpdateLittleFingerFromSkeleton(); - } - - protected override void UpdateFingerBoneFromSkeleton(Transform targetTransform, Tracking.Finger finger, Tracking.FingerBone fingerBone) { - if (handSkeleton == null) - return; - - Transform thisBoneTransform = handSkeleton.GetBone(finger, fingerBone); - if (thisBoneTransform == null) { - Debug.Log(finger + " " + fingerBone + " " + thisBoneTransform); - return; - } - Transform nextBoneTransform = handSkeleton.GetBone(finger, fingerBone + 1); - if (thisBoneTransform == null || nextBoneTransform == null) - return; - - Vector3 direction = nextBoneTransform.position - thisBoneTransform.position; - if (handTarget.isLeft) - targetTransform.rotation = Quaternion.LookRotation(direction, handTarget.hand.target.transform.forward) * Quaternion.Euler(-90, 0, 90); - else - targetTransform.rotation = Quaternion.LookRotation(direction, handTarget.hand.target.transform.forward) * Quaternion.Euler(-90, 0, -90); - } - - #endregion - - #endregion -#endif - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs.meta deleted file mode 100644 index 298e113..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 324272fd0a0de384b97a066e9e4e0880 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs deleted file mode 100644 index 7067513..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs +++ /dev/null @@ -1,187 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - /// - /// HandSkeleton component for hand tracking with UnityXR - /// - /// *Important note:* although the Unity XR SDK implements this interface - /// no known device is supporting it at the moment. The added value of this - /// component is therefore limited. - /// Also: because of this limitation this component is untested! - /// See: https://forum.unity.com/threads/oculus-quest-hand-tracking-data.853579/ - public class UnityXRHandSkeleton : HandSkeleton { -#if pUNITYXR - public TrackerComponent tracker; - - protected InputDevice device; - - protected XRNode xrNode; - - #region Init - - protected override void Start() { - base.Start(); - - if (tracker == null) - tracker = GetComponentInParent(); - - xrNode = isLeft ? XRNode.LeftHand : XRNode.RightHand; - device = InputDevices.GetDeviceAtXRNode(xrNode); - - InputDevices.deviceConnected += OnDeviceConnected; - InputDevices.deviceDisconnected += OnDeviceDisconnected; - } - - /// - /// Hand is detected? - /// - /// The InputDevice of the hand - protected virtual void OnDeviceConnected(InputDevice device) { - bool isLeft = (device.characteristics & InputDeviceCharacteristics.Left) != 0; - bool isTrackedHand = (device.characteristics & InputDeviceCharacteristics.HandTracking) != 0; - if (isTrackedHand && isLeft == this.isLeft) { - this.device = device; - //Show(true); - Debug.Log("Left Hand Connected"); - } - } - - /// - /// Hand is lost - /// - /// This also happens when the hand is no longer tracked. - /// The InputDevice of the hand - protected virtual void OnDeviceDisconnected(InputDevice device) { - bool isLeft = (device.characteristics & InputDeviceCharacteristics.Left) != 0; - bool isTrackedHand = (device.characteristics & InputDeviceCharacteristics.HandTracking) != 0; - if (isTrackedHand && isLeft == this.isLeft) { - this.device = device; - //Show(false); - Debug.Log("Right Hand Connected"); - } - } - - protected override void InitializeSkeleton() { - if (device.TryGetFeatureValue(CommonUsages.handData, out Hand handData)) { - bones = new List(); - - TrackedBone handBone = TrackedBone.Create("Hand", null); - bones.Add(handBone); - - List thumbBones = new List(); - if (handData.TryGetFingerBones(HandFinger.Thumb, thumbBones)) { - Transform parentBone = handBone.transform; - for (int i = 0; i < thumbBones.Count; i++) { - TrackedBone bone = TrackedBone.Create("Thumb" + i, parentBone); - bones.Add(bone); - parentBone = bone.transform; - } - } - List indexBones = new List(); - if (handData.TryGetFingerBones(HandFinger.Index, indexBones)) { - Transform parentBone = handBone.transform; - for (int i = 0; i < indexBones.Count; i++) { - TrackedBone bone = TrackedBone.Create("Index" + i, parentBone); - bones.Add(bone); - parentBone = bone.transform; - } - } - List middleBones = new List(); - if (handData.TryGetFingerBones(HandFinger.Middle, middleBones)) { - Transform parentBone = handBone.transform; - for (int i = 0; i < middleBones.Count; i++) { - TrackedBone bone = TrackedBone.Create("Middle" + i, parentBone); - bones.Add(bone); - parentBone = bone.transform; - } - } - List ringBones = new List(); - if (handData.TryGetFingerBones(HandFinger.Ring, ringBones)) { - Transform parentBone = handBone.transform; - for (int i = 0; i < ringBones.Count; i++) { - TrackedBone bone = TrackedBone.Create("Ring" + i, parentBone); - bones.Add(bone); - parentBone = bone.transform; - } - } - List pinkyBones = new List(); - if (handData.TryGetFingerBones(HandFinger.Pinky, pinkyBones)) { - Transform parentBone = handBone.transform; - for (int i = 0; i < pinkyBones.Count; i++) { - TrackedBone bone = TrackedBone.Create("Little" + i, parentBone); - bones.Add(bone); - parentBone = bone.transform; - } - } - } - } - - #endregion Init - - #region Update - - public override void UpdateComponent() { - base.UpdateComponent(); - - if (bones == null) - InitializeSkeleton(); - if (bones == null) { - status = Tracker.Status.Unavailable; - DisableRenderer(); - return; - } - - status = Tracker.Status.Unavailable; - positionConfidence = 0; - rotationConfidence = 0; - - if (device == null) - return; - - status = Tracker.Status.Present; - - if (device.TryGetFeatureValue(CommonUsages.handData, out Hand handData)) { - Debug.Log("received hand data"); - if (handData.TryGetRootBone(out Bone handBone)) { - if (handBone.TryGetPosition(out Vector3 position)) { - transform.position = tracker.transform.TransformPoint(position); - positionConfidence = 1; - status = Tracker.Status.Tracking; - } - if (handBone.TryGetRotation(out Quaternion rotation)) { - transform.rotation = tracker.transform.rotation * rotation; - rotationConfidence = 1; - status = Tracker.Status.Tracking; - } - } - int boneIx = 0; - UpdateFinger(ref boneIx, handData, HandFinger.Thumb); - UpdateFinger(ref boneIx, handData, HandFinger.Index); - UpdateFinger(ref boneIx, handData, HandFinger.Middle); - UpdateFinger(ref boneIx, handData, HandFinger.Ring); - UpdateFinger(ref boneIx, handData, HandFinger.Pinky); - } - } - - protected void UpdateFinger(ref int boneIx, Hand handData, HandFinger fingerId) { - List fingerBones = new List(); - if (handData.TryGetFingerBones(fingerId, fingerBones)) { - for (int i = 0; i < fingerBones.Count; i++) { - TrackedBone trackedBone = bones[boneIx]; - // We only support forward kinematics on the fingers, - // so we only use rotations - if (fingerBones[i].TryGetRotation(out Quaternion rotation)) { - trackedBone.transform.rotation = tracker.transform.rotation * rotation; - } - } - } - } - - #endregion Update - -#endif - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs.meta deleted file mode 100644 index 368a79f..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHandSkeleton.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ea1b62673e43afd4188290cc5f95247d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs deleted file mode 100644 index e2d50f7..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs +++ /dev/null @@ -1,121 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Passer.Tracking; - - [System.Serializable] - public class UnityXRHead : HeadSensor { -#if pUNITYXR - public override string name { - get { return "Unity XR"; } - } - - protected UnityXRTracker unityXR { - get { return humanoid.unityXR; } - } - - #region Manage - - public override void CheckSensor(HeadTarget headTarget) { - if (this.headTarget == null) - this.target = headTarget; - if (this.headTarget == null) - return; - - if (unityXR.trackerComponent == null) { - unityXR.CheckTracker(humanoid); - } - - if (enabled && unityXR.trackerComponent != null && unityXR.trackerComponent.enabled) { - if (hmd == null) { - Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes); - Quaternion rotation = headTarget.transform.rotation; - UnityXR unityXRtracker = unityXR.trackerComponent as UnityXR; - hmd = unityXRtracker.GetHmd(position, rotation); - } - if (hmd != null) - sensorTransform = hmd.transform; - - if (!Application.isPlaying) - SetSensor2Target(); - } - else { -#if UNITY_EDITOR - if (!Application.isPlaying) { - if (hmd != null) - Object.DestroyImmediate(hmd.gameObject, true); - } -#endif - hmd = null; - sensorTransform = null; - } - } - - #endregion - - #region Start - - public override void Start(HumanoidControl _humanoid, Transform targetTransform) { - base.Start(_humanoid, targetTransform); - - tracker = headTarget.humanoid.unityXR; - if (tracker == null || !tracker.enabled || !enabled) - return; - - Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes); - Quaternion rotation = headTarget.transform.rotation; - -#if hSTEAMVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - if (UnityXRDevice.xrDevice == UnityXRDevice.XRDeviceType.OpenVR) { - SteamVR steamVRtracker = unityXR.tracker as SteamVR; - hmd = steamVRtracker.GetHmd(position, rotation); - } - else -#endif - { - UnityXR unityXRtracker = unityXR.trackerComponent as UnityXR; - hmd = unityXRtracker.GetHmd(position, rotation); - } - if (hmd != null) - sensorTransform = hmd.transform; - - SetSensor2Target(); - CheckSensorTransform(); - sensor2TargetPosition = -headTarget.head2eyes; - - if (hmd != null) - hmd.StartComponent(unityXR.trackerComponent.transform); - } - - #endregion - - #region Update - - protected bool calibrated = false; - public override void Update() { - status = Tracker.Status.Unavailable; - if (unityXR.trackerComponent == null || !unityXR.trackerComponent.enabled || !enabled) - return; - - if (hmd == null) - return; - - hmd.UpdateComponent(); - status = hmd.status; - if (status != Tracker.Status.Tracking) - return; - - UpdateTarget(headTarget.head.target, hmd); - UpdateNeckTargetFromHead(); - - if (!calibrated) { - if (tracker.humanoid.calibrateAtStart) - tracker.humanoid.Calibrate(); - calibrated = true; - } - } - - #endregion -#endif - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs.meta deleted file mode 100644 index f567582..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHead.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 68e7ae5faa767574db5660c981e91d9a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs deleted file mode 100644 index 2de336f..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs +++ /dev/null @@ -1,115 +0,0 @@ -using UnityEngine; -using UnityEngine.XR; - -namespace Passer.Tracking { - - public class UnityXRHmd : SensorComponent { - - public TrackerComponent tracker; - public Camera unityCamera; - -#if pUNITYXR - public bool positionalTracking = true; - - public Transform sensorTransform { - get { return this.transform; } - } - - protected UnityEngine.XR.InputDevice device; - - #region Start - - protected override void Start() { - base.Start(); - - device = InputDevices.GetDeviceAtXRNode(XRNode.CenterEye); - - InputDevices.deviceConnected += OnDeviceConnected; - InputDevices.deviceDisconnected += OnDeviceDisconnected; - - if (this.gameObject.GetComponent() == null) { - this.gameObject.AddComponent(); - } - - } - - /// - /// Hmd has connected - /// - /// The InputDevice of the hmd - protected virtual void OnDeviceConnected(UnityEngine.XR.InputDevice device) { - bool isHmd = (device.characteristics & InputDeviceCharacteristics.HeadMounted) != 0; - if (isHmd) { - this.device = device; - Show(true); - } - } - - /// - /// Hmd has disconnected - /// - /// This also happens when the device is no longer tracked. - /// The InputDevice of the hmd - protected virtual void OnDeviceDisconnected(UnityEngine.XR.InputDevice device) { - bool isHmd = (device.characteristics & InputDeviceCharacteristics.HeadMounted) != 0; - if (isHmd) { - this.device = device; - Show(false); - } - } - - #endregion -#endif - - #region Update - - public override void UpdateComponent() { - base.UpdateComponent(); - - status = Tracker.Status.Unavailable; - positionConfidence = 0; - rotationConfidence = 0; -#if pUNITYXR - if (device == null) - return; - - status = Tracker.Status.Present; - - Vector3 position; - if (positionalTracking == false) { - positionConfidence = 0; - } - else if (device.TryGetFeatureValue(CommonUsages.centerEyePosition, out position)) { - // We may get 0,0,0 as first measurement - if (position != Vector3.zero) { - transform.position = tracker.transform.TransformPoint(position); - positionConfidence = 1; - status = Tracker.Status.Tracking; - } - } - - Quaternion rotation; - if (device.TryGetFeatureValue(CommonUsages.centerEyeRotation, out rotation)) { - transform.rotation = tracker.transform.rotation * rotation; - rotationConfidence = 1; - if (positionalTracking == false) - status = Tracker.Status.Tracking; - } - - bool userPresent = false; - if (device.TryGetFeatureValue(CommonUsages.userPresence, out userPresent)) { - // tracking is only true when the positional tracking is working - // but when the user is not present, the tracking status is removed again - if (!userPresent) - status = Tracker.Status.Present; - } -#endif - } - - public void Show(bool _) { - } - - #endregion - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs.meta deleted file mode 100644 index c7af5cb..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRHmd.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 721814c5b45ed3b4ba32e9d0aec2f588 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs deleted file mode 100644 index a0761e1..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs +++ /dev/null @@ -1,181 +0,0 @@ -#if pUNITYXR - -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif -using Passer.Tracking; - -namespace Passer.Humanoid { - - /// - /// Universal API for tracking XR devices. - /// - /// - /// Setup - /// ===== - /// Go to Edit Menu->Project Settings->XR Plugin Management and click on the Install XR Plugin Management button: - /// \image html UnityXRPreferences.png - /// Then enable the desired XR Plugin. For example the Oculus plugin for Android: - /// \image html UnityXRPreferencesOculus.png - /// Note that if you want to test Oculus Quest in the editor, the Oculus Plugin for Standalone needs to be enabled too: - /// \image html UnityXRPreferencesOculus2.png - /// - /// Configuration - /// ============= - /// To enable body tracking with Unity XR for a humanoid, Unity XR needs to be enabled - /// in the HumanoidControl component: - /// \image html UnityXRTrackerNotShown.png - /// By default the \ref Passer::Tracking::UnitXR "UnityXR" object is not visible in the scene, - /// but it will be created automatically when the scene starts. - /// If the button Show is pressed, the UnityXR object will be created in the Real World object. - /// \image html UnityXRTrackerShown.png - /// UnityXR (UnityXR) is a reference to the object in the scene representing the root of the Unit XR tracking space. - /// This GameObject is found as a child of the Real World GameObject. - /// The \ref Tracking::UnityXR "UnityXR" GameObject can be used to adjust the origin of the Unity XR tracking space. - /// - /// Head %Target - /// ============ - /// To use an HMD tracking for the head of the avatar Unity XR needs to be enabled on the Head %Target too. - /// This is enabled by default: - /// \image html UnityXRHeadSensorNotShown.png - /// By default the \ref Passer::Tracking::UnityXRHmd "UnityXRHmd" object is not visible in the scene, - /// but it will be created automatically when the scene starts. - /// The UnityXRHmd will also have the main camera attached. You can disable the camera - /// attached to the UnityXRHead object if needed, for example when you want to see the avatar's - /// movements in third person view. - /// If the button Show is pressed, the UnityXRHead object will be created as a child of - /// the UnityXR object in the Real World. - /// \image html UnityXRHeadSensorShown.png - /// - /// Hand %Target - /// ============ - /// When you want to control the hands of the avatar using Unity XR you need to enable Unity XR on the Hand %Target: - /// \image html UnityXRHandSensorNotShown.png - /// Like with the Head %Target, the \ref Passer::Tracking::UnityXRController "UnityXRController" object - /// is not visible in the editor scene by default but it will be created automatically when the scene starts. - /// If the button Show is pressed, the UnityXRController object will be creates as a child of - /// the UnityXR object in the Real World. - /// \image html UnityXRHandSensorShown.png - /// - /// Hand %Tracking (Plus & Pro) - /// ========================== - /// Some devices support hand tracking in combination with UnityXR. Native hand tracking with Unity XR is - /// still not possible, so we provide specific implementations for the following hand tracking options - /// - /// Oculus Quest - /// ------------ - /// When the Android platform is selected in Unity, an additional option for Oculus Hand %Tracking is shown: - /// \image html UnityXROculusHandTracking.png - /// When enabled, hand tracking will be possible for this humanoid. - /// - /// HTC Vive - /// -------- - /// For Vive hand tracking, the Vive Hand %Tracking SDK version 0.9 or higher is required. You can download it here: - /// Vive Hand Tracking SDK. - /// When the HTC Vive Hand Tracking SDK is imported in the project on the Windows Standalone platform, - /// an option for HTC Vive Hand %Tracking is shown: - /// \image html UnityXRViveHandTracking.png - /// For Vive Hand tracking, the OpenVR Plugin for UnityXR is needed. OpenXR does not work with - /// Vive Hand %Tracking in version 1.0.0 of the SDK. This may be fixed in more recent versions. - /// The OpenVR Plugin is automatically installed when the SteamVR Plugin from the Asset Store is - /// imported in the project. - /// HTC Vive headsets like Vive Pre, Vive Pro and normal Vive are supported. HTC Vive Pro 2 is untested, but may work. - /// - /// Note: if you get an error in the ViveSkeleton.cs code stating that ViveHandTracking is not defined, - /// you need to import the ViveHandTracking/ViveHandTracking.asmdef from the Humanoid Control package. - /// - /// \sa UnityXRHead UnityXRHand Tracking::UnityXR Tracking::UnityXRHmd Passer::Tracking::UnityXRController - [System.Serializable] - public class UnityXRTracker : HumanoidTracker { - - /// \copydoc HumanoidTracker::name - /// \copydoc HumanoidTracker::name - public override string name => "Unity XR"; - - /// \copydoc HumanoidTracker::headSensor - public override HeadSensor headSensor => humanoid.headTarget.unityXR; - /// \copydoc HumanoidTracker::leftHandSensor - public override ArmSensor leftHandSensor => humanoid.leftHandTarget.unityXR; - /// \copydoc HumanoidTracker::rightHandSensor - public override ArmSensor rightHandSensor => humanoid.rightHandTarget.unityXR; - - [System.NonSerialized] - private HumanoidSensor[] _sensors; - public override HumanoidSensor[] sensors { - get { - if (_sensors == null) - _sensors = new HumanoidSensor[] { - headSensor, - leftHandSensor, - rightHandSensor - }; - - return _sensors; - } - } - -#if hOCHAND - /// - /// Enables hand tracking on the Oculus Quest - /// - public bool oculusHandTracking = true; -#endif -#if hVIVEHAND - /// - /// Enables hand tracking on the HTC Vive - /// - public bool viveHandTracking = true; -#endif - - #region Manage - - public override void CheckTracker(HumanoidControl humanoid) { - CheckTracker(humanoid, UnityXR.Get); - } - - #endregion - - #region Start - - public override void StartTracker(HumanoidControl humanoid) { - this.humanoid = humanoid; - - UnityXRDevice.Start(); - - CheckTracker(humanoid); - - headSensor.Start(humanoid, humanoid.headTarget.transform); - leftHandSensor.Start(humanoid, humanoid.leftHandTarget.transform); - rightHandSensor.Start(humanoid, humanoid.rightHandTarget.transform); - } - - //public override bool AddTracker(HumanoidControl humanoid, string resourceName) { - // return false; - //} - - #endregion - - #region Update - - public override void UpdateTracker() { - if (!enabled || trackerComponent == null) - return; - - - status = trackerComponent.status; - } - - #endregion - - public override void Calibrate() { - if (!enabled || trackerComponent == null) - return; - - base.Calibrate(); - - trackerComponent.transform.position = trackerComponent.transform.position; - } - } -} -#endif \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs.meta b/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs.meta deleted file mode 100644 index 18a7d5d..0000000 --- a/Runtime/HumanoidFree/Scripts/Extensions/UnityXR/UnityXRTracker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d2c75bffeeae1d148b9fd256f7c9e8a8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/HumanoidControl.cs b/Runtime/HumanoidFree/Scripts/HumanoidControl.cs deleted file mode 100644 index 764608d..0000000 --- a/Runtime/HumanoidFree/Scripts/HumanoidControl.cs +++ /dev/null @@ -1,2591 +0,0 @@ -using System.Collections; -using UnityEngine; - -namespace Passer.Humanoid { - using Tracking; - - [System.Serializable] - public enum NetworkingSystems { - None -#if !UNITY_2019_1_OR_NEWER - , UnityNetworking -#endif -#if hPHOTON1 || hPHOTON2 - , PhotonNetworking -#endif -#if hBOLT - , PhotonBolt -#endif -#if hMIRROR - , MirrorNetworking -#endif - } - - /// Control avatars using tracking and animation options - /// The %Humanoid Control component has all the options to control your avatar in a simple way. - /// This document describes the available settings. - /// - /// \image html HumanoidControlInspector.png - /// - /// Targets - /// ======= - /// Targets are used to move the body. The control of an avatar is split into six body parts: - /// head, 2 arms, torso and 2 legs. Each body part is controlled by a target: - /// Head, Left/Right Hand, Hips and Left/Right Foot. - /// Targets are not shown in the hierarchy by default but can be made visible - /// by clicking on the Show button for that target. - /// - /// Instead of the normal targets, you can also use custom target by replacing the default targets - /// with references to other transforms.A good example are hands which are connected to a steering wheel. - /// In this example two empty GameObjects are set at the right locations of the steering wheel. - /// The Left and Right Hand %Target show then point to the Transforms of these empty GameObjects. - /// - /// Every target will have %Target script attached which give additional control over these targets: - /// - /// * \ref HeadTarget "Head Target" - /// * \ref HandTarget "Left/Right Hand Target" - /// * \ref HipsTarget "Hips Target" - /// * \ref FootTarget "Left/Right Foot Target" - /// - /// Input - /// ===== - /// Enables you to choose which tracker devices are supported. Any combination of trackers can be chosen, - /// even when the device itself is not present. Only when the devices are actually present in the system - /// they will be used in the tracking. During game play you can see in the inspector which Input devices - /// are actually present and tracking at any point. - /// %Humanoid Control will combine multiple trackers using sensor fusion to achieve the best possible tracking result. - /// See the list of - /// supported devices - /// to get information on the settings forf each device. - /// - /// Animator - /// -------- - /// Procedural and Mecanim animations are supported for body parts not being tracked by an input device. - /// Mecanim animation is used when an appropriate Animation %Controller is selected as parameter. - /// Built-in procedural animation will be used when no Animation %Controller is selected. See also - /// Animations. - /// - /// Pose - /// ==== - /// This will set the base pose of the avatar. For more information see - /// Pose. - /// - /// Networking - /// ========== - /// Remote Avatar - /// ------------- - /// For - /// networking - /// setups, a remote avatar has to be selected which is used - /// for the representation of the avatar on remote clients. - /// This enables you to optimise the avatar mesh between first and third person views of the same avatar. - /// - /// Movement - /// ======== - /// This sets a number of parameters for the locomotion of the avatar: - /// - /// * \ref HumanoidControl::forwardSpeed "Forward Speed" - /// * \ref HumanoidControl::backwardSpeed "Backward Speed" - /// * \ref HumanoidControl::sidewardSpeed "Sideward Speed" - /// * \ref HumanoidControl::maxAcceleration "Maximum Acceleration" - /// * \ref HumanoidControl::rotationSpeed "Rotation Speed" - /// * \ref HumanoidControl::stepOffset "Step Ofsset" - /// * \ref HumanoidControl::proximitySpeed "Proximity Speed" - /// - /// Settings - /// ======== - /// * \ref HumanoidControl::showRealObjects "Show Real Objects" - /// * \ref HumanoidControl::physics "Physics" - /// * \ref HumanoidControl::useGravity "Use Gravity" - /// * \ref HumanoidControl::bodyPull "Body Pull" - /// * \ref HumanoidControl::haptics "Haptics" - /// * \ref HumanoidControl::calibrateAtStart "Calibrate at Start" - /// * \ref HumanoidControl::startPosition "Start Position" - /// * \ref HumanoidControl::scaling "Scaling" - /// * \ref HumanoidControl::dontDestroyOnLoad "Don't Destroy on Load" - /// * \ref HumanoidControl::disconnectInstances "Disconnect Instances" - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_humanoid_control.html")] - public class HumanoidControl : MonoBehaviour { - /// The path at which the HumanoidControl script is found - public string path; - - public HeadTarget headTarget; - /// The target script to control the left arm bones - public HandTarget leftHandTarget; - /// The target script to control the right arm bones - public HandTarget rightHandTarget; - /// The target script to control the torso bones - public HipsTarget hipsTarget; - /// The target script to control the left leg bones - public FootTarget leftFootTarget; - /// The target script to control the right leg bones - public FootTarget rightFootTarget; - - public enum PrimaryTarget { - Head, - Hips - }; - public PrimaryTarget primaryTarget; - - public enum TargetId { - Hips, - Head, - LeftHand, - RightHand, - LeftFoot, - RightFoot, - Face - } - - /// The target bones rig - /// The target bones rig contain the target pose of the avatar - /// The humanoid movements will try to move the avatar such that the target pose is reached - /// as closely as possible - public Animator targetsRig; - /// - /// Draws the target rig in the scene view - /// - public bool showTargetRig = false; - /// The neck height of the target rig - /// When head tracking is used, this can be used to estimate the height of the player. - public float trackingNeckHeight { - get { - if (headTarget == null || headTarget.neck.target.transform == null) - return 0; - - return headTarget.neck.target.transform.position.y - transform.position.y; - } - } - - /// The avatar Rig - /// This is the rig of the avatar we want to control. - public Animator avatarRig; - /// - /// Draws the avatar rig in the scene view - /// - public bool showAvatarRig = true; - - /// - /// The neck height of the avatar - /// - public float avatarNeckHeight; - - /// - /// Draws the tension at the joints of the avatar - /// - public bool showMuscleTension = false; - - /// Calculate the avatar pose - /// When this option is enabled, the pose of the avatar is updated from the target rig using the - /// Humanoid movements. - /// If you are only interested in the tracking result, you can disable this option and use - /// the target rig to access the tracked pose. - public bool calculateBodyPose = true; - - public static void SetControllerID(HumanoidControl humanoid, int controllerID) { - if (humanoid.traditionalInput != null) { - humanoid.controller = humanoid.traditionalInput.SetControllerID(controllerID); - humanoid.gameControllerIndex = controllerID; - } - } - - /// - /// Enables the animator for this humanoid - /// - public bool animatorEnabled = true; - /// - /// The Animator for this humanoid - /// - public RuntimeAnimatorController animatorController = null; - - /// - /// The pose of this humanoid - /// - public Pose pose; - /// - /// Is true when the pose is currently being edited - /// - public bool editPose; - - #region Networking - - /// The networking interface - public IHumanoidNetworking humanoidNetworking; - - /// The remote avatar prefab for this humanoid - public GameObject remoteAvatar; - /// Is true when this is a remote avatar - /// Remote avatars are not controlled locally, but are controlled from another computer. - /// These are copies of the avatar on that other computer and are updated via messages - /// exchanges on a network. - //public bool isRemote = false; - /// The Id of this humanoid across the network - //public ulong nwId; - /// The Player Type of the humanoid - public int playerType; - public bool syncRootTransform = true; - - // Experimental - public string remoteTrackerIpAddress; - - #endregion - - /// - /// The local Id of this humanoid - /// - public int humanoidId = -1; - -#if pCEREBELLUM - public Cerebellum.Cerebellum cerebellum; -#endif - - #region Settings - - /// If true, real world objects like controllers and cameras are shown in the scene - public bool showRealObjects = true; - [SerializeField] - private bool _showSkeletons; - /// - /// If enabled, tracking skeletons will be rendered - /// - public bool showSkeletons { - get { return _showSkeletons; } - set { - _showSkeletons = value; - //foreach (HumanoidTracker tracker in trackers) { - // tracker.ShowSkeleton(_showSkeletons); - //} - } - } - - /// Enables controller physics and collisions during walking. - public bool physics = true; - /// If there is not static object below the feet of the avatar the avatar will fall down until it reaches solid ground - public bool useGravity = true; - - /// - /// If true, it wil generate colliders for the avatar where necessary - /// - public bool generateColliders = true; - - /// - /// Will use haptic feedback on supported devices when the hands are colliding or touching objects - /// - public bool haptics = false; - - /// Types of startposition for the Pawn - public enum StartPosition { - AvatarPosition, - PlayerPosition - } - /// The start position of the humanoid - public StartPosition startPosition = StartPosition.AvatarPosition; - - /// Types of Scaling which can be used to scale the tracking input to the size of the avatar - /// SetHeightToAvatar adjusts the vertical tracking to match the avatar size. - /// MoveHeightToAvatar does the same but also resets the tracking origin to the location of the avatar. - /// ScaleTrackingToAvatar scales the tracking space to match the avatar size. - /// ScaleAvatarToTracking resizes the avatar to match the player size. - public enum ScalingType { - None, - SetHeightToAvatar, - //MoveHeightToAvatar, - ScaleTrackingToAvatar, - ScaleAvatarToTracking - } - /// Scale Tracking to Avatar scales the tracking input to match the size of the avatar - [SerializeField] - protected ScalingType scaling = ScalingType.SetHeightToAvatar; - - /// Perform a calibration when the scene starts - public bool calibrateAtStart = false; - - /// - /// This option will make sure that the humanoid is not destroyed when the scene is changed. - /// - public bool dontDestroyOnLoad = false; - - /// - /// (Prefab only) Will disconnect the instance from the prefab when they are included in the scene. - /// - public bool disconnectInstances = false; - - #endregion - - #region Init - - protected void Awake() { - if (dontDestroyOnLoad) - DontDestroyOnLoad(this.transform.root); - - generateColliders = true; - - AddHumanoid(); - CheckTargetRig(this); - avatarRig = GetAvatar(this.gameObject); - - // Move the animator controller to the targets rig for proper animation support - if (avatarRig != null && avatarRig.runtimeAnimatorController != null && targetsRig.runtimeAnimatorController == null) { - targetsRig.runtimeAnimatorController = avatarRig.runtimeAnimatorController; - avatarRig.runtimeAnimatorController = null; - avatarRig.enabled = false; - } - - DetermineTargets(); - InitTargets(); - NewTargetComponents(); - RetrieveBones(); - InitAvatar(); - - - avatarNeckHeight = GetAvatarNeckHeight(); - MatchTargetsToAvatar(); - - AddCharacterColliders(); - - StartTargets(); - - InitTrackers(); - StartTrackers(); - - // This should disappear. Start tracker should start all their sensors too. - StartSensors(); - } - - #endregion - - #region Avatar - - private float GetAvatarNeckHeight() { - if (avatarRig == null) - return headTarget.transform.localPosition.y; - - Transform avatarNeck = headTarget.neck.bone.transform; // avatarRig.GetBoneTransform(HumanBodyBones.Neck); - if (avatarNeck != null) { - float neckHeight = avatarNeck.position.y - avatarRig.transform.position.y; - return neckHeight; - } - else - return headTarget.transform.localPosition.y; - } - - public void ChangeAvatar(GameObject fpAvatarPrefab) { - ChangeAvatar(fpAvatarPrefab, fpAvatarPrefab); - } - - public void ChangeAvatar(GameObject fpAvatarPrefab, GameObject tpAvatarPrefab) { - remoteAvatar = tpAvatarPrefab; - if (remoteAvatar == null) - remoteAvatar = fpAvatarPrefab; - - LocalChangeAvatar(fpAvatarPrefab); - - if (humanoidNetworking != null) { - - if (remoteAvatar != null) { - Possessable avatarPossessable = remoteAvatar.GetComponent(); - if (avatarPossessable == null) - humanoidNetworking.ChangeAvatar(this, fpAvatarPrefab.name); - else - humanoidNetworking.ChangeAvatar(this, avatarPossessable.assetPath, avatarPossessable.siteLocation); - } - } - } - - public void LocalChangeAvatar(GameObject avatarPrefab) { - if (avatarPrefab == null) - return; - - Animator animator = avatarPrefab.GetComponent(); - if (animator == null || animator.avatar == null || !animator.avatar.isValid) { - Debug.LogWarning("Could not detect suitable avatar"); - return; - } - - // bones of previous avatar are no longer valid - HeadTarget.ClearBones(headTarget); - HandTarget.ClearBones(leftHandTarget); - HandTarget.ClearBones(rightHandTarget); - leftFootTarget.ClearBones(); - rightFootTarget.ClearBones(); - - if (avatarRig != null) { - if (avatarRig.transform != this.transform) { - DestroyImmediate(avatarRig.gameObject, true); - } - else { - // Delete all humanoid related gameObjects - // This may be destroying too much... - int maxChildren = 0; - while (this.transform.childCount > maxChildren) { - GameObject objToDelete = this.transform.GetChild(maxChildren).gameObject; - if (objToDelete == targetsRig.gameObject || - objToDelete == realWorld.gameObject) { - maxChildren++; - continue; - } - DestroyImmediate(objToDelete); - } - DestroyImmediate(avatarRig); - } - } - - // Check if the humanoid is not being destroyed - // which can happen at the end of the scence - if (!this.gameObject) - return; - - GameObject avatarObj = (GameObject)Instantiate(avatarPrefab, this.transform.position, this.transform.rotation); - avatarObj.transform.SetParent(this.transform); - avatarObj.transform.localPosition = Vector3.zero; - - // Remove camera from avatar - Transform t = avatarObj.transform.FindDeepChild("First Person Camera"); - if (t != null) - Destroy(t.gameObject); - - CheckTargetRig(this); - InitializeAvatar(); - AddCharacterColliders(); - avatarNeckHeight = GetAvatarNeckHeight(); - - switch (scaling) { - case ScalingType.SetHeightToAvatar: - SetTrackingHeightToAvatar(); - break; - case ScalingType.ScaleAvatarToTracking: - ScaleAvatarToTracking(); - break; - case ScalingType.ScaleTrackingToAvatar: - ScaleTrackingToAvatar(); - break; - default: - break; - } - } - - public void InitializeAvatar() { - avatarRig = GetAvatar(this.gameObject); - - // Move the animator controller to the targets rig for proper animation support - if (avatarRig.runtimeAnimatorController != null && targetsRig.runtimeAnimatorController == null) { - targetsRig.runtimeAnimatorController = avatarRig.runtimeAnimatorController; - avatarRig.runtimeAnimatorController = null; - avatarRig.gameObject.SetActive(false); - } - - RetrieveBones(); - InitAvatar(); - MatchTargetsToAvatar(); - - //avatarNeckHeight = GetAvatarNeckHeight(); - // This will change the target rotations wrongly when changing avatars - //MatchTargetsToAvatar(); - - //AddCharacterColliders(); - - leftHandTarget.StartTarget(); - rightHandTarget.StartTarget(); - } - - private void InitializeAvatar2(GameObject avatarRoot) { - avatarRig = GetAvatar(avatarRoot); - - // Move the animator controller to the targets rig for proper animation support - if (avatarRig.runtimeAnimatorController != null && targetsRig.runtimeAnimatorController == null) { - targetsRig.runtimeAnimatorController = avatarRig.runtimeAnimatorController; - avatarRig.runtimeAnimatorController = null; - avatarRig.gameObject.SetActive(false); - } - - RetrieveBones(); - InitAvatar(); - //MatchTargetsToAvatar(); - - //avatarNeckHeight = GetAvatarNeckHeight(); - // This will change the target rotations wrongly when changing avatars - //MatchTargetsToAvatar(); - - //AddCharacterColliders(); - - leftHandTarget.StartTarget(); - rightHandTarget.StartTarget(); - } - - /// - /// Analyses the avatar's properties requires for the movements - /// - public void InitAvatar() { - hipsTarget.InitAvatar(); - headTarget.InitAvatar(); - leftHandTarget.InitAvatar(); - rightHandTarget.InitAvatar(); - leftFootTarget.InitAvatar(); - rightFootTarget.InitAvatar(); - -#if pCEREBELLUM - cerebellum.Init(); -#endif - } - - - public void ScaleAvatarToTracking() { - } - - private void ScaleAvatarToHeight(float height) { - if (height <= 0) - return; - - float neckHeight = 0.875F * height; - ScaleAvatar(neckHeight / avatarNeckHeight); - } - - private void ScaleAvatar(float scaleFactor) { - avatarRig.transform.localScale = Vector3.one * scaleFactor; - - // The scaling will result in wrong length for the forearm. - // This is because the hands are detached and the position of the hands is not scaled with the avatar. - // The solution is to reattach the hands temporarily when changing avatar - // This may be in general a good thing to do, but the impact is non-trivial. - - Quaternion leftForearmRotation = leftHandTarget.forearm.bone.transform.rotation * leftHandTarget.forearm.bone.toTargetRotation; - leftHandTarget.hand.bone.transform.position = leftHandTarget.forearm.bone.transform.position + leftForearmRotation * leftHandTarget.outward * (leftHandTarget.forearm.bone.length * scaleFactor); - - Quaternion rightForearmRotation = rightHandTarget.forearm.bone.transform.rotation * rightHandTarget.forearm.bone.toTargetRotation; - rightHandTarget.hand.bone.transform.position = rightHandTarget.forearm.bone.transform.position + rightForearmRotation * rightHandTarget.outward * (rightHandTarget.forearm.bone.length * scaleFactor); - - leftHandTarget.hand.bone.transform.localScale = Vector3.one * scaleFactor; - rightHandTarget.hand.bone.transform.localScale = Vector3.one * scaleFactor; - - CheckTargetRig(this); - InitializeAvatar(); - } - - /// Match the target rig transform to the humanoid transform - public static void CheckTargetRig(HumanoidControl humanoid) { - if (humanoid.targetsRig == null) { - Object targetsRigPrefab = Resources.Load("HumanoidTargetsRig"); - GameObject targetsRigObject = (GameObject)Instantiate(targetsRigPrefab); - targetsRigObject.name = "Target Rig"; - humanoid.targetsRig = targetsRigObject.GetComponent(); - - targetsRigObject.transform.position = humanoid.transform.position; - targetsRigObject.transform.rotation = humanoid.transform.rotation; - targetsRigObject.transform.SetParent(humanoid.transform); - } - - humanoid.targetsRig.runtimeAnimatorController = humanoid.animatorController; - } - - /// Retrieve the avatar rig for this humanoid - public Animator GetAvatar(GameObject avatarRoot) { - if (avatarRig != null && avatarRig != targetsRig && avatarRig.enabled && - avatarRig.gameObject != null && avatarRig.gameObject.activeInHierarchy) { - // We already have a good avatarRig - return avatarRig; - } - - // We don't have an avatar, make sure that the detached hands are deleted then - if (!Application.isPlaying) { - if (leftHandTarget != null && leftHandTarget.handRigidbody != null) - DestroyImmediate(leftHandTarget.handRigidbody.gameObject, true); - if (rightHandTarget != null && rightHandTarget.handRigidbody != null) - DestroyImmediate(rightHandTarget.handRigidbody.gameObject, true); - } - - Avatar avatar = null; - Animator animator = avatarRoot.GetComponent(); - if (animator != null) { - avatar = animator.avatar; - if (avatar != null && avatar.isValid/* && avatar.isHuman*/ && animator != targetsRig) { - return animator; - } - } - - Animator[] animators = avatarRoot.GetComponentsInChildren(); - for (int i = 0; i < animators.Length; i++) { - avatar = animators[i].avatar; - if (avatar != null && avatar.isValid /*&& avatar.isHuman*/ && animators[i] != targetsRig) { - return animators[i]; - } - } - return null; - } - - //private void ScaleAvatar2Tracking() { - // Animator characterAnimator = avatarRig.GetComponent(); - - // for (int i = 0; i < (int)HumanBodyBones.LastBone; i++) { - // Transform sourceBone = targetsRig.GetBoneTransform((HumanBodyBones)i); - // Transform destBone = characterAnimator.GetBoneTransform((HumanBodyBones)i); - - // if (sourceBone != null && destBone != null) { - // float sourceBoneLength = GetBoneLength(sourceBone); - // float destBoneLength = GetBoneLength(destBone); - - // if (sourceBoneLength > 0 && destBoneLength > 0) { - // float startScaling = (destBone.localScale.x + destBone.localScale.y + destBone.localScale.z) / 3; - // float scaling = (sourceBoneLength / destBoneLength); - // float resultScaling = startScaling * scaling; - // destBone.localScale = new Vector3(resultScaling, resultScaling, resultScaling); - // } - // } - // } - //} - - private static float GetBoneLength(Transform bone) { - if (bone.childCount == 1) { - Transform childBone = bone.GetChild(0); - - float length = Vector3.Distance(bone.position, childBone.position); - return length; - } - else - return 0; - } - - #endregion - - #region Targets - protected void NewTargetComponents() { -#if pCEREBELLUM - if (cerebellum == null) - cerebellum = new Cerebellum.Cerebellum(); -#endif - hipsTarget.NewComponent(this); - hipsTarget.InitComponent(); - - headTarget.NewComponent(this); - headTarget.InitComponent(); - - leftHandTarget.NewComponent(this); - leftHandTarget.InitComponent(); - - rightHandTarget.NewComponent(this); - rightHandTarget.InitComponent(); - - leftFootTarget.NewComponent(this); - leftFootTarget.InitComponent(); - - rightFootTarget.NewComponent(this); - rightFootTarget.InitComponent(); - } - - /// Initialize the targets for this humanoid - public void InitTargets() { - SetBones(); - } - - /// Start the targets for this humanoid - protected void StartTargets() { - hipsTarget.StartTarget(); - headTarget.StartTarget(); - leftHandTarget.StartTarget(); - rightHandTarget.StartTarget(); - leftFootTarget.StartTarget(); - rightFootTarget.StartTarget(); - } - - /// Checks the humanoid for presence of Targets and adds them if they are not found - public void DetermineTargets() { - HeadTarget.DetermineTarget(this); - HandTarget.DetermineTarget(this, true); - HandTarget.DetermineTarget(this, false); - HipsTarget.DetermineTarget(this); - FootTarget.DetermineTarget(this, true); - FootTarget.DetermineTarget(this, false); - } - - /// Changes the target rig transforms to match the avatar rig - public void MatchTargetsToAvatar() { - hipsTarget.MatchTargetsToAvatar(); - headTarget.MatchTargetsToAvatar(); - leftHandTarget.MatchTargetsToAvatar(); - rightHandTarget.MatchTargetsToAvatar(); - leftFootTarget.MatchTargetsToAvatar(); - rightFootTarget.MatchTargetsToAvatar(); - } - - private void UpdateTargetsAndMovements() { - CopyTargetsToRig(); - - UpdateTargets(); - UpdateMovements(); - - CopyRigToTargets(); - } - - protected void UpdateTargets() { - hipsTarget.UpdateTarget(); - headTarget.UpdateTarget(); - leftHandTarget.UpdateTarget(); - rightHandTarget.UpdateTarget(); - leftFootTarget.UpdateTarget(); - rightFootTarget.UpdateTarget(); - } - - /// Updates the avatar pose based on the targets rig - public void UpdateMovements() { -#if pCEREBELLUM - if (cerebellum != null) - cerebellum.Update(); -#endif - headTarget.UpdateMovements(this); - hipsTarget.UpdateMovements(this); - leftHandTarget.UpdateMovements(this); - rightHandTarget.UpdateMovements(this); - leftFootTarget.UpdateMovements(this); - rightFootTarget.UpdateMovements(this); - } - - /// Copies the pose of the target rig to the avatar - private void CopyTargetsToRig() { - hipsTarget.CopyTargetToRig(); - headTarget.CopyTargetToRig(); - leftHandTarget.CopyTargetToRig(); - rightHandTarget.CopyTargetToRig(); - leftFootTarget.CopyTargetToRig(); - rightFootTarget.CopyTargetToRig(); - } - - /// Copies the pose of the avatar to the target rig - public void CopyRigToTargets() { - hipsTarget.CopyRigToTarget(); - headTarget.CopyRigToTarget(); - leftHandTarget.CopyRigToTarget(); - rightHandTarget.CopyRigToTarget(); - leftFootTarget.CopyRigToTarget(); - rightFootTarget.CopyRigToTarget(); - } - - /// Updated the sensor transform from the target transforms - public void UpdateSensorsFromTargets() { -#if hLEAP - // temporary solution? Leap may need a Head Sensor Component for the camera tracker? - leapTracker.UpdateTrackerFromTarget(leapTracker.isHeadMounted); -#endif - hipsTarget.UpdateSensorsFromTarget(); - headTarget.UpdateSensorsFromTarget(); - leftHandTarget.UpdateSensorsFromTarget(); - rightHandTarget.UpdateSensorsFromTarget(); - leftFootTarget.UpdateSensorsFromTarget(); - rightFootTarget.UpdateSensorsFromTarget(); - } - - private HumanoidTarget.TargetedBone[] _bones = null; - /// Get the Humanoid Bone - /// The identification of the requested bone - public HumanoidTarget.TargetedBone GetBone(Bone boneId) { - if (_bones == null) - SetBones(); - if (_bones == null || (int)boneId > _bones.Length) - return null; - return _bones[(int)boneId]; - } - /// Get the Humanoid Bone on the incated side of the humanoid - /// The requested side of the humanoid - /// The identification of the requested bone - public HumanoidTarget.TargetedBone GetBone(Side side, SideBone sideBoneId) { - if (_bones == null) - SetBones(); - int boneIx = (int)BoneReference.HumanoidBone(side, sideBoneId); - return _bones[boneIx]; - } - private void SetBones() { - _bones = new HumanoidTarget.TargetedBone[(int)Bone.Count] { - null, - hipsTarget.hips, - hipsTarget.spine, - null, - null, - hipsTarget.chest, - - headTarget.neck, - headTarget.head, - - leftHandTarget.shoulder, - leftHandTarget.upperArm, - leftHandTarget.forearm, - null, - leftHandTarget.hand, - - leftHandTarget.fingers.thumb.proximal, - leftHandTarget.fingers.thumb.intermediate, - leftHandTarget.fingers.thumb.distal, - - null, - leftHandTarget.fingers.index.proximal, - leftHandTarget.fingers.index.intermediate, - leftHandTarget.fingers.index.distal, - - null, - leftHandTarget.fingers.middle.proximal, - leftHandTarget.fingers.middle.intermediate, - leftHandTarget.fingers.middle.distal, - - null, - leftHandTarget.fingers.ring.proximal, - leftHandTarget.fingers.ring.intermediate, - leftHandTarget.fingers.ring.distal, - - null, - leftHandTarget.fingers.little.proximal, - leftHandTarget.fingers.little.intermediate, - leftHandTarget.fingers.little.distal, - - leftFootTarget.upperLeg, - leftFootTarget.lowerLeg, - leftFootTarget.foot, - leftFootTarget.toes, - - rightHandTarget.shoulder, - rightHandTarget.upperArm, - rightHandTarget.forearm, - null, - rightHandTarget.hand, - - rightHandTarget.fingers.thumb.proximal, - rightHandTarget.fingers.thumb.intermediate, - rightHandTarget.fingers.thumb.distal, - - null, - rightHandTarget.fingers.index.proximal, - rightHandTarget.fingers.index.intermediate, - rightHandTarget.fingers.index.distal, - - null, - rightHandTarget.fingers.middle.proximal, - rightHandTarget.fingers.middle.intermediate, - rightHandTarget.fingers.middle.distal, - - null, - rightHandTarget.fingers.ring.proximal, - rightHandTarget.fingers.ring.intermediate, - rightHandTarget.fingers.ring.distal, - - null, - rightHandTarget.fingers.little.proximal, - rightHandTarget.fingers.little.intermediate, - rightHandTarget.fingers.little.distal, - - rightFootTarget.upperLeg, - rightFootTarget.lowerLeg, - rightFootTarget.foot, - rightFootTarget.toes, - -#if hFACE - headTarget.face.leftEye.upperLid, - headTarget.face.leftEye, - headTarget.face.leftEye.lowerLid, - headTarget.face.rightEye.upperLid, - headTarget.face.rightEye, - headTarget.face.rightEye.lowerLid, - - headTarget.face.leftBrow.outer, - headTarget.face.leftBrow.center, - headTarget.face.leftBrow.inner, - headTarget.face.rightBrow.inner, - headTarget.face.rightBrow.center, - headTarget.face.rightBrow.outer, - - headTarget.face.leftEar, - headTarget.face.rightEar, - - headTarget.face.leftCheek, - headTarget.face.rightCheek, - - headTarget.face.nose.top, - headTarget.face.nose.tip, - headTarget.face.nose.bottomLeft, - headTarget.face.nose.bottom, - headTarget.face.nose.bottomRight, - - headTarget.face.mouth.upperLipLeft, - headTarget.face.mouth.upperLip, - headTarget.face.mouth.upperLipRight, - headTarget.face.mouth.lipLeft, - headTarget.face.mouth.lipRight, - headTarget.face.mouth.lowerLipLeft, - headTarget.face.mouth.lowerLip, - headTarget.face.mouth.lowerLipRight, - - headTarget.face.jaw, -#else - null, - null, - null, - null, - null, - null, - - null, - null, - null, - null, - null, - null, - - null, - null, - - null, - null, - - null, - null, - null, - null, - null, - - null, - null, - null, - null, - null, - null, - null, - null, - - null, -#endif - null, - }; - } - - #endregion - - #region Trackers - - /// Use game controller input - public bool gameControllerEnabled = true; - /// The game controller for this pawn - public Passer.Controller controller; - /// The index of the game controller - public int gameControllerIndex; - - public GameControllers gameController; - - protected Transform _realWorld; - /// The transform containing all real-world objects - public Transform realWorld { - get { - if (_realWorld == null) - _realWorld = GetRealWorld(); - return _realWorld; - } - } - private Transform GetRealWorld() { - Transform realWorldTransform = this.transform.Find("Real World"); - if (realWorldTransform != null) - return realWorldTransform; - - GameObject realWorld = new GameObject("Real World"); - realWorldTransform = realWorld.transform; - - realWorldTransform.parent = this.transform; - realWorldTransform.position = this.transform.position; - realWorldTransform.rotation = this.transform.rotation; - return realWorldTransform; - } - - /// The Unity XR tracker\ -#if pUNITYXR - public UnityXRTracker unityXR = new UnityXRTracker(); -#endif -#if hLEGACYXR - //public UnityVRTracker unity = new UnityVRTracker(); -#endif - //#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - // public OpenVRHumanoidTracker openVR = new OpenVRHumanoidTracker(); - //#endif - //#if hSTEAMVR && UNITY_STANDALONE_WIN - // public SteamVRTracker steamVR = new SteamVRTracker(); - //#endif - //#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) - // /// The Oculus tracker - // public OculusTracker oculus = new OculusTracker(); - //#endif - /// The Windows Mixed Reality tracker -#if hWINDOWSMR && UNITY_WSA_10_0 - public WindowsMRTracker mixedReality = new WindowsMRTracker(); -#endif - /// The Wave VR tracker -#if hWAVEVR - public WaveVRTracker waveVR = new WaveVRTracker(); -#endif - /// The VRTK tracker -#if hVRTK - public VrtkTracker vrtk = new VrtkTracker(); -#endif - /// The Perception Neuron tracker -#if hNEURON - public NeuronTracker neuronTracker = new NeuronTracker(); -#endif - /// The Leap Motion tracker -#if hLEAP - public LeapTracker leapTracker = new LeapTracker(); -#endif - /// The Intel RealSense tracker -#if hREALSENSE - public RealsenseTracker realsense = new RealsenseTracker(); -#endif - /// The Razer Hydra tracker -#if hHYDRA - public HydraTracker hydra = new HydraTracker(); -#endif - /// The Microsoft Kinect 360/Kinect for Windows tracker -#if hKINECT1 - public Kinect1Tracker kinect1 = new Kinect1Tracker(); -#endif - /// The Microsoft Kinect 2 tracker -#if hKINECT2 - public Kinect2Tracker kinect2 = new Kinect2Tracker(); -#endif -#if hKINECT4 - /// - /// Azure Kinect tracker - /// - public Kinect4Tracker kinect4 = new Kinect4Tracker(); -#endif - /// The Orbbec Astra tracker -#if hORBBEC && (UNITY_STANDALONE_WIN || UNITY_ANDROID || UNITY_WSA_10_0) - public AstraTracker astra = new AstraTracker(); -#endif - /// The OptiTrack tracker -#if hOPTITRACK - public OptiTracker optitrack = new OptiTracker(); -#endif - /// The Tobii tracker -#if hTOBII - public TobiiTracker tobiiTracker = new TobiiTracker(); -#endif -#if hARKIT && hFACE && UNITY_IOS && UNITY_2019_1_OR_NEWER - public ArKit arkit = new ArKit(); -#endif - /// The Pupil Labs tracker -#if hPUPIL - public Tracking.Pupil.Tracker pupil = new Tracking.Pupil.Tracker(); -#endif - /// The Dlib tracker -#if hDLIB - public DlibTracker dlib = new DlibTracker(); -#endif -#if hANTILATENCY - public AntilatencyTracker antilatency = new AntilatencyTracker(); -#endif -#if hHI5 - public Hi5Tracker hi5 = new Hi5Tracker(); -#endif -#if hCUSTOM - public CustomTracker custom = new CustomTracker(); -#endif - - private HumanoidTracker[] _trackers; - /// All available trackers for this humanoid - public HumanoidTracker[] trackers { - get { - if (_trackers == null) - InitTrackers(); - return _trackers; - } - } - - private TraditionalDevice traditionalInput; - - protected void InitTrackers() { - _trackers = new HumanoidTracker[] { -#if pUNITYXR - unityXR, -#endif -//#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) -// openVR, -//#endif -//#if hSTEAMVR && UNITY_STANDALONE_WIN -// //steamVR, -//#endif -//#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) -// oculus, -//#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - mixedReality, -#endif -#if hWAVEVR - waveVR, -#endif -#if hVRTK - vrtk, -#endif -#if hNEURON - neuronTracker, -#endif -#if hLEAP - leapTracker, -#endif -#if hREALSENSE - realsense, -#endif -#if hHYDRA - hydra, -#endif -#if hKINECT1 - kinect1, -#endif -#if hKINECT2 - kinect2, -#endif -#if hKINECT4 - kinect4, -#endif -#if hORBBEC && (UNITY_STANDALONE_WIN || UNITY_ANDROID) - astra, -#endif -#if hOPTITRACK - optitrack, -#endif -#if hTOBII - tobiiTracker, -#endif -#if hARKIT && hFACE && UNITY_IOS && UNITY_2019_1_OR_NEWER - arkit, -#endif -#if hPUPIL - pupil, -#endif -#if hDLIB - dlib, -#endif -#if hANTILATENCY - antilatency, -#endif -#if hHI5 - hi5, -#endif -#if hCUSTOM - custom, -#endif - }; - } - - private void EnableTrackers(bool trackerEnabled) { - foreach (HumanoidTracker tracker in _trackers) - tracker.enabled = trackerEnabled; - } - - protected void StartTrackers() { - if (traditionalInput == null) - traditionalInput = new TraditionalDevice(); - traditionalInput.SetControllerID(0); - - for (int i = 0; i < _trackers.Length; i++) - _trackers[i].StartTracker(this); - - // Experimental -#if hNW_MIRROR || hNW_UNET - if (remoteTrackerIpAddress != null && remoteTrackerIpAddress != "") { -#if hNW_UNET - UnetStarter.StartClient(remoteTrackerIpAddress); -#endif - } -#endif - } - - protected void UpdateTrackers() { - //if (gameControllerEnabled && traditionalInput != null) - // traditionalInput.UpdateGameController(gameController); - - for (int i = 0; i < trackers.Length; i++) { - if (trackers[i] != null) - trackers[i].UpdateTracker(); - } - } - - protected void StartSensors() { - hipsTarget.StartSensors(); - headTarget.StartSensors(); - leftHandTarget.StartSensors(); - rightHandTarget.StartSensors(); - leftFootTarget.StartSensors(); - rightFootTarget.StartSensors(); - } - - protected void StopSensors() { - hipsTarget.StopSensors(); - headTarget.StopSensors(); - leftHandTarget.StopSensors(); - rightHandTarget.StopSensors(); - leftFootTarget.StopSensors(); - rightFootTarget.StopSensors(); - } - - public void ScaleTrackingToAvatar() { - GameObject realWorld = GetRealWorld(transform); - float neckHeight = headTarget.transform.position.y - transform.position.y; - neckHeight = neckHeight / realWorld.transform.lossyScale.y; - ScaleTracking(avatarNeckHeight / neckHeight); - } - - private void ScaleTracking(float scaleFactor) { - GameObject realWorld = HumanoidControl.GetRealWorld(transform); - Vector3 newScale = scaleFactor * Vector3.one; // * realWorld.transform.localScale; - - targetsRig.transform.localScale = newScale; - realWorld.transform.localScale = newScale; - } - - /// Adjust Y position to match the tracking with the avatar - /// This function will adjust the vertical position of the tracking origin such that the tracking - /// matches the avatar. This function should preferably be executed when the player is in a base - /// position: either standing upright or sitting upright, depending on the playing pose. - /// This will prevent the avatar being in the air or in a crouching position when the player is - /// taller or smaller than the avatar itself. - /// It retains 1:1 tracking and the X/Z position of the player are not affected. - protected void SetTrackingHeightToAvatar() { - //#if !pUNITYXR - /* - float localNeckHeight; - if (headTarget.unity.cameraTransform == null || - UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.None || - headTarget.head.target.confidence.position <= 0 - ) { - - localNeckHeight = headTarget.neck.target.transform.position.y - transform.position.y; - } - else { - //Vector3 neckPosition = HeadMovements.CalculateNeckPosition(headTarget.unityVRHead.cameraTransform.position, headTarget.unityVRHead.cameraTransform.rotation, -headTarget.neck2eyes); - //localNeckHeight = neckPosition.y - transform.position.y; - localNeckHeight = headTarget.neck.target.transform.position.y - transform.position.y; - } - */ - Vector3 neckPosition; - if (headTarget.neck.target.confidence.position > 0.2F) - neckPosition = headTarget.neck.target.transform.position; - else { - Transform headTargetTransform = headTarget.head.target.transform; - neckPosition = HeadMovements.CalculateNeckPositionFromHead(headTargetTransform.position, headTargetTransform.rotation, headTarget.neck.bone.length); - } - - float playersNeckHeight = neckPosition.y - transform.position.y; - - float deltaY = avatarNeckHeight - playersNeckHeight; - AdjustTrackingHeight(deltaY); - //#endif - } - - //public void MoveTrackingHeightToAvatar() { - // Vector3 localNeckPosition; - // if (UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.None || headTarget.unity.cameraTransform == null) - // localNeckPosition = headTarget.neck.target.transform.position - transform.position; - // else - // localNeckPosition = HeadMovements.CalculateNeckPosition(headTarget.unity.cameraTransform.position, headTarget.unity.cameraTransform.rotation, -headTarget.neck2eyes) - transform.position; - // Vector3 delta = new Vector3(-localNeckPosition.x, avatarNeckHeight - localNeckPosition.y, -localNeckPosition.z); - // AdjustTracking(delta); - //} - - private void AdjustTrackingHeight(float deltaY) { - AdjustTracking(new Vector3(0, deltaY, 0)); - } - - /// Adjust the tracking origin of all trackers - /// The translation to apply to the tracking origin - public void AdjustTracking(Vector3 translation) { - foreach (HumanoidTracker tracker in trackers) - tracker.AdjustTracking(translation, Quaternion.identity); - } - - /// Adjust the tracking origin of all trackers - /// The translation to apply to the tracking origin - /// The rotation to apply to the tracking origin - public void AdjustTracking(Vector3 translation, Quaternion rotation) { - foreach (HumanoidTracker tracker in trackers) - tracker.AdjustTracking(translation, rotation); - } - - #endregion - - #region Configuration - /// - /// Scans the humanoid to retrieve all bones - /// - public void RetrieveBones() { - hipsTarget.RetrieveBones(); - headTarget.RetrieveBones(); - - leftHandTarget.RetrieveBones(); - rightHandTarget.RetrieveBones(); - leftFootTarget.RetrieveBones(); - rightFootTarget.RetrieveBones(); - } - #endregion - - #region Update - - protected void Update() { - Controllers.Clear(); - UpdatePose(); - traditionalInput.UpdateGameController(gameController); - UpdateTrackers(); - UpdateTargetsAndMovements(); - CalculateVelocityAcceleration(); - - UpdateAnimation(); - UpdatePoseEvent(); - } - - protected void FixedUpdate() { - DetermineCollision(); - CalculateMovement(); - CheckBodyPull(); - - CheckGround(); - - if (leftHandTarget.handMovements != null) - leftHandTarget.handMovements.FixedUpdate(); - if (rightHandTarget.handMovements != null) - rightHandTarget.handMovements.FixedUpdate(); - - } - - protected void LateUpdate() { - - PostAnimationCorrection(); - - CheckUpright(); - Controllers.EndFrame(); - } - - #endregion - - #region Stop - public void OnApplicationQuit() { -#if hLEAP - leapTracker.StopTracker(); -#endif -#if hNEURON - neuronTracker.StopTracker(); -#endif -#if hKINECT1 - kinect1.StopTracker(); -#endif -#if hKINECT2 - kinect2.StopTracker(); -#endif -#if hORBBEC - astra.StopTracker(); -#endif -#if hREALSENSE - realsense.StopTracker(); -#endif -#if hOPTITRACK - optitrack.StopTracker(); -#endif - } - #endregion - - #region Destroy - - #endregion - - public Vector3 up { - get { - return useGravity ? Vector3.up : transform.up; - } - } - - [HideInInspector] - private Vector3 lastHumanoidPos; - [HideInInspector] - private float lastNeckHeight; - [HideInInspector] - private Vector3 lastHeadPosition; - [HideInInspector] - private Quaternion lastHeadRotation; - [HideInInspector] - private float lastHeadDirection; - - public event OnNewNeckHeight OnNewNeckHeightEvent; - public delegate void OnNewNeckHeight(float neckHeight); - - private void CheckUpright() { - if (OnNewNeckHeightEvent == null) - return; - - GameObject realWorld = HumanoidControl.GetRealWorld(transform); - - // need to unscale the velocity, use localPosition ? - float headVelocity = (headTarget.neck.target.transform.position - lastHeadPosition).magnitude / Time.deltaTime; - float angularHeadVelocity = Quaternion.Angle(lastHeadRotation, headTarget.neck.target.transform.rotation) / Time.deltaTime; - - float deviation = Vector3.Angle(up, headTarget.transform.up); - - if (deviation < 4 && headVelocity < 0.02 && angularHeadVelocity < 3 && headVelocity + angularHeadVelocity > 0) { - - float neckHeight = (headTarget.transform.position.y - transform.position.y) / realWorld.transform.localScale.y; - if (Mathf.Abs(neckHeight - lastNeckHeight) > 0.01F) { - lastNeckHeight = neckHeight; - if (lastNeckHeight > 0) - OnNewNeckHeightEvent(lastNeckHeight); - } - } - } - - #region Calibration - - public void SetStartPosition() { - } - - /// Calibrates the tracking with the player - public void Calibrate() { - Debug.Log("Calibrate"); - foreach (HumanoidTracker tracker in _trackers) - tracker.Calibrate(); - - if (startPosition == StartPosition.AvatarPosition) - SetStartPosition(); - - switch (scaling) { - case ScalingType.SetHeightToAvatar: - SetTrackingHeightToAvatar(); - break; - case ScalingType.ScaleAvatarToTracking: - ScaleAvatarToTracking(); - break; - case ScalingType.ScaleTrackingToAvatar: - ScaleTrackingToAvatar(); - break; - default: - break; - } - } - - #endregion - - #region Pose - - protected virtual void UpdatePose() { - if (pose != null) { - pose.Show(this); - CopyRigToTargets(); - } - } - - #region Pose Event - - public delegate void OnHumanoidPose(HumanoidPose pose); - public event OnHumanoidPose onHumanoidPose; - - protected virtual void UpdatePoseEvent() { - if (onHumanoidPose != null) { - HumanoidPose pose = HumanoidPose.Retrieve(this, Time.time); - onHumanoidPose.Invoke(pose); - } - } - - public class HumanoidPose { - public ulong nwId; - public int humanoidId; - public float time; - public Bone[] bones; - public Blendshape[] blendshapes; - - public class Bone { - public Tracking.Bone id; - public Vector3 position; - public byte positionConfidence; - public Quaternion rotation; - public byte rotationConfidence; - } - - public class Blendshape { - public string name; - public int value; - } - - public static HumanoidPose Retrieve(HumanoidControl humanoid, float poseTime) { - HumanoidPose pose = new HumanoidPose() { - nwId = humanoid.nwId, - humanoidId = humanoid.humanoidId, - time = poseTime, - }; - - pose.bones = new Bone[3]; - pose.bones[0] = GetBonePose(humanoid.headTarget, Tracking.Bone.Head); - pose.bones[1] = GetBonePose(humanoid.leftHandTarget, Tracking.Bone.LeftHand); - pose.bones[2] = GetBonePose(humanoid.rightHandTarget, Tracking.Bone.RightHand); - - pose.blendshapes = null; - - return pose; - } - - protected static Bone GetBonePose(HumanoidTarget target, Tracking.Bone boneId) { - Bone poseBone = new Bone() { - id = boneId, - position = target.main.target.transform.position, - positionConfidence = (byte)(target.main.target.confidence.position * 255), - rotation = target.main.target.transform.rotation, - rotationConfidence = (byte)(target.main.target.confidence.rotation * 255), - }; - return poseBone; - } - } - - #endregion - - #endregion - - #region Movement - - /// - /// maximum forward speed in units(meters)/second - /// - public float forwardSpeed = 1; - /// - /// maximum backward speed in units(meters)/second - /// - public float backwardSpeed = 0.6F; - /// - /// maximum sideways speed in units(meters)/second - /// - public float sidewardSpeed = 1; - /// - /// maximum acceleration in units(meters)/second/second - /// value 0 = no maximum acceleration - /// - public float maxAcceleration = 1; - /// - /// maximum rotational speed in degrees/second - /// - public float rotationSpeed = 60; - - /// The maximum height of objects of the ground which do not stop the humanoid - public float stepOffset = 0.3F; - - /// Reduces the walking speed of the humanoid when in the neighbourhood of objects to reduce motion sickness. - public bool proximitySpeed = false; - /// The amount of influence of the proximity speed. 1=No influence, 0 = Maximum - public float proximitySpeedRate = 0.8f; - - /// Will move the pawn position when grabbing handles on static objects - public bool bodyPull = false; - - /// - /// The current velocity of the Pawn - /// - public Vector3 velocity; - - [HideInInspector] - protected Vector3 gravitationalVelocity; - - protected Vector3 inputMovement = Vector3.zero; - - #region Input/API - - /// - /// maximum forward speed in units(meters)/second - /// - //public float forwardSpeed = 1; - /// - /// maximum backward speed in units(meters)/second - /// - //public float backwardSpeed = 0.6F; - /// - /// maximum sideways speed in units(meters)/second - /// - //public float sidewardSpeed = 1; - /// - /// maximum acceleration in units(meters)/second/second - /// value 0 = no maximum acceleration - /// - //public float maxAcceleration = 1; - /// - /// maximum rotational speed in degrees/second - /// - //public float rotationSpeed = 60; - - /// Moves the humanoid forward - /// The distance in units(meters) to move forward. - public void MoveForward(float z) { - if (z > 0) - z *= forwardSpeed; - else - z *= backwardSpeed; - - if (maxAcceleration > 0 && curProximitySpeed >= 1) { - float accelerationStep = (z - targetVelocity.z); - float maxAccelerationStep = maxAcceleration * Time.deltaTime; - accelerationStep = Mathf.Clamp(accelerationStep, -maxAccelerationStep, maxAccelerationStep); - z = targetVelocity.z + accelerationStep; - } - - targetVelocity = new Vector3(targetVelocity.x, targetVelocity.y, z); - } - - /// Moves the humanoid sideward - /// The distance in units(meters) to move sideward. - public void MoveSideward(float x) { - x = x * sidewardSpeed; - - if (maxAcceleration > 0 && curProximitySpeed >= 1) { - float accelerationStep = (x - targetVelocity.x); - float maxAccelerationStep = maxAcceleration * Time.deltaTime; - accelerationStep = Mathf.Clamp(accelerationStep, -maxAccelerationStep, maxAccelerationStep); - x = targetVelocity.x + accelerationStep; - } - - targetVelocity = new Vector3(x, targetVelocity.y, targetVelocity.z); - //targetVelocity += Vector3.right * x; - } - - - /// Moves the humanoid - public virtual void Move(Vector3 velocity) { - targetVelocity = velocity; - } - - public void MoveWorldVector(Vector3 v) { - targetVelocity = hipsTarget.transform.InverseTransformDirection(v); - } - - public void Stop() { - targetVelocity = Vector3.zero; - } - - /// Rotate the humanoid - /// Rotates the humanoid along the Y axis - /// The speed in degrees per second - public void Rotate(float angularSpeed) { - angularSpeed *= Time.deltaTime * rotationSpeed; - //transform.RotateAround(hipsTarget.transform.position, hipsTarget.transform.up, angularSpeed); - transform.RotateAround(headTarget.transform.position, hipsTarget.transform.up, angularSpeed); - } - - /// Set the rotation angle along the Y axis - public void Rotation(float yAngle) { - Vector3 angles = transform.eulerAngles; - transform.rotation = Quaternion.Euler(angles.x, yAngle, angles.z); - } - - /// Quickly moves this humanoid to the given position - /// The position to move to - public void Dash(Vector3 targetPosition) { - MoveTo(targetPosition, MovementType.Dash); - } - - /// Teleports this humanoid to the given position - /// The position to move to - public void Teleport(Vector3 targetPosition) { - MoveTo(targetPosition, MovementType.Teleport); - } - - /// Teleports the humanoid in the forward direction - /// The distance to teleport - /// The forward direction is determined by the hips target forward. - public void TeleportForward(float distance = 1) { - MoveTo(transform.position + hipsTarget.transform.forward * distance); - } - - /// Moves the humanoid to the given position - /// The type of movement to use - public void MoveTo(Vector3 position, MovementType movementType = MovementType.Teleport) { - switch (movementType) { - case MovementType.Teleport: - TransformMovements.Teleport(transform, position); - break; - case MovementType.Dash: - StartCoroutine(TransformMovements.DashCoroutine(transform, position)); - break; - default: - break; - } - } - - /// Rotation animation to reach the given rotation - /// The speed of the rotation is determined by the #rotationSpeed - /// The target rotation - public IEnumerator RotateTo(Quaternion targetRotation) { - float angle; - float maxAngle; - do { - maxAngle = rotationSpeed * Time.deltaTime; - transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, maxAngle); - angle = Quaternion.Angle(transform.rotation, targetRotation); - yield return new WaitForSeconds(0.01F); - } while (angle > maxAngle); - yield return null; - } - - /// - /// Rotation animation to look at the given position - /// - /// The speed of the rotation is determined by the #rotationSpeed - /// The position to look at - /// - public IEnumerator LookAt(Vector3 targetPosition) { - Quaternion targetRotation = Quaternion.LookRotation(targetPosition - transform.position); - yield return RotateTo(targetRotation); - } - - /// - /// Movement animation to reach the given position - /// - /// The pawn will walk to the given position. The speed of the movement is determined by #forwardSpeed. - /// Any required rotation will be limited by #rotationSpeed - /// The position to where the pawn should walk - /// - public IEnumerator WalkTo(Vector3 targetPosition) { - yield return LookAt(targetPosition); - - float totalDistance = Vector3.Distance(transform.position, targetPosition); - float distance = totalDistance; - do { - // Don't rotate when you're close to the target position - if (distance > 0.2F) - transform.LookAt(targetPosition); - - transform.rotation = Quaternion.AngleAxis(transform.eulerAngles.y, Vector3.up); - if (distance > 0.5F) // make dependent on maxAcceleration? - MoveForward(1); - else { - float f = 1 - (distance / 0.5F); - Vector3 worldVector = (targetPosition - transform.position).normalized * (1 - (f * f * f)); - //if (worldVector.magnitude < 0.15F) - // worldVector = worldVector.normalized * 0.15F; // * Time.fixedDeltaTime ; - MoveWorldVector(worldVector); - } - Vector3 direction = targetPosition - transform.position; - direction.y = 0; - distance = direction.magnitude; - yield return new WaitForSeconds(0.01F); - } while (distance > 0.01F); - Stop(); - - transform.position = targetPosition; - yield return null; - } - - /// - /// Movement animation to reach the given position and rotation - /// - /// The pawn will walk to the given position and rotation. The speed of the movement is determined by #forwardSpeed. - /// Any required rotation will be limited by #rotationSpeed - /// The position to where the pawn should walk - /// The rotation the pawn should have at the end - /// - public IEnumerator WalkTo(Vector3 targetPosition, Quaternion targetRotation) { - yield return WalkTo(targetPosition); - yield return RotateTo(targetRotation); - } - /// - /// Lets the Humanoid jump up with the given take off velocity - /// - /// The vertical velocity to start the jump - public void Jump(float takeoffVelocity) { - if (ground == null) - return; - - float verticalVelocity = velocity.y + takeoffVelocity; - gravitationalVelocity -= new Vector3(0, -verticalVelocity, 0); - float y = targetVelocity.y + verticalVelocity; - targetVelocity = new Vector3(targetVelocity.x, y, targetVelocity.z); - - } - - #endregion - - #region Checks - - [HideInInspector] - public Vector3 targetVelocity; - //[HideInInspector] - //public Vector3 velocity; - [HideInInspector] - public Vector3 acceleration; - [HideInInspector] - public float turningVelocity; - - protected void CalculateMovement() { - Vector3 translationVector = CheckMovement(); - transform.position += translationVector * Time.fixedDeltaTime; - if (targetVelocity.y != 0) { - if (ground == null) - targetVelocity.y = 0; - transform.position += targetVelocity.y * Vector3.up * Time.fixedDeltaTime; - } - } - - private float curProximitySpeed = 1; - - public Vector3 CheckMovement() { - Vector3 newVelocity = targetVelocity; - - if (proximitySpeed) { - curProximitySpeed = CalculateProximitySpeed(bodyCapsule, curProximitySpeed); - newVelocity *= curProximitySpeed; - } - - Vector3 inputDirection = hipsTarget.transform.TransformDirection(newVelocity); - - if (physics && (collided || (!proximitySpeed && triggerEntered))) { - float angle = Vector3.Angle(inputDirection, hitNormal); - if (angle > 90) { - targetVelocity = Vector3.zero; - return Vector3.zero; - } - } - - return inputDirection; - } - - private float CalculateProximitySpeed(CapsuleCollider cc, float curProximitySpeed) { - if (triggerEntered) { - if (cc.radius > 0.25f && targetVelocity.magnitude > 0) - curProximitySpeed = CheckDecreaseProximitySpeed(cc, curProximitySpeed); - } - else { - if (curProximitySpeed < 1 && targetVelocity.magnitude > 0) - curProximitySpeed = CheckIncreaseProximitySpeed(cc, curProximitySpeed); - } - return curProximitySpeed; - } - - private float CheckDecreaseProximitySpeed(CapsuleCollider cc, float curProximitySpeed) { - RaycastHit[] hits = Physics.CapsuleCastAll(hipsTarget.transform.position + (cc.radius - 0.8f) * Vector3.up, hipsTarget.transform.position - (cc.radius - 1.2f) * Vector3.up, cc.radius - 0.05f, velocity, 0.04f); - bool collision = false; - for (int i = 0; i < hits.Length && collision == false; i++) { - if (!IsMyRigidbody(hits[i].rigidbody)) { - collision = true; - cc.radius -= 0.05f / proximitySpeedRate; - cc.height += 0.05f / proximitySpeedRate; - curProximitySpeed = EaseIn(1, (-0.8f), 1 - cc.radius, 0.75f); - } - } - return curProximitySpeed; - } - - private float CheckIncreaseProximitySpeed(CapsuleCollider cc, float curProximitySpeed) { - Vector3 capsuleCenter = hipsTarget.hips.bone.transform.position + cc.center; - Vector3 offset = ((cc.height - cc.radius) / 2) * Vector3.up; - Vector3 point1 = capsuleCenter + offset; - Vector3 point2 = capsuleCenter - offset; - Collider[] results = Physics.OverlapCapsule(point1, point2, cc.radius + 0.05F); - - /* - RaycastHit[] hits = Physics.CapsuleCastAll(hipsTarget.transform.position + (cc.radius - 0.75f) * Vector3.up, hipsTarget.transform.position - (cc.radius - 1.15f) * Vector3.up, cc.radius, inputDirection, 0.04f); - bool collision = false; - for (int i = 0; i < hits.Length && collision == false; i++) { - if (hits[i].rigidbody == null) { - collision = true; - } - } - */ - - bool collision = false; - for (int i = 0; i < results.Length; i++) { - if (!results[i].isTrigger && !IsMyRigidbody(results[i].attachedRigidbody)) { - //results[i].attachedRigidbody != humanoidRigidbody && results[i].attachedRigidbody != characterRigidbody && - //results[i].attachedRigidbody != headTarget.headRigidbody && - //results[i].attachedRigidbody != leftHandTarget.handRigidbody && results[i].attachedRigidbody != rightHandTarget.handRigidbody - //) { - - collision = true; - } - } - - if (collision == false) { - cc.radius += 0.05f / proximitySpeedRate; - cc.height -= 0.05f / proximitySpeedRate; - curProximitySpeed = EaseIn(1, (-0.8f), 1 - cc.radius, 0.75f); - } - return curProximitySpeed; - } - - private static float EaseIn(float start, float distance, float elapsedTime, float duration) { - // clamp elapsedTime so that it cannot be greater than duration - elapsedTime = (elapsedTime > duration) ? 1.0f : elapsedTime / duration; - return distance * elapsedTime * elapsedTime + start; - } - - #endregion - - #region Collisions - - public bool triggerEntered; - public bool collided; - public Vector3 hitNormal = Vector3.zero; - - [HideInInspector] - public Rigidbody humanoidRigidbody; - [HideInInspector] - public Rigidbody characterRigidbody; - [HideInInspector] - public CapsuleCollider bodyCapsule; - [HideInInspector] - public CapsuleCollider bodyCollider; - [HideInInspector] - private readonly float colliderRadius = 0.15F; - - private void AddCharacterColliders() { - if (avatarRig == null || hipsTarget.hips.bone.transform == null || isRemote || !physics) - return; - - Transform collidersTransform = hipsTarget.hips.bone.transform.Find("Character Colliders"); - if (collidersTransform != null) - return; - - GameObject collidersObject = hipsTarget.hips.bone.transform.gameObject; - - HumanoidCollisionHandler collisionHandler = collidersObject.AddComponent(); - collisionHandler.humanoid = this; - - characterRigidbody = collidersObject.GetComponent(); - if (characterRigidbody == null) - characterRigidbody = collidersObject.AddComponent(); - if (characterRigidbody != null) { - characterRigidbody.mass = 1; - characterRigidbody.useGravity = false; - characterRigidbody.isKinematic = true; - } - - if (generateColliders) { - float avatarHeight = avatarNeckHeight * 8 / 7; - Vector3 colliderCenter = Vector3.up * (stepOffset / 2); - - CheckBodyCollider(collidersObject); - - GameObject bodyCapsuleObject; - Transform bodyCapsuleTransform = transform.Find("Body Capsule"); - if (bodyCapsuleTransform != null) - bodyCapsuleObject = bodyCapsuleTransform.gameObject; - else - bodyCapsuleObject = new GameObject("Body Capsule"); - - bodyCapsuleObject.tag = this.gameObject.tag; - bodyCapsuleObject.layer = this.gameObject.layer; - bodyCapsuleObject.transform.parent = this.transform; //collidersObject.transform; - bodyCapsuleObject.transform.position = hipsTarget.hips.bone.transform.position; - float hipsYangle = hipsTarget.hips.bone.targetRotation.eulerAngles.y; - bodyCapsuleObject.transform.rotation = Quaternion.AngleAxis(hipsYangle, up); - bodyCapsule = bodyCapsuleObject.GetComponent(); - if (bodyCapsule == null) - bodyCapsule = bodyCapsuleObject.AddComponent(); - - // We use this only for the capsulecast when colliding - bodyCapsule.enabled = false; - - if (bodyCapsule != null) { - bodyCapsule.isTrigger = true; - if (proximitySpeed) { - bodyCapsule.height = 0.80F; - bodyCapsule.radius = 1F; - } - else { - bodyCapsule.height = avatarHeight - stepOffset; - bodyCapsule.radius = colliderRadius; - } - bodyCapsule.center = colliderCenter; - } - } - - humanoidRigidbody = gameObject.GetComponent(); - if (humanoidRigidbody == null) - humanoidRigidbody = gameObject.AddComponent(); - if (humanoidRigidbody != null) { - humanoidRigidbody.mass = 1; - humanoidRigidbody.useGravity = false; - humanoidRigidbody.isKinematic = true; - } - } - - private void CheckBodyCollider(GameObject collidersObject) { - // Important explanation! - // The humanoid colliders need to be trigger colliders - // because they will detect both static colliders and rigibodies - // Normal colliders on kinematic rigidbodies only detect - // rigidbodies reliably, static colliders are not detected reliably. - - HumanoidTarget.TargetedBone spineBone = hipsTarget.spine; - if (spineBone == null) - spineBone = hipsTarget.hips; - - - // Add gameobject with target rotation to ensure the direction of the capsule - GameObject spineColliderObject = new GameObject("Spine Collider") { - tag = this.gameObject.tag, - layer = this.gameObject.layer - }; - spineColliderObject.transform.parent = spineBone.bone.transform; - spineColliderObject.transform.localPosition = Vector3.zero; - float hipsYangle = hipsTarget.hips.bone.targetRotation.eulerAngles.y; - spineColliderObject.transform.rotation = Quaternion.AngleAxis(hipsYangle, up); - - bodyCollider = spineColliderObject.AddComponent(); - bodyCollider.isTrigger = true; - bodyCollider.height = avatarNeckHeight - (hipsTarget.hips.bone.transform.position.y - avatarRig.transform.position.y) + 0.1F; - bodyCollider.radius = colliderRadius - 0.05F; - bodyCollider.center = new Vector3(0, bodyCollider.height / 2, 0); - - HumanoidTarget.BoneTransform leftUpperLeg = leftFootTarget.upperLeg.bone; - // Add gameobject with target rotation to ensure the direction of the capsule - GameObject leftColliderObject = new GameObject("Left Leg Collider") { - tag = this.gameObject.tag, - layer = this.gameObject.layer - }; - leftColliderObject.transform.parent = leftUpperLeg.transform; - leftColliderObject.transform.localPosition = Vector3.zero; - leftColliderObject.transform.rotation = leftFootTarget.upperLeg.bone.targetRotation; - - CapsuleCollider leftUpperLegCollider = leftColliderObject.AddComponent(); - leftUpperLegCollider.isTrigger = true; - leftUpperLegCollider.height = leftUpperLeg.length; - leftUpperLegCollider.radius = 0.08F; - leftUpperLegCollider.center = new Vector3(0, -leftUpperLeg.length / 2, 0); - - HumanoidTarget.BoneTransform rightUpperLeg = rightFootTarget.upperLeg.bone; - // Add gameobject with target rotation to ensure the direction of the capsule - GameObject rightColliderObject = new GameObject("Right Leg Collider") { - tag = this.gameObject.tag, - layer = this.gameObject.layer - }; - rightColliderObject.transform.parent = rightUpperLeg.transform; - rightColliderObject.transform.localPosition = Vector3.zero; - rightColliderObject.transform.rotation = rightFootTarget.upperLeg.bone.targetRotation; - - CapsuleCollider rightUpperLegCollider = rightColliderObject.AddComponent(); - rightUpperLegCollider.isTrigger = true; - rightUpperLegCollider.height = rightUpperLeg.length; - rightUpperLegCollider.radius = 0.08F; - rightUpperLegCollider.center = new Vector3(0, -rightUpperLeg.length / 2, 0); - } - - private void DetermineCollision() { - if (proximitySpeed) { - //float angle = Vector3.Angle(hitNormal, targetVelocity); - collided = (triggerEntered && bodyCapsule.radius <= 0.25f); - } - else - collided = triggerEntered; - - if (!collided) - hitNormal = Vector3.zero; - } - - public bool IsMyRigidbody(Rigidbody rigidbody) { - return - rigidbody != null && ( - rigidbody == humanoidRigidbody || - rigidbody == characterRigidbody || - rigidbody == headTarget.headRigidbody || - rigidbody == leftHandTarget.handRigidbody || - rigidbody == rightHandTarget.handRigidbody - ); - } - - #endregion - - #region Ground - - /// - /// The ground Transform on which the pawn is standing - /// - /// When the pawn is not standing on the ground, the value is null - public Transform ground; - - [HideInInspector] - protected Transform lastGround; - - /// - /// The velocity of the ground on which the pawn is standing - /// - [HideInInspector] - public Vector3 groundVelocity; - /// - /// The angular velocity of the ground on which the pawn is standing - /// - /// The velocity is in degrees per second along the Y axis of the pawn - [HideInInspector] - public float groundAngularVelocity; - - [HideInInspector] - protected Vector3 lastGroundPosition = Vector3.zero; - [HideInInspector] - protected float lastGroundAngle = 0; - - protected void CheckGround() { - CheckGrounded(); - CheckGroundMovement(); - } - - // Leg Length Correction is used to get the feet on the ground when the target bone length of the legs - // is bigger than the bone length of the avatar. - // This normally does not happen, but when using animations, the target bones lengths are overridden. - // So probably this setting should only be used when using animations. - public bool useLegLengthCorrection = false; - private float legLengthCorrection = 0; - protected void CheckGrounded() { - Vector3 footBase = GetHumanoidPosition(); - //footBase += legLengthBias * Vector3.up; - // This can lead to the humanoid fall through the ground in some cases. - // Maybe this is caused by the feet moving forward animation, but I am not sure yet. - // Workaround is to use - // footBase = transform.position - // But this will lead to floating avatars when the user's position is not at the origin - - Vector3 groundNormal; - float distance = GetDistanceToGroundAt(footBase, stepOffset, out ground, out groundNormal); - distance -= legLengthCorrection; - if (distance > 0.01F) { - gravitationalVelocity = Vector3.zero; - if (!isRemote) - transform.Translate(0, distance, 0); - } - else if (distance < -0.02F) { - ground = null; - if (!leftHandTarget.GrabbedStaticObject() && !rightHandTarget.GrabbedStaticObject()) { - if (useGravity) - Fall(); - } - } - - if (useLegLengthCorrection && ground != null) { - Vector3 footBoneDistance = Vector3.zero; - if (leftFootTarget.ground != null) - footBoneDistance = leftFootTarget.foot.bone.transform.position - leftFootTarget.foot.target.transform.position; - else if (rightFootTarget.ground != null) - footBoneDistance = rightFootTarget.foot.bone.transform.position - rightFootTarget.foot.target.transform.position; - - legLengthCorrection = 0.99F * legLengthCorrection + 0.01F * footBoneDistance.y; - } - } - - public float GetDistanceToGroundAt(Vector3 position, float maxDistance) { - Transform _ground; - Vector3 _normal; - return GetDistanceToGroundAt(position, maxDistance, out _ground, out _normal); - } - - public float GetDistanceToGroundAt(Vector3 position, float maxDistance, out Transform ground, out Vector3 normal) { - normal = up; - - Vector3 rayStart = position + normal * maxDistance; - Vector3 rayDirection = -normal; - //Debug.DrawRay(rayStart, rayDirection * maxDistance * 2, Color.magenta); - - int layerMask = Physics.DefaultRaycastLayers; - int noHumanoidLayer = LayerMask.NameToLayer("NoHumanoid"); - if (noHumanoidLayer != -1) - layerMask = layerMask & ~(1 << noHumanoidLayer); - - RaycastHit[] hits = Physics.RaycastAll(rayStart, rayDirection, maxDistance * 2, layerMask, QueryTriggerInteraction.Ignore); - - if (hits.Length == 0) { - ground = null; - return -maxDistance; - } - - int closestHit = 0; - bool foundClosest = false; - for (int i = 0; i < hits.Length; i++) { - if ((hits[i].rigidbody == null || hits[i].rigidbody != characterRigidbody || isRemote) && // remote humanoids do not have a characterRigidbody - hits[i].transform != headTarget.transform && - hits[i].distance <= hits[closestHit].distance) { - closestHit = i; - foundClosest = true; - } - } - if (!foundClosest) { - ground = null; - return -maxDistance; - } - - ground = hits[closestHit].transform; - normal = hits[closestHit].normal; - float distance = maxDistance - hits[closestHit].distance; - return distance; - } - - protected void CheckGroundMovement() { - if (ground == null) { - lastGround = null; - lastGroundPosition = Vector3.zero; - lastGroundAngle = 0; - return; - } - - if (ground == lastGround) { - Vector3 groundTranslation = ground.position - lastGroundPosition; - groundVelocity = groundTranslation / Time.fixedDeltaTime; - //Debug.Log(ground.position.x + " " + lastGroundPosition.x + " " + Time.fixedDeltaTime + " " + groundVelocity.x); - - float groundRotation = ground.eulerAngles.y - lastGroundAngle; - groundAngularVelocity = groundRotation / Time.fixedDeltaTime; - - if (this.transform.root != ground.root) { - transform.Translate(groundTranslation, Space.World); - transform.RotateAround(ground.position, Vector3.up, groundRotation); - } - } - - lastGround = ground; - lastGroundPosition = ground.position; - lastGroundAngle = ground.eulerAngles.y; - } - - #endregion - - #region Body Pull - - protected virtual void CheckBodyPull() { - if (!bodyPull) - return; - - bool leftGrabbedStatic = leftHandTarget.GrabbedStaticObject(); - bool rightGrabbedStatic = rightHandTarget.GrabbedStaticObject(); - - if (leftGrabbedStatic && rightGrabbedStatic) - KinematicBodyControlTwoHanded(); - else if (leftGrabbedStatic) - KinematicBodyControlOneHanded(leftHandTarget); - else if (rightGrabbedStatic) - KinematicBodyControlOneHanded(rightHandTarget); - } - - protected void KinematicBodyControlOneHanded(HandTarget handTarget) { - // Translation - Vector3 pullVector = handTarget.hand.bone.transform.position - handTarget.hand.target.transform.position; - - TranslateBody(this.transform, pullVector); - } - - protected void KinematicBodyControlTwoHanded() { - // Translation - Vector3 leftPullVector = leftHandTarget.hand.bone.transform.position - leftHandTarget.hand.target.transform.position; - Vector3 rightPullVector = rightHandTarget.hand.bone.transform.position - rightHandTarget.hand.target.transform.position; - Vector3 pullVector = (leftPullVector + rightPullVector) / 2; - - TranslateBody(this.transform, pullVector); - } - - private void TranslateBody(Transform transform, Vector3 translation) { - var collisionAngle = Vector3.Angle(translation, hitNormal); - if (!collided || (collided && collisionAngle <= 90f)) - transform.Translate(translation, Space.World); - } - - #endregion - - [HideInInspector] - private float lastTime; - - private void CalculateVelocityAcceleration() { - if (lastTime > 0) { - float deltaTime = Time.time - lastTime; - - Vector3 localVelocity = -groundVelocity; - if (avatarRig != null) { - Vector3 headTranslation = headTarget.neck.target.transform.position - lastHeadPosition; - if (headTranslation.magnitude == 0) - // We assume we did not get an update - needs to be improved though - // Especially with networking, position updates occur less frequent than frame updates - return; - Vector3 localHeadTranslation = headTarget.neck.target.transform.InverseTransformDirection(headTranslation); - localVelocity += localHeadTranslation / deltaTime; - - float headDirection = headTarget.neck.target.transform.eulerAngles.y - lastHeadDirection; - float localHeadDirection = Angle.Normalize(headDirection); - turningVelocity = (localHeadDirection / deltaTime) / 360; - } - - // Remote humanoids will receive the velocity from the network - if (!isRemote) { - Vector3 rootTranslation = transform.position - lastHumanoidPos; - Vector3 rootVelocity = rootTranslation / deltaTime; - velocity = velocity * 0.8F + (rootVelocity + localVelocity) * 0.2F; - } - } - lastTime = Time.time; - - lastHumanoidPos = transform.position; - lastHeadPosition = headTarget.neck.target.transform.position; - lastHeadRotation = headTarget.neck.target.transform.rotation; - lastHeadDirection = headTarget.neck.target.transform.eulerAngles.y; - } - - #region Animation - public string animatorParameterForward; - public string animatorParameterSideward; - public string animatorParameterRotation; - public string animatorParameterHeight; - - // needed for the Editor - public int animatorParameterForwardIndex; - public int animatorParameterSidewardIndex; - public int animatorParameterRotationIndex; - public int animatorParameterHeightIndex; - - private void UpdateAnimation() { - if (targetsRig.runtimeAnimatorController != null) { - if (animatorParameterForward != null && animatorParameterForward != "") { - targetsRig.SetFloat(animatorParameterForward, velocity.z); - } - if (animatorParameterSideward != null && animatorParameterSideward != "") { - targetsRig.SetFloat(animatorParameterSideward, velocity.x); - } - if (animatorParameterRotation != null && animatorParameterRotation != "") { - targetsRig.SetFloat(animatorParameterRotation, turningVelocity); - } - - if (animatorParameterHeight != null && animatorParameterHeight != "") { - float relativeHeadHeight = headTarget.neck.target.transform.position.y - avatarNeckHeight; - targetsRig.SetFloat(animatorParameterHeight, relativeHeadHeight); - } - } - } - - private void PostAnimationCorrection() { - - if (animatorEnabled && animatorController != null) { - // copy animator root motion to the humanoid - if (targetsRig.GetCurrentAnimatorClipInfoCount(0) > 0) { - this.transform.position = targetsRig.transform.position; - this.transform.rotation = targetsRig.transform.rotation; - - // As targets rig is probably a child of this.transform, - // We need to restore the position/rotation of the targetsRig. - targetsRig.transform.position = this.transform.position; - targetsRig.transform.rotation = this.transform.rotation; - } - - // tracking should override animation pose - if (headTarget.head.target.confidence.position > 0.2F) - headTarget.head.target.transform.position = headTarget.transform.position; - if (headTarget.head.target.confidence.rotation > 0.2F) - headTarget.head.target.transform.rotation = headTarget.transform.rotation; - - if (leftHandTarget.hand.target.confidence.position > 0.2F) - leftHandTarget.hand.target.transform.position = leftHandTarget.transform.position; - if (leftHandTarget.hand.target.confidence.rotation > 0.2F) - leftHandTarget.hand.target.transform.rotation = leftHandTarget.transform.rotation; - - if (rightHandTarget.hand.target.confidence.position > 0.2F) - rightHandTarget.hand.target.transform.position = rightHandTarget.transform.position; - if (rightHandTarget.hand.target.confidence.rotation > 0.2F) - rightHandTarget.hand.target.transform.rotation = rightHandTarget.transform.rotation; - - } - } - - public void SetAnimationParameterBool(string parameterName, bool boolValue) { - targetsRig.SetBool(parameterName, boolValue); - } - - public void SetAnimationParameterFloat(string parameterName, float floatValue) { - targetsRig.SetFloat(parameterName, floatValue); - } - - public void SetAnimationParameterInt(string parameterName, int intValue) { - targetsRig.SetInteger(parameterName, intValue); - } - - public void SetAnimationParameterTrigger(string parameterName) { - targetsRig.SetTrigger(parameterName); - } - - #endregion - - [HideInInspector] - private float lastLocalHipY; - protected void Fall() { - gravitationalVelocity += Physics.gravity * Time.deltaTime; - - if (hipsTarget.hips.bone.transform == null) - return; - - // Only fall when the avatar is not moving vertically - // This to prevent physical falling interfering with virtual falling - Vector3 hipsPosition = hipsTarget.hips.bone.transform != null ? hipsTarget.hips.bone.transform.position : hipsTarget.hips.target.transform.position; - float localHipY = hipsPosition.y - transform.position.y; - float hipsTranslationY = localHipY - lastLocalHipY; - if (Mathf.Abs(hipsTranslationY) < 0.01F) - transform.Translate(gravitationalVelocity * Time.deltaTime); - - lastLocalHipY = localHipY; - } - - #endregion Movement - - /// Gets the Real World GameObject for this Humanoid - /// The root transform of the humanoid - public static GameObject GetRealWorld(Transform transform) { - Transform realWorldTransform = transform.Find("Real World"); - if (realWorldTransform != null) - return realWorldTransform.gameObject; - - GameObject realWorld = new GameObject("Real World"); - realWorld.transform.parent = transform; - realWorld.transform.localPosition = Vector3.zero; - realWorld.transform.localRotation = Quaternion.identity; - return realWorld; - } - - //public Transform GetRealWorld() { - // GameObject realWorld = GetRealWorld(this.transform); - // return realWorld.transform; - //} - - /// Tries to find a tracker GameObject by name - /// The Real World GameOject in which the tracker should be - /// The name of the tracker GameObject to find - public static GameObject FindTrackerObject(GameObject realWorld, string trackerName) { - Transform rwTransform = realWorld.transform; - - for (int i = 0; i < rwTransform.childCount; i++) { - if (rwTransform.GetChild(i).name == trackerName) - return rwTransform.GetChild(i).gameObject; - } - return null; - } - - /// - /// The humanoid can be on a differentlocation than the humanoid.transform - /// because the tracking can move the humanoid around independently - /// This function takes this into account - /// - /// The position of the humanoid - public Vector3 GetHumanoidPosition() { - Vector3 footPosition = (leftFootTarget.foot.target.transform.position + rightFootTarget.foot.target.transform.position) / 2; - Vector3 footBase = new Vector3(footPosition.x, transform.position.y, footPosition.z); - return footBase; - } - //public Vector3 GetHumanoidPosition2() { - // Vector3 footPosition = (leftFootTarget.foot.bone.transform.position + rightFootTarget.foot.bone.transform.position) / 2; - // float lowestFoot = Mathf.Min(leftFootTarget.foot.bone.transform.position.y, rightFootTarget.foot.bone.transform.position.y); - // Vector3 footBase = new Vector3(footPosition.x, lowestFoot - leftFootTarget.soleThicknessFoot, footPosition.z); - // return footBase; - //} - //public Vector3 GetHumanoidPosition3() { - // Vector3 hipsPosition = hipsTarget.hips.bone.transform.position; - // Vector3 footPosition = hipsPosition - up * (leftFootTarget.upperLeg.bone.length + leftFootTarget.lowerLeg.bone.length + leftFootTarget.soleThicknessFoot); - // return footPosition; - //} - //public Vector3 GetHumanoidPosition4() { - // Vector3 neckPosition = headTarget.neck.bone.transform.position; - // Vector3 footBase = neckPosition - up * avatarNeckHeight; - // return footBase; - //} - //public Vector3 GetHumanoidPosition5() { - // Vector3 footPosition = (leftFootTarget.foot.target.transform.position + rightFootTarget.foot.target.transform.position) / 2; - // float lowestFoot = Mathf.Min(leftFootTarget.foot.target.transform.position.y, rightFootTarget.foot.target.transform.position.y); - // Vector3 footBase = new Vector3(footPosition.x, lowestFoot - leftFootTarget.soleThicknessFoot, footPosition.z); - // return footBase; - //} - - #region Networking - - /// Is true when this is a remote pawn - /// Remote pawns are not controlled locally, but are controlled from another computer. - /// These are copies of the pawn on that other computer and are updated via messages - /// exchanges on a network. - public bool isRemote = false; - /// The Id of this pawn across the network - public ulong nwId; - - /// The local Id of this humanoid - public int id = -1; - - #endregion - - #region Humanoid store - - private static HumanoidControl[] _allHumanoids = new HumanoidControl[0]; - public static HumanoidControl[] allHumanoids { - get { return _allHumanoids; } - } - - public delegate void OnNewHumanoid(HumanoidControl humanoid); - public static event OnNewHumanoid onNewHumanoid; - - public void AddHumanoid() { - if (HumanoidExists(this)) - return; - - ExtendHumanoids(this); - - if (humanoidNetworking == null) - humanoidNetworking = HumanoidNetworking.GetLocalHumanoidNetworking(); - if (!isRemote && humanoidNetworking != null) - humanoidNetworking.InstantiateHumanoid(this); - - if (onNewHumanoid != null) - onNewHumanoid(this); - } - - private static void ExtendHumanoids(HumanoidControl humanoid) { - HumanoidControl[] newAllHumanoids = new HumanoidControl[_allHumanoids.Length + 1]; - for (int i = 0; i < _allHumanoids.Length; i++) { - newAllHumanoids[i] = _allHumanoids[i]; - } - _allHumanoids = newAllHumanoids; - _allHumanoids[_allHumanoids.Length - 1] = humanoid; - humanoid.humanoidId = _allHumanoids.Length - 1; - } - - private void RemoveHumanoid() { - if (!HumanoidExists(this)) - return; - - if (!isRemote && humanoidNetworking != null) - humanoidNetworking.DestroyHumanoid(this); - - RemoveHumanoid(this); - - } - - private static void RemoveHumanoid(HumanoidControl humanoid) { - HumanoidControl[] newAllHumanoids = new HumanoidControl[_allHumanoids.Length - 1]; - int j = 0; - for (int i = 0; i < _allHumanoids.Length; i++) { - if (_allHumanoids[i] != humanoid) { - newAllHumanoids[j] = _allHumanoids[i]; - j++; - } - } - _allHumanoids = newAllHumanoids; - } - - private static bool HumanoidExists(HumanoidControl humanoid) { - for (int i = 0; i < _allHumanoids.Length; i++) { - if (humanoid == _allHumanoids[i]) - return true; - } - return false; - } - - public static HumanoidControl[] AllVisibleHumanoids(Camera camera) { - HumanoidControl[] visibleHumanoids = new HumanoidControl[_allHumanoids.Length]; - - int j = 0; - for (int i = 0; i < _allHumanoids.Length; i++) { - if (_allHumanoids[i].IsVisible(camera)) { - visibleHumanoids[j] = _allHumanoids[i]; - j++; - } - } - - HumanoidControl[] allVisibleHumanoids = new HumanoidControl[j]; - for (int i = 0; i < j; i++) { - allVisibleHumanoids[i] = visibleHumanoids[i]; - } - return allVisibleHumanoids; - } - - public bool IsVisible(Camera camera) { - Vector3 screenPosition = camera.WorldToScreenPoint(headTarget.transform.position); - return (screenPosition.x > 0 && screenPosition.x < camera.pixelWidth && - screenPosition.y > 0 && screenPosition.y < camera.pixelHeight); - } - - #endregion - } -} - - diff --git a/Runtime/HumanoidFree/Scripts/HumanoidControl.cs.meta b/Runtime/HumanoidFree/Scripts/HumanoidControl.cs.meta deleted file mode 100644 index 3b4ff89..0000000 --- a/Runtime/HumanoidFree/Scripts/HumanoidControl.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: b8af60788a29495468933ff82a4527ba -timeCreated: 1490619143 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 1000 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs b/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs deleted file mode 100644 index ccde0b1..0000000 --- a/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace Passer.Humanoid { - - /// \author PasserVR - /// \version 4.0 - /// \mainpage %Humanoid Control for Unity - /// - /// Note: this documentation is still work in progress... - /// - /// Main components - /// --------------- - /// * \ref HumanoidControl "Humanoid Control" - /// * \ref Site "Humanoid Site" - /// * \ref Visitor "Humanoid Visitor" - /// - /// Devices - /// ------- - /// * \ref UnityXRTracker "UnityXR" - /// * \ref LeapTracker "Leap Motion" - /// - /// Input - /// ----- - /// * ControllerInput - /// * InteractionPointer - /// - /// Generic tools - /// ------------- - /// * TeleportTarget - /// * Socket - /// * Handle - /// - /// Networking - /// ---------- - /// * NetworkingStarter - /// -} diff --git a/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs.meta b/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs.meta deleted file mode 100644 index 8937544..0000000 --- a/Runtime/HumanoidFree/Scripts/HumanoidControl_Doc.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: de6fdf9263d1e0043b365c4ed3734150 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction.meta b/Runtime/HumanoidFree/Scripts/Interaction.meta deleted file mode 100644 index a19f0d3..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 6d391520c441b7e43989fee999be0394 -folderAsset: yes -timeCreated: 1528730422 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs b/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs deleted file mode 100644 index 985c910..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs +++ /dev/null @@ -1,1018 +0,0 @@ -using UnityEngine; -#if hNW_UNET -using UnityEngine.Networking; -#endif - -namespace Passer.Humanoid { - using Passer.Tracking; - - public partial class HandTarget { - - protected static void DebugLog(string s) { - //Debug.Log(s); - } - - public enum GrabType { - HandGrab, - Pinch - } - - #region Init - - public virtual void StartInteraction() { - // Remote humanoids should not interact - if (humanoid.isRemote) - return; - - grabSocket.handTarget = this; - - // Gun Interaction pointer creates an Event System - // First solve that before enabling this warning - // because the warning will appear in standard Grocery Store demo scene - - inputModule = humanoid.GetComponent(); - if (inputModule == null) { - inputModule = Object.FindObjectOfType(); - if (inputModule == null) { - inputModule = humanoid.gameObject.AddComponent(); - } - } - - inputModule.EnableTouchInput(humanoid, isLeft, 0); - } - - public HandSocket CreateGrabSocket() { - if (hand.bone.transform == null) - return null; - - HandSocket socket = hand.bone.transform.GetComponentInChildren(); - if (socket != null) - return socket; - - GameObject socketObj = new GameObject("Grab Socket"); - Transform socketTransform = socketObj.transform; - socketTransform.parent = hand.bone.transform; - MoveToPalm(socketTransform); - - socket = socketObj.AddComponent(); - socket.handTarget = this; - return socket; - } - - public Socket CreatePinchSocket() { - if (hand.bone.transform == null) - return null; - - GameObject socketObj = new GameObject("Pinch Socket"); - Transform socketTransform = socketObj.transform; - socketTransform.parent = hand.bone.transform; - socketTransform.rotation = hand.bone.targetRotation * Quaternion.Euler(355, 190, 155); - socketTransform.position = hand.target.transform.TransformPoint(isLeft ? -0.1F : 0.1F, -0.035F, 0.03F); - - Socket pinchSocket = socketObj.AddComponent(); - return pinchSocket; - } - - protected void MoveToPalm(Transform t) { - if (hand.bone.transform == null) - return; - - Transform indexFingerBone = fingers.index.proximal.bone.transform; - Transform middleFingerBone = fingers.middle.proximal.bone.transform; - - // Determine position - Vector3 palmOffset; - if (indexFingerBone) - palmOffset = (indexFingerBone.position - hand.bone.transform.position) * 0.9F; - else if (middleFingerBone) - palmOffset = (middleFingerBone.position - hand.bone.transform.position) * 0.9F; - else - palmOffset = new Vector3(0.1F, 0, 0); - - t.position = hand.bone.transform.position + palmOffset; - - Vector3 handUp = hand.bone.targetRotation * Vector3.up; - - // Determine rotation - if (indexFingerBone) - t.LookAt(indexFingerBone, handUp); - else if (middleFingerBone) - t.LookAt(middleFingerBone, handUp); - else if (isLeft) - t.LookAt(t.position - humanoid.avatarRig.transform.right, handUp); - else - t.LookAt(t.position + humanoid.avatarRig.transform.right, handUp); - - // Now get it in the palm - if (isLeft) { - t.rotation *= Quaternion.Euler(0, -45, -90); - t.position += t.rotation * new Vector3(0.02F, -0.02F, 0); - } - else { - t.rotation *= Quaternion.Euler(0, 45, 90); - t.position += t.rotation * new Vector3(-0.02F, -0.02F, 0); - } - } - - private void DeterminePalmPosition() { - if (hand.bone.transform == null) - return; - - if (handPalm == null) { - handPalm = hand.bone.transform.Find("Hand Palm"); - if (handPalm == null) { - GameObject handPalmObj = new GameObject("Hand Palm"); - handPalm = handPalmObj.transform; - handPalm.parent = hand.bone.transform; - } - } - - Transform indexFingerBone = fingers.index.proximal.bone.transform; // handTarget.fingers.indexFinger.bones[(int)FingerBones.Proximal]; - Transform middleFingerBone = fingers.middle.proximal.bone.transform; //.middleFinger.bones[(int)FingerBones.Proximal]; - - // Determine position - Vector3 palmOffset; - if (indexFingerBone) - palmOffset = (indexFingerBone.position - hand.bone.transform.position) * 0.9F; - else if (middleFingerBone) - palmOffset = (middleFingerBone.position - hand.bone.transform.position) * 0.9F; - else - palmOffset = new Vector3(0.1F, 0, 0); - - handPalm.position = hand.bone.transform.position + palmOffset; - - Vector3 handUp = hand.bone.targetRotation * Vector3.up; - - // Determine rotation - if (indexFingerBone) - handPalm.LookAt(indexFingerBone, handUp); - else if (middleFingerBone) - handPalm.LookAt(middleFingerBone, handUp); - else if (isLeft) - handPalm.LookAt(handPalm.position - humanoid.avatarRig.transform.right, handUp); - else - handPalm.LookAt(handPalm.position + humanoid.avatarRig.transform.right, handUp); - - // Now get it in the palm - if (isLeft) { - handPalm.rotation *= Quaternion.Euler(0, -45, -90); - handPalm.position += handPalm.rotation * new Vector3(0.02F, -0.02F, 0); - } - else { - handPalm.rotation *= Quaternion.Euler(0, 45, 90); - handPalm.position += handPalm.rotation * new Vector3(-0.02F, -0.02F, 0); - } - } - - #endregion Init - - #region Nearing - - public void OnNearing(GameObject obj) { - } - - #endregion Nearing - - #region Touching - - public virtual void OnTouchStart(GameObject obj, Vector3 contactPoint) { - GrabCheck(obj); - if (inputModule != null) - inputModule.OnFingerTouchStart(isLeft, obj); - - if (obj != null) { - IHandTouchEvents touchEvents = obj.GetComponent(); - if (touchEvents != null) - touchEvents.OnHandTouchStart(this); - - IHandCollisionEvents collisionEvents = handRigidbody.GetComponentInChildren(); - if (collisionEvents != null) - collisionEvents.OnHandCollisionStart(obj, contactPoint); - } - } - - public virtual void OnTouchEnd(GameObject obj) { - if (inputModule != null && obj == touchedObject) - inputModule.OnFingerTouchEnd(isLeft); - - if (obj != null) { - IHandTouchEvents touchEvents = obj.GetComponent(); - if (touchEvents != null) - touchEvents.OnHandTouchEnd(this); - - if (handRigidbody != null) { - IHandCollisionEvents collisionEvents = handRigidbody.GetComponentInChildren(); - if (collisionEvents != null) - collisionEvents.OnHandCollisionEnd(obj); - } - } - } - - #endregion Touching - - #region Grabbing - - /// - /// The maximum mass of object you can grab - /// - public static float maxGrabbingMass = 10; - - - /// - /// Try to grab the object we touch - /// - public void GrabTouchedObject() { - if (touchedObject != null) - Grab(touchedObject); - } - - protected bool grabChecking = false; - - /// - /// Check the hand for grabbing near objects - /// - /// This function will grab a near object if the hand is grabbing - public void NearGrabCheck() { - if (grabbingTechnique != GrabbingTechnique.NearGrabbing - || grabChecking - || grabbedObject != null - || humanoid.isRemote - ) { - - return; - } - - grabChecking = true; - - float handCurl = HandCurl(); - if (handCurl > 3) { - GrabNearObject(); - } - grabChecking = false; - } - - /// - /// Try to grab an object near to the hand - /// - public void GrabNearObject() { - GameObject grabObject = DetermineGrabObject(); - if (grabObject != null) - Grab(grabObject); - } - - /// - /// Try to take the object - /// - /// The object to take - /// Depending on the hand pose the object may be grabbed, pinched or not - public void GrabCheck(GameObject obj) { - if (grabbingTechnique != GrabbingTechnique.TouchGrabbing - || grabChecking - || grabbedObject != null - || humanoid.isRemote - ) { - return; - } - - grabChecking = true; - - if (CanBeGrabbed(obj)) { - float handCurl = HandCurl(); - if (handCurl > 2) { - GameObject grabObject = DetermineGrabObject(); - if (grabObject != null) - this.Grab(grabObject); - else - this.Grab(obj); - } - else { - bool pinching = PinchInteraction.IsPinching(this); - if (pinching) { - HandInteraction.NetworkedPinch(this, obj); - } - else { - LerpToGrab(obj); - } - } - } - grabChecking = false; - } - - protected void LerpToGrab(GameObject obj) { - Handle handle = Handle.GetClosestHandle(obj.transform, transform.position, isLeft ? Handle.Hand.Left : Handle.Hand.Right); - if (handle == null) - return; - - float handCurl = HandCurl(); - float f = handCurl / 2; - - Vector3 socket2HandPosition = hand.bone.transform.position - grabSocket.transform.position; - Vector3 handOnSocketPosition = handle.transform.position + socket2HandPosition; - - hand.bone.transform.position = Vector3.Lerp(hand.target.transform.position, handOnSocketPosition, f); - } - - // Rigidbody > Static Object - // Handles > No Handle - // Handles not in socket > Handle in socket - protected virtual GameObject DetermineGrabObject() { - Collider[] colliders = Physics.OverlapSphere(grabSocket.transform.position, 0.10F); - - GameObject objectToGrab = null; - bool grabRigidbody = false; - bool grabHandle = false; - bool grabHandleInSocket = false; - foreach (Collider collider in colliders) { - GameObject obj; - Rigidbody objRigidbody = collider.attachedRigidbody; - if (objRigidbody != null) - obj = objRigidbody.gameObject; - else - obj = collider.gameObject; - - if (!CanBeGrabbed(obj)) - continue; - if (obj == handRigidbody.gameObject) - continue; - if (obj == otherHand.handRigidbody.gameObject) - continue; - - if (objRigidbody != null) { - Handle handle = obj.GetComponentInChildren(); - if (handle != null) { - if (!grabRigidbody || !grabHandle || grabHandleInSocket) { - objectToGrab = obj; - grabHandle = true; - grabHandleInSocket = handle.socket != null; - } - } - else { - if (!grabRigidbody) { - objectToGrab = obj; - grabRigidbody = true; - grabHandle = false; - grabHandleInSocket = false; - } - } - } - else if (!grabRigidbody) { - Handle handle = obj.GetComponentInChildren(); - if (handle != null) { - if (!grabHandle || grabHandleInSocket) { - objectToGrab = obj; - grabHandle = true; - grabHandleInSocket = handle.socket != null; - } - } - else if (!grabHandle) { - objectToGrab = obj; - } - } - if (objectToGrab.name.Contains("ArmPalm")) - Debug.Log("corrected to arm!!!"); - } - return objectToGrab; - } - - public virtual bool CanBeGrabbed(GameObject obj) { - if (obj == null || obj == humanoid.gameObject || - (humanoid.characterRigidbody != null && obj == humanoid.characterRigidbody.gameObject) || - obj == humanoid.headTarget.gameObject - ) - return false; - - // We cannot grab 2D objects like UI - RectTransform rectTransform = obj.GetComponent(); - if (rectTransform != null) - return false; - - return true; - } - - /// Grab and object with the hand (non-networked) - /// The hand to grab with - /// The gameObject to grab - /// check wither the hand is in range of the handle - public virtual void Grab(GameObject obj, bool rangeCheck = true) { - // Extra protection for remote grabbing which bypasses GrabCheck - if (grabbedObject != null) - return; - - DebugLog(this + " grabs " + obj); - - bool grabbed = false; - - NoGrab noGrab = obj.GetComponent(); - if (noGrab != null) - return; - - Rigidbody objRigidbody = obj.GetComponent(); - - BasicHandPhysics otherHandPhysics = null; - if (objRigidbody != null) - otherHandPhysics = objRigidbody.GetComponent(); - - if (otherHandPhysics != null || GrabbedWithOtherHand(obj)) - grabbed = SecondHandGrab(obj, rangeCheck); - - else { - Handle handle = Handle.GetClosestHandle(obj.transform, grabSocket.transform.position, isLeft ? Handle.Hand.Left : Handle.Hand.Right); - if (handle != null) { - grabbed = GrabHandle(objRigidbody, handle, rangeCheck); - } - else if (objRigidbody != null) { - HumanoidControl humanoidControl = objRigidbody.GetComponent(); - if (humanoidControl != null) { - // Can't grab another humanoid right now - grabbed = false; - } - else - grabbed = GrabRigidbodyWithoutHandle(objRigidbody); - } - } - - if (grabbed) { - if (!humanoid.isRemote && humanoid.humanoidNetworking != null) { - if (otherHandPhysics != null) { - GameObject otherHandGrabbedObject = otherHandPhysics.handTarget.grabbedObject; - humanoid.humanoidNetworking.Grab(this, otherHandGrabbedObject, false, HandTarget.GrabType.HandGrab); - } - else - humanoid.humanoidNetworking.Grab(this, obj, rangeCheck, HandTarget.GrabType.HandGrab); - } - - TrackedRigidbody trackedRigidbody = obj.GetComponent(); - if (trackedRigidbody != null && trackedRigidbody.target != null) { - //Debug.Log("grabbed trackedRigidbody"); - AddSensorComponent(trackedRigidbody.target.GetComponent()); - AddTrackedRigidbody(trackedRigidbody); - } - - if (humanoid.physics && grabbedRigidbody) - AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders); - - // This does not work in the editor, so controller input cannot be set this way - // When grabbing handles in the editor - if (Application.isPlaying) { - SendMessage("OnGrabbing", grabbedObject, SendMessageOptions.DontRequireReceiver); - grabbedObject.SendMessage("OnGrabbed", this, SendMessageOptions.DontRequireReceiver); - - IHandGrabEvents objectInteraction = grabbedObject.GetComponent(); - if (objectInteraction != null) - objectInteraction.OnHandGrabbed(this); - } - } - } - - protected bool GrabbedWithOtherHand(GameObject obj) { - if (otherHand == null || otherHand.hand.bone.transform == null) - return false; - - Rigidbody objRigidbody = obj.GetComponentInParent(); - if (objRigidbody != null && objRigidbody.transform == otherHand.hand.bone.transform) - /* two handed grip for rigidbodies only */ - return true; - - if (objRigidbody != null && objRigidbody.isKinematic) { - Transform parent = objRigidbody.transform.parent; - if (parent == null) - return false; - - Rigidbody parentRigidbody = parent.GetComponentInParent(); - if (parentRigidbody == null) - return false; - - return GrabbedWithOtherHand(parentRigidbody.gameObject); - } - - return false; - } - - protected bool SecondHandGrab(GameObject obj, bool rangeCheck) { - DebugLog("SecondHandGrab " + obj); - - Handle handle = Handle.GetClosestHandle(obj.transform, transform.position, isLeft ? Handle.Hand.Left : Handle.Hand.Right, rangeCheck ? 0.2F : float.PositiveInfinity); - if (handle == null) - return false; - - Rigidbody objRigidbody = handle.GetComponentInParent(); - if (objRigidbody == null) - return false; - - if (handle != null) - GrabHandle(objRigidbody, handle, false); - else - GrabRigidbody(objRigidbody); - - if (objRigidbody != null && objRigidbody == otherHand.handRigidbody) { - // We grabbed our own other hand - otherHand.twoHandedGrab = true; - otherHand.targetToSecondaryHandle = otherHand.hand.target.transform.InverseTransformPoint(handle.transform.position); - } - return true; - } - - public void GrabHandle(Handle handle, bool rangeCheck = false) { - // Extra protection for remote grabbing which bypasses GrabCheck - if (grabbedObject != null) - return; - - Debug.Log(this + " grabs handle " + handle); - bool grabbed = false; - - if (handle == null) - return; - - // A bit silly, a handle with NoGrab, but I leave it in to be sure - NoGrab noGrab = handle.GetComponent(); - if (noGrab != null) - return; - - //GrabHandle does not yet support two-handed grabbing!!!!! - //if (HandInteraction.AlreadyGrabbedWithOtherHand(this, obj)) - // grabbed = HandInteraction.Grab2(this, obj); - - //else { - - Rigidbody objRigidbody = handle.GetComponentInParent(); - grabbed = GrabHandle(objRigidbody, handle, rangeCheck); - - if (grabbed) { - if (!humanoid.isRemote && humanoid.humanoidNetworking != null) - humanoid.humanoidNetworking.Grab(this, objRigidbody.gameObject, rangeCheck, HandTarget.GrabType.HandGrab); - - TrackedRigidbody trackedRigidbody = objRigidbody.gameObject.GetComponent(); - if (trackedRigidbody != null && trackedRigidbody.target != null) { - Debug.Log("grabbed trackedRigidbody"); - AddSensorComponent(trackedRigidbody.target.GetComponent()); - AddTrackedRigidbody(trackedRigidbody); - } - - if (humanoid.physics && grabbedRigidbody) { - AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders); - } - - if (Application.isPlaying) { - SendMessage("OnGrabbing", grabbedObject, SendMessageOptions.DontRequireReceiver); - grabbedObject.SendMessage("OnGrabbed", this, SendMessageOptions.DontRequireReceiver); - if (grabbedHandle != null) - grabbedHandle.SendMessage("OnGrabbed", this, SendMessageOptions.DontRequireReceiver); - } - } - - } - - protected virtual bool GrabHandle(Rigidbody objRigidbody, Handle handle, bool rangeCheck) { - DebugLog(gameObject + " Grabs Handle " + handle); - - if (handle.grabType == Handle.GrabType.NoGrab) - return false; - - GameObject obj = (objRigidbody != null) ? objRigidbody.gameObject : handle.gameObject; - - if (objRigidbody != null && objRigidbody.isKinematic) { - Debug.Log("Grab Kinematic Rigidbody Handle"); - // When grabbing a kinematic rigidbody, the hand should change to a non-kinematic rigidbody first - AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders); - } - - //if (handle.socket != null) { - // Debug.Log("Grab from socket"); - // handle.socket.Release(); - //} - - targetToHandle = hand.target.transform.InverseTransformPoint(grabSocket.transform.position); - - if (grabSocket.Attach(handle, rangeCheck)) { - grabbedHandle = handle; - - grabbedObject = obj; - grabbedRigidbody = (objRigidbody != null); - if (grabbedRigidbody) - grabbedKinematicRigidbody = objRigidbody.isKinematic; - - return true; - } - else - return false; - } - - protected virtual bool GrabRigidbody(Rigidbody objRigidbody, bool rangeCheck = true) { - DebugLog("GrabRigidbody " + objRigidbody); - - if (objRigidbody.mass > maxGrabbingMass) - return false; - - if (objRigidbody.isKinematic) { - // When grabbing a kinematic rigidbody, the hand should change to a non-kinematic rigidbody first - AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders); - } - - Handle[] handles = objRigidbody.GetComponentsInChildren(); - for (int i = 0; i < handles.Length; i++) { - - if ((isLeft && handles[i].hand == Handle.Hand.Right) || - (!isLeft && handles[i].hand == Handle.Hand.Left)) - continue; - - return GrabRigidbodyHandle(objRigidbody, handles[i], rangeCheck); - } - - GrabRigidbodyWithoutHandle(objRigidbody); - - grabbedObject = objRigidbody.gameObject; - grabbedRigidbody = true; - grabbedKinematicRigidbody = objRigidbody.isKinematic; - return true; - } - - protected virtual bool GrabRigidbodyHandle(Rigidbody objRigidbody, Handle handle, bool rangeCheck) { - DebugLog("GrabRigidbodyHandle " + objRigidbody); - - Transform objTransform = objRigidbody.transform; - - if (handle.socket != null) { - //Debug.Log("Grab from socket"); - handle.socket.Release(); - } - grabSocket.Attach(handle.transform, rangeCheck); - - grabbedObject = handle.gameObject; - grabbedRigidbody = true; - grabbedKinematicRigidbody = objRigidbody.isKinematic; - - handle.handTarget = this; - Debug.Log("hand pose " + handle.pose); - if (handle.pose != null) { - poseMixer.SetPoseValue(handle.pose, 1); - } - - grabbedRigidbody = true; - grabbedKinematicRigidbody = objRigidbody.isKinematic; - return true; - } - - protected virtual bool GrabRigidbodyWithoutHandle(Rigidbody objRigidbody) { - if (objRigidbody.mass > maxGrabbingMass) { - DebugLog("Object is too heavy, mass > " + maxGrabbingMass); - return false; - } - - if (objRigidbody.isKinematic) - GrabStaticWithoutHandle(objRigidbody.gameObject); - else - GrabRigidbodyParenting(objRigidbody); - - grabbedRigidbody = true; - grabbedKinematicRigidbody = objRigidbody.isKinematic; - return true; - } - - protected virtual bool GrabRigidbodyParenting(Rigidbody objRigidbody) { - GameObject obj = objRigidbody.gameObject; - if (handRigidbody == null) { - Debug.LogError("Hand no longer has a rigidbody..."); - } - - RigidbodyDisabled.ParentRigidbody(handRigidbody, objRigidbody); - - HumanoidNetworking.DisableNetworkSync(objRigidbody.gameObject); - if (!humanoid.isRemote) - HumanoidNetworking.TakeOwnership(objRigidbody.gameObject); - - if (Application.isPlaying) - Object.Destroy(objRigidbody); - else - Object.DestroyImmediate(objRigidbody, true); - grabbedObject = obj; - - return true; - } - - protected virtual bool GrabStaticWithoutHandle(GameObject obj) { - DebugLog("Grab Static Without Handle"); - - if (handRigidbody == null) - return false; - - grabSocket.AttachStaticJoint(obj.transform); - - grabbedObject = obj; - grabbedRigidbody = false; - - return true; - } - - #endregion Grabbbing - - #region Letting go - - [System.NonSerialized] - protected bool letGoChecking = false; - [System.NonSerialized] - protected float letGoCheckStart; - - protected virtual void CheckLetGo() { - // timeout for letgochecking - if (letGoChecking && (Time.time - letGoCheckStart) > 1) { - Debug.Log("LetGo check timeout reached"); - letGoChecking = false; - } - - if (letGoChecking || grabbedObject == null) - return; - - letGoChecking = true; - letGoCheckStart = Time.time; - bool pulledLoose = PulledLoose(); - - if (pinchSocket.attachedTransform != null) { - bool notPinching = PinchInteraction.IsNotPinching(this); - if (notPinching || pulledLoose) - LetGoPinch(); - } - else if (grabSocket.attachedTransform != null || grabbedObject != null) { - float handCurl = HandCurl(); - bool fingersGrabbing = (handCurl >= 1.5F); - if (!humanoid.isRemote && (!fingersGrabbing || pulledLoose)) { - LetGo(); - if (pulledLoose) - colliders = AdvancedHandPhysics.SetKinematic(handRigidbody); - } - } - letGoChecking = false; - } - - protected virtual bool PulledLoose() { - // Remote humanoids will only let go objects when the local humanoid has done so. - if (humanoid.isRemote) - return false; - - float forearmStretch = Vector3.Distance(hand.bone.transform.position, forearm.bone.transform.position) - forearm.bone.length; - if (forearmStretch > 0.15F) { - return true; - } - - return false; - } - - ///Let go the object the hand is holding (if any) - public virtual void LetGo() { - DebugLog("LetGo " + grabbedObject); - - if (hand.bone.transform == null || grabbedObject == null) - return; - - if (!humanoid.isRemote && humanoid.humanoidNetworking != null) - humanoid.humanoidNetworking.LetGo(this); - - if (grabSocket.attachedHandle != null) - grabSocket.Release(); - else if (grabbedRigidbody && !grabbedKinematicRigidbody) - LetGoRigidbodyWithoutHandle(); - else - LetGoStaticWithoutHandle(); - - if (grabbedRigidbody) { - Rigidbody grabbedRigidbody = grabbedObject.GetComponent(); - LetGoRigidbody(grabbedRigidbody); - } - - if (humanoid.dontDestroyOnLoad) { - // Prevent this object inherites the dontDestroyOnLoad from the humanoid - if (grabbedObject.transform.parent == null) - Object.DontDestroyOnLoad(grabbedObject); - } - - if (humanoid.physics) - AdvancedHandPhysics.SetNonKinematic(handRigidbody, colliders); - - if (grabbedRigidbody) - TmpDisableCollisions(this, 0.2F); - -#if hNW_UNET -#pragma warning disable 0618 - NetworkTransform nwTransform = handTarget.grabbedObject.GetComponent(); - if (nwTransform != null) - nwTransform.sendInterval = 1; -#pragma warning restore 0618 -#endif - - if (Application.isPlaying) { - SendMessage("OnLettingGo", null, SendMessageOptions.DontRequireReceiver); - grabbedObject.SendMessage("OnLetGo", this, SendMessageOptions.DontRequireReceiver); - IHandGrabEvents objectInteraction = grabbedObject.GetComponent(); - if (objectInteraction != null) - objectInteraction.OnHandLetGo(this); - } - - grabbedObject = null; - grabbedHandle = null; - grabbedKinematicRigidbody = false; - twoHandedGrab = false; - otherHand.twoHandedGrab = false; - - touchedObject = null; - - } - - protected void LetGoRigidbodyWithoutHandle() { - Rigidbody objRigidbody = RigidbodyDisabled.UnparentRigidbody(handPalm, grabbedObject.transform); - if (objRigidbody != null && !objRigidbody.isKinematic) { - if (handRigidbody != null) { - objRigidbody.velocity = handRigidbody.velocity; - objRigidbody.angularVelocity = handRigidbody.angularVelocity; - } - HumanoidNetworking.ReenableNetworkSync(objRigidbody.gameObject); - } - else - LetGoStaticWithoutHandle(); - } - - protected void LetGoStaticWithoutHandle() { - grabSocket.ReleaseStaticJoint(); - } - - protected void LetGoRigidbody(Rigidbody grabbedRigidbody) { - DebugLog("LetGoRigidbody"); - - if (grabbedRigidbody != null) { - //if (handTarget.handRigidbody != null) - // GrabMassRestoration(handTarget.handRigidbody, grabbedRigidbody); - - Joint[] joints = grabbedObject.GetComponents(); - for (int i = 0; i < joints.Length; i++) { - if (joints[i].connectedBody == handRigidbody) - Object.Destroy(joints[i]); - } - //grabbedRigidbody.centerOfMass = handTarget.storedCOM; - - grabbedRigidbody.velocity = handRigidbody.velocity; - grabbedRigidbody.angularVelocity = handRigidbody.angularVelocity; - - if (grabbedHandle != null) - LetGoHandle(grabbedHandle); - } - this.grabbedRigidbody = false; - } - - protected void LetGoHandle(Handle handle) { - DebugLog("LetGoHandle " + handle); - if (Application.isPlaying) { - if (grabbedHandle != null) { - grabbedHandle.SendMessage("OnLetGo", this, SendMessageOptions.DontRequireReceiver); - IHandGrabEvents objectInteraction = grabbedHandle.GetComponent(); - if (objectInteraction != null) - objectInteraction.OnHandLetGo(this); - } - } - - handle.handTarget = null; - grabbedHandle = null; - - if (handle.pose != null) - poseMixer.Remove(handle.pose); - } - - #region Pinch - - protected void LetGoPinch() { - - // No Networking yet! - - pinchSocket.Release(); - - if (humanoid.physics) - UnsetColliderToTrigger(colliders); - - if (Application.isPlaying) { - SendMessage("OnLettingGo", null, SendMessageOptions.DontRequireReceiver); - grabbedObject.SendMessage("OnLetGo", this, SendMessageOptions.DontRequireReceiver); - IHandGrabEvents objectInteraction = grabbedObject.GetComponent(); - if (objectInteraction != null) - objectInteraction.OnHandLetGo(this); - } - - grabbedObject = null; - } - - #endregion Pinch - - #endregion Letting go - - public void GrabOrLetGo(GameObject obj, bool rangeCheck = true) { - if (grabbedObject != null) - LetGo(); - else { - Grab(obj, rangeCheck); - } - } - } - - [System.Serializable] - public class HandInteraction { - - #region Grabbing/Pinching - - #region Grab - - public static void MoveAndGrabHandle(HandTarget handTarget, Handle handle) { - if (handTarget == null || handle == null) - return; - - MoveHandTargetToHandle(handTarget, handle); - GrabHandle(handTarget, handle); - } - - public static void MoveHandTargetToHandle(HandTarget handTarget, Handle handle) { - // Should use GetGrabPosition - Quaternion handleWorldRotation = handle.transform.rotation; // * Quaternion.Euler(handle.rotation); - Quaternion palm2handRot = Quaternion.Inverse(Quaternion.Inverse(handTarget.hand.bone.targetRotation) * handTarget.palmRotation); - handTarget.hand.target.transform.rotation = handleWorldRotation * palm2handRot; - - Vector3 handleWorldPosition = handle.transform.position; // TransformPoint(handle.position); - handTarget.hand.target.transform.position = handleWorldPosition - handTarget.hand.target.transform.rotation * handTarget.localPalmPosition; - } - - public static void GetGrabPosition(HandTarget handTarget, Handle handle, out Vector3 handPosition, out Quaternion handRotation) { - Vector3 handleWPos = handle.transform.position; // TransformPoint(handle.position); - Quaternion handleWRot = handle.transform.rotation; // * Quaternion.Euler(handle.rotation); - - GetGrabPosition(handTarget, handleWPos, handleWRot, out handPosition, out handRotation); - } - - public static void GetGrabPosition(HandTarget handTarget, Vector3 targetPosition, Quaternion targetRotation, out Vector3 handPosition, out Quaternion handRotation) { - Quaternion palm2handRot = Quaternion.Inverse(handTarget.handPalm.localRotation) * handTarget.hand.bone.toTargetRotation; - handRotation = targetRotation * palm2handRot; - - Vector3 hand2palmPos = handTarget.handPalm.localPosition; - Vector3 hand2palmWorld = handTarget.hand.bone.transform.TransformVector(hand2palmPos); - Vector3 hand2palmTarget = handTarget.hand.target.transform.InverseTransformVector(hand2palmWorld); // + new Vector3(0, -0.03F, 0); // small offset to prevent fingers colliding with collider - handPosition = targetPosition + handRotation * -hand2palmTarget; - Debug.DrawLine(targetPosition, handPosition); - } - - // This is not fully completed, no parenting of joints are created yet - public static void GrabHandle(HandTarget handTarget, Handle handle) { - handTarget.grabbedHandle = handle; - handTarget.targetToHandle = handTarget.hand.target.transform.InverseTransformPoint(handle.transform.position); - handTarget.grabbedObject = handle.gameObject; - handle.handTarget = handTarget; - - if (handle.pose != null) - handTarget.SetPose1(handle.pose); - } - - #endregion - - #region Pinch - public static void NetworkedPinch(HandTarget handTarget, GameObject obj, bool rangeCheck = true) { - if (handTarget.grabbedObject != null) // We are already holding an object - return; - - if (obj.GetComponent() != null) // Don't pinch NoGrab Rigidbodies - return; - - Rigidbody objRigidbody = obj.GetComponent(); - RigidbodyDisabled objDisabledRigidbody = obj.GetComponent(); - if (objRigidbody == null && objDisabledRigidbody == null) // We can only pinch Rigidbodies - return; - - if (objRigidbody != null && objRigidbody.mass > HandTarget.maxGrabbingMass) // Don't pinch too heavy Rigidbodies - return; - - if (objDisabledRigidbody != null && objDisabledRigidbody.mass > HandTarget.maxGrabbingMass) // Don't pinch too heavy Rigidbodies - return; - - if (handTarget.humanoid.humanoidNetworking != null) - handTarget.humanoid.humanoidNetworking.Grab(handTarget, obj, rangeCheck, HandTarget.GrabType.Pinch); - - LocalPinch(handTarget, obj); - - //Collider[] handColliders = handTarget.hand.bone.transform.GetComponentsInChildren(); - //foreach (Collider handCollider in handColliders) - // Physics.IgnoreCollision(c, handCollider); - } - - public static void LocalPinch(HandTarget handTarget, GameObject obj, bool rangeCheck = true) { - PinchWithSocket(handTarget, obj); - } - - private static bool PinchWithSocket(HandTarget handTarget, GameObject obj) { - Handle handle = obj.GetComponentInChildren(); - if (handle != null) { - if (handle.socket != null) { - //Debug.Log("Grab from socket"); - handle.socket.Release(); - } - } - bool grabbed = handTarget.pinchSocket.Attach(obj.transform); - handTarget.grabbedObject = obj; - - return grabbed; - } - #endregion - - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs.meta deleted file mode 100644 index d15e2f7..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/HandInteraction.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 38953bf47201b1c4c88bfc03acda0012 -timeCreated: 1483038267 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs b/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs deleted file mode 100644 index 1ac835c..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs +++ /dev/null @@ -1,27 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// - /// Interface for handling touch events on objects - /// - /// This interface can be used to receive touch events on objects - /// If you implement this interface on a script which is connected to the object - /// the On.. functions are called at the appropriate times. - /// This enables you to implement behaviour on the object when it is touched. - public interface IHandCollisionEvents { - - /// - /// Function is called when the hand starts touching this object - /// - /// The gameObject the hand is touching - void OnHandCollisionStart(GameObject gameObject, Vector3 contactPoint); - - /// - /// Function is called when the hand no longer touches this object - /// - /// The gameObject the hand is touching - void OnHandCollisionEnd(GameObject gameObject); - } -} - diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs.meta deleted file mode 100644 index 965737e..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandCollisionEvents.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c394d65228469a409798c2cde89ed60 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs b/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs deleted file mode 100644 index 274bd96..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Passer.Humanoid { - - /// - /// Interface for handling grabbing events on objects - /// - /// This interface can be used to receive grabbing events on grabbable objects - /// If you implement this interface on a script which is connected to the grabbable object - /// the On.. functions are called at the appropriate times. - /// This enables you to implement behaviour on the object when it is grabbed or let go. - public interface IHandGrabEvents { - - /// - /// Function is called when the object is grabbed - /// - /// The hand which grabbed the object - void OnHandGrabbed(HandTarget handTarget); - - /// - /// Function is called when the object is let go - /// - /// The hand which let go the object - void OnHandLetGo(HandTarget handTarget); - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs.meta deleted file mode 100644 index df61815..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandGrabEvents.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5f4ff0f337fbd4c4bbc06c3fbe1c7095 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs b/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs deleted file mode 100644 index ea69caf..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace Passer.Humanoid { - - /// - /// Interface for handling touch events on objects - /// - /// This interface can be used to receive touch events on objects - /// If you implement this interface on a script which is connected to the object - /// the On.. functions are called at the appropriate times. - /// This enables you to implement behaviour on the object when it is touched. - public interface IHandTouchEvents { - - /// - /// Function is called when the hand starts touching this object - /// - /// The hand touching the object - void OnHandTouchStart(HandTarget handTarget); - - /// - /// Function is called when the hand no longer touches this object - /// - /// The hand which touched the object - void OnHandTouchEnd(HandTarget handTarget); - } -} - diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs.meta deleted file mode 100644 index 862b223..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandTouchEvents.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c3e3ab78b52022a4a870ff368af9aa16 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs b/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs deleted file mode 100644 index 3c52341..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs +++ /dev/null @@ -1,26 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// - /// Interface for handling touch events on objects - /// - /// This interface can be used to receive touch events on objects - /// If you implement this interface on a script which is connected to the object - /// the On.. functions are called at the appropriate times. - /// This enables you to implement behaviour on the object when it is touched. - public interface IHandTriggerEvents { - - /// - /// Function is called when the hand starts touching this object - /// - /// The hand which touches the object - void OnHandTriggerEnter(HandTarget handTarget, Collider collider); - - /// - /// Function is called when the hand no longer touches this object - /// - /// The hand which touched the object - void OnHandTriggerExit(HandTarget handTarget, Collider collider); - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs.meta deleted file mode 100644 index 3a91e1c..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/IHandTriggerEvents.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 53e29839ba2cf3a4a994e3deb22b54d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs b/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs deleted file mode 100644 index 0e0c3b3..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs +++ /dev/null @@ -1,7 +0,0 @@ -/* - * This file is intentionally left empty. - * It replaces a file which is no longer present in the current version - * The file makes sure that the old code is removed and does not interfere with the new code - * - * Last Version: 2.1 - */ diff --git a/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs.meta deleted file mode 100644 index f5c68a8..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/Interaction.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: e1a0597576a433c4f9d2aff74d5bc290 -timeCreated: 1548682734 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs b/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs deleted file mode 100644 index 8a6c9ae..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs +++ /dev/null @@ -1,156 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class PinchInteraction : MonoBehaviour { - protected HandTarget handTarget; - protected Socket pinchSocket; - public bool pinching; - public static float pinchDistance = 0.04F; - - // TODO: add phalanges.tip to the list of bones - private static Vector3 GetTipPosition(HumanoidTarget.BoneTransform bone, Vector3 outward) { - Vector3 tip = bone.transform.position + bone.targetRotation * outward * 0.02F; // bone.length? - return tip; - } - - #region Start - protected virtual void Start() { - if (handTarget == null) - handTarget = GetComponent(); - if (handTarget == null) - return; - - if (handTarget.humanoid.isRemote) - // Remote avatars cannot interact - return; - - SocketCheck(); - } - - protected void SocketCheck() { - HumanoidTarget.BoneTransform handBone = handTarget.hand.bone; - // How to we distinguish between pinch and palm socket later????? by name? - pinchSocket = handBone.transform.GetComponentInChildren(); - if (pinchSocket != null) - // Pinch Socket is already present - return; - - GameObject socketObj = new GameObject(handTarget.isLeft ? "Left Pinch Socket" : "Right Pinch Socket"); - Transform socketTransform = socketObj.transform; - socketTransform.parent = handTarget.hand.bone.transform; - socketTransform.position = handTarget.hand.target.transform.TransformPoint(0.1F, -0.035F, 0.03F); - socketTransform.rotation = handTarget.hand.bone.targetRotation * Quaternion.Euler(355, 190, 155); - - pinchSocket = socketObj.AddComponent(); - } - #endregion - - #region Update - // sentinel. - // TODO: implement thread-safe sentinel - protected bool pinchChecking = false; - - protected virtual void FixedUpdate() { - pinching = IsPinching(handTarget); - - if (handTarget.grabbedObject != null && pinchSocket.attachedTransform != null) - // We are pinching an object - PinchDropCheck(handTarget, pinchSocket); - - else { - // We are not pinching an object - if (handTarget.touchedObject == null || handTarget.grabbedObject != null) - return; - - if (!pinchChecking) { - pinchChecking = true; - PinchCheck(handTarget, pinchSocket, handTarget.touchedObject); - pinchChecking = false; - } - } - } - #endregion - - #region Pinch Grab - public void PinchCheck(HandTarget handTarget, Socket pinchSocket, GameObject obj) { - if (IsPinching(handTarget) && handTarget.CanBeGrabbed(obj)) - Pinch(handTarget, obj); - } - - public static bool IsPinching(HandTarget handTarget) { - // other fingers need to be open - float handCurl = handTarget.HandCurl(); - if (handCurl > 1) - return false; - - float distance = GetPinchDistance(handTarget); - return distance < pinchDistance; - } - - public static bool IsNotPinching(HandTarget handTarget) { - float distance = GetPinchDistance(handTarget); - return distance > pinchDistance + 0.02F; - } - - protected static float GetPinchDistance(HandTarget handTarget) { - HumanoidTarget.BoneTransform thumbDistalBone = handTarget.fingers.thumb.distal.bone; - HumanoidTarget.BoneTransform indexDistalBone = handTarget.fingers.index.distal.bone; - // We need finger tips for pinch to work - if (thumbDistalBone.transform == null || indexDistalBone.transform == null) - return float.PositiveInfinity; - - Vector3 thumbTip = GetTipPosition(thumbDistalBone, handTarget.outward); - Vector3 indexTip = GetTipPosition(indexDistalBone, handTarget.outward); - - //Debug.DrawLine(thumbTip, indexTip, Color.yellow); - - float distance = Vector3.Distance(thumbTip, indexTip); - return distance; - } - - public static void Pinch(HandTarget handTarget, GameObject obj) { - Handle handle = obj.GetComponentInChildren(); - if (handle != null) { - if (handle.socket != null) { - Debug.Log("Grab from socket"); - handle.socket.Release(); - } - } - handTarget.pinchSocket.Attach(obj.transform); - handTarget.grabbedObject = obj; - } - - #endregion - - #region Pinch Drop - public static void PinchDropCheck(HandTarget handTarget, Socket pinchSocket) { - bool isDropping = IsPinchDropping(handTarget); - bool pulledLoose = PulledLoose(handTarget, pinchSocket); - if (isDropping || pulledLoose) - PinchDrop(handTarget, pinchSocket); - } - - protected static bool IsPinchDropping(HandTarget handTarget) { - float pinchDistance = GetPinchDistance(handTarget); - return pinchDistance > 0.06F; - } - - protected static bool PulledLoose(HandTarget handTarget, Socket pinchSocket) { - float forearmStretch = Vector3.Distance(handTarget.hand.bone.transform.position, handTarget.forearm.bone.transform.position) - handTarget.forearm.bone.length; - if (forearmStretch > 0.15F) - return true; - - if (pinchSocket.attachedTransform == null) - return true; - - return false; - } - - protected static void PinchDrop(HandTarget handTarget, Socket pinchSocket) { - pinchSocket.Release(); - handTarget.grabbedObject = null; - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs.meta b/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs.meta deleted file mode 100644 index b7e3a67..0000000 --- a/Runtime/HumanoidFree/Scripts/Interaction/PinchInteraction.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: b2945a7235d3c48499be2f3374a68652 -timeCreated: 1539848773 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements.meta b/Runtime/HumanoidFree/Scripts/Movements.meta deleted file mode 100644 index 2a52ec6..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 6e647d6d3d48970498e1cc0eefa303ec -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs deleted file mode 100644 index fc47d8a..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs +++ /dev/null @@ -1,681 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class ArmMovements : Movements { - -#if UNITY_EDITOR - private static readonly bool debug = false; -#endif - - #region Update - - public static void Update(HandTarget handTarget) { - if (handTarget == null || handTarget.hand.bone.transform == null) - return; - - var handTargetBone = handTarget.hand.target; - var forearmTargetBone = handTarget.forearm.target; - var upperArmTargetBone = handTarget.upperArm.target; - - if (handTargetBone.confidence.position <= 0.21F) { - if (forearmTargetBone.confidence.position > 0.9F && forearmTargetBone.confidence.rotation >= 0.9F) { - handTargetBone.transform.position = forearmTargetBone.transform.TransformPoint(handTarget.outward * handTarget.forearm.bone.length); - } - else if (forearmTargetBone.confidence.rotation >= 0.9F && handTargetBone.confidence.rotation >= 0.9F) { - handTargetBone.transform.position = CalculateHandPositionFromForearmRotation(handTarget, forearmTargetBone.transform.rotation); - } - else if (handTargetBone.confidence.rotation >= 0.9F) { - handTargetBone.transform.position = CalculateHandPosition(handTarget); - } - else if (forearmTargetBone.confidence.rotation >= 0.9F) { - handTargetBone.transform.position = CalculateHandPositionFromForearm(handTarget, forearmTargetBone.transform.rotation); - } - } - if (handTargetBone.confidence.rotation <= 0.21F) { - if (forearmTargetBone.confidence.rotation >= 0.9F) - handTargetBone.transform.rotation = forearmTargetBone.transform.rotation; - } - - if (!Application.isPlaying) { - handTarget.armMovements.FullInverseKinematics(handTarget, handTarget.rotationSpeedLimitation); - } - else if (handTarget.humanoid.targetsRig.runtimeAnimatorController != null && handTarget.hand.target.confidence.position == 0) { - handTarget.armMovements.FullForwardKinematics(handTarget); - } - else { - if ((handTargetBone.confidence.position >= forearmTargetBone.confidence.rotation && - handTargetBone.confidence.position >= upperArmTargetBone.confidence.rotation) - || (forearmTargetBone.confidence.position >= 0.9F && forearmTargetBone.confidence.rotation >= 0.9F) - ) - - handTarget.armMovements.FullInverseKinematics(handTarget, handTarget.rotationSpeedLimitation); - - else if ((handTarget.forearm.target.confidence.position > handTarget.upperArm.target.confidence.rotation) - || (forearmTargetBone.confidence.rotation > upperArmTargetBone.confidence.rotation)) { - - handTarget.armMovements.ForearmForwardKinematics(handTarget); - } - else { - handTarget.armMovements.FullForwardKinematics(handTarget); - } - } - } - - protected static Vector3 CalculateHandPosition(HandTarget handTarget) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " CalculateHandPosition"); -#endif - Quaternion hipsYRotation = Quaternion.AngleAxis(handTarget.humanoid.hipsTarget.transform.eulerAngles.y, handTarget.humanoid.up); - - Vector3 pivotPoint = handTarget.humanoid.hipsTarget.hips.bone.transform.position + hipsYRotation * (handTarget.isLeft ? new Vector3(-0.25F, 0.15F, -0.05F) : new Vector3(0.25F, 0.15F, -0.05F)); - - Quaternion forearmRotation; - if (handTarget.forearm.target.confidence.rotation >= handTarget.hand.target.confidence.rotation) - forearmRotation = handTarget.forearm.target.transform.rotation * (handTarget.isLeft ? Quaternion.Euler(0, -90, 0) : Quaternion.Euler(0, 90, 0)); - else - forearmRotation = handTarget.hand.target.transform.rotation * (handTarget.isLeft ? Quaternion.Euler(0, -90, 0) : Quaternion.Euler(0, 90, 0)); - - Vector3 localForearmDirection = handTarget.humanoid.hipsTarget.transform.InverseTransformDirection(forearmRotation * Vector3.forward); - - if (localForearmDirection.x < 0 || localForearmDirection.y > 0) { - pivotPoint += hipsYRotation * Vector3.forward * Mathf.Lerp(0, 0.15F, -localForearmDirection.x * 3 + localForearmDirection.y); - } - if (localForearmDirection.y > 0) { - pivotPoint += hipsYRotation * Vector3.up * Mathf.Lerp(0, 0.2F, localForearmDirection.y); - } - - if (localForearmDirection.z < 0.2F) { - localForearmDirection = new Vector3(localForearmDirection.x, localForearmDirection.y, 0.2F); - forearmRotation = Quaternion.LookRotation(handTarget.humanoid.hipsTarget.transform.TransformDirection(localForearmDirection), forearmRotation * Vector3.up); - } - - Vector3 handPosition = pivotPoint + forearmRotation * Vector3.forward * handTarget.forearm.bone.length; - - return handPosition; - } - - protected static Vector3 CalculateHandPositionFromForearm(HandTarget handTarget, Quaternion forearmRotation) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " CalculateHandPositionFromForearm "); -#endif - - HipsTarget hipsTarget = handTarget.humanoid.hipsTarget; - - Quaternion hipsYRotation = Quaternion.AngleAxis(hipsTarget.transform.eulerAngles.y, handTarget.humanoid.up); - - Vector3 pivotPoint = hipsTarget.hips.bone.transform.position + hipsYRotation * (handTarget.isLeft ? new Vector3(-0.25F, 0.15F, -0.05F) : new Vector3(0.25F, 0.15F, -0.05F)); - - forearmRotation = handTarget.forearm.target.transform.rotation * Quaternion.AngleAxis(handTarget.isLeft ? -90 : 90, Vector3.up); - Vector3 forearmDirection = forearmRotation * Vector3.forward; - Vector3 localForearmDirection = hipsTarget.transform.InverseTransformDirection(forearmDirection); - - if (localForearmDirection.x < 0 || localForearmDirection.y > 0) - pivotPoint += hipsYRotation * Vector3.forward * Mathf.Lerp(0, 0.15F, -localForearmDirection.x * 3 + localForearmDirection.y); - if (localForearmDirection.y > 0) - pivotPoint += hipsYRotation * Vector3.up * Mathf.Lerp(0, 0.2F, localForearmDirection.y); - - - if (localForearmDirection.z < 0.2F) { - localForearmDirection = new Vector3(localForearmDirection.x, localForearmDirection.y, 0.2F); - forearmDirection = hipsTarget.transform.TransformDirection(localForearmDirection); - forearmRotation = Quaternion.LookRotation(hipsTarget.transform.TransformDirection(forearmDirection), forearmRotation * Vector3.up); - } - - Vector3 handPosition = pivotPoint + forearmRotation * Vector3.forward * handTarget.forearm.bone.length; - return handPosition; - } - - protected static Vector3 CalculateHandPositionFromForearmRotation(HandTarget handTarget, Quaternion forearmRotation) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " CalculateHandPositionFromForearmRotation "); -#endif - - Vector3 pivotPoint = handTarget.forearm.bone.transform.position; - - Vector3 handPosition = pivotPoint + forearmRotation * Vector3.forward * handTarget.forearm.bone.length; - return handPosition; - } - - public void FullInverseKinematics(HandTarget handTarget, bool speedLimitation = true) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " FullInverseKinematics "); -#endif - - Vector3 handPosition = NaturalHandPosition(handTarget); - Quaternion handOrientation = NaturalHandRotation(handTarget);//handTarget.hand.bone.targetRotation; - - if (handTarget.shoulder.target.transform != null) { - Quaternion shoulderRotation = NaturalShoulderOrientation(handTarget, ref lastLocalShoulderRotation); - handTarget.shoulder.SetBoneRotation(shoulderRotation); - } - - CalculateStretchlessTarget(handTarget); - handPosition = NaturalHandPosition(handTarget); - - if (handTarget.upperArm.target.transform != null) { - Quaternion upperArmRotation = handTarget.armMovements.NaturalUpperArmOrientation(handTarget, handPosition, handOrientation, speedLimitation); - handTarget.upperArm.SetBoneRotation(upperArmRotation); - - if (handTarget.forearm.target.transform != null) { - Vector3 armUp = upperArmRotation * Vector3.up; - Quaternion forearmRotationC = Cerebellum_CalculateArmBoneOrientation(handTarget.forearm.bone.transform.position, armUp, handPosition, handTarget.isLeft); - Quaternion forearmRotation = NaturalForearmOrientation(handTarget, upperArmRotation, handPosition, speedLimitation); - handTarget.forearm.SetBoneRotation(forearmRotation); - - - if (!Application.isPlaying || !handTarget.humanoid.physics || (handTarget.handRigidbody != null && handTarget.handRigidbody.isKinematic)) { - if (handTarget.forearm.bone.transform != null) { - handOrientation = handTarget.armMovements.CalculateHandOrientation(handTarget, forearmRotation); - handTarget.hand.SetBoneRotation(handOrientation); - handTarget.hand.bone.transform.rotation = HandRotationLimitations(handTarget, handTarget.hand.bone.transform.rotation); - - if (!Application.isPlaying || handTarget.stretchlessTarget != null) { - // We need to set the hand position because it is detached - PlaceHandOnForearm(handTarget, forearmRotation); - } - else { - handTarget.hand.bone.transform.position = handPosition; - } - } - else { - handTarget.hand.bone.transform.rotation = handTarget.hand.target.transform.rotation * handTarget.hand.target.toBoneRotation; - handTarget.hand.bone.transform.position = handTarget.hand.target.transform.position; - } - } - } - } - } - - // Forearm Forward Kinematics, rest Inverse Kinematics - private void ForearmForwardKinematics(HandTarget handTarget) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " ForearmForwardKinematics "); -#endif - - Vector3 upperArmUp = CalculateUpperArmUp(handTarget.forearm.target.transform.rotation); - Quaternion upperArmRotation = CalculateUpperArmRotation(handTarget.upperArm.bone.transform.position, upperArmUp, handTarget.forearm.target.transform.position, handTarget.isLeft); - handTarget.upperArm.bone.transform.rotation = upperArmRotation * handTarget.upperArm.target.toBoneRotation; - handTarget.forearm.bone.transform.rotation = handTarget.forearm.target.transform.rotation * handTarget.forearm.target.toBoneRotation; - - CalculateStretchlessTarget(handTarget); - if (!handTarget.humanoid.physics || handTarget.handRigidbody.isKinematic) { - //Quaternion handOrientation = NaturalHandOrientation(forearmRotation); - // Not working good enough yet - if (handTarget.hand.target.confidence.rotation > 0.1F) { - Quaternion handOrientation = handTarget.hand.target.transform.rotation; - handTarget.hand.bone.transform.rotation = handOrientation * handTarget.hand.target.toBoneRotation; - } - else - handTarget.hand.bone.transform.rotation = handTarget.forearm.target.transform.rotation * handTarget.hand.target.toBoneRotation; - - - - // We need to set the hand position because it is detached - handTarget.hand.bone.transform.position = handTarget.forearm.bone.transform.position + handTarget.forearm.target.transform.rotation * handTarget.outward * handTarget.forearm.bone.length; - } - } - - // Forward Kinematics - private void FullForwardKinematics(HandTarget handTarget) { -#if UNITY_EDITOR - if (debug) - Debug.Log(handTarget.side + " FullForwardKinematics "); -#endif - - if (handTarget.humanoid.physics && (handTarget.handRigidbody == null || !handTarget.handRigidbody.isKinematic)) { - // Hand is colliding, so we need to use Inverse Kinematics - FullInverseKinematics(handTarget); - } - - // Still needs rotation speed limits - handTarget.shoulder.SetBoneRotation(handTarget.shoulder.target.transform.rotation); - - // Still needs rotation speed limits - handTarget.upperArm.SetBoneRotation(handTarget.upperArm.target.transform.rotation); - - //Quaternion forearmRotation = NaturalForearmOrientation(upperArmRotation); - // Not working yet - handTarget.forearm.SetBoneRotation(handTarget.forearm.target.transform.rotation); - - CalculateStretchlessTarget(handTarget); - if (!handTarget.humanoid.physics || handTarget.handRigidbody.isKinematic) { - //Quaternion handOrientation = NaturalHandOrientation(forearmRotation); - // Not working good enough yet - Quaternion handOrientation = handTarget.hand.target.transform.rotation; - handTarget.hand.bone.transform.rotation = handOrientation * handTarget.hand.target.toBoneRotation; - - // We need to set the hand position because it is detached - PlaceHandOnForearm(handTarget, handTarget.forearm.target.transform.rotation); - } - } - - private static void CalculateStretchlessTarget(HandTarget handTarget) { - if (handTarget.stretchlessTarget == null) - return; - - if (handTarget.upperArm.bone.transform != null && handTarget.forearm.bone.transform != null) { - float armLength = handTarget.upperArm.bone.length + handTarget.forearm.bone.length; - //handTarget.transform.position = handTarget.hand.targetTransform.position; - // Don't do this, because it moves the custom targets... - Vector3 armDirection = handTarget.hand.target.transform.position - handTarget.upperArm.bone.transform.position; - float distance = armDirection.magnitude; - if (distance > armLength + 0.0F) { - handTarget.stretchlessTarget.position = handTarget.upperArm.bone.transform.position + armDirection.normalized * armLength; - //handTarget.stretchlessTarget.position = handTarget.hand.target.transform.position; - return; - } - } - handTarget.stretchlessTarget.localPosition = Vector3.zero; - } - #endregion - - #region Shoulder - - private Quaternion lastLocalShoulderRotation = Quaternion.identity; - - private static Quaternion NaturalShoulderOrientation(HandTarget handTarget, ref Quaternion lastLocalShoulderRotation) { - if (handTarget.shoulder.target.confidence.rotation > 0.5F) - return handTarget.shoulder.target.transform.rotation; - - HipsTarget hipsTarget = handTarget.humanoid.hipsTarget; - - Quaternion torsoRotation; - if (hipsTarget.chest.bone.transform != null) - torsoRotation = hipsTarget.chest.bone.targetRotation; - else - torsoRotation = Quaternion.LookRotation(hipsTarget.hips.bone.targetRotation * Vector3.forward, handTarget.humanoid.up); - - Vector3 upperArmBasePosition = handTarget.shoulder.bone.transform.position + torsoRotation * handTarget.shoulder.target.baseRotation * handTarget.outward * handTarget.shoulder.bone.length; - - float upperArm2HandDistance = Vector3.Distance(upperArmBasePosition, handTarget.hand.target.transform.position); - float armLength = handTarget.upperArm.bone.length + handTarget.forearm.bone.length; - - float distanceToTarget = upperArm2HandDistance - armLength - 0.03F; - - Quaternion shoulderRotation = handTarget.shoulder.bone.targetRotation; - if (distanceToTarget > 0) { - // we need to use the shoulder now to get closer to the target - Vector3 targetDirection = handTarget.hand.bone.transform.position - handTarget.shoulder.bone.transform.position; - Quaternion toTargetRotation = Quaternion.LookRotation(targetDirection) * Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up); - - shoulderRotation = Quaternion.Slerp(torsoRotation * handTarget.shoulder.bone.baseRotation, toTargetRotation, distanceToTarget * 4); - } - else if (distanceToTarget < 0) { - shoulderRotation = Quaternion.Slerp(shoulderRotation, torsoRotation * handTarget.shoulder.bone.baseRotation, -distanceToTarget * 10); - } - - if (handTarget.shoulder.bone.jointLimitations) - shoulderRotation = LimitAngle(handTarget.shoulder, ref lastLocalShoulderRotation, shoulderRotation); - - return shoulderRotation; - } - - #endregion - - #region UpperArm - - public Quaternion NaturalUpperArmOrientation(HandTarget handTarget, Vector3 handPosition, Quaternion handOrientation, bool speedLimitation) { - //if (handTarget.upperArm.bone.transform == null) - // return handTarget.upperArm.target.transform.rotation; - - Quaternion oldUpperArmRotation = handTarget.upperArm.bone.targetRotation; - Quaternion upperArmRotation = CalculateUpperArmRotation(handTarget, handPosition, handOrientation); - if (speedLimitation) - upperArmRotation = LimitRotationSpeed(oldUpperArmRotation, upperArmRotation); - return upperArmRotation; - } - - private static Quaternion CalculateUpperArmRotation(Vector3 upperArmPosition, Vector3 upperArmUp, Vector3 forearmPosition, bool isLeft) { - Vector3 upperArmForward = forearmPosition - upperArmPosition; - Quaternion upperArmRotation = Quaternion.LookRotation(upperArmForward, upperArmUp); - - if (isLeft) - upperArmRotation *= Quaternion.Euler(0, 90, 0); - else - upperArmRotation *= Quaternion.Euler(0, -90, 0); - - return upperArmRotation; - - } - - private Quaternion CalculateUpperArmRotation(HandTarget handTarget, Vector3 handPosition, Quaternion handRotation) { - Vector3 upperArmUp = GetElbowAxis(handTarget, handPosition, handRotation); - return CalculateUpperArmRotation2(handTarget, upperArmUp, handPosition); - } - - public static Quaternion UpperArmRotationIK(Vector3 upperArmPosition, Vector3 handPosition, Vector3 elbowAxis, float upperArmLength, float forearmLength, bool isLeft) { - Vector3 upperArmDirection = handPosition - upperArmPosition; - float upperArm2HandDistance = upperArmDirection.magnitude; - float upperArmAngle = CosineRule(upperArm2HandDistance, upperArmLength, forearmLength); - if (isLeft) - upperArmAngle = -upperArmAngle; - - Quaternion upperArmRotation = Quaternion.LookRotation(upperArmDirection, elbowAxis); - - upperArmRotation = Quaternion.AngleAxis(upperArmAngle, upperArmRotation * Vector3.up) * upperArmRotation; - upperArmRotation *= Quaternion.Euler(0, isLeft ? 90 : -90, 0); - - return upperArmRotation; - } - - // get upper arm up from target positions - private Vector3 GetElbowAxis(HandTarget handTarget, Vector3 handPosition, Quaternion handRotation) { - // Something is not right here when using Neuron only - Vector3 upperArmUp; - // if (handTarget.forearm.target.confidence.rotation < 0.5F) { - upperArmUp = CalculateElbowAxis(handTarget, handPosition, handRotation); - // } - // else { - // upperArmUp = handTarget.forearm.target.transform.up; - //Debug.DrawRay(handTarget.forearm.target.transform.position, upperArmUp, Color.magenta); - // } - return upperArmUp; - } - - public Vector3 CalculateElbowAxis(HandTarget handTarget, Vector3 handPosition, Quaternion handRotation) { - HipsTarget hipsTarget = handTarget.humanoid.hipsTarget; - Quaternion hipsOrientation = Quaternion.LookRotation(hipsTarget.hips.target.transform.forward, handTarget.humanoid.up); - - Vector3 elbowAxis = Quaternion.Inverse(hipsOrientation) * handRotation * Vector3.up; - if (handTarget.isLeft) - elbowAxis = (elbowAxis + (Vector3.left + Vector3.up).normalized) / 2; - else - elbowAxis = (elbowAxis + (Vector3.right + Vector3.up).normalized) / 2; - - float elbowAxisY = elbowAxis.y; - float elbowAxisZ = elbowAxis.z; - Vector3 dHandUpper = Quaternion.Inverse(hipsOrientation) * (handPosition - handTarget.upperArm.bone.transform.position); - if (!handTarget.isLeft) { - if (dHandUpper.x < 0) elbowAxisZ -= dHandUpper.x * 10; - } - else { - if (dHandUpper.x > 0) elbowAxisZ += dHandUpper.x * 10; - } - if (dHandUpper.y > 0) elbowAxisY += dHandUpper.y * 10; - - elbowAxisY = Mathf.Clamp(elbowAxisY, 0.01F, 1); - elbowAxisZ = Mathf.Clamp(elbowAxisZ, -0.1F, 0.1F); - elbowAxis = hipsOrientation * new Vector3(elbowAxis.x, elbowAxisY, elbowAxisZ); - - return elbowAxis; - } - - public static Vector3 CalculateUpperArmUp(Quaternion forearmRotation) { - return forearmRotation * Vector3.up; - } - - private Quaternion lastLocalUpperArmRotation = Quaternion.identity; - - public Quaternion CalculateUpperArmRotation2(HandTarget handTarget, Vector3 upperArmUp, Vector3 handPosition) { - float upperArm2HandDistance = Vector3.Distance(handTarget.upperArm.bone.transform.position, handPosition); - - float upperArmAngle = CosineRule(upperArm2HandDistance, handTarget.upperArm.bone.length, handTarget.forearm.bone.length); - if (handTarget.isLeft) - upperArmAngle = -upperArmAngle; - - Vector3 upperArmForward = handPosition - handTarget.upperArm.bone.transform.position; - Quaternion upperArmRotation = Quaternion.LookRotation(upperArmForward, upperArmUp); - - upperArmRotation = Quaternion.AngleAxis(upperArmAngle, upperArmRotation * Vector3.up) * upperArmRotation; - - if (handTarget.isLeft) - upperArmRotation *= Quaternion.Euler(0, 90, 0); - else - upperArmRotation *= Quaternion.Euler(0, -90, 0); - - if (handTarget.upperArm.bone.jointLimitations) - upperArmRotation = LimitAngle(handTarget.upperArm, ref lastLocalUpperArmRotation, upperArmRotation); - - return upperArmRotation; - } - - #endregion - - #region Forearm - - private static Quaternion Cerebellum_CalculateArmBoneOrientation(Vector3 bonePosition, Vector3 boneUp, Vector3 nextBonePosition, bool isLeft) { - Vector3 boneForward = nextBonePosition - bonePosition; - Quaternion boneOrientation = Quaternion.LookRotation(boneForward, boneUp); - - boneOrientation = boneOrientation * Quaternion.AngleAxis(isLeft ? 90.0F : -90.0F, Vector3.up); - return boneOrientation; - } - - public static Quaternion NaturalForearmOrientation(HandTarget handTarget, Quaternion upperArmRotation, Vector3 handPosition, bool speedLimitation) { - Quaternion oldForearmRotation = handTarget.forearm.bone.transform.rotation * handTarget.forearm.bone.toTargetRotation; - float forearmAngle = CalculateForearmAngle(handTarget, handTarget.upperArm.bone.transform.position, handPosition, handTarget.upperArm.bone.length, handTarget.forearm.bone.length); - - Quaternion localForearmOrientation = Quaternion.AngleAxis(forearmAngle, Vector3.up); - - - Quaternion forearmOrientation = upperArmRotation * localForearmOrientation; - - if (speedLimitation) - forearmOrientation = LimitRotationSpeed(oldForearmRotation, forearmOrientation); - - Vector3 forearmUp = (handTarget.hand.bone.targetRotation * Vector3.up + handTarget.upperArm.bone.targetRotation * Vector3.up) / 2; - - forearmOrientation = Quaternion.LookRotation(forearmOrientation * handTarget.outward, forearmUp); - forearmOrientation *= Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up); - - return forearmOrientation; - } - - public static Quaternion ForearmRotationIK(Vector3 forearmPosition, Vector3 handPosition, Quaternion handRotation, Quaternion upperArmRotation, bool isLeft) { - Vector3 elbowAxis = (handRotation * Vector3.up/* + upperArmRotation * Vector3.up) / 2;*/); - return ForearmRotationIK(forearmPosition, handPosition, elbowAxis, isLeft); - } - - public static Quaternion ForearmRotationIK(Vector3 forearmPosition, Vector3 handPosition, Vector3 elbowAxis, bool isLeft) { - Quaternion forearmRotation = ArmBoneRotationIK(forearmPosition, handPosition, elbowAxis, isLeft); - //Vector3 forearmDirection = handPosition - forearmPosition; - //Quaternion forearmRotation = Quaternion.LookRotation(forearmDirection, elbowAxis); - - //if (isLeft) - // forearmRotation *= Quaternion.Euler(0, 90, 0); - //else - // forearmRotation *= Quaternion.Euler(0, -90, 0); - - return forearmRotation; - } - - public static float CalculateForearmAngle(HandTarget handTarget, Vector3 upperArmPosition, Vector3 handPosition, float upperArmLength, float forearmLength) { - float upperArmLength2 = upperArmLength * upperArmLength; - float forearmLength2 = forearmLength * forearmLength; - float upperArm2HandDistance = Vector3.Distance(upperArmPosition, handPosition); - float upperArm2HandDistance2 = upperArm2HandDistance * upperArm2HandDistance; - - float forearmAngle = Mathf.Acos((upperArmLength2 + forearmLength2 - upperArm2HandDistance2) / (2 * upperArmLength * forearmLength)) * Mathf.Rad2Deg; - if (float.IsNaN(forearmAngle)) - forearmAngle = 180; - - if (handTarget.isLeft) - forearmAngle = 180 - forearmAngle; - else - forearmAngle = forearmAngle - 180; - - if (handTarget.forearm.bone.jointLimitations) { - if (handTarget.isLeft) - forearmAngle = Mathf.Clamp(forearmAngle, 0, handTarget.forearm.bone.maxAngle); - else - forearmAngle = Mathf.Clamp(forearmAngle, -handTarget.forearm.bone.maxAngle, 0); - } - - return forearmAngle; - } - - //public float CalculateForearmAngle(HandTarget handTarget, Quaternion upperArmOrientation) { - // Quaternion localForearmOrienation = Quaternion.Inverse(upperArmOrientation) * handTarget.forearm.target.transform.rotation; - // Vector3 forearmAngles = localForearmOrienation.eulerAngles; - // //if (handTarget.jointLimitations) - // // forearmAngles = LimitAngles(handTarget.forearm, forearmAngles); - - // return forearmAngles.y; - //} - - #endregion - - #region Hand - - private Quaternion lastLocalHandRotation = Quaternion.identity; - - private Quaternion CalculateHandOrientation(HandTarget handTarget, Quaternion forearmOrientation) { - Quaternion handOrientation; - - if (handTarget.hand.target.confidence.position > 0.5F && handTarget.hand.target.confidence.rotation < 0.5F) - handOrientation = CalculateHandOrientation(handTarget); - else - handOrientation = handTarget.hand.target.transform.rotation; - - if (handTarget.hand.bone.jointLimitations) - handOrientation = LimitAngle(handTarget.hand, ref lastLocalHandRotation, handOrientation); - handOrientation = HandRotationLimitations(handTarget, handOrientation); - return handOrientation; - } - - private Quaternion CalculateHandOrientation(HandTarget handTarget) { - Vector3 forwarmForward = handTarget.hand.target.transform.position - handTarget.forearm.target.transform.position; - Vector3 forearmUp = handTarget.forearm.bone.targetRotation * Vector3.up; - Quaternion handOrientation = Quaternion.LookRotation(forwarmForward, forearmUp); - - handOrientation *= Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up); - return handOrientation; - - } - - private static Quaternion NaturalHandRotation(HandTarget handTarget) { - Quaternion handRotation = handTarget.hand.bone.targetRotation; - handRotation = HandRotationLimitations(handTarget, handRotation); - return handRotation; - } - - private static Vector3 NaturalHandPosition(HandTarget handTarget) { - Vector3 handPosition = GetHandPosition(handTarget); - handPosition = HandLimitations(handTarget, handPosition); - return handPosition; - } - private static Vector3 GetHandPosition(HandTarget handTarget) { - if (Application.isPlaying && (handTarget.humanoid.physics && (handTarget.handRigidbody == null || !handTarget.handRigidbody.isKinematic) || handTarget.stretchlessTarget == null)) - return handTarget.hand.bone.transform.position; - - else if (handTarget.stretchlessTarget != null) - return handTarget.stretchlessTarget.position; - else if (handTarget.hand.target.transform != null) - - return handTarget.hand.target.transform.position; - else - return Vector3.zero; - } - - private static void PlaceHandOnForearm(HandTarget handTarget, Quaternion forearmRotation) { - handTarget.hand.bone.transform.position = handTarget.forearm.bone.transform.position + forearmRotation * handTarget.outward * handTarget.forearm.bone.length; - } - - #endregion - - #region Limitations - private static Vector3 HandLimitations(HandTarget handTarget, Vector3 position) { - handTarget.hand.bone.transform.position = position; - if (handTarget.grabbedObject != null && handTarget.grabSocket.attachedHandle != null) { - MechanicalJoint mechanicalJoint = handTarget.grabbedObject.GetComponent(); - if (mechanicalJoint != null && mechanicalJoint.enabled) { - //Vector3 correctionVector = kinematicLimitations.GetCorrectionVector(); - //Vector3 socketPosition = handTarget.grabSocket.worldPosition; - //Debug.DrawRay(handTarget.grabbedObject.transform.position, correctionVector, Color.magenta); - //handTarget.grabSocket.attachedHandle.SetPosition(socketPosition + correctionVector); - return position; //handTarget.hand.target.transform.position + correctionVector; - } - } - return position; - } - - private static Quaternion HandRotationLimitations(HandTarget handTarget, Quaternion rotation) { - //handTarget.hand.bone.transform.rotation = rotation; - if (handTarget.grabbedObject != null && handTarget.grabSocket.attachedHandle != null) { - //KinematicLimitations kinematicJoint = handTarget.grabbedObject.GetComponent(); - //if (kinematicJoint != null && kinematicJoint.enabled) { - // Handle handle = handTarget.grabbedObject.GetComponent(); - // if (handle != null) { - // Quaternion socketRotation = handTarget.grabSocket.worldRotation; - // Quaternion correction = kinematicJoint.GetCorrectionAxisRotation(kinematicJoint.limitAngleAxis); - // handle.SetRotation(socketRotation);// * correction); - // //handTarget.grabbedObject.transform.rotation = handTarget.hand.target.transform.rotation * correction; - // return handTarget.hand.target.transform.rotation * correction; - // } - //} - //KinematicLimitations kinematicLimitations = handTarget.grabbedObject.GetComponent(); - //if (kinematicLimitations != null && kinematicLimitations.enabled) { - // Quaternion correctionRotation = kinematicLimitations.GetCorrectionRotation(); - // correctionRotation *= handTarget.hand.target.toBoneRotation; - // return rotation * correctionRotation; - //} - } - return rotation; - } - #endregion - - private static Quaternion IK(Vector3 bone1position, float bone1length, Vector3 bone1up, float bone2length, Vector3 targetPosition, bool isLeft) { - Vector3 bone1forward = targetPosition - bone1position; - float distance2target = bone1forward.magnitude; - - float bone1angle = CosineRule(distance2target, bone1length, bone2length); - if (isLeft) - bone1angle = -bone1angle; - - Quaternion bone1rotation = Quaternion.LookRotation(bone1forward, bone1up); - bone1rotation = Quaternion.AngleAxis(bone1angle, bone1up) * bone1rotation; - - if (isLeft) - bone1rotation *= Quaternion.Euler(0, 90, 0); - else - bone1rotation *= Quaternion.Euler(0, -90, 0); - - return bone1rotation; - } - - public static Quaternion CalculateBoneRotation(Vector3 bonePosition, Vector3 parentBonePosition) { - Vector3 direction = bonePosition - parentBonePosition; - if (direction.magnitude > 0) { - return Quaternion.LookRotation(direction); - } - else - return Quaternion.identity; - } - - public static Quaternion CalculateBoneRotation(Vector3 bonePosition, Vector3 parentBonePosition, Vector3 upDirection) { - Vector3 direction = bonePosition - parentBonePosition; - if (direction.magnitude > 0) { - return Quaternion.LookRotation(direction, upDirection); - } - else - return Quaternion.identity; - } - - public static Quaternion ArmBoneRotationIK(Vector3 bonePosition, Vector3 targetPosition, Vector3 upAxis, bool isLeft) { - Vector3 boneDirection = targetPosition - bonePosition; - Quaternion boneRotation = Quaternion.LookRotation(boneDirection, upAxis); - - boneRotation *= Quaternion.Euler(0, isLeft ? 90 : -90, 0); - - return boneRotation; - } - - public static float CosineRule(float a, float b, float c) { - float a2 = a * a; - float b2 = b * b; - float c2 = c * c; - - double angle = System.Math.Acos((a2 + b2 - c2) / (2 * a * b)) * Mathf.Rad2Deg; - if (double.IsNaN(angle)) - angle = 0; - return (float)angle; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs.meta deleted file mode 100644 index 7e2e2a4..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/ArmMovements.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: de468ae672fc9e64a9cc8fa4cbb09013 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs deleted file mode 100644 index ffcca1f..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs +++ /dev/null @@ -1,41 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class FingerMovements { - - public static void Update(HandTarget handTarget) { - if (handTarget == null || handTarget.hand.bone.transform == null) - return; - - Quaternion handRotation = handTarget.hand.bone.targetRotation; - - UpdateFinger(handRotation, handTarget.fingers.thumb); - UpdateFinger(handRotation, handTarget.fingers.index); - UpdateFinger(handRotation, handTarget.fingers.middle); - UpdateFinger(handRotation, handTarget.fingers.ring); - UpdateFinger(handRotation, handTarget.fingers.little); - - handTarget.fingers.DetermineFingerCurl(); - } - - private static void UpdateFinger(Quaternion handRotation, FingersTarget.TargetedFinger finger) { - Quaternion proximalRotation = CalculatePhalanxRotation(finger.proximal, handRotation); - finger.proximal.SetBoneRotation(proximalRotation); - - Quaternion intermediateRotation = CalculatePhalanxRotation(finger.intermediate, proximalRotation); - finger.intermediate.SetBoneRotation(intermediateRotation); - - Quaternion distalRotation = CalculatePhalanxRotation(finger.distal, intermediateRotation); - finger.distal.SetBoneRotation(distalRotation); - } - - private static Quaternion CalculatePhalanxRotation(FingersTarget.TargetedPhalanges phalanx, Quaternion parentRotation) { - if (phalanx.target.transform == null) - return Quaternion.identity; - - Quaternion phalanxRotationOnParent = parentRotation * phalanx.target.transform.localRotation; - return phalanxRotationOnParent; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs.meta deleted file mode 100644 index aed4462..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/FingerMovements.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 641cf115a30f3b3498f8ed0e97633057 -timeCreated: 1509534191 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs deleted file mode 100644 index 8c795ca..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs +++ /dev/null @@ -1,135 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class HandMovements : Movements { - public HandTarget handTarget; - - #region Init - //public void Init(Transform targetTransform) { - // handTarget = targetTransform.GetComponent(); - //} - - public override void Start(HumanoidControl humanoid, HumanoidTarget _target) { - handTarget = (HandTarget)_target; - - if (handTarget.humanoid.avatarRig == null || handTarget.hand.bone.transform == null) - return; - - - if (humanoid.physics && handTarget.physics) { - AdvancedHandPhysics physics = handTarget.hand.bone.transform.GetComponent(); - if (physics == null) { - physics = handTarget.hand.bone.transform.gameObject.AddComponent(); - } - - physics.handTarget = handTarget; - if (handTarget.physicsMode == AdvancedHandPhysics.PhysicsMode.HybridKinematic) - physics.mode = AdvancedHandPhysics.DeterminePhysicsMode(handTarget.handRigidbody, HybridPhysics.kinematicMass); - else - physics.mode = handTarget.physicsMode; - } - else { - BasicHandPhysics physics = handTarget.hand.bone.transform.GetComponent(); - if (physics == null) { - physics = handTarget.hand.bone.transform.gameObject.AddComponent(); - } - physics.handTarget = handTarget; - } - } - - public static void DetachHand(HandTarget handTarget) { - if (handTarget.hand.bone.transform == null) - return; - - handTarget.hand.bone.transform.parent = handTarget.humanoid.transform; - int layer = LayerMask.NameToLayer("Humanoid"); - if (layer > 0) - handTarget.hand.bone.transform.gameObject.layer = layer; - - if (handTarget.handRigidbody == null) { - handTarget.handRigidbody = handTarget.hand.bone.transform.GetComponent(); - if (handTarget.handRigidbody == null) - handTarget.handRigidbody = handTarget.hand.bone.transform.gameObject.AddComponent(); - } - handTarget.handRigidbody.mass = 1; - handTarget.handRigidbody.drag = 0; - handTarget.handRigidbody.angularDrag = 10; - handTarget.handRigidbody.useGravity = false; - handTarget.handRigidbody.isKinematic = true; - handTarget.handRigidbody.interpolation = RigidbodyInterpolation.None; - handTarget.handRigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative; - handTarget.handRigidbody.centerOfMass = handTarget.handPalm.position - handTarget.hand.bone.transform.position; - - if (handTarget.stretchlessTarget == null) { - handTarget.stretchlessTarget = handTarget.hand.target.transform.Find("Stretchless Target"); - if (handTarget.stretchlessTarget == null) { - GameObject stretchlessTargetObj = new GameObject("Stretchless Target"); - handTarget.stretchlessTarget = stretchlessTargetObj.transform; - handTarget.stretchlessTarget.parent = handTarget.hand.target.transform; - handTarget.stretchlessTarget.localPosition = Vector3.zero; - handTarget.stretchlessTarget.localRotation = Quaternion.identity; - } - } - } - - public void ReattachHand() { - if (handTarget == null || handTarget.hand.bone.transform == null) - return; - handTarget.hand.bone.transform.parent = handTarget.forearm.bone.transform; - } - #endregion - - #region Update - - public static void Update(HandTarget handTarget) { - if (handTarget == null) - return; - - handTarget.handMovements.HandUpdate(); - //HandInteraction.CheckLetGo(handTarget); - } - - public Vector3 toOtherHandle; - public Quaternion hand2handle; - private void HandUpdate() { - if (handTarget != null && handTarget.twoHandedGrab) { - // target.hand is the primary grabbing hand - // target.otherHand is the secondary grabbing hand - - //Vector3 toOtherTarget = handTarget.otherHand.hand.target.transform.position - handTarget.hand.target.transform.position; - - //Quaternion lookRot = Quaternion.LookRotation(toOtherTarget); - //handTarget.hand.target.transform.rotation = lookRot * hand2handle; - } - } - - public void FixedUpdate() { - if (handTarget == null || handTarget.humanoid == null || handTarget.humanoid.avatarRig == null || handTarget.hand.bone.transform == null) - return; - - //AdvancedHandPhysics handPhysics = handTarget.hand.bone.transform.GetComponent(); - BasicHandPhysics handPhysics = handTarget.hand.bone.transform.GetComponent(); - if (handPhysics == null) - return; - - handPhysics.ManualFixedUpdate(handTarget); - } - - #endregion - - #region Collisions - public static void SetAllColliders(Transform transform, bool enabled) { - Collider[] colliders = transform.GetComponentsInChildren(); - foreach (Collider c in colliders) - c.enabled = enabled; - } - - public static void SetAllColliders(GameObject obj, bool enabled) { - Collider[] colliders = obj.GetComponentsInChildren(); - foreach (Collider c in colliders) - c.enabled = enabled; - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs.meta deleted file mode 100644 index 0f9ac8b..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/HandMovements.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: a00e234c45847564eb97d2e1db3ce64a -timeCreated: 1475157597 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs deleted file mode 100644 index 86461c8..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs +++ /dev/null @@ -1,359 +0,0 @@ -using System.Collections; -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - public class HeadMovements : Movements { - protected HeadTarget headTarget; - - #region Start - public override void Start(HumanoidControl _humanoid, HumanoidTarget _target) { - base.Start(_humanoid, _target); - headTarget = (HeadTarget)_target; - - if (headTarget.neck.bone.transform != null) - headTarget.neck.bone.transform.rotation = headTarget.neck.target.transform.rotation * headTarget.neck.target.toBoneRotation; - if (headTarget.head.bone.transform != null) - headTarget.head.bone.transform.rotation = headTarget.head.target.transform.rotation * headTarget.head.target.toBoneRotation; - } - #endregion - - #region Update - - public static void Update(HeadTarget headTarget) { - if (headTarget.head.bone.transform == null || !headTarget.humanoid.calculateBodyPose) - return; - -#if hFACE - if (headTarget.neck.target.confidence.rotation < 0.2F && headTarget.head.target.confidence.rotation < 0.2F && - headTarget.face.leftEye.target.confidence.rotation > 0.2F) { - - UpdateHeadBonesFromGazeDirection(headTarget); - } - else { -#endif - if (Application.isPlaying && headTarget.humanoid.primaryTarget == HumanoidControl.PrimaryTarget.Hips) { - UpdateNeckRotation(headTarget); - UpdateNeckPositionFromHips(headTarget); - UpdateHeadPositionFromNeck(headTarget); - } - else { - UpdateHead(headTarget); - UpdateNeck(headTarget); - } -#if hFACE - } - headTarget.face.UpdateMovements(); -#endif - } - - private static void UpdateHead(HeadTarget headTarget) { - if (headTarget.head.target.transform == null) - return; - - headTarget.head.SetBoneRotation(headTarget.head.target.transform.rotation); - - // Commented out the requirement for position confidence > 0 because of Oculus Go/GearVR positional issue - if (!Application.isPlaying || - (headTarget.humanoid.targetsRig.runtimeAnimatorController == null - || headTarget.head.target.confidence.position > 0) - ) - headTarget.head.SetBonePosition(headTarget.head.target.transform.position); - } - - private static void UpdateHeadPositionFromNeck(HeadTarget headTarget) { - headTarget.head.SetBoneRotation(headTarget.head.target.transform.rotation); - Vector3 neckPosition = headTarget.neck.bone.transform.position; - Vector3 headPosition = neckPosition + headTarget.head.target.transform.rotation * Vector3.up * headTarget.neck.bone.length; - headTarget.head.SetBonePosition(headPosition); - } - - - private static void UpdateNeck(HeadTarget headTarget) { - if (headTarget.neck.bone.transform == null) - return; - - Vector3 headPosition = headTarget.head.bone.transform.position; - Quaternion headRotation = headTarget.head.bone.transform.rotation; - - if (headTarget.neck.target.confidence.rotation > headTarget.head.target.confidence.rotation) { - Quaternion neckRotation = headTarget.neck.target.transform.rotation; - headTarget.neck.SetBoneRotation(neckRotation); - - if (headTarget.humanoid.targetsRig.runtimeAnimatorController == null || - headTarget.head.target.confidence.position > 0) { - - Vector3 neckPosition = headPosition - neckRotation * Vector3.up * headTarget.neck.bone.length; - headTarget.neck.SetBonePosition(neckPosition); - } - } - else { - Quaternion hipsTargetRotation = headTarget.humanoid.hipsTarget.hips.bone.targetRotation * Quaternion.Inverse(headTarget.humanoid.hipsTarget.hips.bone.baseRotation); - Quaternion neckRotation = - Quaternion.Slerp(headTarget.head.bone.targetRotation, hipsTargetRotation, 0.3F) * headTarget.neck.bone.baseRotation; - - headTarget.neck.SetBoneRotation(neckRotation); - - // Commented out the requirement for position confidence > 0 because of Oculus Go/GearVR positional issue - if (!Application.isPlaying || ( - headTarget.humanoid.targetsRig.runtimeAnimatorController == null - || headTarget.head.target.confidence.position > 0 - )) { - Vector3 neckPosition = headPosition - neckRotation * Vector3.up * headTarget.neck.bone.length; - headTarget.neck.SetBonePosition(neckPosition); - } - } - - headTarget.head.bone.transform.position = headPosition; - headTarget.head.bone.transform.rotation = headRotation; - } - - private static void UpdateNeckRotation(HeadTarget headTarget) { - Quaternion headRotation = headTarget.head.bone.transform.rotation; - - if (headTarget.neck.target.confidence.rotation > headTarget.head.target.confidence.rotation) { - Quaternion neckRotation = headTarget.neck.target.transform.rotation; - headTarget.neck.SetBoneRotation(neckRotation); - } - else { - Quaternion hipsTargetRotation = headTarget.humanoid.hipsTarget.hips.bone.targetRotation * Quaternion.Inverse(headTarget.humanoid.hipsTarget.hips.bone.baseRotation); - Quaternion neckRotation = - Quaternion.Slerp(headTarget.head.bone.targetRotation, hipsTargetRotation, 0.3F) * headTarget.neck.bone.baseRotation; - - headTarget.neck.SetBoneRotation(neckRotation); - } - - headTarget.head.bone.transform.rotation = headRotation; - } - - private static void UpdateNeckPositionFromHips(HeadTarget headTarget) { - HipsTarget hipsTarget = headTarget.humanoid.hipsTarget; - Vector3 hipsPosition = hipsTarget.hips.bone.transform.position; - - if (hipsTarget.chest.bone.transform != null) { - Vector3 chestTopPosition = hipsTarget.chest.bone.transform.position + hipsTarget.chest.bone.targetRotation * Vector3.up * hipsTarget.chest.bone.length; - //Vector3 spineVector = chestTopPosition - hipsPosition; - headTarget.neck.SetBonePosition(chestTopPosition); - } - else if (hipsTarget.spine.bone.transform != null) { - Vector3 spineTopPosition = hipsTarget.spine.bone.transform.position + hipsTarget.spine.bone.targetRotation * Vector3.up * hipsTarget.spine.bone.length; - //Vector3 spineVector = spineTopPosition - hipsPosition; - headTarget.neck.SetBonePosition(spineTopPosition); - } - } - - public static Quaternion CalculateNeckRotation(Quaternion hipRotation, Quaternion headRotation) { - Vector3 headAnglesCharacterSpace = (Quaternion.Inverse(hipRotation) * headRotation).eulerAngles; - float neckYRotation = UnityAngles.Normalize(headAnglesCharacterSpace.y) * 0.6F; - Quaternion neckRotation = hipRotation * Quaternion.Euler(headAnglesCharacterSpace.x, neckYRotation, headAnglesCharacterSpace.z); - - return neckRotation; - } - - public static Vector3 CalculateNeckPositionFromEyes(Vector3 eyePosition, Quaternion eyeRotation, Vector3 eye2neck) { - Vector3 neckPosition = eyePosition + eyeRotation * eye2neck; - return neckPosition; - } - - public static Vector3 CalculateNeckPositionFromHead(Vector3 headPosition, Quaternion headRotation, float neckBoneLength) { - Vector3 neckPosition = headPosition - headRotation * Vector3.up * neckBoneLength; - return neckPosition; - } - - static float lastTime; - private static void UpdateHeadBonesFromGazeDirection(HeadTarget headTarget) { - if (headTarget.humanoid.hipsTarget.hips.bone.transform == null) - return; -#if hFACE - Quaternion neckParentRotation = headTarget.humanoid.hipsTarget.hips.bone.transform.rotation * headTarget.humanoid.hipsTarget.hips.bone.toTargetRotation; - - Quaternion oldNeckRotation = headTarget.neck.bone.transform.rotation * headTarget.neck.bone.toTargetRotation; - Vector3 localNeckAngles = (Quaternion.Inverse(neckParentRotation) * oldNeckRotation).eulerAngles; - - Quaternion predictedRotation = Quaternion.Slerp(Quaternion.identity, headTarget.neck.bone.rotationVelocity, Time.deltaTime); - - Quaternion eyeRotation = headTarget.face.leftEye.target.transform.rotation; - Vector3 localEyeAngles = (Quaternion.Inverse(oldNeckRotation) * eyeRotation).eulerAngles; - if (Quaternion.Angle(oldNeckRotation, eyeRotation) < 2) { - lastTime = Time.time; - return; - } - - float headTensionY = CalculateTension(localNeckAngles, headTarget.neck.bone.maxAngles); - float eyeTensionY = CalculateTension(localEyeAngles, headTarget.face.leftEye.bone.maxAngles); - float f = Mathf.Clamp01(1 - (headTensionY / eyeTensionY)); - - Quaternion targetRotation = Quaternion.LookRotation(headTarget.face.gazeDirection, Vector3.up); // this will overshoot, because the lookdirection itself is affected... - - Quaternion neckRotation = Quaternion.RotateTowards(oldNeckRotation, targetRotation, f * 2); - Quaternion desiredRotation = Quaternion.Inverse(oldNeckRotation) * neckRotation; - - // This limits the speed changes - float deltaTime = Time.time - lastTime; - Quaternion resultRotation = Quaternion.RotateTowards(predictedRotation, desiredRotation, deltaTime * 100); - neckRotation = oldNeckRotation * resultRotation; - - headTarget.neck.bone.transform.rotation = neckRotation * headTarget.neck.target.toBoneRotation; - lastTime = Time.time; -#endif - } - - private void UpdateHeadBonesFromLookDirection() { - Quaternion neckParentRotation = headTarget.humanoid.hipsTarget.hips.bone.transform.rotation * headTarget.humanoid.hipsTarget.hips.bone.toTargetRotation; - - Quaternion oldNeckRotation = headTarget.neck.bone.transform.rotation * headTarget.neck.bone.toTargetRotation; - Vector3 localNeckAngles = (Quaternion.Inverse(neckParentRotation) * oldNeckRotation).eulerAngles; - - Quaternion predictedRotation = Quaternion.Slerp(Quaternion.identity, headTarget.neck.bone.rotationVelocity, Time.deltaTime); - - Quaternion targetRotation = Quaternion.LookRotation(headTarget.lookDirection, Vector3.up); // this will overshoot, because the lookdirection itself is affected... - - Quaternion neckRotation = targetRotation; - Quaternion desiredRotation = Quaternion.Inverse(oldNeckRotation) * neckRotation; - - // This limits the speed changes - Quaternion resultRotation = Quaternion.RotateTowards(predictedRotation, desiredRotation, Time.deltaTime * 6); - neckRotation = oldNeckRotation * resultRotation; - - headTarget.neck.bone.transform.rotation = neckRotation * headTarget.neck.target.toBoneRotation; - } - - #endregion - - private static float CalculateTension(Vector3 angle, Vector3 maxAngle) { - float dX = CalculateTension(angle.x, maxAngle.x); - float dY = CalculateTension(angle.y, maxAngle.y); - float dZ = CalculateTension(angle.z, maxAngle.z); - return (dX + dY + dZ); - } - - private static float CalculateTension(float angle, float maxAngle) { - return (maxAngle != 0) ? Mathf.Abs(Angle.Normalize(angle) / maxAngle) : 0; - } - } - - public class HeadCollisionHandler : MonoBehaviour { - - static public Collider AddHeadCollider(GameObject headObject) { - HeadTarget headTarget = headObject.GetComponent(); - if (headTarget.headRigidbody == null) { - headTarget.headRigidbody = headObject.AddComponent(); - if (headTarget.headRigidbody != null) { - headTarget.headRigidbody.mass = 1; - headTarget.headRigidbody.useGravity = false; - headTarget.headRigidbody.isKinematic = true; - } - } - - Collider collider = headObject.GetComponent(); - if (collider != null) - return collider; - - SphereCollider sphereCollider = headObject.AddComponent(); - if (sphereCollider != null) { - sphereCollider.isTrigger = true; - sphereCollider.radius = 0.1F; - sphereCollider.center = new Vector3(0, 0, 0.05F); - } - - return sphereCollider; - } - - private HumanoidControl humanoid; - private Material fadeMaterial; - - public void Initialize(HumanoidControl _humanoid) { - humanoid = _humanoid; - if (humanoid.headTarget.collisionFader) - FindFadeMaterial(); - } - - private void FindFadeMaterial() { -#if pUNITYXR - if (humanoid.unityXR == null || humanoid.unityXR.trackerComponent == null) - return; - Passer.Tracking.UnityXR unityXRtracker = humanoid.unityXR.trackerComponent as Passer.Tracking.UnityXR; - if (unityXRtracker.hmd == null || unityXRtracker.hmd.unityCamera == null) -#endif - return; - -#if pUNITYXR - Transform plane = unityXRtracker.hmd.unityCamera.transform.Find("Fader"); -#endif -#if pUNITYXR || hLEGACYXR - if (plane != null) { - Renderer renderer = plane.GetComponent(); - if (renderer != null) { - renderer.enabled = true; - fadeMaterial = renderer.sharedMaterial; - Color color = fadeMaterial.color; - color.a = 0.0F; - fadeMaterial.color = color; - } - } -#endif - } - - void OnTriggerEnter(Collider otherCollider) { - if (fadeMaterial == null || otherCollider.isTrigger) - return; - - if (otherCollider.attachedRigidbody == null) { - DoFadeOut(); - humanoid.headTarget.isInsideCollider = true; - } - } - - void OnTriggerExit(Collider otherCollider) { - - if (fadeMaterial == null || otherCollider.isTrigger) - return; - - if (otherCollider.attachedRigidbody == null) { - DoFadeIn(); - humanoid.headTarget.isInsideCollider = false; - } - } - - private void DoFadeOut() { - StartCoroutine(FadeOut(fadeMaterial)); - } - private void DoFadeIn() { - StartCoroutine(FadeIn(fadeMaterial)); - } - - private bool faded = false; - public float fadeTime = 0.3F; - - public IEnumerator FadeOut(Material fadeMaterial) { - if (!faded) { - float elapsedTime = 0.0f; - Color color = fadeMaterial.color; - color.a = 0.0f; - fadeMaterial.color = color; - while (elapsedTime < fadeTime) { - yield return new WaitForEndOfFrame(); - elapsedTime += Time.deltaTime; - color.a = Mathf.Clamp01(elapsedTime / fadeTime); - fadeMaterial.color = color; - } - } - faded = true; - } - - public IEnumerator FadeIn(Material fadeMaterial) { - if (faded) { - float elapsedTime = 0.0f; - Color color = fadeMaterial.color; - while (elapsedTime < fadeTime) { - yield return new WaitForEndOfFrame(); - elapsedTime += Time.deltaTime; - color.a = 1.0f - Mathf.Clamp01(elapsedTime / fadeTime); - fadeMaterial.color = color; - } - } - faded = false; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs.meta deleted file mode 100644 index 86e1233..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/HeadMovements.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 24b9b7beaeff72c41acfda9b9ecb109f -timeCreated: 1436986734 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs deleted file mode 100644 index b1fdc6f..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs +++ /dev/null @@ -1,250 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class LegMovements : Movements { - - #region Update - public static void Update(FootTarget footTarget) { - if (footTarget == null || footTarget.foot.bone.transform == null || !footTarget.humanoid.calculateBodyPose) - return; - - footTarget.CheckGrounded(); - - if (Application.isPlaying && - footTarget.humanoid.targetsRig.runtimeAnimatorController != null - && footTarget.foot.target.confidence.position == 0) { - - footTarget.legMovements.FullForwardKinematics(footTarget); - } - else { - if (footTarget.foot.target.confidence.rotation >= footTarget.lowerLeg.target.confidence.rotation && - (footTarget.foot.target.confidence.position >= footTarget.lowerLeg.target.confidence.rotation || - footTarget.ground != null)) - - footTarget.legMovements.FullInverseKinematics(footTarget); - else if (footTarget.lowerLeg.target.confidence.rotation > footTarget.foot.target.confidence.rotation) - footTarget.legMovements.LowerLegForwardKinematics(footTarget); - else - footTarget.legMovements.FullForwardKinematics(footTarget); - } - } - - private void FullInverseKinematics(FootTarget footTarget) { - //Debug.Log("FullInverseKinematics"); - - if (footTarget.foot.target.transform == null) - return; - - Vector3 footPosition = NaturalFootPosition(footTarget); - - Quaternion upperLegRotation = NaturalUpperLegOrientation(footTarget, footPosition); - footTarget.upperLeg.SetBoneRotation(upperLegRotation); - - Quaternion lowerLegRotation = NaturalLowerLegOrientation(footTarget, upperLegRotation, footPosition); - footTarget.lowerLeg.SetBoneRotation(lowerLegRotation); - - Quaternion footOrientation = NaturalFootOrientation(footTarget); - footTarget.foot.SetBoneRotation(footOrientation); - - Quaternion toesOrientation = NaturalToesOrientation(footTarget); - footTarget.toes.SetBoneRotation(toesOrientation); - - if (!Application.isPlaying) - PlaceFootOnLowerLeg(footTarget, lowerLegRotation); - } - - private void FullForwardKinematics(FootTarget footTarget) { - //Debug.Log("FullForwardKinematics"); - footTarget.upperLeg.SetBoneRotation(footTarget.upperLeg.target.transform.rotation); - footTarget.lowerLeg.SetBoneRotation(footTarget.lowerLeg.target.transform.rotation); - footTarget.foot.SetBoneRotation(footTarget.foot.target.transform.rotation); - footTarget.toes.SetBoneRotation(footTarget.toes.target.transform.rotation); - } - - private void LowerLegForwardKinematics(FootTarget footTarget) { - //Debug.Log("LowerLegForwardKinematics"); - - Vector3 upperLegPosition = footTarget.upperLeg.bone.transform.position; - Vector3 lowerLegPosition = footTarget.lowerLeg.target.transform.position; - Quaternion lowerLegRotation = footTarget.lowerLeg.target.transform.rotation; - - Quaternion upperLegRotation = CalculateUpperLegRotation(footTarget, upperLegPosition, lowerLegPosition, lowerLegRotation); - footTarget.upperLeg.SetBoneRotation(upperLegRotation); - - footTarget.lowerLeg.SetBoneRotation(lowerLegRotation); - footTarget.foot.SetBoneRotation(footTarget.foot.target.transform.rotation); - footTarget.toes.SetBoneRotation(footTarget.toes.target.transform.rotation); - } - - #endregion - - #region Upper Leg - - private Quaternion NaturalUpperLegOrientation(FootTarget footTarget, Vector3 footPosition) { - Quaternion oldUpperLegRotation = footTarget.upperLeg.bone.transform.rotation * footTarget.upperLeg.bone.toTargetRotation; - Quaternion upperLegRotation = CalculateUpperLegRotation(footTarget, footTarget.upperLeg.bone.transform.position, footPosition, footTarget.foot.target.transform.rotation, footTarget.upperLeg.bone.length, footTarget.lowerLeg.bone.length); - //upperLegRotation = LimitRotationSpeed(oldUpperLegRotation, upperLegRotation); - if (footTarget.isLeft) - upperLegRotation = MeasureRotationSpeed(oldUpperLegRotation, upperLegRotation); - return upperLegRotation; - } - - private Quaternion lastLocalUpperLegRotation = Quaternion.identity; - - public Quaternion CalculateUpperLegRotation(FootTarget footTarget, Vector3 upperLegPosition, Vector3 footPosition, Quaternion footRotation, float upperLegLength, float lowerLegLength) { - Vector3 upperLegForward = footPosition - upperLegPosition; - Vector3 upperLegRight = footTarget.humanoid.hipsTarget.hips.target.transform.right; - Vector3 upperLegUp = Vector3.Cross(upperLegForward, upperLegRight); - - float hip2FootDistance = upperLegForward.magnitude; - float hipAngle = Mathf.Acos((Square(hip2FootDistance) + Square(upperLegLength) - Square(lowerLegLength)) / (2 * upperLegLength * hip2FootDistance)) * Mathf.Rad2Deg; - // NaN happens when the distance to the footTarget is longer than the length of the leg - // We will stretch the leg full then (angle = 0) - if (float.IsNaN(hipAngle)) - hipAngle = 0; - - Quaternion upperLegRotation = Quaternion.LookRotation(upperLegForward, upperLegUp); - upperLegRotation = Quaternion.AngleAxis(hipAngle, upperLegRotation * Vector3.left) * upperLegRotation; - - upperLegRotation *= Quaternion.Euler(270, 0, 0); - if (footTarget.upperLeg.bone.jointLimitations) - upperLegRotation = LimitAngle(footTarget.upperLeg, ref lastLocalUpperLegRotation, upperLegRotation); - - return upperLegRotation; - } - - public Quaternion CalculateUpperLegRotation(FootTarget footTarget, Vector3 upperLegPosition, Vector3 lowerLegPosition, Quaternion lowerLegRotation) { - Vector3 upperLegForward = lowerLegPosition - upperLegPosition; - Vector3 upperLegRight = lowerLegRotation * Vector3.right; - Vector3 upperLegUp = Vector3.Cross(upperLegForward, upperLegRight); - - Quaternion upperLegRotation = Quaternion.LookRotation(upperLegForward, upperLegUp) * Quaternion.AngleAxis(270, Vector3.right); - if (footTarget.upperLeg.bone.jointLimitations) - upperLegRotation = LimitAngle(footTarget.upperLeg, ref lastLocalUpperLegRotation, upperLegRotation); - - return upperLegRotation; - } - - #endregion - - #region Lower Leg - private Quaternion NaturalLowerLegOrientation(FootTarget footTarget, Quaternion upperLegRotation, Vector3 footPosition) { - float lowerLegAngle = CalculateKneeAngle(footTarget.upperLeg.bone.transform.position, footPosition, footTarget.upperLeg.bone.length, footTarget.lowerLeg.bone.length); - - if (footTarget.lowerLeg.bone.jointLimitations) - lowerLegAngle = LimitKneeAngle(footTarget.lowerLeg, lowerLegAngle); - - Quaternion localLowerLegRotation = Quaternion.AngleAxis(lowerLegAngle, Vector3.right); - Quaternion lowerLegRotation = upperLegRotation * localLowerLegRotation; - - //lowerLegRotation = LimitRotationSpeed(oldLowerLegRotation, lowerLegRotation); - return lowerLegRotation; - } - - public static float LimitKneeAngle(FootTarget.TargetedLowerLegBone lowerLeg, float angle) { - return UnityAngles.Clamp(angle, 0, lowerLeg.bone.maxAngle); - } - - public static Quaternion CalculateLowerLegRotation(Vector3 lowerLegPosition, Vector3 footPosition, Quaternion hipsRotation) { - Vector3 lowerLegUp = hipsRotation * Vector3.forward; - Quaternion lowerLegRotation = Quaternion.LookRotation(footPosition - lowerLegPosition, lowerLegUp); - - lowerLegRotation *= Quaternion.Euler(270, 0, 0); - return lowerLegRotation; - } - - public static float CalculateKneeAngle(Vector3 upperLegPosition, Vector3 footPosition, float upperLegLength, float lowerLegLength) { - float dHipTarget = Vector3.Distance(upperLegPosition, footPosition); - - float kneeAngle = Mathf.Acos((Square(upperLegLength) + Square(lowerLegLength) - dHipTarget * dHipTarget) / (2 * upperLegLength * lowerLegLength)) * Mathf.Rad2Deg; - if (float.IsNaN(kneeAngle)) - kneeAngle = 180; - return 180 - kneeAngle; - } - #endregion - - #region Foot - - // Calculate the foot position taking body limitations into account - private Vector3 NaturalFootPosition(FootTarget footTarget) { - if (footTarget.ground == null || !footTarget.physics) - return footTarget.foot.target.transform.position; - else { - return footTarget.foot.target.transform.position + footTarget.groundDistance * footTarget.humanoid.up; - } - } - - // Calculate the foot orientation taking body limitation into account - private Quaternion NaturalFootOrientation(FootTarget footTarget) { - Quaternion footOrientation = DetermineFootOrientation(footTarget); - if (footTarget.foot.bone.jointLimitations) - footOrientation = LimitAngle(footTarget.foot, ref lastLocalFootRotation, footOrientation); - //footOrientation = LimitFootSpeed(footOrientation); - return footOrientation; - } - - // Limit the rotation speed of the foot to natural speeds - private Quaternion LimitFootSpeed(FootTarget footTarget, Quaternion newFootOrientation) { - Quaternion oldFootRotation = footTarget.foot.bone.transform.rotation * footTarget.foot.bone.toTargetRotation; - - if (footTarget.rotationSpeedLimitation) - newFootOrientation = LimitRotationSpeed(oldFootRotation, newFootOrientation); - - return newFootOrientation; - } - - // Limit the foot orientation from the body limitations - private Quaternion lastLocalFootRotation = Quaternion.identity; - - // Determine foot orientation without body limitations - private Quaternion DetermineFootOrientation(FootTarget footTarget) { - Vector3 footAngles; - Quaternion footOrientation; - if (footTarget.upperLeg.target.confidence.rotation > footTarget.foot.target.confidence.rotation) { - Vector3 upperLegAngles = footTarget.upperLeg.target.transform.eulerAngles; - footAngles = footTarget.foot.target.transform.eulerAngles; - footOrientation = Quaternion.Euler(footAngles.x, upperLegAngles.y, footAngles.z); - } - else { - if (footTarget.ground != null) { - Quaternion footRotation = footTarget.foot.target.transform.rotation; - footOrientation = Quaternion.LookRotation(footTarget.groundNormal, footRotation * Vector3.back) * Quaternion.Euler(90, 0, 0); - } - else { - footOrientation = footTarget.foot.target.transform.rotation; - } - } - return footOrientation; - } - - public static Vector3 CalculateFootPosition(Vector3 upperLegPosition, Quaternion upperLegOrientation, float upperLegLength, Quaternion lowerLegOrientation, float lowerLegLength) { - Vector3 lowerLegPosition = upperLegPosition + upperLegOrientation * Vector3.up * upperLegLength; - Vector3 footPosition = lowerLegPosition + lowerLegOrientation * Vector3.up * lowerLegLength; - return footPosition; - } - - private static void PlaceFootOnLowerLeg(FootTarget footTarget, Quaternion lowerLegRotation) { - footTarget.foot.bone.transform.position = footTarget.lowerLeg.bone.transform.position + lowerLegRotation * -footTarget.humanoid.up * footTarget.lowerLeg.bone.length; - } - - #endregion - - #region Toes - private Quaternion NaturalToesOrientation(FootTarget footTarget) { - Quaternion footRotation = footTarget.foot.bone.transform.rotation * footTarget.foot.bone.toTargetRotation; - if (footTarget.ground != null) { - return Quaternion.LookRotation(footTarget.groundNormal, footRotation * Vector3.back) * Quaternion.Euler(90, 0, 0); - } - else { - return footRotation; - } - } - #endregion - - private static float Square(float x) { - return x * x; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs.meta deleted file mode 100644 index 9871e30..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/LegMovements.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: d12505af099343d4da1cb5be22cdbe84 -timeCreated: 1455696488 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Movements/Movements.cs b/Runtime/HumanoidFree/Scripts/Movements/Movements.cs deleted file mode 100644 index 0b0951e..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/Movements.cs +++ /dev/null @@ -1,140 +0,0 @@ -/* InstantVR Movements - * author: Pascal Serrarnes - * email: support@passervr.com - * version: 3.0.8 - * date: June 26, 2015 - * - */ - -using UnityEngine; - -namespace Passer.Humanoid { - - public abstract class Movements { - public Movements() { } - - public virtual void Start(HumanoidControl _humanoid, HumanoidTarget _target) { - } - - private static float maxAngularSpeed = 360; - - protected Quaternion LimitRotationSpeed(Quaternion oldRotation, Quaternion newRotation, float thisMaxAngularSpeed) { - newRotation = Quaternion.RotateTowards(oldRotation, newRotation, maxAngularSpeed * Time.deltaTime); - return newRotation; - } - - //float last; - protected Quaternion MeasureRotationSpeed(Quaternion oldRotation, Quaternion newRotation) { - //Debug.Log(maxAngularSpeed * Time.deltaTime + ": "+ Quaternion.Angle(oldRotation, newRotation) + " T " + newRotation.eulerAngles); - //last = Time.time; - return newRotation; - } - protected static Quaternion LimitRotationSpeed(Quaternion oldRotation, Quaternion newRotation) { - newRotation = Quaternion.RotateTowards(oldRotation, newRotation, maxAngularSpeed * Time.deltaTime); - return newRotation; - } - - protected static Quaternion LimitAngle(HumanoidTarget.TargetedBone targetedBone, ref Quaternion lastLocalBoneRotation, Quaternion boneRotation) { - if (targetedBone.parent == null || targetedBone.parent.bone.transform == null) - return boneRotation; - - Quaternion parentRotation = targetedBone.parent.bone.targetRotation; - Quaternion localRotation = Quaternion.Inverse(parentRotation) * boneRotation; - - float lastAngle = Quaternion.Angle(Quaternion.identity, lastLocalBoneRotation); - float angle = Quaternion.Angle(parentRotation, boneRotation); - if (angle < lastAngle) { - // Decreasing angle - - // No damping or limit - - lastLocalBoneRotation = localRotation; - return boneRotation; - - } else { - // Increasing angle - Quaternion deltaLocalRotation = Quaternion.Inverse(lastLocalBoneRotation) * localRotation; - - // Damping tension based limit - float tension = targetedBone.GetTension(); - float f = Mathf.Clamp01(1 - tension * tension); - deltaLocalRotation = Quaternion.Slerp(Quaternion.identity, deltaLocalRotation, f); - lastLocalBoneRotation = lastLocalBoneRotation * deltaLocalRotation; - - // Hard limit - lastLocalBoneRotation = Quaternion.RotateTowards(Quaternion.identity, lastLocalBoneRotation, targetedBone.bone.maxAngle); - - return parentRotation * lastLocalBoneRotation; - } - } - protected Vector3 LimitAngles(HumanoidTarget.TargetedBone bone, Vector3 angles) { - angles = UnityAngles.Clamp(angles, bone.bone.minAngles, bone.bone.maxAngles); - return angles; - } - - public static void ClampRotation(Transform bone, Quaternion referenceRotation, Vector3 ROMnegative, Vector3 ROMpositive) { - Quaternion localRotation = Quaternion.Inverse(referenceRotation) * bone.rotation; - Vector3 localEuler = localRotation.eulerAngles; - - localRotation = Quaternion.Euler( - Mathf.Clamp(Angle180(localEuler.x), ROMnegative.x, ROMpositive.x), - Mathf.Clamp(Angle180(localEuler.y), ROMnegative.y, ROMpositive.y), - Mathf.Clamp(Angle180(localEuler.z), ROMnegative.z, ROMpositive.z)); - - bone.rotation = referenceRotation * localRotation; - } - - public static Vector3 MuscleTension(Transform bone, Quaternion referenceRotation, Vector3 ROMnegative, Vector3 ROMpositive) { - Quaternion localRotation = Quaternion.Inverse(referenceRotation) * bone.rotation; - Vector3 localEuler = localRotation.eulerAngles; - - Vector3 tension = new Vector3( - AxisTension(Angle180(localEuler.x), ROMnegative.x, ROMpositive.x), - AxisTension(Angle180(localEuler.y), ROMnegative.y, ROMpositive.y), - AxisTension(Angle180(localEuler.z), ROMnegative.z, ROMpositive.z)); - - return tension; - } - - private static float AxisTension(float angle, float ROMnegative, float ROMpositive) { - return AxisTension(angle, ROMnegative, ROMpositive, 1); - } - - private static float AxisTension(float angle, float ROMnegative, float ROMpositive, float MaxTension) { - float f; - if (angle < 0) - f = angle / ROMnegative; - else { - f = angle / ROMpositive; - } - - return (f * f) * MaxTension; - } - - public static Vector3 Euler180(Vector3 eulerAngles) { - return new Vector3( - Angle180(eulerAngles.x), - Angle180(eulerAngles.y), - Angle180(eulerAngles.z)); - } - - public static float Angle180(float _angle) { - float angle = _angle; - while (angle > 180) - angle -= 360; - while (angle < -180) - angle += 360; - return angle; - } - - public static float AngleDifference(float a, float b) { - float r = b - a; - while (r < -180) - r += 360; - while (r > 180) - r -= 360; - return r; - } - - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/Movements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/Movements.cs.meta deleted file mode 100644 index 7aee43a..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/Movements.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1f1d2e31fce907d4995d5661dcda04d6 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs b/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs deleted file mode 100644 index c1a5f11..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs +++ /dev/null @@ -1,310 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public partial class HipsTarget { - public float hipsBaseHeight; - } - - public class TorsoMovements { - private HipsTarget hipsTarget; - - private Breathing breathing = new Breathing(); - - #region Start - public void Start(HumanoidControl _humanoid, HipsTarget _target) { - hipsTarget = _target; - - if (hipsTarget.hips.bone.transform == null) - return; - } - #endregion - - #region Update - - public static void Update(HipsTarget hipsTarget) { - if (hipsTarget.hips.bone.transform == null || !hipsTarget.humanoid.calculateBodyPose) - return; - - if (Mathf.Abs(hipsTarget.hipsBaseHeight) < 0.00001F) - hipsTarget.hipsBaseHeight = hipsTarget.hips.bone.transform.position.y - hipsTarget.hips.target.transform.position.y; - - HeadTarget headTarget = hipsTarget.humanoid.headTarget; - HumanoidTarget.BoneTransform neckBone = (headTarget.neck.bone.transform != null) ? headTarget.neck.bone : headTarget.head.bone; - Vector3 neckPosition = neckBone.transform.position; - Quaternion neckRotation = neckBone.transform.rotation; - Quaternion neckTargetRotation = neckRotation * neckBone.toTargetRotation * Quaternion.Inverse(headTarget.neck.bone.baseRotation); - - if (Application.isPlaying && - hipsTarget.humanoid.targetsRig.runtimeAnimatorController != null && - hipsTarget.hips.target.confidence.position == 0 && - hipsTarget.humanoid.headTarget.head.target.confidence.position == 0) { - - hipsTarget.torsoMovements.CharacterNoIK(hipsTarget, neckPosition); - } - else { - if (hipsTarget.hips.target.confidence.rotation > 0.5F && hipsTarget.spine.target.confidence.rotation > 0.5F && hipsTarget.chest.target.confidence.rotation > 0.5F) - hipsTarget.torsoMovements.CharacterNoIK(hipsTarget, neckPosition); - else if (!hipsTarget.newSpineIK) - hipsTarget.torsoMovements.NewIK(hipsTarget, neckPosition, neckTargetRotation); - else - hipsTarget.torsoMovements.SimpleIK(hipsTarget); - - if (Application.isPlaying) - hipsTarget.torsoMovements.breathing.Update(); - - neckBone.transform.position = neckPosition; - neckBone.transform.rotation = neckRotation; - } - } - - public void CharacterNoIK(HipsTarget hipsTarget, Vector3 neckBonePosition) { - hipsTarget.hips.SetBoneRotation(hipsTarget.hips.target.transform.rotation); - hipsTarget.spine.SetBoneRotation(hipsTarget.spine.target.transform.rotation); - hipsTarget.chest.SetBoneRotation(hipsTarget.chest.target.transform.rotation); - - if (hipsTarget.humanoid.headTarget.head.target.confidence.position > 0) { - if (hipsTarget.chest.bone.transform != null) { - Vector3 chestTopPosition = hipsTarget.chest.bone.transform.position + hipsTarget.chest.bone.targetRotation * Vector3.up * hipsTarget.chest.bone.length; - Vector3 spineVector = chestTopPosition - hipsTarget.hips.bone.transform.position; - hipsTarget.hips.SetBonePosition(neckBonePosition - spineVector); - } - else if (hipsTarget.spine.bone.transform != null) { - Vector3 spineTopPosition = hipsTarget.spine.bone.transform.position + hipsTarget.spine.bone.targetRotation * Vector3.up * hipsTarget.spine.bone.length; - Vector3 spineVector = spineTopPosition - hipsTarget.hips.bone.transform.position; - hipsTarget.hips.SetBonePosition(neckBonePosition - spineVector); - } - } - else { - Vector3 hipsPosition = hipsTarget.hips.target.transform.position + hipsTarget.hipsBaseHeight * Vector3.up; - hipsTarget.hips.SetBonePosition(hipsPosition); - } - } - - private void SimpleIK(HipsTarget hipsTarget) { - // This implementation ignores the spine and chest bones - // Which results in a stiff spine - Vector3 neckTargetPosition = hipsTarget.humanoid.headTarget.neck.target.transform.position; - Quaternion neckRotation = hipsTarget.humanoid.headTarget.neck.bone.transform.rotation; - - Vector3 hipsTargetPosition = hipsTarget.hips.target.transform.position; - - Quaternion hipsTargetRotation = hipsTarget.hips.target.transform.rotation; - - Vector3 hipsBack = hipsTargetRotation * Vector3.back; - Vector3 hipsUp = neckTargetPosition - hipsTargetPosition; - - if (hipsUp.sqrMagnitude <= 0.0001F) - hipsUp = hipsTarget.humanoid.up; - - Quaternion spineRotation = Quaternion.LookRotation(hipsUp, hipsBack) * Quaternion.Euler(90, 0, 0); - Quaternion hipsRotation = spineRotation * hipsTarget.spine2HipsRotation; - hipsTarget.hips.SetBoneRotation(hipsRotation); - - Vector3 spineVector = spineRotation * Vector3.up * hipsTarget.torsoLength; - hipsTarget.hips.SetBonePosition(hipsTarget.humanoid.headTarget.neck.target.transform.position - spineVector); - - hipsTarget.humanoid.headTarget.neck.bone.transform.rotation = neckRotation; - } - - //float bendingFactor = 1; - - private void NewIK(HipsTarget hipsTarget, Vector3 neckBonePosition, Quaternion neckBoneTargetRotation) { - Quaternion hipsTargetRotation; - if (!Application.isPlaying || hipsTarget.humanoid.primaryTarget == HumanoidControl.PrimaryTarget.Head) { - hipsTargetRotation = CalculateHipsRotation(hipsTarget, neckBonePosition); - hipsTarget.hips.SetBoneRotation(hipsTargetRotation); - - hipsTargetRotation *= Quaternion.Inverse(hipsTarget.hips.bone.baseRotation); - - Quaternion spineTargetRotation = CalculateSpineRotation(hipsTarget, hipsTarget.spine.bone.baseRotation, hipsTargetRotation, neckBoneTargetRotation); - hipsTarget.spine.SetBoneRotation(spineTargetRotation); - - Quaternion chestTargetRotation = CalculateChestRotation(hipsTarget, hipsTarget.chest.bone.baseRotation, hipsTargetRotation, neckBoneTargetRotation); - hipsTarget.chest.SetBoneRotation(chestTargetRotation); - - CalculateHipsPositionFromHead(hipsTarget, neckBonePosition); - } - else { - HeadTarget headTarget = hipsTarget.humanoid.headTarget; - hipsTargetRotation = CalculateHipsRotation(hipsTarget, headTarget.head.target.transform.position); - hipsTarget.hips.SetBoneRotation(hipsTargetRotation); - - Quaternion spineTargetRotation = CalculateSpineLookRotation(hipsTarget, hipsTarget.spine.bone.baseRotation, hipsTargetRotation); - hipsTarget.spine.SetBoneRotation(spineTargetRotation); - - Quaternion chestTargetRotation = CalculateChestLookRotation(hipsTarget, hipsTarget.chest.bone.baseRotation, hipsTargetRotation); - hipsTarget.chest.SetBoneRotation(chestTargetRotation); - - CalculateHipsPositionFromTarget(hipsTarget); - } - } - - private void CalculateHipsPositionFromHead(HipsTarget hipsTarget, Vector3 neckBonePosition) { - if (hipsTarget.chest.bone.transform != null) { - Vector3 chestTopPosition = hipsTarget.chest.bone.transform.position + hipsTarget.chest.bone.targetRotation * Vector3.up * hipsTarget.chest.bone.length; - Vector3 spineVector = chestTopPosition - hipsTarget.hips.bone.transform.position; - hipsTarget.hips.SetBonePosition(neckBonePosition - spineVector); - } - else if (hipsTarget.spine.bone.transform != null) { - Vector3 spineTopPosition = hipsTarget.spine.bone.transform.position + hipsTarget.spine.bone.targetRotation * Vector3.up * hipsTarget.spine.bone.length; - Vector3 spineVector = spineTopPosition - hipsTarget.hips.bone.transform.position; - hipsTarget.hips.SetBonePosition(neckBonePosition - spineVector); - } - } - - private void CalculateHipsPositionFromTarget(HipsTarget hipsTarget) { - hipsTarget.hips.SetBonePosition(hipsTarget.hips.target.transform.position); - } - - #endregion - - #region Chest - - public Quaternion CalculateChestRotation(HipsTarget hipsTarget, Quaternion baseRotation, Quaternion hipsRotation, Quaternion neckRotation) { - float factor = hipsTarget.bendingFactor * 0.3F; - Quaternion chestRotation = Quaternion.Slerp(neckRotation, hipsRotation, factor) * baseRotation; - return chestRotation; - } - public Quaternion CalculateChestLookRotation(HipsTarget hipsTarget, Quaternion baseRotation, Quaternion hipsRotation) { - Quaternion spineRotation = hipsRotation; - return spineRotation; - - } - - #endregion - - #region Spine - - public Quaternion CalculateSpineRotation(HipsTarget hipsTarget, Quaternion baseRotation, Quaternion hipsRotation, Quaternion neckRotation) { - float factor = hipsTarget.chest.bone.transform != null ? 0.4F : 0.3F; - factor *= hipsTarget.bendingFactor; - Quaternion spineRotation = Quaternion.Slerp(neckRotation, hipsRotation, factor) * baseRotation; - return spineRotation; - } - - public Quaternion CalculateSpineLookRotation(HipsTarget hipsTarget, Quaternion baseRotation, Quaternion hipsRotation) { - Quaternion spineRotation = hipsRotation; - return spineRotation; - } - - public static Vector3 CalculateSpinePosition(Vector3 chestPosition, Quaternion spineRotation, float spineLength) { - Vector3 spinePosition = chestPosition - spineRotation * Vector3.up * spineLength; - return spinePosition; - } - - #endregion - - #region Hips - - private Quaternion CalculateHipsRotation(HipsTarget hipsTarget, Vector3 neckBonePosition) { - if (hipsTarget.hips.target.transform == null) - return Quaternion.identity; - - Vector3 torsoUp = neckBonePosition - hipsTarget.hips.target.transform.position; - Quaternion spine2HipsRotation = Rotations.Rotate(hipsTarget.spine2HipsRotation, hipsTarget.hips.target.transform.rotation); - Vector3 hipsUp = spine2HipsRotation * torsoUp; - - Vector3 hipsForward = hipsTarget.hips.target.transform.forward; - - if (hipsUp == Vector3.zero) - return Quaternion.identity; - - Quaternion hipsRotation = Quaternion.LookRotation(hipsUp, -hipsForward) * Quaternion.AngleAxis(90, Vector3.right); - - return hipsRotation; - } - - #endregion - - - public static Vector3 CalculateNeckPosition(Vector3 chestPosition, Quaternion chestRotation, Vector3 chest2neck) { - Vector3 neckPosition = chestPosition + chestRotation * chest2neck; - return neckPosition; - } - - public static Quaternion CalculateHipsRotation(Vector3 hipsPosition, Quaternion hipsRotation, Quaternion leftHandRotation, Quaternion rightHandRotation, Transform leftFoot, Transform rightFoot, Quaternion neckRotation, Vector3 neckPosition) { - float angleX = hipsRotation.eulerAngles.x; - float angleY = hipsRotation.eulerAngles.y; - float angleZ = hipsRotation.eulerAngles.z; - - float dOrientation = 0; - - Vector3 leftHandForward = leftHandRotation * Vector3.left; - Vector3 rightHandForward = rightHandRotation * Vector3.right; - Vector3 hipsForward = hipsRotation * Vector3.forward; - - Vector2 leftHandForward2 = new Vector2(leftHandForward.x, leftHandForward.z); - Vector2 rightHandForward2 = new Vector2(rightHandForward.x, rightHandForward.z); - Vector2 hipsRotation2 = new Vector2(hipsForward.x, hipsForward.z); - - // Check for hands not pointing up/down too much - float dOrientationL = leftHandForward2.sqrMagnitude > 0.1F ? UnityAngles.SignedAngle(hipsRotation2, leftHandForward2) : 0; - float dOrientationR = rightHandForward2.sqrMagnitude > 0.1F ? UnityAngles.SignedAngle(hipsRotation2, rightHandForward2) : 0; - if (Mathf.Sign(dOrientationL) == Mathf.Sign(dOrientationR)) { - if (Mathf.Abs(dOrientationL) < Mathf.Abs(dOrientationR)) - dOrientation = dOrientationL; - else - dOrientation = dOrientationR; - } - - float neckOrientation = UnityAngles.Difference(neckRotation.eulerAngles.y, angleY + dOrientation); - if (neckOrientation < 90 && neckOrientation > -90) { // head cannot turn more than 90 degrees - angleY += dOrientation; - } - - Quaternion newHipsRotation = Quaternion.Euler(angleX, angleY, angleZ); - return newHipsRotation; - } - - public static Vector3 CalculateHipsPosition(Vector3 spinePosition, Quaternion hipsRotation, float hipsLength, Vector3 leftFootPosition, Vector3 rightFootPosition) { - Vector3 hipsPosition = spinePosition - hipsRotation * Vector3.up * hipsLength; - - // stationary - /* - float footHeightDifference = leftFootPosition.y - rightFootPosition.y; - - Vector3 centerFoot; - if (footHeightDifference > maxFeetdifference) { - //standing on right foot - centerFoot = rightFootPosition; - } else if (footHeightDifference < -maxFeetdifference) { - //standing on left foot - centerFoot = leftFootPosition; - } else { - //standing on both feet - float fraction = footHeightDifference * (0.5F / maxFeetdifference) + 0.5F; - centerFoot = leftFootPosition * (1 - fraction) + rightFootPosition * fraction; - } - hipsPosition = new Vector3(centerFoot.x, hipsPosition.y, centerFoot.z); - */ - return hipsPosition; - } - - } - - public class Breathing { - public float speed = 4; - public float intensity = 1; - - private float f; - public float v; - - public void Update() { - f = CalculateF(); - v = Mathf.Sin(f * (Mathf.PI + Mathf.PI)) * intensity; - } - - private float lastBreathStart; - private float CalculateF() { - float f = (Time.realtimeSinceStartup - lastBreathStart) / speed; - if (f > 1) { - lastBreathStart = Time.realtimeSinceStartup; - f = 0; - } - - return f; - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs.meta b/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs.meta deleted file mode 100644 index 55ca967..0000000 --- a/Runtime/HumanoidFree/Scripts/Movements/TorsoMovements.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: d1491abd933b2c74fadcbd4f788f2080 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Multiplayer.meta b/Runtime/HumanoidFree/Scripts/Multiplayer.meta deleted file mode 100644 index 5d85a09..0000000 --- a/Runtime/HumanoidFree/Scripts/Multiplayer.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: aa63608a53b14a445872b2ccd29e61a6 -folderAsset: yes -timeCreated: 1500887700 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs b/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs deleted file mode 100644 index c5096aa..0000000 --- a/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs +++ /dev/null @@ -1,133 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// - /// Component for spawning humanoids - /// - public class HumanoidSpawner : Spawner { - - protected HumanoidControl[] spawnedHumanoids; - protected static int nHumanoids; - - protected override void Start() { - if (spawnAtStart) - SpawnHumanoid(); - } - - /// - /// Spawn one humanoid using the HumanoidSpawner settings. - /// - /// The HumanoidControl of the spawned humanoid. Will be null when the humanoid could be not spawned. - public override GameObject SpawnObject() { - HumanoidControl humanoidPrefab = prefab.GetComponent(); - if (humanoidPrefab == null) { - Debug.LogError("The prefab is not an Humanoid."); - return null; - } - - HumanoidControl humanoid = Spawn(humanoidPrefab, spawnPoints, spawnMethod); - if (humanoid == null) - return null; - - return humanoid.gameObject; - } - - /// - /// Spawn one humanoid using the HumanoidSpawner settings. - /// - /// The HumanoidControl of the spawned humanoid. Will be null when the humanoid could be not spawned. - public virtual HumanoidControl SpawnHumanoid() { - HumanoidControl humanoid = prefab.GetComponent(); - if (humanoid == null) { - Debug.LogError("The prefab is not an Humanoid."); - return null; - } - - return Spawn(humanoid, spawnPoints, spawnMethod); - } - - /// - /// Spawn a humanoid - /// - /// The humanoid prefab to spawn. - /// The HumanoidControl of the spawned humanoid. Will be null when the humanoid could be not spawned. - public virtual HumanoidControl Spawn(HumanoidControl humanoidPrefab) { - return Spawn(humanoidPrefab, spawnPoints, spawnMethod); - } - - /// - /// Spawn a humanoid. - /// - /// The humanoid prefab to spawn. - /// The array of possible spawn points. - /// The SpawnMethod to use for spawning. - /// The HumanoidControl of the spawned humanoid. Will be null when the humanoid could be not spawned. - public HumanoidControl Spawn(HumanoidControl humanoidPrefab, SpawnPoint[] spawnPoints, SpawnMethod spawnMethod = SpawnMethod.RoundRobin) { - if (humanoidPrefab == null || (spawnMethod == SpawnMethod.SinglePlayer && nHumanoids > 0)) - return null; - - GameObject newPlayer = null; - SpawnPoint spawnPoint = ChooseSpawnPoint(spawnPoints, spawnMethod); - if (spawnPoint == null) { - Debug.Log("Could not find an empty SpawnPoint"); - return null; - } - else { - // No need to check for networking, this is handles by HumanoidNetworking - newPlayer = Instantiate(humanoidPrefab.gameObject, spawnPoint.transform.position, spawnPoint.transform.rotation); - } - - HumanoidControl humanoid = newPlayer.GetComponent(); - if (humanoid == null) { - humanoid = AddHumanoidToAvatar(newPlayer); - if (humanoid == null) { - Debug.LogError("Avatar is not a Humanoid!"); - return null; - } - } - - return humanoid; - } - - protected int FindSpawnPointIndex() { - for (int i = 0; i < spawnPoints.Length; i++) { - int spawnPointIndex = GetSpawnPointIndex(); - if (spawnPoints[spawnPointIndex] is HumanoidSpawnPoint) { - if (((HumanoidSpawnPoint)spawnPoints[spawnPointIndex]).isFree) - return spawnPointIndex; - } - else - return spawnPointIndex; - } - return -1; - } - - private int GetSpawnPointIndex() { - if (spawnPoints.Length <= 0) - return -1; - - switch (spawnMethod) { - case SpawnMethod.RoundRobin: - return spawnIndex++ & spawnPoints.Length; - - case SpawnMethod.Random: - default: - return Random.Range(0, spawnPoints.Length - 1); - } - } - - protected void DestroyHumanoid(HumanoidControl humanoid) { - Destroy(humanoid.gameObject); - } - - protected static HumanoidControl AddHumanoidToAvatar(GameObject avatar) { - Animator animator = avatar.GetComponent(); - if (animator == null || !animator.isHuman) - return null; - - HumanoidControl humanoid = avatar.AddComponent(); - return humanoid; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs.meta b/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs.meta deleted file mode 100644 index d9560dd..0000000 --- a/Runtime/HumanoidFree/Scripts/Multiplayer/HumanoidSpawner.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: c16c5fe1749f9b745882bd2f644d19a4 -timeCreated: 1494592384 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Networking.meta b/Runtime/HumanoidFree/Scripts/Networking.meta deleted file mode 100644 index 53f502d..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: e32235f2478d0f142a0bf3f8b2e84dfb -folderAsset: yes -timeCreated: 1466883782 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs b/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs deleted file mode 100644 index 823706e..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs +++ /dev/null @@ -1,1844 +0,0 @@ -//#define RemoteAvatarBundles - -using System; -using System.Collections.Generic; -using System.IO; -using UnityEngine; - -namespace Passer.Humanoid { - using Pawn; - - /// - /// Interface for Humanoid Networking functions - /// - public interface IHumanoidNetworking { - void Send(bool b); - void Send(byte b); - void Send(int x); - void Send(float f); - void Send(Vector3 v); - void Send(Quaternion q); - - bool ReceiveBool(); - byte ReceiveByte(); - int ReceiveInt(); - float ReceiveFloat(); - Vector3 ReceiveVector3(); - Quaternion ReceiveQuaternion(); - - float sendRate { get; } - HumanoidNetworking.DebugLevel debug { get; } - HumanoidNetworking.Smoothing smoothing { get; } - bool createLocalRemotes { get; set; } - - - bool isLocal { get; } - - ulong nwId { get; } - - bool syncFingerSwing { get; } - - bool syncTracking { get; set; } - bool fuseTracking { get; } - - List humanoids { get; } - - HumanoidNetworking.HumanoidPose lastHumanoidPose { get; set; } - - ulong GetObjectIdentity(GameObject obj); - GameObject GetGameObject(ulong objIdentity); - - void InstantiateHumanoid(HumanoidControl humanoid); - void DestroyHumanoid(HumanoidControl humanoid); - - void UpdateHumanoidPose(HumanoidControl humanoid); - - void Grab(HandTarget handTarget, GameObject obj, bool rangeCheck, HandTarget.GrabType grabType = HandTarget.GrabType.HandGrab); - void LetGo(HandTarget handTarget); - - void ChangeAvatar(HumanoidControl humanoid, string remoteAvatarName, string possessionLocation = null); - - void SyncTrackingSpace(HumanoidControl humanoid); - - void DebugLog(string s); - void DebugWarning(string s); - void DebugError(string s); - - void ReenableNetworkSync(GameObject obj); - void DisableNetworkSync(GameObject obj); - - } - - /// - /// Humanoid Networking - /// - public static class HumanoidNetworking { - //public enum Smoothing { - // None, - // Interpolation, - // Extrapolation - //}; - - public enum Smoothing { - None, - Interpolation, - Extrapolation - }; - - public enum DebugLevel { - Debug, - Info, - Warning, - Error, - None, - } - public static DebugLevel debug = DebugLevel.Error; - - public class IMessage -#if hNW_MIRROR - : Mirror.NetworkMessage -#endif - { - public IMessage() { } - public IMessage(byte[] data) { - Deserialize(data); - } - - public virtual byte[] Serialize() { return null; } - public virtual void Deserialize(byte[] data) { } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // //writer.WriteBytesAndSize(data); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // //byte[] data = reader.ReadBytesAndSize(); - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void Connected(HumanoidControl humanoid) { - OnConnectedToNetwork?.Invoke(humanoid); - } - - #region Instantiate Humanoid - - public class InstantiateHumanoid : IMessage { - public ulong nwId; - public byte humanoidId; - public string name; - public string avatarPrefabName; - public bool physics; - public string possessionLocation = ""; -#if RemoteAvatarBundles - public int remoteAvatarBundleSize; - public byte[] remoteAvatarBundle; -#endif - - public InstantiateHumanoid() { } - public InstantiateHumanoid(HumanoidControl humanoid) { - nwId = humanoid.nwId; - humanoidId = (byte)humanoid.humanoidId; - - int nameLength = humanoid.gameObject.name.Length; - if (nameLength > 9 && humanoid.gameObject.name.Substring(nameLength - 9, 9) == " (Remote)") - name = humanoid.gameObject.name.Substring(0, nameLength - 9); - else - name = humanoid.gameObject.name; - - if (humanoid.remoteAvatar == null) { - Possessable avatarPossessable = humanoid.avatarRig.GetComponent(); - if (avatarPossessable != null) { - possessionLocation = avatarPossessable.siteLocation; - avatarPrefabName = avatarPossessable.assetPath; - } - else - avatarPrefabName = humanoid.avatarRig.name; // .Substring(0, humanoid.avatarRig.name.Length - 7); - } - else { - Possessable avatarPossessable = humanoid.remoteAvatar.GetComponent(); - if (avatarPossessable != null) { - possessionLocation = avatarPossessable.siteLocation; - avatarPrefabName = avatarPossessable.assetPath; - } - else - avatarPrefabName = humanoid.remoteAvatar.name; - } - -#if RemoteAvatarBundles - /* Get the remoteAvatarBundle from the streaming assets */ - remoteAvatarBundle = File.ReadAllBytes(Application.streamingAssetsPath + "/RemoteAvatarBundles/" + avatarPrefabName); - remoteAvatarBundleSize = remoteAvatarBundle.Length; -#endif - physics = humanoid.physics; - } - public InstantiateHumanoid(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - bw.Write(name); - bw.Write(avatarPrefabName); - bw.Write(physics); - if (possessionLocation == null) - possessionLocation = ""; - bw.Write(possessionLocation); -#if RemoteAvatarBundles - bw.Write(remoteAvatarBundleSize); - bw.Write(remoteAvatarBundle); -#endif - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - name = br.ReadString(); - avatarPrefabName = br.ReadString(); - physics = br.ReadBoolean(); - possessionLocation = br.ReadString(); - if (possessionLocation == "") - possessionLocation = null; -#if RemoteAvatarBundles - remoteAvatarBundleSize = br.ReadInt32(); - remoteAvatarBundle = br.ReadBytes(remoteAvatarBundleSize); -#endif - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void ReceiveInstantiate(this IHumanoidNetworking networking, byte[] serializedData) { - InstantiateHumanoid data = new InstantiateHumanoid(serializedData); - - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking receivingNetworking, InstantiateHumanoid msg) { - - GameObject networkingObj = receivingNetworking.GetGameObject(msg.nwId); - if (networkingObj == null) { - if (receivingNetworking.debug <= DebugLevel.Error) - receivingNetworking.DebugLog("Could not find Networking for Instantiate Humanoid " + msg.nwId + "/" + msg.humanoidId); - return; - } - - IHumanoidNetworking networking = networkingObj.GetComponent(); - - if (networking.isLocal && !networking.createLocalRemotes) { - if (networking.debug <= DebugLevel.Debug) - networking.DebugLog("Remote Humanoid " + msg.nwId + "/" + msg.humanoidId + " is local and local remotes are not created"); - return; - } - - HumanoidControl remoteHumanoid = FindRemoteHumanoid(networking.humanoids, msg.humanoidId); - if (remoteHumanoid != null) { - if (networking.debug <= DebugLevel.Warning) - networking.DebugLog("Remote Humanoid " + msg.nwId + "/" + msg.humanoidId + " already exists"); - // This remote humanoid already exists - return; - } - - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("Receive Instantiate Humanoid " + msg.nwId + "/" + msg.humanoidId); - - remoteHumanoid = InstantiateRemoteHumanoid(msg.name, Vector3.zero, Quaternion.identity); //, position, rotation); - remoteHumanoid.nwId = msg.nwId; - remoteHumanoid.humanoidId = msg.humanoidId; - - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("Remote Humanoid " + remoteHumanoid.nwId + "/" + remoteHumanoid.humanoidId + " Added"); - -#if RemoteAvatarBundles - AssetBundle assetBundle = AssetBundle.LoadFromMemory(data.remoteAvatarBundle); - GameObject remoteAvatar = assetBundle.LoadAsset(data.avatarPrefabName); - if (remoteAvatar == null) { - if (networking.debug <= PawnNetworking.DebugLevel.Error) - networking.DebugError("Could not load remote avatar " + data.avatarPrefabName + ". Asset Bundle is not present"); - return; - } -#else - if (msg.possessionLocation != null) { - Debug.Log("Need to download instantiate avatar possession from " + msg.possessionLocation); - remoteHumanoid.physics = msg.physics; - - HumanoidPlayer.instance.StartCoroutine( - VisitorPossessions.RetrievePossessableAsync(msg.possessionLocation, msg.avatarPrefabName, - retrievedAvatar => InstantiateRetrievedAvatar(networking, remoteHumanoid, retrievedAvatar)) - ); - - return; - } - - GameObject remoteAvatar = (GameObject)Resources.Load(msg.avatarPrefabName); - if (remoteAvatar == null) { - if (networking.debug <= DebugLevel.Error) - networking.DebugError("Could not load remote avatar " + msg.avatarPrefabName + ". Is it located in a Resources folder?"); - return; - } -#endif - remoteHumanoid.physics = msg.physics; - remoteHumanoid.LocalChangeAvatar(remoteAvatar); - - networking.humanoids.Add(remoteHumanoid); - if (OnNewRemoteHumanoid != null) - OnNewRemoteHumanoid(remoteHumanoid); - } - - private static void InstantiateRetrievedAvatar(IHumanoidNetworking networking, HumanoidControl remoteHumanoid, GameObject retrievedAvatar) { - if (retrievedAvatar == null) { - if (networking.debug <= DebugLevel.Error) - Debug.LogError("Could not retrieve avatar."); - //return; - } - else { - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("Receive Change Possessesable Avatar " + retrievedAvatar); - - remoteHumanoid.LocalChangeAvatar(retrievedAvatar); - } - networking.humanoids.Add(remoteHumanoid); - if (OnNewRemoteHumanoid != null) - OnNewRemoteHumanoid(remoteHumanoid); - - } - - - public static HumanoidControl FindRemoteHumanoid(List humanoids, ulong nwId, int humanoidId) { - foreach (HumanoidControl humanoid in humanoids) { - if (humanoid.isRemote && humanoid.nwId == nwId && humanoid.humanoidId == humanoidId) - return humanoid; - } - return null; - } - - private static HumanoidControl InstantiateRemoteHumanoid(string name, Vector3 position, Quaternion rotation) { - GameObject remoteHumanoidPrefab = (GameObject)Resources.Load("RemoteHumanoid"); - - GameObject remoteHumanoidObj = UnityEngine.Object.Instantiate(remoteHumanoidPrefab, position, rotation); - remoteHumanoidObj.name = name + " (Remote)"; - - HumanoidControl remoteHumanoid = remoteHumanoidObj.GetComponent(); - remoteHumanoid.isRemote = true; - - return remoteHumanoid; - } - - public delegate void ConnectedToNetwork(HumanoidControl humanoid); - public static event ConnectedToNetwork OnConnectedToNetwork; - - public delegate void NewRemoteHumanoidArgs(HumanoidControl humanoid); - public static event NewRemoteHumanoidArgs OnNewRemoteHumanoid; - - #endregion - - #region Destroy Humanoid - - public class DestroyHumanoid : IMessage { - public ulong nwId; - public byte humanoidId; - - public DestroyHumanoid() { } - public DestroyHumanoid(HumanoidControl humanoid) { - nwId = humanoid.nwId; - humanoidId = (byte)humanoid.humanoidId; - } - public DestroyHumanoid(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void ReceiveDestroy(this IHumanoidNetworking networking, byte[] serializedData) { - DestroyHumanoid data = new DestroyHumanoid(serializedData); - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking networking, DestroyHumanoid msg) { - if (networking.isLocal && !networking.createLocalRemotes) - return; - - HumanoidControl remoteHumanoid = FindRemoteHumanoid(networking.humanoids, msg.humanoidId); - if (remoteHumanoid == null) { - // Unknown remote humanoid - return; - } - - if (remoteHumanoid.gameObject != null) - UnityEngine.Object.Destroy(remoteHumanoid.gameObject); - } - - #endregion - - #region Pose - - [Serializable] - public struct Vector3S { - public float x; - public float y; - public float z; - - public Vector3S(Vector3 v) { - x = v.x; - y = v.y; - z = v.z; - } - public Vector3S(Quaternion q) { - Vector3 euler = q.eulerAngles; - x = euler.x; - y = euler.y; - z = euler.z; - } - - public Vector3 vector3 { - get { return new Vector3(x, y, z); } - } - public Quaternion quaternion { - get { return Quaternion.Euler(x, y, z); } - } - - public void Write(BinaryWriter bw) { - bw.Write(x); - bw.Write(y); - bw.Write(z); - } - - public static Vector3S Read(BinaryReader br) { - float x = br.ReadSingle(); - float y = br.ReadSingle(); - float z = br.ReadSingle(); - Vector3S v = new Vector3S() { x = x, y = y, z = z }; - return v; - } - } - - // Rotations can be sent much more efficient: 3 * 16bit (angles) or 4 * 16bit (quatornions) - - [Serializable] - public class HumanoidAnimatorParameters { - public class AnimatorParameter { - public AnimatorControllerParameterType type; - public bool boolValue; - public float floatValue; - public int intValue; - } - - public AnimatorParameter[] parameters; - public HumanoidAnimatorParameters() { - parameters = new AnimatorParameter[0]; - } - - public HumanoidAnimatorParameters(HumanoidControl humanoid) { - if (humanoid.targetsRig.runtimeAnimatorController == null) { - parameters = new AnimatorParameter[0]; - return; - } - - parameters = new AnimatorParameter[humanoid.targetsRig.parameterCount]; - - for (int i = 0; i < humanoid.targetsRig.parameterCount; i++) { - AnimatorControllerParameter parameter = humanoid.targetsRig.parameters[i]; - parameters[i] = new AnimatorParameter() { - type = parameter.type - }; - switch (parameters[i].type) { - case AnimatorControllerParameterType.Bool: - parameters[i].boolValue = humanoid.targetsRig.GetBool(parameter.name); - break; - case AnimatorControllerParameterType.Float: - parameters[i].floatValue = humanoid.targetsRig.GetFloat(parameter.name); - break; - case AnimatorControllerParameterType.Int: - parameters[i].intValue = humanoid.targetsRig.GetInteger(parameter.name); - break; - case AnimatorControllerParameterType.Trigger: - parameters[i].boolValue = humanoid.targetsRig.GetBool(parameter.name); - break; - } - } - } - - public virtual void Write(BinaryWriter bw) { - bw.Write(parameters.Length); - for (int i = 0; i < parameters.Length; i++) { - bw.Write((byte)parameters[i].type); - switch (parameters[i].type) { - case AnimatorControllerParameterType.Bool: - bw.Write(parameters[i].boolValue); - break; - case AnimatorControllerParameterType.Float: - bw.Write(parameters[i].floatValue); - break; - case AnimatorControllerParameterType.Int: - bw.Write(parameters[i].intValue); - break; - case AnimatorControllerParameterType.Trigger: - bw.Write(parameters[i].boolValue); - break; - } - } - } - public static HumanoidAnimatorParameters Read(BinaryReader br) { - int parameterCount = br.ReadInt32(); - HumanoidAnimatorParameters animatorParameters = new HumanoidAnimatorParameters() { - parameters = new AnimatorParameter[parameterCount] - }; - - for (int i = 0; i < parameterCount; i++) { - AnimatorControllerParameterType parameterType = (AnimatorControllerParameterType)br.ReadByte(); - animatorParameters.parameters[i] = new AnimatorParameter() { - type = parameterType - }; - switch (parameterType) { - case AnimatorControllerParameterType.Bool: - animatorParameters.parameters[i].boolValue = br.ReadBoolean(); - break; - case AnimatorControllerParameterType.Float: - animatorParameters.parameters[i].floatValue = br.ReadSingle(); - break; - case AnimatorControllerParameterType.Int: - animatorParameters.parameters[i].intValue = br.ReadInt32(); - break; - case AnimatorControllerParameterType.Trigger: - animatorParameters.parameters[i].boolValue = br.ReadBoolean(); - break; - } - } - return animatorParameters; - } - } - - [Serializable] - public class HumanoidHandPose : HumanoidTargetPose { - public float thumbCurl; - public float indexCurl; - public float middleCurl; - public float ringCurl; - public float littleCurl; - - public bool syncSwing; - - public float thumbSwing; - public float indexSwing; - public float middleSwing; - public float ringSwing; - public float littleSwing; - - public HumanoidHandPose() : base(Tracking.Bone.None) { } - - public HumanoidHandPose(Tracking.Bone boneId) : base(boneId) { } - - public HumanoidHandPose(HandTarget handTarget, bool syncSwing) : base(handTarget) { - this.syncSwing = syncSwing; - - FingersTarget.UpdateCurlValues(handTarget); - //FingersTarget.UpdateCurlValues(handTarget); - thumbCurl = handTarget.fingers.thumb.curl; - indexCurl = handTarget.fingers.index.curl; - middleCurl = handTarget.fingers.middle.curl; - ringCurl = handTarget.fingers.ring.curl; - littleCurl = handTarget.fingers.little.curl; - - thumbSwing = handTarget.fingers.thumb.swing; - indexSwing = handTarget.fingers.index.swing; - middleSwing = handTarget.fingers.middle.swing; - ringSwing = handTarget.fingers.ring.swing; - littleSwing = handTarget.fingers.little.swing; - } - - public override void Write(BinaryWriter bw) { - base.Write(bw); - - if (boneId != Tracking.Bone.None) { - bw.Write(thumbCurl); - bw.Write(indexCurl); - bw.Write(middleCurl); - bw.Write(ringCurl); - bw.Write(littleCurl); - } - } - public static new HumanoidHandPose Read(BinaryReader br) { - Tracking.Bone boneId = (Tracking.Bone)br.ReadSByte(); - if (boneId == Tracking.Bone.None) - return new HumanoidHandPose(); - else - return new HumanoidHandPose(boneId) { - localPosition = Vector3S.Read(br), - positionConfidenceByte = br.ReadByte(), - rotation = Vector3S.Read(br), - rotationConfidenceByte = br.ReadByte(), - - thumbCurl = br.ReadSingle(), - indexCurl = br.ReadSingle(), - middleCurl = br.ReadSingle(), - ringCurl = br.ReadSingle(), - littleCurl = br.ReadSingle(), - }; - - } - } - - [Serializable] - public class HumanoidTargetPose { - public Tracking.Bone boneId; - - public Vector3S localPosition; - protected byte positionConfidenceByte; - public float positionConfidence { - get { return ToFloat(positionConfidenceByte); } - } - public Vector3S rotation; - protected byte rotationConfidenceByte; - public float rotationConfidence { - get { return ToFloat(rotationConfidenceByte); } - } - - public float ToFloat(byte confidenceByte) { - float value = Convert.ToSingle(confidenceByte) / 255; - return value; - } - - public HumanoidTargetPose() { - this.boneId = Tracking.Bone.None; - - localPosition = new Vector3S(); - rotation = new Vector3S(); - } - - public HumanoidTargetPose(Tracking.Bone boneId) { - this.boneId = boneId; - - localPosition = new Vector3S(); - rotation = new Vector3S(); - } - public HumanoidTargetPose(HumanoidTarget target) { - boneId = GetBoneId(target); - // Head bone is always synced - if (boneId != Tracking.Bone.Head && !HumanoidPose.TargetActive(target)) - boneId = Tracking.Bone.None; - - Vector3 localPosition = target.humanoid.transform.InverseTransformPoint(target.main.target.transform.position); - this.localPosition = new Vector3S(localPosition); - positionConfidenceByte = Convert.ToByte(target.main.target.confidence.position * 255); - - rotation = new Vector3S(target.main.target.transform.rotation); - rotationConfidenceByte = Convert.ToByte(target.main.target.confidence.rotation * 255); - } - - private Tracking.Bone GetBoneId(HumanoidTarget target) { - if (target == target.humanoid.hipsTarget) - return Tracking.Bone.Hips; - else if (target == target.humanoid.headTarget) - return Tracking.Bone.Head; - else if (target == target.humanoid.leftHandTarget) - return Tracking.Bone.LeftHand; - else if (target == target.humanoid.rightHandTarget) - return Tracking.Bone.RightHand; - else if (target == target.humanoid.leftFootTarget) - return Tracking.Bone.LeftFoot; - else if (target == target.humanoid.rightFootTarget) - return Tracking.Bone.RightFoot; - else - return Tracking.Bone.None; - } - - public virtual void Write(BinaryWriter bw) { - bw.Write((sbyte)boneId); - if (boneId != Tracking.Bone.None) { - localPosition.Write(bw); - bw.Write(positionConfidenceByte); - rotation.Write(bw); - bw.Write(rotationConfidenceByte); - } - } - - public static HumanoidTargetPose Read(BinaryReader br) { - Tracking.Bone boneId = (Tracking.Bone)br.ReadSByte(); - if (boneId == Tracking.Bone.None) - return new HumanoidTargetPose(); - else { - return new HumanoidTargetPose(boneId) { - localPosition = Vector3S.Read(br), - positionConfidenceByte = br.ReadByte(), - rotation = Vector3S.Read(br), - rotationConfidenceByte = br.ReadByte() - }; - } - } - } - - [Serializable] - public class HumanoidPose : IMessage { - public ulong nwId; - public byte humanoidId; - - public float poseTime; - public float receiveTime; - - public Vector3S position; - public Vector3S rotation; - - public HumanoidAnimatorParameters animatorParameters; - - //public byte targetMask; - public HumanoidTargetPose hips; - public HumanoidTargetPose head; - public HumanoidHandPose leftHand; - public HumanoidHandPose rightHand; - public HumanoidTargetPose leftFoot; - public HumanoidTargetPose rightFoot; - - public bool syncFace; -#if hFACE - public HumanoidFacePose faceTarget; -#endif - - public HumanoidPose() { - animatorParameters = new HumanoidAnimatorParameters(); - - hips = new HumanoidTargetPose(Tracking.Bone.None); - head = new HumanoidTargetPose(Tracking.Bone.None); - leftHand = new HumanoidHandPose(Tracking.Bone.None); - rightHand = new HumanoidHandPose(Tracking.Bone.None); - leftFoot = new HumanoidTargetPose(Tracking.Bone.None); - rightFoot = new HumanoidTargetPose(Tracking.Bone.None); -#if hFACE - faceTarget = new HumanoidFacePose(); -#endif - } - public HumanoidPose(HumanoidControl humanoid, float poseTime, - bool syncFingerSwing = false, bool syncFace = false) { - - this.syncFace = syncFace; - - nwId = humanoid.nwId; - humanoidId = (byte)humanoid.humanoidId; - - this.poseTime = poseTime; - - position = new Vector3S(humanoid.transform.position); - rotation = new Vector3S(humanoid.transform.rotation); - - animatorParameters = new HumanoidAnimatorParameters(humanoid); - - hips = new HumanoidTargetPose(humanoid.hipsTarget); - head = new HumanoidTargetPose(humanoid.headTarget); - leftHand = new HumanoidHandPose(humanoid.leftHandTarget, syncFingerSwing); - rightHand = new HumanoidHandPose(humanoid.rightHandTarget, syncFingerSwing); - leftFoot = new HumanoidTargetPose(humanoid.leftFootTarget); - rightFoot = new HumanoidTargetPose(humanoid.rightFootTarget); -#if hFACE - faceTarget = new HumanoidFacePose(humanoid.headTarget.face); -#endif - } - public HumanoidPose(byte[] data) : base(data) { } - - - public static bool TargetActive(HumanoidTarget target) { - //bool active = target.main != null && - // (target.main.target.confidence.position > 0.2F || target.main.target.confidence.rotation > 0.2F); - - // if (!target.animator.enabled) - return true; - - // return active; - } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - - bw.Write(poseTime); - - position.Write(bw); - rotation.Write(bw); - - animatorParameters.Write(bw); - - hips.Write(bw); - head.Write(bw); - leftHand.Write(bw); - rightHand.Write(bw); - leftFoot.Write(bw); - rightFoot.Write(bw); -#if hFACE - if (syncFace) - faceTarget.Write(bw); -#endif - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - - poseTime = br.ReadSingle(); - - position = Vector3S.Read(br); - rotation = Vector3S.Read(br); - - animatorParameters = HumanoidAnimatorParameters.Read(br); - - hips = HumanoidTargetPose.Read(br); - head = HumanoidTargetPose.Read(br); - leftHand = HumanoidHandPose.Read(br); - rightHand = HumanoidHandPose.Read(br); - leftFoot = HumanoidTargetPose.Read(br); - rightFoot = HumanoidTargetPose.Read(br); -#if hFACE - if (syncFace) - faceTarget = HumanoidFacePose.Read(br); -#endif - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - - public HumanoidTargetPose GetTargetPose(Tracking.Bone boneId) { - switch (boneId) { - case Tracking.Bone.Hips: - return hips; - case Tracking.Bone.Head: - return head; - case Tracking.Bone.LeftHand: - return leftHand; - case Tracking.Bone.RightHand: - return rightHand; - case Tracking.Bone.LeftFoot: - return leftFoot; - case Tracking.Bone.RightFoot: - return rightFoot; - default: - return null; - } - } - } -#if hFACE - [Serializable] - public class HumanoidFacePose { - public short targetMask; - - public sbyte leftBrowOuterRaise; - public sbyte leftBrowInnerRaise; - - public sbyte rightBrowOuterRaise; - public sbyte rightBrowInnerRaise; - - public sbyte leftEyeClosed; - public sbyte rightEyeClosed; - - public sbyte mouthLeftRaise; - public sbyte mouthRightRaise; - public sbyte mouthLeftStretch; - public sbyte mouthRightStretch; - public sbyte mouthShiftRight; - - public sbyte jawOpen; - public sbyte jawShiftRight; - - public HumanoidFacePose() { } - public HumanoidFacePose(FaceTarget face) { - leftBrowOuterRaise = (sbyte)(face.leftBrow.outerRaise * 127); - leftBrowInnerRaise = (sbyte)(face.leftBrow.innerRaise * 127); - rightBrowOuterRaise = (sbyte)(face.rightBrow.outerRaise * 127); - rightBrowInnerRaise = (sbyte)(face.rightBrow.innerRaise * 127); - leftEyeClosed = (sbyte)(face.leftEye.closed * 127); - rightEyeClosed = (sbyte)(face.rightEye.closed * 127); - mouthLeftRaise = (sbyte)(face.mouth.leftRaise * 127); - mouthRightRaise = (sbyte)(face.mouth.rightRaise * 127); - mouthLeftStretch = (sbyte)(face.mouth.leftStretch * 127); - mouthRightStretch = (sbyte)(face.mouth.rightStretch * 127); - mouthShiftRight = (sbyte)(face.mouth.shiftRight * 127); - jawOpen = (sbyte)(face.jaw.open * 127); - jawShiftRight = (sbyte)(face.jaw.shiftRight * 127); - } - - public void Write(BinaryWriter bw) { - bw.Write(leftBrowOuterRaise); - bw.Write(leftBrowInnerRaise); - bw.Write(rightBrowOuterRaise); - bw.Write(rightBrowInnerRaise); - bw.Write(leftEyeClosed); - bw.Write(rightEyeClosed); - bw.Write(mouthLeftRaise); - bw.Write(mouthRightRaise); - bw.Write(mouthLeftStretch); - bw.Write(mouthRightStretch); - bw.Write(mouthShiftRight); - bw.Write(jawOpen); - bw.Write(jawShiftRight); - } - - public static HumanoidFacePose Read(BinaryReader br) { - HumanoidFacePose pose = new HumanoidFacePose(); - pose.leftBrowOuterRaise = br.ReadSByte(); - pose.leftBrowInnerRaise = br.ReadSByte(); - pose.rightBrowOuterRaise = br.ReadSByte(); - pose.rightBrowInnerRaise = br.ReadSByte(); - pose.leftEyeClosed = br.ReadSByte(); - pose.rightEyeClosed = br.ReadSByte(); - pose.mouthLeftRaise = br.ReadSByte(); - pose.mouthRightRaise = br.ReadSByte(); - pose.mouthLeftStretch = br.ReadSByte(); - pose.mouthRightStretch = br.ReadSByte(); - pose.mouthShiftRight = br.ReadSByte(); - pose.jawOpen = br.ReadSByte(); - pose.jawShiftRight = br.ReadSByte(); - return pose; - } - } -#endif - public static void ReceiveHumanoidPose(this IHumanoidNetworking networking, byte[] data) { - if (data == null) - return; - - - HumanoidPose humanoidPose = new HumanoidPose(data); - Receive(networking, humanoidPose); - } - - public static void Receive(this IHumanoidNetworking receivingNetworking, HumanoidPose humanoidPose) { - //DebugHumanoidPose(humanoidPose); - - humanoidPose.receiveTime = Time.time; - - IHumanoidNetworking networking = GetHumanoidNetworking(receivingNetworking, humanoidPose.nwId); - if (networking == null) { - if (receivingNetworking.debug <= DebugLevel.Error) - receivingNetworking.DebugLog("Could not find Networking for Humanoid Pose " + humanoidPose.nwId + "/" + humanoidPose.humanoidId); - return; - } - - if (networking.isLocal && !networking.createLocalRemotes) - return; - - if (networking.humanoids == null) { - networking.DebugLog("No humanoids found"); - return; - } - - HumanoidControl remoteHumanoid = FindRemoteHumanoid(networking.humanoids, humanoidPose.humanoidId); - if (remoteHumanoid == null) { - if (networking.debug <= DebugLevel.Warning) - networking.DebugWarning("Could not find humanoid: " + humanoidPose.nwId + "/" + humanoidPose.humanoidId); - return; - } - - if (networking.debug <= DebugLevel.Debug) - networking.DebugLog("Receive HumanoidPose " + humanoidPose.nwId + "/" + humanoidPose.humanoidId); - - ReceiveHumanoidPose(remoteHumanoid, humanoidPose, networking.lastHumanoidPose, networking.smoothing); - - if (networking.createLocalRemotes) - remoteHumanoid.transform.Translate(0, 0, 1, Space.Self); - - networking.lastHumanoidPose = humanoidPose; - } - - private static void DebugHumanoidPose(HumanoidPose pose) { - string s = ""; - if (pose.hips.boneId == Tracking.Bone.Hips) - s += " HI_" + pose.hips.positionConfidence + "/" + pose.hips.rotationConfidence; - if (pose.head.boneId == Tracking.Bone.Head) - s += " HE_" + pose.head.positionConfidence + "/" + pose.head.rotationConfidence; - if (pose.leftHand.boneId == Tracking.Bone.LeftHand) - s += " LH_" + pose.leftHand.positionConfidence + "/" + pose.leftHand.rotationConfidence; - if (pose.rightHand.boneId == Tracking.Bone.RightHand) - s += " RH_" + pose.rightHand.positionConfidence + "/" + pose.rightHand.rotationConfidence; - if (pose.leftFoot.boneId == Tracking.Bone.LeftFoot) - s += " LH_" + pose.leftFoot.positionConfidence + "/" + pose.leftFoot.rotationConfidence; - if (pose.rightFoot.boneId == Tracking.Bone.RightFoot) - s += " RH_" + pose.rightFoot.positionConfidence + "/" + pose.rightFoot.rotationConfidence; - Debug.Log(s); - } - - public static void ReceiveHumanoidPose( - HumanoidControl remoteHumanoid, - HumanoidPose humanoidPose, HumanoidPose lastHumanoidPose, - HumanoidNetworking.Smoothing smoothing) { - - remoteHumanoid.transform.position = humanoidPose.position.vector3; - remoteHumanoid.transform.rotation = humanoidPose.rotation.quaternion; - - if (lastHumanoidPose != null) - CalculateVelocity(remoteHumanoid, humanoidPose.position.vector3, lastHumanoidPose.position.vector3, - humanoidPose.poseTime, humanoidPose.receiveTime, lastHumanoidPose.poseTime); - - ReceiveAnimationParameters(remoteHumanoid, humanoidPose); - - remoteHumanoid.headTarget.animator.enabled = true; - remoteHumanoid.leftHandTarget.animator.enabled = true; - remoteHumanoid.rightHandTarget.animator.enabled = true; - remoteHumanoid.hipsTarget.animator.enabled = true; - remoteHumanoid.leftFootTarget.animator.enabled = true; - remoteHumanoid.rightFootTarget.animator.enabled = true; - - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.hips, lastHumanoidPose, smoothing); - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.head, lastHumanoidPose, smoothing); - HeadAnimator.UpdateNeckTargetFromHead(remoteHumanoid.headTarget); - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.leftHand, lastHumanoidPose, smoothing); - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.rightHand, lastHumanoidPose, smoothing); - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.leftFoot, lastHumanoidPose, smoothing); - ReceiveTargetPose(remoteHumanoid, humanoidPose, humanoidPose.rightFoot, lastHumanoidPose, smoothing); - - remoteHumanoid.CopyRigToTargets(); - } - - private static bool ReceiveAnimationParameters(HumanoidControl humanoid, HumanoidPose pose) { - if (humanoid.targetsRig.runtimeAnimatorController == null) { - if (pose.animatorParameters.parameters.Length > 0) - Debug.LogWarning("Animation Controller is missing on remote Humanoid.\nAnitaion will not be synchronized"); - return false; - } - - for (int i = 0; i < humanoid.targetsRig.parameterCount; i++) { - AnimatorControllerParameter parameter = humanoid.targetsRig.parameters[i]; - switch (parameter.type) { - case AnimatorControllerParameterType.Bool: - humanoid.targetsRig.SetBool(parameter.name, pose.animatorParameters.parameters[i].boolValue); - break; - case AnimatorControllerParameterType.Float: - humanoid.targetsRig.SetFloat(parameter.name, pose.animatorParameters.parameters[i].floatValue); - break; - case AnimatorControllerParameterType.Int: - humanoid.targetsRig.SetInteger(parameter.name, pose.animatorParameters.parameters[i].intValue); - break; - case AnimatorControllerParameterType.Trigger: - humanoid.targetsRig.SetBool(parameter.name, pose.animatorParameters.parameters[i].boolValue); - break; - } - } - return true; - } - - private static void ReceiveTargetPose( - HumanoidControl humanoid, - HumanoidPose humanoidPose, - HumanoidTargetPose targetPose, - HumanoidPose lastPose, - Smoothing smoothing) { - - if (targetPose == null) { - return; - } - - HumanoidTarget target = GetTarget(humanoid, targetPose.boneId); - if (target != null) - target.animator.enabled = false; - //target.EnableAnimator(false); - - if (targetPose.boneId == Tracking.Bone.LeftHand || targetPose.boneId == Tracking.Bone.RightHand) - ReceiveHand((HandTarget)target, (HumanoidHandPose)targetPose); - if (lastPose != null) { - HumanoidTargetPose lastTargetPose = lastPose.GetTargetPose(targetPose.boneId); - if (lastTargetPose != null) { - ReceiveTarget(target, targetPose, lastTargetPose, humanoidPose.poseTime, humanoidPose.receiveTime, lastPose.poseTime, lastPose.receiveTime, smoothing); - return; - } - } - ReceiveTarget(target, targetPose); - } - - private static HumanoidTarget GetTarget(HumanoidControl humanoid, Tracking.Bone boneId) { - switch (boneId) { - case Tracking.Bone.Hips: - return humanoid.hipsTarget; - case Tracking.Bone.Head: - return humanoid.headTarget; - case Tracking.Bone.LeftHand: - return humanoid.leftHandTarget; - case Tracking.Bone.RightHand: - return humanoid.rightHandTarget; - case Tracking.Bone.LeftFoot: - return humanoid.leftFootTarget; - case Tracking.Bone.RightFoot: - return humanoid.rightFootTarget; - default: - return null; - } - } - - - #region Receive Target - - private static void ReceiveTarget(HumanoidTarget target, HumanoidTargetPose targetPose) { - if (target == null || targetPose == null) - return; - - HumanoidTarget.TargetTransform targetTransform = target.main.target; - if (targetPose.positionConfidence >= targetTransform.confidence.position) { - targetTransform.transform.position = target.humanoid.transform.TransformPoint(targetPose.localPosition.vector3); - targetTransform.confidence.position = targetPose.positionConfidence; - } - if (targetPose.rotationConfidence >= targetTransform.confidence.rotation) { - targetTransform.transform.rotation = targetPose.rotation.quaternion; - targetTransform.confidence.rotation = targetPose.rotationConfidence; - } - } - - private static void ReceiveTarget( - HumanoidTarget target, - HumanoidTargetPose targetPose, HumanoidTargetPose lastTargetPose, - float poseTime, float receiveTime, float lastPoseTime, float lastReceiveTime, - Smoothing smoothing) { - - if (target == null || targetPose == null) - return; - - HumanoidTarget.TargetTransform targetTransform = target.main.target; - if (targetPose.positionConfidence >= targetTransform.confidence.position) { - // This code results in wrong hand positions: - //Vector3 oldLocalPosition = target.humanoid.transform.InverseTransformPoint(target.transform.position); - //targetTransform.transform.position = - // CorrectedLocalPosition(oldLocalPosition, target.humanoid.transform, targetPose.localPosition.vector3, lastTargetPose.localPosition.vector3, poseTime, receiveTime, lastPoseTime, lastReceiveTime, smoothing); - targetTransform.transform.position = target.humanoid.transform.TransformPoint(targetPose.localPosition.vector3); - targetTransform.confidence.position = targetPose.positionConfidence; - } - if (targetPose.rotationConfidence >= targetTransform.confidence.rotation) { - targetTransform.transform.rotation = targetPose.rotation.quaternion; - targetTransform.confidence.rotation = targetPose.rotationConfidence; - } - } - - ///Update the transform position with correction for transport jitter - private static Vector3 CorrectedPosition( - Transform targetTransform, - Vector3 receivedPosition, Vector3 lastReceivedPosition, - float poseTime, float receiveTime, - float lastPoseTime, float lastReceiveTime, - Smoothing smoothing) { - - Vector3 newTargetPosition = receivedPosition; - - float deltaPoseTime = poseTime - lastPoseTime; - float deltaReceiveTime = receiveTime - lastReceiveTime; - - if (deltaPoseTime > 0 && deltaReceiveTime > 0 && lastReceivedPosition != Vector3.zero) { - Vector3 receivedTranslation = receivedPosition - lastReceivedPosition; - Vector3 translation = receivedTranslation * (deltaReceiveTime / deltaPoseTime); - - if (smoothing == Smoothing.None) - newTargetPosition = targetTransform.position + translation; - else if (smoothing == Smoothing.Extrapolation) - newTargetPosition = receivedPosition; - else if (smoothing == Smoothing.Interpolation) - newTargetPosition = lastReceivedPosition; - } - - lastReceiveTime = receiveTime; - lastPoseTime = poseTime; - - return newTargetPosition; - } - - ///Update the transform position with correction for transport jitter - private static Vector3 CorrectedLocalPosition( - Vector3 oldLocalPosition, Transform parentTransform, - Vector3 receivedPosition, Vector3 lastReceivedPosition, - float poseTime, float receiveTime, - float lastPoseTime, float lastReceiveTime, - Smoothing smoothing) { - - Vector3 newLocalPosition = receivedPosition; - - float deltaPoseTime = poseTime - lastPoseTime; - float deltaReceiveTime = receiveTime - lastReceiveTime; - - if (deltaPoseTime > 0 && deltaReceiveTime > 0 && lastReceivedPosition != Vector3.zero) { - Vector3 receivedTranslation = receivedPosition - lastReceivedPosition; - Vector3 translation = receivedTranslation * (deltaReceiveTime / deltaPoseTime); - if (smoothing != Smoothing.Interpolation) - newLocalPosition = oldLocalPosition + translation; - } - - lastReceiveTime = receiveTime; - lastPoseTime = poseTime; - - return parentTransform.TransformPoint(newLocalPosition); - } - - private static void CalculateVelocity( - HumanoidControl humanoid, - Vector3 receivedPosition, Vector3 lastReceivedPosition, - float poseTime, float receiveTime, float lastPoseTime) { - - float deltaTime = poseTime - lastPoseTime; - if (deltaTime > 0) { - Vector3 translation = receivedPosition - lastReceivedPosition; - humanoid.velocity = translation / deltaTime; - } - } - - #endregion - - private static void ReceiveHand(HandTarget handTarget, HumanoidHandPose handPose) { - if (handPose == null) - return; - - FingersTarget fingersTarget = handTarget.fingers; - - fingersTarget.thumb.curl = handPose.thumbCurl; - fingersTarget.index.curl = handPose.indexCurl; - fingersTarget.middle.curl = handPose.middleCurl; - fingersTarget.ring.curl = handPose.ringCurl; - fingersTarget.little.curl = handPose.littleCurl; - - if (handPose.syncSwing) { - fingersTarget.thumb.swing = handPose.thumbSwing; - fingersTarget.index.swing = handPose.indexSwing; - fingersTarget.middle.swing = handPose.middleSwing; - fingersTarget.ring.swing = handPose.ringSwing; - fingersTarget.little.swing = handPose.littleSwing; - } - } - -#if hFACE - private static void ReceiveFace(FaceTarget faceTarget, HumanoidFacePose facePose) { - if (facePose == null) - return; - - faceTarget.leftBrow.outerRaise = ((float)facePose.leftBrowOuterRaise) / 127; - faceTarget.leftBrow.innerRaise = ((float)facePose.leftBrowInnerRaise) / 127; - - faceTarget.rightBrow.outerRaise = ((float)facePose.rightBrowOuterRaise) / 127; - faceTarget.rightBrow.innerRaise = ((float)facePose.rightBrowInnerRaise) / 127; - - faceTarget.leftEye.closed = ((float)facePose.leftEyeClosed) / 127; - faceTarget.rightEye.closed = ((float)facePose.rightEyeClosed) / 127; - - faceTarget.mouth.leftRaise = ((float)facePose.mouthLeftRaise) / 127; - faceTarget.mouth.rightRaise = ((float)facePose.mouthRightRaise) / 127; - faceTarget.mouth.leftStretch = ((float)facePose.mouthLeftStretch) / 127; - faceTarget.mouth.rightStretch = ((float)facePose.mouthRightStretch) / 127; - faceTarget.mouth.shiftRight = ((float)facePose.mouthShiftRight) / 127; - - faceTarget.jaw.open = ((float)facePose.jawOpen) / 127; - faceTarget.jaw.shiftRight = ((float)facePose.jawShiftRight) / 127; - - faceTarget.UpdateMorphTargets(); - } -#endif - - public static bool IsTargetActive(byte targetMask, HumanoidControl.TargetId targetIndex) { - int bitset = targetMask & (byte)(1 << ((int)targetIndex + 1)); - return (bitset != 0); - } - - #endregion - - #region Grab - - public class Grab : IMessage { - public ulong nwId; - public byte humanoidId; - public bool isLeft; - public ulong nwId_grabbedObject; - public bool rangeCheck; - public HandTarget.GrabType grabType; - - public Grab() { } - public Grab(HandTarget handTarget, ulong nwId_grabbedObject, bool rangeCheck, HandTarget.GrabType grabType) { - nwId = handTarget.humanoid.nwId; - humanoidId = (byte)handTarget.humanoid.humanoidId; - isLeft = handTarget.isLeft; - this.nwId_grabbedObject = nwId_grabbedObject; - this.rangeCheck = rangeCheck; - this.grabType = grabType; - } - public Grab(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - bw.Write(isLeft); - bw.Write(nwId_grabbedObject); - bw.Write(rangeCheck); - bw.Write((int)grabType); - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - isLeft = br.ReadBoolean(); - nwId_grabbedObject = br.ReadUInt64(); - rangeCheck = br.ReadBoolean(); - grabType = (HandTarget.GrabType)br.ReadInt32(); - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void ReceiveGrab(this IHumanoidNetworking networking, byte[] serializedData) { - Grab data = new Grab(serializedData); - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking networking, Grab msg) { - GameObject obj = networking.GetGameObject(msg.nwId_grabbedObject); - - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("GrabEvent " + obj); - - HumanoidControl humanoid = HumanoidNetworking.FindRemoteHumanoid(networking.humanoids, msg.humanoidId); - if (humanoid == null) { - if (networking.debug <= DebugLevel.Warning) - networking.DebugWarning("Could not find humanoid: " + msg.humanoidId); - return; - } - - HandTarget handTarget = msg.isLeft ? humanoid.leftHandTarget : humanoid.rightHandTarget; - handTarget.Grab(obj, msg.rangeCheck); - } - - #endregion - - #region LetGo - - public class LetGo : IMessage { - public ulong nwId; - public byte humanoidId; - public bool isLeft; - - public LetGo() { } - public LetGo(HandTarget handTarget) { - nwId = handTarget.humanoid.nwId; - humanoidId = (byte)handTarget.humanoid.humanoidId; - isLeft = handTarget.isLeft; - } - public LetGo(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - bw.Write(isLeft); - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - isLeft = br.ReadBoolean(); - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void ReceiveLetGo(this IHumanoidNetworking networking, byte[] serializedData) { - LetGo data = new LetGo(serializedData); - - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking networking, LetGo msg) { - HumanoidControl humanoid = FindRemoteHumanoid(networking.humanoids, msg.humanoidId); - if (humanoid == null) { - if (networking.debug <= DebugLevel.Warning) - Debug.LogWarning("Could not find humanoid: " + msg.humanoidId); - return; - } - - HandTarget handTarget = msg.isLeft ? humanoid.leftHandTarget : humanoid.rightHandTarget; - handTarget.LetGo(); - } - - #endregion - - #region Change Avatar - - public class ChangeAvatar : IMessage { - public ulong nwId; - public byte humanoidId; - public string avatarPrefabName; - public string possessionLocation = ""; - - public ChangeAvatar() { } - public ChangeAvatar(HumanoidControl humanoid, string avatarPrefabName, string possessionLocation) { - nwId = humanoid.nwId; - humanoidId = (byte)humanoid.humanoidId; - this.avatarPrefabName = avatarPrefabName; - this.possessionLocation = possessionLocation; - } - public ChangeAvatar(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - bw.Write(avatarPrefabName); - if (possessionLocation == null) - possessionLocation = ""; - bw.Write(possessionLocation); - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - avatarPrefabName = br.ReadString(); - possessionLocation = br.ReadString(); - if (possessionLocation == "") - possessionLocation = null; - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static void ReceiveChangeAvatar(this IHumanoidNetworking networking, byte[] serializedData) { - ChangeAvatar data = new ChangeAvatar(serializedData); - - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking receivingNetworking, ChangeAvatar msg) { - IHumanoidNetworking networking = GetHumanoidNetworking(receivingNetworking, msg.nwId); - if (networking == null) { - if (receivingNetworking.debug <= DebugLevel.Error) - receivingNetworking.DebugLog("Could not find Networking for Humanoid Pose " + msg.nwId + "/" + msg.humanoidId); - return; - } - - if (networking.isLocal && !networking.createLocalRemotes) { - networking.DebugLog("Don't change the local avatar"); - return; - } - - HumanoidControl remoteHumanoid = FindRemoteHumanoid(networking.humanoids, msg.humanoidId); - if (remoteHumanoid == null) { - if (networking.debug <= DebugLevel.Warning) - Debug.LogWarning("Could not find humanoid: " + msg.humanoidId); - return; - } - - if (msg.possessionLocation != null) { - Debug.Log("Need to download avatar possession from " + msg.possessionLocation); - HumanoidPlayer.instance.StartCoroutine( - VisitorPossessions.RetrievePossessableAsync(msg.possessionLocation, msg.avatarPrefabName, - retrievedAvatar => ProcessRetrievedAvatar(networking, remoteHumanoid, retrievedAvatar)) - ); - return; - } - - GameObject remoteAvatar = (GameObject)Resources.Load(msg.avatarPrefabName); - if (remoteAvatar == null) { - if (networking.debug <= DebugLevel.Error) - Debug.LogError("Could not load remote avatar " + msg.avatarPrefabName + ". Is it located in a Resources folder?"); - return; - } - - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("Receive Change Avatar " + msg.nwId + "/" + msg.humanoidId + " " + msg.avatarPrefabName); - - remoteHumanoid.LocalChangeAvatar(remoteAvatar); - } - - private static void ProcessRetrievedAvatar(IHumanoidNetworking networking, HumanoidControl remoteHumanoid, GameObject retrievedAvatar) { - if (retrievedAvatar == null) { - if (networking.debug <= DebugLevel.Error) - Debug.LogError("Could not retrieve avatar."); - return; - } - - if (networking.debug <= DebugLevel.Info) - networking.DebugLog("Receive Change Possessesable Avatar " + retrievedAvatar); - - remoteHumanoid.LocalChangeAvatar(retrievedAvatar); - } - - #endregion - - #region Sync Tracking Space - - public class SyncTrackingSpace : IMessage { - public ulong nwId; - public byte humanoidId; - public Vector3S position; - public Vector3S rotation; - - public SyncTrackingSpace() { } - public SyncTrackingSpace(HumanoidControl humanoid, Vector3 position, Quaternion rotation) { - nwId = humanoid.nwId; - humanoidId = (byte)humanoid.humanoidId; - - this.position = new Vector3S(position); - this.rotation = new Vector3S(rotation); - } - public SyncTrackingSpace(byte[] data) : base(data) { } - - public override byte[] Serialize() { - MemoryStream ms = new MemoryStream(); - BinaryWriter bw = new BinaryWriter(ms); - - bw.Write(nwId); - bw.Write(humanoidId); - - position.Write(bw); - rotation.Write(bw); - - byte[] data = ms.ToArray(); - return data; - } - - public override void Deserialize(byte[] data) { - MemoryStream ms = new MemoryStream(data); - BinaryReader br = new BinaryReader(ms); - - nwId = br.ReadUInt64(); - humanoidId = br.ReadByte(); - - position = Vector3S.Read(br); - rotation = Vector3S.Read(br); - } - - // This is the same code as in the base class IMessage - // It is needed because the base class implementation only - // results in compiler errors. -#if hNW_MIRROR - //public override void Serialize(Mirror.NetworkWriter writer) { - // byte[] data = Serialize(); - // Mirror.NetworkWriterExtensions.WriteBytesAndSize(writer, data); - //} - - //public override void Deserialize(Mirror.NetworkReader reader) { - // byte[] data = Mirror.NetworkReaderExtensions.ReadBytesAndSize(reader); - // Deserialize(data); - //} -#endif - } - - public static Transform GetTrackingTransform(HumanoidControl humanoid) { -#if hANTILATENCY - if (humanoid.antilatency != null) - return humanoid.antilatency.trackerTransform; -#endif - //#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - // if (humanoid.openVR != null) - // return humanoid.openVR.GetTrackingTransform(); - //#endif - return null; - } - - public static void ReceiveSyncTrackingSpace(this IHumanoidNetworking networking, byte[] serializedData) { - SyncTrackingSpace data = new SyncTrackingSpace(serializedData); - - Receive(networking, data); - } - - public static void Receive(this IHumanoidNetworking networking, SyncTrackingSpace msg) { - foreach (HumanoidControl humanoid in HumanoidControl.allHumanoids) { - if (humanoid.isRemote || humanoid.nwId == msg.nwId) - continue; - - // The lowest (= earliest) nwId is the boss - if (msg.nwId > humanoid.nwId) - return; - - Debug.Log("receive tracking sync"); - - //#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - // // The lowest (= earliest) nwId is the boss - // // NOT ATM FOR TESTING - // //if (msg.nwId > humanoid.nwId) - // if (humanoid.openVR != null) { - // humanoid.openVR.SyncTracking(msg.position.vector3, msg.rotation.quaternion); - // } - //#endif -#if hANTILATENCY - //if (msg.nwId > humanoid.nwId) { - if (humanoid.antilatency != null) { - humanoid.antilatency.SyncTracking(msg.position.vector3, msg.rotation.quaternion); - } - //} -#endif - } - } - - #endregion - - public static IHumanoidNetworking GetHumanoidNetworking(IHumanoidNetworking networking, ulong nwId) { - if (networking.nwId == nwId) - return networking; - - GameObject networkingObj = networking.GetGameObject(nwId); - if (networkingObj == null) - return null; - - return networkingObj.GetComponent(); - } - - public static List FindLocalHumanoids() { - List humanoidList = new List(); - HumanoidControl[] foundHumanoids = UnityEngine.Object.FindObjectsOfType(); - for (int i = 0; i < foundHumanoids.Length; i++) { - if (!foundHumanoids[i].isRemote) { - humanoidList.Add(foundHumanoids[i]); - } - } - return humanoidList; - } - - public static IHumanoidNetworking GetLocalHumanoidNetworking() { - HumanoidPlayer[] humanoidNetworkings = UnityEngine.Object.FindObjectsOfType(); - foreach (IHumanoidNetworking humanoidNetworking in humanoidNetworkings) { - if (humanoidNetworking.isLocal) - return humanoidNetworking; - } - - return null; - } - - public static void DisableNetworkSync(GameObject obj) { -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - HumanoidPlayer.DisableNetworkSync(obj); -#endif - } - - public static void ReenableNetworkSync(GameObject obj) { -#if hNW_UNET || hNW_PHOTON || hNW_BOLT || hNW_MIRROR - HumanoidPlayer.ReenableNetworkSync(obj); -#endif - } - - public static void TakeOwnership(GameObject obj) { -#if hNW_PHOTON - HumanoidPlayer.TakeOwnership(obj); -#endif - } - - public static HumanoidControl FindHumanoid(List humanoids, int humanoidId) { - foreach (HumanoidControl humanoid in humanoids) { - if (humanoid == null) - continue; - if (humanoid.humanoidId == humanoidId) - return humanoid; - } - return null; - } - - public static HumanoidControl FindLocalHumanoid(List humanoids, int humanoidId) { - foreach (HumanoidControl humanoid in humanoids) { - if (humanoid == null) - continue; - if (!humanoid.isRemote && humanoid.humanoidId == humanoidId) - return humanoid; - } - return null; - } - - public static HumanoidControl FindRemoteHumanoid(List humanoids, int humanoidId) { - foreach (HumanoidControl humanoid in humanoids) { - if (humanoid == null) - continue; - if (humanoid.isRemote && humanoid.humanoidId == humanoidId) - return humanoid; - } - return null; - } - #region Start - - //public static void Start(PawnNetworking.DebugLevel debug, bool syncFingerSwing) { - // HumanoidNetworking.debug = debug; - // HumanoidNetworking.syncFingerSwing = syncFingerSwing; - //} - - #endregion - - #region Start Humanoid - //public static HumanoidControl StartHumanoid( - // ulong nwId, - // int humanoidId, - // string name, - // string avatarPrefabName, - // Vector3 position, Quaternion rotation, - // bool physics) { - - // if (debug <= PawnNetworking.DebugLevel.Info) - // UnityEngine.Debug.Log(nwId + ": Receive StartHumanoid " + humanoidId); - - // HumanoidControl remoteHumanoid = InstantiateRemoteHumanoid(remoteHumanoidPrefab, name, position, rotation); - // remoteHumanoid.nwId = nwId; - // remoteHumanoid.humanoidId = humanoidId; - - // if (debug <= PawnNetworking.DebugLevel.Info) - // UnityEngine.Debug.Log(remoteHumanoid.nwId + ": Remote Humanoid " + remoteHumanoid.humanoidId + " Added"); - - // GameObject remoteAvatar = (GameObject)Resources.Load(avatarPrefabName); - // if (remoteAvatar == null) { - // if (debug <= PawnNetworking.DebugLevel.Error) - // UnityEngine.Debug.LogError("Could not load remote avatar " + avatarPrefabName + ". Is it located in a Resources folder?"); - // return remoteHumanoid; - // } - // remoteHumanoid.physics = physics; - // remoteHumanoid.LocalChangeAvatar(remoteAvatar); - - // return remoteHumanoid; - //} - - - - - #endregion - - #region Pose - - #region Smoothing - - public static void SmoothUpdate(List humanoids) { - foreach (HumanoidControl humanoid in humanoids) { - if (humanoid.isRemote) - SmoothUpdate(humanoid); - } - } - - public static void SmoothUpdate(HumanoidControl humanoid) { - //Debug.Log("smoothing"); - humanoid.transform.position += humanoid.velocity * Time.deltaTime; - } - - #endregion - - #endregion - } -} diff --git a/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs.meta b/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs.meta deleted file mode 100644 index 3026bc3..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/HumanoidNetworking.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 2f02d14a49fd45d438d74c748cb06e87 -timeCreated: 1506073159 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs b/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs deleted file mode 100644 index 53d14df..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { -#pragma warning disable 0618 - -#if hNW_UNET || hNW_MIRROR || hNW_PHOTON || hNW_BOLT - public partial class HumanoidPlayer { - - [SerializeField] - protected bool _syncFingerSwing = false; - public bool syncFingerSwing { - get { return _syncFingerSwing; } - } - - [SerializeField] - protected bool _syncFace = false; - public bool syncFace { - get { return _syncFace; } - } - - [SerializeField] - private bool _syncTracking = false; - public bool syncTracking { - get { return _syncTracking; } - set { _syncTracking = value; } - } - - public bool fuseTracking { get; set; } -#else - - public class HumanoidPlayer : MonoBehaviour, IHumanoidNetworking { - - #region Dummy interface - - public void Send(bool b) { } - public void Send(byte b) { } - public void Send(int x) { } - public void Send(float f) { } - public void Send(Vector3 v) { } - public void Send(Quaternion q) { } - - public bool ReceiveBool() { - return false; - } - public byte ReceiveByte() { - return 0; - } - public int ReceiveInt() { - return 0; - } - public float ReceiveFloat() { - return 0; - } - public Vector3 ReceiveVector3() { - return Vector3.zero; - } - public Quaternion ReceiveQuaternion() { - return Quaternion.identity; - } - - public ulong GetObjectIdentity(GameObject obj) { - return 0; - } - public GameObject GetGameObject(ulong objIdentity) { - return this.gameObject; - } - - public void InstantiateHumanoid(HumanoidControl humanoid) { - if (debug <= HumanoidNetworking.DebugLevel.Info) - DebugLog("Send Instantiate Humanoid " + humanoid.humanoidId); - - HumanoidNetworking.InstantiateHumanoid instantiateHumanoid = new HumanoidNetworking.InstantiateHumanoid(humanoid); - if (createLocalRemotes) - this.Receive(instantiateHumanoid); - } - public void DestroyHumanoid(HumanoidControl humanoid) { } - public void UpdateHumanoidPose(HumanoidControl humanoid) { } - public void Grab(HandTarget handTarget, GameObject obj, bool rangeCheck, HandTarget.GrabType grabType = HandTarget.GrabType.HandGrab) { } - public void LetGo(HandTarget handTarget) { } - public void ChangeAvatar(HumanoidControl humanoid, string avatarPrefabName, string possessionLocation = null) { - if (debug <= HumanoidNetworking.DebugLevel.Info) - Debug.Log(humanoid.nwId + ": Change Avatar: " + avatarPrefabName); - - HumanoidNetworking.ChangeAvatar changeAvatar = new HumanoidNetworking.ChangeAvatar(humanoid, avatarPrefabName, possessionLocation); - if (createLocalRemotes) - this.Receive(changeAvatar); - } - - public void SyncTrackingSpace(HumanoidControl humanoid) { } - public void ReenableNetworkSync(GameObject obj) { } - public void DisableNetworkSync(GameObject obj) { } - - public void DebugLog(string s) { - Debug.Log(s); - } - public void DebugWarning(string s) { - Debug.LogWarning(s); - } - public void DebugError(string s) { - Debug.LogError(s); - } - - public float sendRate => 0; - - public HumanoidNetworking.Smoothing smoothing => HumanoidNetworking.Smoothing.None; - - public bool createLocalRemotes { get => true; set { return; } } - - private bool _isLocal; - public bool isLocal => _isLocal; // may need to implement this - - public ulong nwId => 0; - - public bool syncFingerSwing => false; - - public bool syncTracking { get => false; set { return; } } - - public bool fuseTracking => false; - - public HumanoidNetworking.HumanoidPose lastHumanoidPose { get => null; set { return; } } - #endregion Dummy Interface - - public List humanoids { get; set; } - - protected virtual void Awake() { - mInstance = this; - - GameObject.DontDestroyOnLoad(this.gameObject); - humanoids = HumanoidNetworking.FindLocalHumanoids(); - - for (int i = 0; i < humanoids.Count; i++) { - HumanoidControl humanoid = humanoids[i]; - if (humanoid.isRemote) - continue; - - humanoid.humanoidNetworking = this; - - //((IHumanoidNetworking)this).InstantiateHumanoid(humanoid); - } - } - -#endif - [SerializeField] - protected HumanoidNetworking.DebugLevel _debug = HumanoidNetworking.DebugLevel.Error; - public HumanoidNetworking.DebugLevel debug { - get { return _debug; } - } - - static HumanoidPlayer mInstance; - public static HumanoidPlayer instance { - get { - if (mInstance == null) { - Debug.LogWarning("No HumanoidPlayer instance found, instantiating a new instance..."); - GameObject go = new GameObject(); - mInstance = go.AddComponent(); - } - return mInstance; - } - } - - } - -#pragma warning restore 0618 -} diff --git a/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs.meta b/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs.meta deleted file mode 100644 index 8a1348e..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/HumanoidPlayer.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: eb69cd2012a95b549a6c414c3619432c -timeCreated: 1563430766 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs b/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs deleted file mode 100644 index a509247..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Passer.Humanoid { - - public class NetworkingSpawner : NetworkingStarter { - public HumanoidSpawner humanoidSpawner; - - public void OnNetworkingStarted() { - humanoidSpawner.SpawnHumanoid(); - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs.meta b/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs.meta deleted file mode 100644 index 7cf7221..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/NetworkingSpawner.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 58c04349863a6e74ca89dc123cfef29b -timeCreated: 1519661341 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs b/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs deleted file mode 100644 index b452e44..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs +++ /dev/null @@ -1,25 +0,0 @@ -using UnityEngine; - -namespace Passer { - - public class NetworkingStatusUI : MonoBehaviour { - protected NetworkingStarter networkingStarter; - protected UnityEngine.UI.Text textcomponent; - - void Start() { - networkingStarter = FindObjectOfType(); - textcomponent = GetComponent(); - } - - void Update() { -#if hNW_UNET || hNW_PHOTON - if (networkingStarter == null) - return; - - //if (textcomponent != null) -// textcomponent.text = networkingStarter.networkingStatus.ToString(); -#endif - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs.meta b/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs.meta deleted file mode 100644 index d859c47..0000000 --- a/Runtime/HumanoidFree/Scripts/Networking/NetworkingStatusUI.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4bd359269da5de0498ca2892f8311777 -timeCreated: 1571670226 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/ObjectTracker.cs b/Runtime/HumanoidFree/Scripts/ObjectTracker.cs deleted file mode 100644 index 1440326..0000000 --- a/Runtime/HumanoidFree/Scripts/ObjectTracker.cs +++ /dev/null @@ -1,89 +0,0 @@ -using UnityEngine; - -namespace Passer { - using Passer.Tracking; - - [System.Serializable] - public class ObjectTracker : Target { - - #region Sensors - - public SensorComponent sensorComponent; - - public override void InitSensors() { - } - - public override void StartSensors() { - } - #endregion - - #region Settings - - public bool physics; - - #endregion - - [SerializeField] - protected Vector3 sensor2ObjectPosition; - [SerializeField] - protected Quaternion sensor2ObjectRotation; - - #region Start - public void Start() { - StartTarget(); - } - - public override void StartTarget() { - InitSensors(); - StartSensors(); - - if (physics) { - StartPhysics(); - } - } - - private void StartPhysics() { - //Rigidbody targetRigidbody = targetTransform.gameObject.AddComponent(); - //targetRigidbody.isKinematic = true; - //targetRigidbody.useGravity = false; - - //ConfigurableJoint joint = gameObject.AddComponent(); - //joint.connectedBody = targetRigidbody; - - //joint.autoConfigureConnectedAnchor = false; - //joint.anchor = Vector3.zero; - //joint.connectedAnchor = Vector3.zero; - - //joint.xMotion = ConfigurableJointMotion.Locked; - //joint.yMotion = ConfigurableJointMotion.Locked; - //joint.zMotion = ConfigurableJointMotion.Locked; - - //joint.angularXMotion = ConfigurableJointMotion.Locked; - //joint.angularYMotion = ConfigurableJointMotion.Locked; - //joint.angularZMotion = ConfigurableJointMotion.Locked; - } - #endregion - - #region Update - void Update() { - UpdateTarget(); - } - - public override void UpdateTarget() { - sensorComponent.UpdateComponent(); - - UpdateTransform(); - } - - // See HumanoidSensor.UpdateTargetTransform - private void UpdateTransform() { - this.transform.rotation = sensorComponent.transform.rotation * sensor2ObjectRotation; - this.transform.position = sensorComponent.transform.position + this.transform.rotation * sensor2ObjectPosition; - } - - public void ShowTrackers(bool shown) { - } - - #endregion - } -} diff --git a/Runtime/HumanoidFree/Scripts/ObjectTracker.cs.meta b/Runtime/HumanoidFree/Scripts/ObjectTracker.cs.meta deleted file mode 100644 index 4c8b30a..0000000 --- a/Runtime/HumanoidFree/Scripts/ObjectTracker.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 646f57471f05a1447bdecfde7119fa72 -timeCreated: 1470136825 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics.meta b/Runtime/HumanoidFree/Scripts/Physics.meta deleted file mode 100644 index 94ac912..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: 2f32bdf9a0c83c048a01f38c1e208383 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs b/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs deleted file mode 100644 index 8a57532..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs +++ /dev/null @@ -1,8 +0,0 @@ -using UnityEngine; -using System.Collections; - -namespace Passer.Humanoid { - - public class BallHandle : Handle { - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs.meta deleted file mode 100644 index 7465c11..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/BallHandle.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fae343df67c3ea74da0c03a96ed0e7e8 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs b/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs deleted file mode 100644 index 2010176..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs +++ /dev/null @@ -1,7 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class BarHandle : Handle { - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs.meta deleted file mode 100644 index 94f4e8c..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/BarHandle.cs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 175fb44a71bdd7042a6e198b49055515 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: diff --git a/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs b/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs deleted file mode 100644 index 4378ed6..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UnityEngine; -using System.Collections; - -public class FootPhysics : MonoBehaviour { - - // Use this for initialization - void Start () { - - } - - // Update is called once per frame - void Update () { - - } -} diff --git a/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs.meta deleted file mode 100644 index 056ac9e..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/FootPhysics.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 8485b8871c8f9cf4e870d0ef4ab949cd -timeCreated: 1483383200 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs b/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs deleted file mode 100644 index 42d0d97..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs +++ /dev/null @@ -1,855 +0,0 @@ -#define DEBUG_FORCE -//#define DEBUG_TORQUE -//#define IMPULSE - -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.EventSystems; - -namespace Passer.Humanoid { - - public class BasicHandPhysics : MonoBehaviour { - protected static void DebugLog(string s) { -#if UNITY_EDITOR - //Debug.Log(s); -#endif - } - - public HandTarget handTarget; - - public virtual void Start() { - if (!handTarget.physics) - AdvancedHandPhysics.SetKinematic(handTarget.handRigidbody); - } - - [HideInInspector] - protected Rigidbody handRigidbody; - - protected virtual void Initialize() { - if (handTarget == null) - return; - - handRigidbody = GetComponent(); - } - - #region Update - - private List currentTriggers = new List(); - private List lastTriggers = new List(); - - public virtual void FixedUpdate() { - lastTriggers = currentTriggers; - currentTriggers = new List(); - - } - - protected virtual void Update() { - foreach (Collider lastTrigger in lastTriggers) { - if (!currentTriggers.Contains(lastTrigger)) - SendHandTriggerExit(lastTrigger); - } - } - - public virtual void ManualFixedUpdate(HandTarget _handTarget) { - handTarget = _handTarget; - - /* - Collider[] colliders = Physics.OverlapSphere(handTarget.grabSocket.transform.position, 0.1F); - if (colliders.Length == 0) - return; - - Collider nearingCollider = null; - for (int i = 0; i < colliders.Length; i++) { - if (colliders[i].attachedRigidbody == null) - nearingCollider = colliders[i]; - } - if (nearingCollider != null) - HandInteraction.OnNearing(handTarget, nearingCollider.gameObject); - */ - if (handRigidbody == null) - Initialize(); - - if (!handRigidbody.isKinematic) - UpdateNonKinematicRigidbody(); - } - - protected virtual void UpdateNonKinematicRigidbody() { - Vector3 torque = CalculateTorque(); - ApplyTorqueAtPosition(torque, handTarget.handPalm.position); - - Vector3 wristTorque = CalculateWristTorque(); - ApplyTorqueAtPosition(wristTorque, handTarget.hand.bone.transform.position); - - Vector3 force = CalculateForce(); - ApplyForceAtPosition(force, handTarget.handPalm.position); - - } - - - #endregion - - #region Events - - public virtual void OnCollisionEnter(Collision collision) { - if (collision.contacts.Length == 0) - return; - - Rigidbody objRigidbody = collision.rigidbody; - if (objRigidbody != null) - handTarget.OnTouchStart(objRigidbody.gameObject, collision.contacts[0].point); - else - handTarget.OnTouchStart(collision.gameObject, collision.contacts[0].point); - } - - public virtual void OnCollisionExit(Collision collision) { - Rigidbody objRigidbody = collision.rigidbody; - if (objRigidbody != null) - handTarget.OnTouchEnd(objRigidbody.gameObject); - else - handTarget.OnTouchEnd(collision.gameObject); - } - - public virtual void OnTriggerEnter(Collider collider) { - if (collider.isTrigger) - // We cannot touch trigger colliders - return; - - Rigidbody objRigidbody = collider.attachedRigidbody; - if (objRigidbody != null) - handTarget.touchedObject = objRigidbody.gameObject; - else - handTarget.touchedObject = collider.gameObject; - - handTarget.OnTouchStart(handTarget.touchedObject, collider.transform.position); - } - - public virtual void OnTriggerStay(Collider collider) { - if (!lastTriggers.Contains(collider)) - // This is a new trigger - SendHandTriggerEnter(collider); - - currentTriggers.Add(collider); - - if (collider.isTrigger) - // We cannot touch trigger colliders - return; - - Rigidbody objRigidbody = collider.attachedRigidbody; - if (objRigidbody != null) - handTarget.touchedObject = objRigidbody.gameObject; - else - handTarget.touchedObject = collider.gameObject; - - handTarget.GrabCheck(handTarget.touchedObject); - } - - public virtual void OnTriggerExit(Collider collider) { - Rigidbody objRigidbody = collider.attachedRigidbody; - if (objRigidbody != null) - handTarget.OnTouchEnd(objRigidbody.gameObject); - else - handTarget.OnTouchEnd(collider.gameObject); - - handTarget.touchedObject = null; - } - - protected void SendHandTriggerEnter(Collider collider) { - Rigidbody objRigidbody = collider.attachedRigidbody; - - if (collider.gameObject != null) { - IHandTriggerEvents triggerEvent; - if (objRigidbody != null) - triggerEvent = objRigidbody.GetComponent(); - else - triggerEvent = collider.GetComponent(); - - if (triggerEvent != null) - triggerEvent.OnHandTriggerEnter(handTarget, collider); - } - } - - protected void SendHandTriggerExit(Collider collider) { - Rigidbody objRigidbody = collider.attachedRigidbody; - - if (collider.gameObject != null) { - IHandTriggerEvents triggerEvent; - if (objRigidbody != null) - triggerEvent = objRigidbody.GetComponent(); - else - triggerEvent = collider.GetComponent(); - - if (triggerEvent != null) - triggerEvent.OnHandTriggerExit(handTarget, collider); - } - } - #endregion - - #region Force - - protected Vector3 CalculateForce() { - /* - //Vector3 locationDifference = handTarget.stretchlessTarget.position - handTarget.handRigidbody.position; - //Debug.DrawLine(handTarget.stretchlessTarget.position, handTarget.handRigidbody.position); - Vector3 locationDifference = handTarget.transform.position - handTarget.handRigidbody.position; - //Debug.DrawLine(handTarget.hand.target.transform.position, handTarget.handRigidbody.position); - - //if (locationDifference.magnitude < 0.01F) - // return Vector3.zero; - - Vector3 force = locationDifference * handTarget.strength; - - force += CalculateForceDamper(); - */ - Vector3 force = HybridPhysics.CalculateForce(handRigidbody, handTarget.stretchlessTarget.position, handTarget.strength); - return force; - } - - private const float damping = 12; - private float lastDistanceTime; - private Vector3 lastDistanceToTarget; - private Vector3 CalculateForceDamper() { - Vector3 distanceToTarget = handTarget.hand.bone.transform.position - handTarget.hand.target.transform.position; - - float deltaTime = Time.fixedTime - lastDistanceTime; - - Vector3 damper = Vector3.zero; - if (deltaTime < 0.1F) { - Vector3 velocityTowardsTarget = (distanceToTarget - lastDistanceToTarget) / deltaTime; - - damper = -velocityTowardsTarget * damping; - - //Compensate for absolute rigidbody speed (specifically when on a moving platform) - if (handRigidbody != null) { - Vector3 residualVelocity = handRigidbody.velocity - velocityTowardsTarget; - damper += residualVelocity * 10; - } - } - lastDistanceToTarget = distanceToTarget; - lastDistanceTime = Time.fixedTime; - - return damper; - } - - protected void ApplyForce(Vector3 force) { - if (float.IsNaN(force.magnitude)) - return; - - /* - if (contactPoint.sqrMagnitude > 0) { - // The contact point is OK, but the force here is not OK, because this is the force from the hand - // The force needs to be projected on the contactPoint ! - //handRigidbody.AddForceAtPosition(force, contactPoint); - //#if DEBUG_FORCE - Debug.DrawRay(contactPoint, force / 10, Color.yellow); - //#endif - } - else { - // The contact point is OK, but the force here is not OK, because this is the force from the hand - // The force needs to be projected on the contactPoint ! - //handRigidbody.AddForceAtPosition(force, target.handPalm.position); - handRigidbody.AddForce(force); - //#if DEBUG_FORCE - Debug.DrawRay(target.handPalm.position, force / 10, Color.yellow); - //#endif - } - */ - handRigidbody.AddForce(force); -#if DEBUG_FORCE - Debug.DrawRay(handRigidbody.position, force / 10, Color.yellow); -#endif - } - - protected void ApplyForceAtPosition(Vector3 force, Vector3 position) { - if (float.IsNaN(force.magnitude)) - return; - - handRigidbody.AddForceAtPosition(force, position); -#if DEBUG_FORCE - Debug.DrawRay(position, force / 10, Color.yellow); -#endif - } - - #endregion - - #region Torque - - protected Vector3 CalculateTorque() { - Quaternion sollRotation = handTarget.hand.target.transform.rotation * handTarget.hand.target.toBoneRotation; - Quaternion istRotation = handTarget.hand.bone.transform.rotation; - Quaternion dRot = sollRotation * Quaternion.Inverse(istRotation); - - float angle; - Vector3 axis; - dRot.ToAngleAxis(out angle, out axis); - angle = UnityAngles.Normalize(angle); - - Vector3 angleDifference = axis.normalized * (angle * Mathf.Deg2Rad); - Vector3 torque = angleDifference * handTarget.strength * 0.1F; - return torque; - } - - protected Vector3 CalculateWristTorque() { - //Vector3 wristTension = target.GetWristTension(); - - // Not stable - //Vector3 forces = new Vector3(-(wristTension.x * wristTension.x * 10), -(wristTension.y * wristTension.y * 10), -wristTension.z * wristTension.z * 10); - //Vector3 forces = new Vector3(0, -(wristTension.y * wristTension.y * 10), -wristTension.z * wristTension.z * 10); - - Vector3 torque = Vector3.zero; // (0, 0, -wristTension.z * wristTension.z * 10); - return torque; - } - - private void ApplyTorque(Vector3 torque) { - //AddTorqueAtPosition(torque, target.handPalm.position); - ApplyTorqueAtPosition(torque, handTarget.hand.bone.transform.position); - } - - protected void ApplyTorqueAtPosition(Vector3 torque, Vector3 posToApply) { - if (float.IsNaN(torque.magnitude)) - return; - - Vector3 torqueAxis = torque.normalized; - Vector3 ortho = new Vector3(1, 0, 0); - - // prevent torqueAxis and ortho from pointing in the same direction - if (((torqueAxis - ortho).sqrMagnitude < Mathf.Epsilon) || ((torqueAxis + ortho).sqrMagnitude < Mathf.Epsilon)) { - ortho = new Vector3(0, 1, 0); - } - - ortho = Vector3OrthoNormalize(torqueAxis, ortho); - // calculate force - Vector3 force = Vector3.Cross(0.5f * torque, ortho); - - if (handTarget.handRigidbody != null) { - handTarget.handRigidbody.AddForceAtPosition(force, posToApply + ortho); - handTarget.handRigidbody.AddForceAtPosition(-force, posToApply - ortho); - } - -#if DEBUG_TORQUE - UnityEngine.Debug.DrawRay(posToApply + ortho / 20, force / 10, Color.yellow); - UnityEngine.Debug.DrawLine(posToApply + ortho / 20, posToApply - ortho / 20, Color.yellow); - UnityEngine.Debug.DrawRay(posToApply - ortho / 20, -force / 10, Color.yellow); -#endif - } - - private Vector3 Vector3OrthoNormalize(Vector3 a, Vector3 b) { - Vector3 tmp = Vector3.Cross(a.normalized, b).normalized; - return tmp; - } - #endregion - - } - - public class AdvancedHandPhysics : BasicHandPhysics { -#if UNITY_EDITOR - public static bool debug = false; -#endif - public enum PhysicsMode { - Kinematic, - NonKinematic, - HybridKinematic, - NonKinematicVelocity, - VelocityUpdate - } - public PhysicsMode mode = PhysicsMode.HybridKinematic; - - private bool colliding; - public bool hasCollided = false; - public Vector3 contactPoint; - - public Vector3 force; - public Vector3 torque; - - protected override void Initialize() { - if (handTarget == null) - return; - - if (enabled) { - handRigidbody = GetComponent(); - if (handRigidbody != null) { - if (handRigidbody != null) { - if (handRigidbody.useGravity || mode == PhysicsMode.NonKinematic) - SetNonKinematic(handRigidbody, handTarget.colliders); - else - handTarget.colliders = SetKinematic(handRigidbody); - } - handRigidbody.maxAngularVelocity = 20; - } - } - } - - #region Update - - public override void FixedUpdate() { - CalculateVelocity(); - } - - public override void ManualFixedUpdate(HandTarget _handTarget) { - handTarget = _handTarget; - - if (hasCollided && !colliding) { - handTarget.OnTouchEnd(handTarget.touchedObject); - handTarget.touchedObject = null; - } - - if (handTarget.touchedObject == null) { // Object may be destroyed - hasCollided = false; - } - - if (handRigidbody == null) - Initialize(); - - // Check for stuck hands. Only when hand is kinematic you can pull the hand loose - // it will then turn into a kinematic hand, which results in snapping the hand back - // onto the forearm. - if (handTarget.forearm.bone.transform != null && handRigidbody != null && !handRigidbody.isKinematic) { - float distance = Vector3.Distance(handTarget.hand.bone.transform.position, handTarget.forearm.bone.transform.position) - handTarget.forearm.bone.length; - if (distance > 0.05F) { - handTarget.colliders = SetKinematic(handRigidbody); - } - } - - UpdateRigidbody(); - - colliding = false; - } - - public void UpdateRigidbody() { - if (handRigidbody == null) { - UpdateGrabbedMechanicalJoint(); - return; - } - - if (mode == PhysicsMode.VelocityUpdate) { - UpdateRigidbodyVelocity(); - return; - } - - if ((mode == PhysicsMode.NonKinematic || mode == PhysicsMode.NonKinematicVelocity) && handRigidbody.isKinematic) - SetNonKinematic(handRigidbody, handTarget.colliders); - - Quaternion targetRotation = handTarget.transform.rotation; - - Quaternion rot = Quaternion.Inverse(handRigidbody.rotation) * targetRotation; - float angle; - Vector3 axis; - rot.ToAngleAxis(out angle, out axis); - - if (handRigidbody.isKinematic) - UpdateKinematicRigidbody(); - else - UpdateNonKinematicRigidbody(); - } - - private void UpdateGrabbedMechanicalJoint() { - Rigidbody grabbedRigidbody = handTarget.hand.bone.transform.GetComponentInParent(); - if (grabbedRigidbody == null) - return; - - MechanicalJoint grabbedMechanicalJoint = grabbedRigidbody.GetComponent(); - if (grabbedMechanicalJoint == null) - return; - - Vector3 locationDifference = handTarget.hand.target.transform.position - handTarget.hand.bone.transform.position; - grabbedRigidbody.transform.position += locationDifference; - - Vector3 correctionVector = grabbedMechanicalJoint.GetCorrectionVector(); - grabbedRigidbody.transform.position += correctionVector; - - Quaternion rotationDifference = handTarget.hand.target.transform.rotation * Quaternion.Inverse(handTarget.hand.bone.targetRotation); - grabbedRigidbody.transform.rotation = rotationDifference * grabbedRigidbody.transform.rotation; - - Quaternion correctionRotation = grabbedMechanicalJoint.GetCorrectionAxisRotation(); - grabbedRigidbody.transform.rotation = grabbedRigidbody.transform.rotation * correctionRotation; - } - - private void UpdateKinematicRigidbody() { - if (mode == PhysicsMode.NonKinematic || - mode == PhysicsMode.HybridKinematic && ( - handRigidbody.mass > HybridPhysics.kinematicMass || - handRigidbody.GetComponent() != null - ) - ) { - - SetNonKinematic(); - return; - } - - force = Vector3.zero; - torque = Vector3.zero; - } - - protected override void UpdateNonKinematicRigidbody() { - if (mode != PhysicsMode.NonKinematicVelocity) { - //torque = CalculateTorque(); - //ApplyTorqueAtPosition(torque, handTarget.handPalm.position); - - //Vector3 wristTorque = CalculateWristTorque(); - //ApplyTorqueAtPosition(wristTorque, handTarget.hand.bone.transform.position); - - force = CalculateForce(); - ApplyForceAtPosition(force, handTarget.handPalm.position); - - // Kinematic Hand Rotation - handRigidbody.constraints = RigidbodyConstraints.FreezeRotation; - handTarget.hand.SetBoneRotation(handTarget.hand.target.transform.rotation); - - if (handTarget.humanoid.haptics && force.magnitude > 5) - handTarget.Vibrate(force.magnitude / 25); - } - else { - force = Vector3.zero; - torque = Vector3.zero; - } - - if (!hasCollided && - !handRigidbody.useGravity && - handRigidbody.mass <= HybridPhysics.kinematicMass && - mode != PhysicsMode.NonKinematic && - mode != PhysicsMode.NonKinematicVelocity && - handRigidbody.GetComponent() == null - ) { - - if (!handRigidbody.isKinematic) - handTarget.colliders = SetKinematic(handRigidbody); - } - } - - private const float MaxVelocityChange = 10f; - private const float MaxAngularVelocityChange = 20f; - private const float VelocityMagic = 6000f; - private const float AngularVelocityMagic = 50f; - private const float ExpectedDeltaTime = 0.0111f; - - protected virtual void UpdateRigidbodyVelocity() { - if (handRigidbody.isKinematic) - SetNonKinematic(); - - Vector3 handPosition = handRigidbody.transform.position; - Quaternion handRotation = handRigidbody.transform.rotation * handTarget.hand.bone.toTargetRotation; - - Vector3 targetPosition = handTarget.hand.target.transform.position; - Quaternion targetRotation = handTarget.hand.target.transform.rotation; - - float velocityMagic = VelocityMagic / (Time.fixedDeltaTime / ExpectedDeltaTime); - float angularVelocityMagic = AngularVelocityMagic / (Time.fixedDeltaTime / ExpectedDeltaTime); - - Vector3 positionDelta; - Quaternion rotationDelta; - - float angle; - Vector3 axis; - - positionDelta = (targetPosition - handPosition); - rotationDelta = targetRotation * Quaternion.Inverse(handRotation); - - Vector3 velocityTarget = (positionDelta * velocityMagic) * Time.fixedDeltaTime; - if (float.IsNaN(velocityTarget.x) == false) - handRigidbody.velocity = Vector3.MoveTowards(handRigidbody.velocity, velocityTarget, MaxVelocityChange); - - rotationDelta.ToAngleAxis(out angle, out axis); - - if (angle > 180) - angle -= 360; - - if (angle != 0) { - Vector3 angularTarget = angle * axis; - if (!float.IsNaN(angularTarget.x)) { - angularTarget = (angularTarget * angularVelocityMagic) * Time.fixedDeltaTime; - handRigidbody.angularVelocity = Vector3.MoveTowards(handRigidbody.angularVelocity, angularTarget, MaxAngularVelocityChange); - } - } - } - - #endregion Update - - #region Events - - public override void OnTriggerEnter(Collider collider) { - bool otherHasKinematicPhysics = false; - bool otherIsHumanoid = false; - - Rigidbody otherRigidbody = collider.attachedRigidbody; - if (otherRigidbody != null) { - AdvancedHandPhysics kp = otherRigidbody.GetComponent(); - if (kp == null) - kp = otherRigidbody.GetComponentInParent(); - otherHasKinematicPhysics = (kp != null); - HumanoidControl humanoid = otherRigidbody.GetComponent(); - otherIsHumanoid = (humanoid != null); - } - - bool collidedWithMyself = IsHumanoidCollider(collider, handTarget.humanoid); - - if (mode == PhysicsMode.HybridKinematic && - handRigidbody != null && - handRigidbody.isKinematic && - (!collider.isTrigger || otherHasKinematicPhysics) && - !otherIsHumanoid && - !collidedWithMyself) { - - colliding = true; - hasCollided = true; - if (otherRigidbody != null) { - handTarget.touchedObject = otherRigidbody.gameObject; - SetNonKinematic(handRigidbody, handTarget.colliders); - } - else { - handTarget.touchedObject = collider.gameObject; - SetNonKinematic(handRigidbody, handTarget.colliders); - } - - ProcessFirstCollision(handRigidbody, collider); - } - - if (hasCollided) { - if (otherRigidbody != null) - handTarget.GrabCheck(otherRigidbody.gameObject); - else - handTarget.GrabCheck(collider.gameObject); - } - } - - /// - /// Determine if the collider is part of this humanoid - /// or attached to this humanoid. - /// - /// - /// To be merged with HumanoidControl.IsMyRigidbody ? - private bool IsHumanoidCollider(Collider collider, HumanoidControl humanoid) { - Rigidbody otherRigidbody = collider.attachedRigidbody; - if (otherRigidbody == null) - return false; - - // is part of the humanoid? - if (otherRigidbody == humanoid.leftHandTarget.handRigidbody || - otherRigidbody == humanoid.rightHandTarget.handRigidbody || - otherRigidbody == humanoid.humanoidRigidbody || - otherRigidbody == humanoid.characterRigidbody) { - return true; - } - - /* Why have this here? - * With this, you cannot touch anything attached to your body (like buttons) - // is attached to this humanoid? - if (otherRigidbody.transform.parent == null) - return false; - - Rigidbody parentRigidbody = otherRigidbody.transform.parent.GetComponentInParent(); - if (parentRigidbody == null) - return false; - - if (parentRigidbody == humanoid.leftHandTarget.handRigidbody || - parentRigidbody == humanoid.rightHandTarget.handRigidbody || - parentRigidbody == humanoid.humanoidRigidbody || - parentRigidbody == humanoid.characterRigidbody) { - return true; - } - */ - return false; - } - - public override void OnTriggerExit(Collider collider) { - } - - public override void OnCollisionEnter(Collision collision) { - if (collision.rigidbody != null && collision.rigidbody.gameObject == handTarget.grabbedObject) - // Don't collide with the things you are holding - return; - - colliding = true; - - if (collision.contacts.Length > 0) - contactPoint = collision.contacts[0].point; - base.OnCollisionEnter(collision); - - // Forward the Collision Enter event to the object the hand is holding - // This is needed because the rigidbody of the grabbedobject has been disabled - // Without a rigidbody, the object will no longer receive collision events - if (handTarget.grabbedRigidbody) - handTarget.grabbedObject.SendMessage("OnCollisionEnter", collision, SendMessageOptions.DontRequireReceiver); - } - - public void OnCollisionStay(Collision collision) { - if (collision.rigidbody != null && collision.rigidbody.gameObject == handTarget.grabbedObject) - // Don't collide with the things you are holding - return; - - if (collision.rigidbody != null && handTarget.grabbedObject != null && collision.rigidbody.transform.IsChildOf(handTarget.grabbedObject.transform)) - // Don't collide with the things you are holding - return; - - colliding = true; - - if (collision.contacts.Length > 0) - contactPoint = collision.contacts[0].point; - } - - public override void OnCollisionExit(Collision collision) { - DebugLog("Collision Exit " + collision.gameObject); - - if (handRigidbody != null && !handRigidbody.useGravity) { - // The sweeptests fails quite often when holding nested rigidbodies - // But sweeptest are required to get stable collisions with the environment - RaycastHit hit; - if (!handRigidbody.SweepTest(handTarget.transform.position - handRigidbody.position, out hit)) { - handTarget.OnTouchEnd(handTarget.touchedObject); - hasCollided = false; - contactPoint = Vector3.zero; - handTarget.touchedObject = null; - } - } - - // Forward the Collision Exit event to the object the hand is holding - // This is needed because the rigidbody of the grabbedobject has been disabled - // Without a rigidbody, the object will no longer receive collision events - if (handTarget.grabbedRigidbody) - handTarget.grabbedObject.SendMessage("OnCollisionExit", collision, SendMessageOptions.DontRequireReceiver); - } - - #endregion - - public void DeterminePhysicsMode(float kinematicMass = 1) { - mode = DeterminePhysicsMode(handRigidbody, kinematicMass); - } - - public static PhysicsMode DeterminePhysicsMode(Rigidbody rigidbody, float kinematicMass = 1) { - if (rigidbody == null) - return PhysicsMode.Kinematic; - - PhysicsMode physicsMode; - if (rigidbody.useGravity) { - physicsMode = PhysicsMode.NonKinematic; - } - else { - float mass = CalculateTotalMass(rigidbody); - if (mass > kinematicMass) - physicsMode = PhysicsMode.NonKinematic; - else - physicsMode = PhysicsMode.HybridKinematic; - } - return physicsMode; - } - - public static float CalculateTotalMass(Rigidbody rigidbody) { - if (rigidbody == null) - return 0; - - float mass = rigidbody.gameObject.isStatic ? Mathf.Infinity : rigidbody.mass; - Joint[] joints = rigidbody.GetComponents(); - for (int i = 0; i < joints.Length; i++) { - // Seems to result in cycle in spine in some cases - //if (joints[i].connectedBody != null) - // mass += CalculateTotalMass(joints[i].connectedBody); - //else - // mass = Mathf.Infinity; - - // Disabled to support dummy joints to prevent distroying the rigidbodies - } - return mass; - } - - public Vector3 boneVelocity; - private Vector3 lastPosition = Vector3.zero; - private void CalculateVelocity() { - if (lastPosition != Vector3.zero) { - boneVelocity = (handTarget.hand.bone.transform.position - lastPosition) / Time.fixedDeltaTime; - } - lastPosition = handTarget.hand.bone.transform.position; - } - - public void ProcessFirstCollision(Rigidbody rigidbody, Collider otherCollider) { - -#if IMPULSE - CalculateCollisionImpuls(rigidbody, otherRigidbody, collisionPoint); -#endif - } - -#if IMPULSE - private static void CalculateCollisionImpuls(Rigidbody rigidbody, Rigidbody otherRigidbody, Vector3 collisionPoint) { - if (otherRigidbody != null) { - Vector3 myImpuls = (rigidbody.mass / 10) * rigidbody.velocity; - otherRigidbody.AddForceAtPosition(myImpuls, collisionPoint, ForceMode.Impulse); - } - } -#endif - - public static void SetNonKinematic(Rigidbody rigidbody, List colliders) { - if (rigidbody == null) - return; - - DebugLog("SetNonKinematic " + rigidbody.name); - - GameObject obj = rigidbody.gameObject; - if (obj.isStatic == false) { - rigidbody.isKinematic = false; - Target.UnsetColliderToTrigger(colliders); - } - } - - public static List SetKinematic(Rigidbody rigidbody) { - if (rigidbody == null) - return null; - - DebugLog("SetKinematic " + rigidbody.name + " " + rigidbody.isKinematic); - - GameObject obj = rigidbody.gameObject; - if (obj.isStatic == false) { - rigidbody.isKinematic = true; - return Target.SetColliderToTrigger(obj); - } - return null; - } - - public void SetNonKinematic() { - DebugLog("SetNonKinematic"); - - if (handRigidbody == null) - return; - - handRigidbody.isKinematic = false; - UnsetCollidersToTrigger(); - } - - public void SetKinematic() { - DebugLog("SetKinematic"); - - if (handRigidbody == null) { - handTarget.colliders = null; - return; - } - - handRigidbody.isKinematic = true; - SetCollidersToTrigger(); - } - - public void SetCollidersToTrigger() { - DebugLog("SetCollidersToTrigger"); - - List changedColliders = handTarget.colliders ?? new List(); - - Collider[] thisColliders = handRigidbody.GetComponentsInChildren(); - for (int j = 0; j < thisColliders.Length; j++) { - Rigidbody colliderRigidbody = thisColliders[j].attachedRigidbody; - if (colliderRigidbody == null || colliderRigidbody == handRigidbody) { - if (!thisColliders[j].isTrigger) { - thisColliders[j].isTrigger = true; - if (!changedColliders.Contains(thisColliders[j])) - changedColliders.Add(thisColliders[j]); - } - } - } - handTarget.colliders = changedColliders; - } - - public void UnsetCollidersToTrigger() { - DebugLog("UnsetCollidersToTrigger"); - - if (handTarget.colliders == null) - return; - - foreach (Collider c in handTarget.colliders) - c.isTrigger = false; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs.meta deleted file mode 100644 index 7d2d4e1..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HandPhysics.cs.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 1df3c9f0dd2fa4b4f9dd5e2123771df9 -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs b/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs deleted file mode 100644 index a99b380..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs +++ /dev/null @@ -1,430 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// - /// A Socket attached to a hand - /// - public class HandSocket : Socket { - - /// - /// The handTarget of the socket - /// - /// This is the HandTarget of the hand to which the socket is attached - public HandTarget handTarget; - - protected override void MoveHandleToSocket(Transform socketTransform, Handle handle) { - DebugLog("MoveHandleToHand"); - - Transform handleTransform = handle.GetComponent(); - Rigidbody handleRigidbody = handle.GetComponentInParent(); - if (handleRigidbody != null) - handleTransform = handleRigidbody.transform; - - handleTransform.rotation = handle.RotationTo(socketTransform.rotation) * handleTransform.rotation; - handleTransform.position += handle.TranslationTo(socketTransform.position); - } - - protected override void MoveSocketToHandle(Transform socketTransform, Handle handle) { - DebugLog("MoveHandToHandle"); - - if (handle.grabType == Handle.GrabType.RailGrab) { - - // Project Socket rotation on rail - - Vector3 handleYaxis = handle.transform.up; - Vector3 socketYaxis = handTarget.grabSocket.transform.up; - float angle = Vector3.Angle(handleYaxis, socketYaxis); - if (angle > 90) - socketYaxis = -handTarget.grabSocket.transform.up; - - Quaternion socketToHandleRotation = Quaternion.FromToRotation(socketYaxis, handleYaxis); - Quaternion targetRotation = socketToHandleRotation * handTarget.grabSocket.transform.rotation; - - //Debug.DrawRay(handle.transform.position, handle.transform.rotation * Vector3.up, Color.blue); - //Debug.DrawRay(handTarget.grabSocket.transform.position, handTarget.grabSocket.transform.rotation * Vector3.up, Color.green); - //Debug.DrawRay(handTarget.grabSocket.transform.position, targetRotation * Vector3.up); - //Debug.Break(); - - Quaternion socket2handRotation = Quaternion.Inverse(handTarget.grabSocket.transform.localRotation); - handTarget.hand.bone.transform.rotation = targetRotation * socket2handRotation; - - // Project Socket on Rail - - // Socket along rail - Vector3 localSocketPosition = handTarget.grabSocket.transform.position - handle.transform.position; - Vector3 targetPosition = Vector3.Project(localSocketPosition, handle.transform.up); - //Debug.DrawRay(handle.transform.position, handle.transform.up, Color.green); - //Debug.DrawRay(handle.transform.position, targetPosition, Color.magenta); - - // Socket within rail length - float maxDistance = handle.transform.lossyScale.y / 2; - float distance = Mathf.Clamp(targetPosition.magnitude, -maxDistance, maxDistance); - float scale = distance / targetPosition.magnitude; - targetPosition = Vector3.Scale(targetPosition, Vector3.one * scale); - //Debug.DrawRay(handle.transform.position, targetPosition, Color.cyan); - - targetPosition = handle.transform.position + targetPosition; - //Debug.DrawLine(handTarget.grabSocket.transform.position, targetPosition); - - Vector3 socket2HandPosition = handTarget.hand.bone.transform.position - handTarget.grabSocket.transform.position; - handTarget.hand.bone.transform.position = targetPosition + socket2HandPosition; - } - else { - Quaternion socket2handRotation = Quaternion.Inverse(handTarget.grabSocket.transform.localRotation); - handTarget.hand.bone.transform.rotation = handle.transform.rotation * socket2handRotation; - - Vector3 socket2HandPosition = handTarget.hand.bone.transform.position - handTarget.grabSocket.transform.position; - handTarget.hand.bone.transform.position = handle.transform.position + socket2HandPosition; - } - } - - protected override void MassRedistribution(Rigidbody socketRigidbody, Rigidbody objRigidbody) { - originalMass = socketRigidbody.mass; - socketRigidbody.mass = objRigidbody.mass; - } - - #region Attach - - public override bool Attach(Handle handle, bool rangeCheck = true) { - DebugLog("Attach " + handle); - - bool success = base.Attach(handle, rangeCheck); - if (!success) - return success; - - ControllerInput controllerInput = handTarget.humanoid.GetComponent(); - if (controllerInput != null) { - if (handTarget.isLeft) { - for (int i = 0; i < handle.controllerInputEvents.Length; i++) - CopyEventHandler(handle.controllerInputEvents[i], controllerInput.leftInputEvents[i]); - } - else { - for (int i = 0; i < handle.controllerInputEvents.Length; i++) - CopyEventHandler(handle.controllerInputEvents[i], controllerInput.rightInputEvents[i]); - } - } - - //MouseInput mouseInput = handTarget.humanoid.GetComponent(); - //if (mouseInput != null) { - // for (int i = 0; i < handle.mouseInputEvents.Length; i++) - // CopyEventHandler(handle.mouseInputEvents[i], mouseInput.mouseInputEvents[i]); - //} - - return success; - } - - private void CopyEventHandler(EventHandlers source, EventHandlers destination) { - if (source == null || source.events == null || - destination == null || destination.events == null) - return; - - for (int i = 0; i < source.events.Count; i++) { - if (source.events[i].eventType != EventHandler.Type.Never) - destination.events.Insert(i, source.events[i]); - } - } - - #region Rigidbody - - protected override bool AttachRigidbody(Rigidbody objRigidbody, Handle handle, bool rangeCheck = true) { - DebugLog("AttachRigidbody " + objRigidbody); - - if (handle.grabType == Handle.GrabType.RailGrab) { - Vector3 localSocketPosition = this.transform.position - handle.transform.position; - Vector3 localTargetPosition = Vector3.Project(localSocketPosition, handle.transform.up); - float grabDistance = localTargetPosition.magnitude; - if (rangeCheck && handle.range > 0 && grabDistance > handle.range) { - Debug.Log("Socket is outside range of handle"); - return false; - } - } - else { - float grabDistance = Vector3.Distance(this.transform.position, handle.transform.position); - if (rangeCheck && handle.range > 0 && grabDistance > handle.range) { - Debug.Log("Socket is outside range of handle"); - return false; - } - } - - Transform objTransform = objRigidbody.transform; - - Rigidbody thisRigidbody = this.GetComponentInParent(); - Joint joint = objRigidbody.GetComponent(); - // See if these joints are being destroyed - DestroyedJoints destroyedJoints = objRigidbody.GetComponent(); - - // Check if we are grabbing a hand - BasicHandPhysics handPhysics = objRigidbody.GetComponent(); - if (handPhysics != null) { // We are grabbing a hand - if (thisRigidbody == null) { - DebugLog("Cannot attach to hand because this handRigidbody is not present"); - return false; - } - AttachSocketParenting(objRigidbody, handle, thisRigidbody); - } - else - if (objRigidbody.isKinematic) { - if (thisRigidbody == null) - AttachSocketParenting(objRigidbody, handle, thisRigidbody); - else if (thisRigidbody == null) - AttachRigidbodyParenting(objRigidbody, handle); - else if (thisRigidbody.isKinematic) - AttachTransformParenting(objRigidbody.transform, handle); - else - AttachSocketParenting(objRigidbody, handle, thisRigidbody); - } - else if (thisRigidbody == null) { - AttachRigidbodyReverseJoint(objRigidbody, handle); - } - else if ( - (joint != null && destroyedJoints == null) || - objRigidbody.constraints != RigidbodyConstraints.None - ) { - - AttachRigidbodyJoint(objRigidbody, handle); - } - else { - AttachRigidbodyParenting(objRigidbody, handle); - } - - releasingTransform = null; - attachedTransform = objTransform; - handle.socket = this; - return true; - } - - protected override void AttachRigidbodyParenting(Rigidbody objRigidbody, Handle handle) { - DebugLog("AttachRigidbodyParenting"); - - if (objRigidbody.mass > HybridPhysics.kinematicMass) - MoveSocketToHandle(this.transform, handle); - else - MoveHandleToSocket(this.transform, objRigidbody, handle); - - attachedTransform = objRigidbody.transform; - - Rigidbody thisRigidbody = this.GetComponentInParent(); - if (thisRigidbody != null) - MassRedistribution(thisRigidbody, objRigidbody); - - RigidbodyDisabled.ParentRigidbody(this.transform, objRigidbody); - - HumanoidNetworking.DisableNetworkSync(attachedTransform.gameObject); - if (!handTarget.humanoid.isRemote) { - //Debug.Log("Take Ownership"); - HumanoidNetworking.TakeOwnership(attachedTransform.gameObject); - } - - attachedHandle = handle; - handle.socket = this; - } - - protected override void AttachRigidbodyJoint(Rigidbody objRigidbody, Handle handle) { - DebugLog("AttachRigidbodyJoint " + objRigidbody); - - //MassRedistribution(thisRididbody, objRigidbody); - - MoveHandleToSocket(this.transform, handle); - - ConfigurableJoint joint = handTarget.handRigidbody.gameObject.AddComponent(); - joint.xMotion = ConfigurableJointMotion.Locked; - joint.yMotion = ConfigurableJointMotion.Locked; - joint.zMotion = ConfigurableJointMotion.Locked; - - joint.angularXMotion = ConfigurableJointMotion.Locked; - joint.angularYMotion = ConfigurableJointMotion.Locked; - joint.angularZMotion = ConfigurableJointMotion.Locked; - - joint.projectionMode = JointProjectionMode.PositionAndRotation; - joint.projectionDistance = 0.01F; - joint.projectionAngle = 1; - - Collider c = objRigidbody.transform.GetComponentInChildren(); - joint.connectedBody = c.attachedRigidbody; - - attachedTransform = objRigidbody.transform; - attachedHandle = handle; - handle.socket = this; - } - - protected override void AttachSocketParenting(Rigidbody objRigidbody, Handle handle, Rigidbody socketRigidbody) { - DebugLog("AttachSocketParenting"); - - rigidbodyDisabled = RigidbodyDisabled.ParentRigidbody(objRigidbody, socketRigidbody); - handTarget.handRigidbody = null; - - MoveSocketToHandle(this.transform, handle); - - attachedTransform = objRigidbody.transform; - attachedHandle = handle; - handle.socket = this; - - HumanoidNetworking.DisableNetworkSync(attachedTransform.gameObject); - if (!handTarget.humanoid.isRemote) - HumanoidNetworking.TakeOwnership(attachedTransform.gameObject); - - attachMethod = AttachMethod.ReverseParenting; - } - - #endregion Rigidbody - - #region Static - - public override void AttachStaticJoint(Transform objTransform) { - DebugLog("AttachStaticJoint"); - - // Joint is no longer necessary, because the constraint makes sure the hand cannot move - // Constraints are more stable than fixed joints - // The constraint does not work, because it is relative to its parent. - // The socket may therefore not stay at the same world coodinate.... - // So we are back to using a joint again. - // In general this is true, but detached hands have not parent so we can use constraints - - FixedJoint joint = handTarget.handRigidbody.gameObject.AddComponent(); - - Collider c = objTransform.GetComponentInChildren(); - if (c == null) - c = objTransform.GetComponentInParent(); - joint.connectedBody = c.attachedRigidbody; - - //handTarget.handRigidbody.constraints = RigidbodyConstraints.FreezeAll; - handTarget.handRigidbody.isKinematic = false; - } - - #endregion - - #endregion - - #region Release - - public override void Release(bool releaseSticky = false) { - DebugLog("Release"); - - if (attachedHandle != null) { - if (attachedHandle.sticky && !releaseSticky) - return; - - ControllerInput globalInput = handTarget.humanoid.GetComponent(); - if (globalInput != null) { - - for (int i = 0; i < attachedHandle.controllerInputEvents.Length; i++) { - if (attachedHandle.controllerInputEvents[i].events == null || attachedHandle.controllerInputEvents[i].events.Count == 0) - continue; - - if (handTarget.isLeft) - globalInput.leftInputEvents[i].events.RemoveAll(x => x == attachedHandle.controllerInputEvents[i].events[0]); - else - globalInput.rightInputEvents[i].events.RemoveAll(x => x == attachedHandle.controllerInputEvents[i].events[0]); - } - } - - //MouseInput mouseInput = handTarget.humanoid.GetComponent(); - //if (mouseInput != null) { - // for (int i = 0; i < attachedHandle.mouseInputEvents.Length; i++) { - // if (attachedHandle.mouseInputEvents[i].events == null || attachedHandle.mouseInputEvents[i].events.Count == 0) - // continue; - - // mouseInput.mouseInputEvents[i].events.RemoveAll(x => x == attachedHandle.mouseInputEvents[i].events[0]); - // } - //} - } - - base.Release(); - } - - #region Rigidbody - - protected override void ReleaseRigidbodyJoint() { - DebugLog("Release from Joint"); - - Joint[] joints = handTarget.handRigidbody.GetComponents(); - foreach (Joint joint in joints) { -#if UNITY_EDITOR - if (!Application.isPlaying) - DestroyImmediate(joint, true); - else -#endif - Destroy(joint); - } - //MassRestoration(..., ...); - - // Trick: when released and immediately attached to anther socket (e.g. grabbing) - // the joints are not yet destroyed, because Destroy is executed with a delay. - // Adding the DestroyedJoints component indicates that the joints which may - // still be there are to be destroyed. - attachedTransform.gameObject.AddComponent(); - } - - protected override void ReleaseSocketParenting(Rigidbody objRigidbody, Transform socketTransform) { - DebugLog("ReleaseSocketParenting"); - - Rigidbody handRigidbody = RigidbodyDisabled.UnparentRigidbody(objRigidbody, socketTransform); - handTarget.handRigidbody = handRigidbody; - } - - #endregion - - #region Static - - protected override void ReleaseStaticObject() { - DebugLog("ReleaseStaticObject"); - - Rigidbody thisRigidbody = handTarget.handRigidbody; - RigidbodyDisabled thisDisabledRigidbody = this.GetComponent(); - - if (thisRigidbody != null) - ReleaseStaticJoint(); - else if (thisDisabledRigidbody != null) - ReleaseSocketParenting(attachedTransform); - else - ReleaseTransformParenting(); - } - - public override void ReleaseStaticJoint() { - DebugLog("ReleaseStaticJoint"); - - // Joint is no longer necessary, because the constraint makes sure the hand cannot move - // The constraint does not work, because it is relative to its parent. - // The socket may therefore not stay at the same world coodinate.... - // So we are back to using a joint again. - - Joint[] joints = handTarget.handRigidbody.GetComponents(); - foreach (Joint joint in joints) { -#if UNITY_EDITOR - DestroyImmediate(joint, true); -#else - Destroy(joint); -#endif - } - //handTarget.handRigidbody.constraints = RigidbodyConstraints.None; - } - - #endregion - - #endregion - - protected override void MassRestoration(Rigidbody socketRigidbody, Rigidbody objRigidbody) { - if (socketRigidbody != null) - socketRigidbody.mass = originalMass; - } - - //public override Vector3 worldPosition { - // get { - // Vector3 handPosition = handTarget.hand.target.transform.position; - // Vector3 hand2Socket = handTarget.grabSocket.transform.position - handTarget.hand.bone.transform.position; - // Vector3 socketPosition = handPosition + hand2Socket; - // return socketPosition; - // } - //} - - //public virtual Quaternion worldRotation { - // get { - // Quaternion handRotation = handTarget.hand.target.transform.rotation; - // Quaternion hand2Socket = Quaternion.Inverse(handTarget.hand.bone.targetRotation) * handTarget.grabSocket.transform.rotation; - // Quaternion socketRotation = handRotation * hand2Socket; - // return socketRotation; - // } - //} - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs.meta deleted file mode 100644 index edb934a..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HandSocket.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: b3e78e8bf12be454ea6aafb1fceb1b66 -timeCreated: 1551098901 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs b/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs deleted file mode 100644 index 1cf176d..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs +++ /dev/null @@ -1,82 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class HumanoidCollisionHandler : MonoBehaviour { - public HumanoidControl humanoid; - - public void OnCollisionEnter(Collision collision) { - OnTriggerStay(collision.collider); - } - - public void OnTriggerEnter(Collider otherCollider) { - OnTriggerStay(otherCollider); - } - - public void OnTriggerStay(Collider otherCollider) { - Rigidbody rigidbody = otherCollider.attachedRigidbody; - - // static colliders - if (rigidbody == null) - humanoid.triggerEntered = true; - - if (!otherCollider.isTrigger && !humanoid.IsMyRigidbody(rigidbody) - && (rigidbody == null || !rigidbody.transform.IsChildOf(humanoid.transform)) - ) { - Vector3 worldVelocity = humanoid.headTarget.neck.target.transform.TransformDirection(humanoid.velocity); - worldVelocity += humanoid.targetVelocity; - humanoid.hitNormal = DetermineHitNormal(worldVelocity); - humanoid.triggerEntered = true; - } - } - - public void OnTriggerExit() { - humanoid.triggerEntered = false; - } - - public void OnCollisionExit(Collision collision) { - humanoid.triggerEntered = false; - } - - private Vector3 DetermineHitNormal(Vector3 velocity) { - //Vector3 normalizedVelocity = new Vector3(velocity.x, 0, velocity.z).normalized; - Vector3 normalizedVelocity = velocity.normalized; - if (humanoid.hitNormal != Vector3.zero && Vector3.Angle(normalizedVelocity, humanoid.hitNormal) < 90) - normalizedVelocity = -humanoid.hitNormal; - - CapsuleCollider cc = humanoid.bodyCapsule; - Vector3 capsuleCenter = humanoid.hipsTarget.hips.bone.transform.position + cc.center; - Vector3 capsuleOffset = ((cc.height - cc.radius) / 2) * humanoid.up; - - Vector3 backSweep = normalizedVelocity * (cc.radius + 0.2F); - Vector3 top = capsuleCenter + capsuleOffset - backSweep; - Vector3 bottom = capsuleCenter - capsuleOffset - backSweep; - - Vector3 hitNormal; - if (CapsulecastAllNormal(top, bottom, cc.radius, normalizedVelocity, velocity.magnitude * Time.deltaTime + cc.radius + 0.3F, out hitNormal)) { - return hitNormal; - } - - if (Vector3.Angle(humanoid.hitNormal, normalizedVelocity) < 90) { - return -normalizedVelocity; - } - else { - return humanoid.hitNormal; - } - } - - private bool CapsulecastAllNormal(Vector3 top, Vector3 bottom, float radius, Vector3 direction, float maxDistance, out Vector3 hitNormal) { - RaycastHit[] hits = Physics.CapsuleCastAll(top, bottom, radius, direction, maxDistance, Physics.DefaultRaycastLayers, QueryTriggerInteraction.Ignore); - - hitNormal = Vector3.zero; - for (int i = 0; i < hits.Length; i++) { - if (!hits[i].collider.isTrigger && hits[i].point.sqrMagnitude > 0) { - hitNormal = hits[i].normal; - return true; - } - } - return false; - } - - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs.meta deleted file mode 100644 index d73fb2b..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/HumanoidCollisionHandler.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 74f8321f01c5a194187dcddb4426cd13 -timeCreated: 1488537708 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs b/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs deleted file mode 100644 index 11339ba..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs +++ /dev/null @@ -1,6 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - public class NoGrab : Handle { - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs.meta deleted file mode 100644 index 1a04131..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/NoGrab.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: c25cce6f8c5edf8498635fc0a8067972 -timeCreated: 1489218456 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs b/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs deleted file mode 100644 index ea0d94f..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs +++ /dev/null @@ -1,94 +0,0 @@ -using UnityEngine; - -namespace Passer { - - public class RigidbodyData { - public float mass = 1; - public float drag; - public float angularDrag = 0.05F; - public bool useGravity = true; - public bool isKinematic; - public RigidbodyInterpolation interpolation = RigidbodyInterpolation.None; - public CollisionDetectionMode collisionDetectionMode = CollisionDetectionMode.Discrete; - public RigidbodyConstraints constraints = RigidbodyConstraints.None; - public Transform parent; - - public RigidbodyData(Rigidbody rb) { - mass = rb.mass; - drag = rb.drag; - angularDrag = rb.angularDrag; - useGravity = rb.useGravity; - isKinematic = rb.isKinematic; - interpolation = rb.interpolation; - collisionDetectionMode = rb.collisionDetectionMode; - constraints = rb.constraints; - - parent = rb.transform.parent; - } - - public void CopyToRigidbody(Rigidbody rb) { - rb.mass = mass; - rb.drag = drag; - rb.angularDrag = angularDrag; - rb.useGravity = useGravity; - rb.isKinematic = isKinematic; - rb.interpolation = interpolation; - rb.collisionDetectionMode = collisionDetectionMode; - rb.constraints = constraints; - - rb.transform.parent = parent; - } - - public static RigidbodyData ParentRigidbody(Transform parentTransform, Rigidbody childRigidbody) { - RigidbodyData rigidbodyData = new RigidbodyData(childRigidbody); - - childRigidbody.transform.parent = parentTransform; - - if (Application.isPlaying) - Object.Destroy(childRigidbody); - else - Object.DestroyImmediate(childRigidbody, true); - - return rigidbodyData; - } - - public static RigidbodyData ParentRigidbody(Rigidbody parentRigidbody, Rigidbody childRigidbody) { - RigidbodyData rigidbodyData = new RigidbodyData(childRigidbody); - - childRigidbody.transform.parent = parentRigidbody.transform; - parentRigidbody.mass += childRigidbody.mass; - - if (Application.isPlaying) - Object.Destroy(childRigidbody); - else - Object.DestroyImmediate(childRigidbody, true); - - return rigidbodyData; - } - - public Rigidbody UnparentRigidbody(Transform parentTransform, Transform childRigidbodyTransform) { - Rigidbody childRigidbody = childRigidbodyTransform.GetComponent(); - if (!childRigidbodyTransform.gameObject.isStatic && childRigidbody == null) { - childRigidbody = childRigidbodyTransform.gameObject.AddComponent(); - CopyToRigidbody(childRigidbody); - } - childRigidbody.transform.parent = null; - - // To do: copy velocity of parent to child - return childRigidbody; - } - - public Rigidbody UnparentRigidbody(Rigidbody parentRigidbody, Transform childRigidbodyTransform) { - Rigidbody childRigidbody = childRigidbodyTransform.GetComponent(); - if (!childRigidbodyTransform.gameObject.isStatic && childRigidbody == null) { - childRigidbody = childRigidbodyTransform.gameObject.AddComponent(); - CopyToRigidbody(childRigidbody); - } - parentRigidbody.mass -= childRigidbody.mass; - - // To do: copy velocity of parent to child - return childRigidbody; - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs.meta b/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs.meta deleted file mode 100644 index e76ba0a..0000000 --- a/Runtime/HumanoidFree/Scripts/Physics/RigidbodyData.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: fa4a2a728c9f484498913c1781668065 -timeCreated: 1553075264 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose.meta b/Runtime/HumanoidFree/Scripts/Pose.meta deleted file mode 100644 index 9b1643e..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 923e9b21b6cc1fb4a89a686db41f64b6 -folderAsset: yes -timeCreated: 1515772112 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs b/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs deleted file mode 100644 index 39a7429..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class BlendshapePose { - - public SkinnedMeshRenderer renderer; - public int blendshapeId; - public float value; - - public virtual void ShowPose(HumanoidControl humanoid, float value) { - if (renderer == null || blendshapeId >= renderer.sharedMesh.blendShapeCount || this.value == 0) - return; - - renderer.SetBlendShapeWeight(blendshapeId, this.value * value * 100); - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs.meta deleted file mode 100644 index 6c94072..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/BlendshapePose.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 7f4cfb49a6174bb459a37054f4fd5dd1 -timeCreated: 1570631465 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs b/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs deleted file mode 100644 index 57cef19..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs +++ /dev/null @@ -1,323 +0,0 @@ -using Passer.Humanoid.Tracking; -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class BonePose { - - public BoneType boneType = BoneType.AllBones; - - public BoneReference boneRef = new BoneReference(); - public BoneReference referenceBoneRef = new BoneReference(); - - public bool setTranslation; - public bool setRotation; - public bool setScale; - - public Vector3 translation; - public Quaternion rotation; - public Vector3 scale; - - public void Reset(HumanoidControl humanoid) { - rotation = Quaternion.identity; - translation = Vector3.zero; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(boneRef.boneId); - targetedBone.target.transform.localRotation = rotation; - targetedBone.target.transform.localPosition = translation; - } - - public void ShowPose(HumanoidControl humanoid, float value) { - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(boneRef.boneId); - if (targetedBone == null || targetedBone.target.transform == null) - return; - - Vector3 referencePosition = Vector3.zero; - Quaternion referenceRotation = Quaternion.identity; - Vector3 referenceScale = Vector3.zero; - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(referenceBoneRef.boneId); - if (referenceBoneRef.boneId != Bone.None && referenceBone.target.transform != null) { - referencePosition = referenceBone.target.transform.position; - referenceRotation = referenceBone.bone.targetRotation; - referenceScale = referenceBone.target.transform.lossyScale; - } - else { - referencePosition = humanoid.transform.position; - referenceRotation = humanoid.transform.rotation; - referenceScale = humanoid.transform.lossyScale; - } - - if (setTranslation) - targetedBone.target.transform.position = targetedBone.TargetBasePosition() + Vector3.Lerp(Vector3.zero, referenceRotation * translation, value); - if (setRotation) - targetedBone.target.transform.rotation = Quaternion.Slerp(targetedBone.TargetBaseRotation(), referenceRotation * rotation, value); - if (setScale) - targetedBone.target.transform.localScale = Vector3.Scale(referenceScale, Vector3.Lerp(Vector3.one, referenceRotation * scale, value)); - } - - public void ShowPose(HumanoidControl humanoid, Side showSide, float value) { - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(showSide, boneRef.sideBoneId); - if (targetedBone == null || targetedBone.target.transform == null) - return; - - Vector3 referencePosition = Vector3.zero; - Quaternion referenceRotation = Quaternion.identity; - Vector3 referenceScale = Vector3.zero; - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(showSide, referenceBoneRef.sideBoneId); - - if (referenceBone != null && referenceBone.bone.transform != null) { - referencePosition = referenceBone.target.transform.position; - referenceRotation = referenceBone.target.transform.rotation; - referenceScale = referenceBone.target.transform.lossyScale; - } - else { - referencePosition = humanoid.transform.position; - referenceRotation = humanoid.transform.rotation; - referenceScale = humanoid.transform.lossyScale; - } - - if (boneRef.type == BoneType.SideBones && boneRef.side == Side.AnySide && showSide == Side.Right) { - // We need to convert the left-orientated anyside to a right side - // For this, we mirror the translation/rotation along the YZ-plane (not scale!) - if (setTranslation) { - Vector3 mirroredTranslation = new Vector3(-translation.x, translation.y, translation.z); - targetedBone.target.transform.position = targetedBone.TargetBasePosition() + Vector3.Lerp(Vector3.zero, referenceRotation * mirroredTranslation, value); - } - if (setRotation) { - Quaternion mirroredRotation = new Quaternion(rotation.x, -rotation.y, -rotation.z, rotation.w); - targetedBone.target.transform.rotation = Quaternion.Slerp(targetedBone.TargetBaseRotation(), referenceRotation * mirroredRotation, value); - } - if (setScale) - targetedBone.target.transform.localScale = Vector3.Scale(referenceScale, Vector3.Lerp(Vector3.one, referenceRotation * scale, value)); - } - else { - if (setTranslation) - targetedBone.target.transform.position = targetedBone.TargetBasePosition() + Vector3.Lerp(Vector3.zero, referenceRotation * translation, value); - if (setRotation) - targetedBone.target.transform.rotation = Quaternion.Slerp(targetedBone.TargetBaseRotation(), referenceRotation * rotation, value); - if (setScale) - targetedBone.target.transform.localScale = Vector3.Scale(referenceScale, Vector3.Lerp(Vector3.one, referenceRotation * scale, value)); - } - } - - public void ShowPoseAdditive(HumanoidControl humanoid, Side showSide, float value) { - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(showSide, boneRef.sideBoneId); - if (targetedBone == null || targetedBone.target.transform == null) - return; - - Vector3 referencePosition = Vector3.zero; - Quaternion referenceRotation = Quaternion.identity; - Vector3 referenceScale = Vector3.zero; - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(showSide, referenceBoneRef.sideBoneId); - - if (referenceBone != null && referenceBone.bone.transform != null) { - referencePosition = referenceBone.target.transform.position; - referenceRotation = referenceBone.target.transform.rotation; - referenceScale = referenceBone.target.transform.lossyScale; - } - else { - referencePosition = humanoid.transform.position; - referenceRotation = humanoid.transform.rotation; - referenceScale = humanoid.transform.lossyScale; - } - - if (boneRef.type == BoneType.SideBones && boneRef.side == Side.AnySide && showSide == Side.Right) { - // We need to convert the left-orientated anyside to a right side - // For this, we mirror the translation/rotation along the YZ-plane (not scale!) - if (setTranslation) { - Vector3 mirroredTranslation = new Vector3(-translation.x, translation.y, translation.z); - targetedBone.target.transform.position += Vector3.Lerp(Vector3.zero, referenceRotation * mirroredTranslation, value); - } - if (setRotation) { - Quaternion mirroredRotation = new Quaternion(rotation.x, -rotation.y, -rotation.z, rotation.w); - targetedBone.target.transform.rotation = Quaternion.Slerp(targetedBone.target.transform.rotation, referenceRotation * mirroredRotation, value); - } - if (setScale) - targetedBone.target.transform.localScale = Vector3.Scale(targetedBone.target.transform.localScale, Vector3.Lerp(Vector3.one, referenceRotation * scale, value)); - } - else { - if (setTranslation) - targetedBone.target.transform.position += Vector3.Lerp(Vector3.zero, referenceRotation * translation, value); - if (setRotation) - targetedBone.target.transform.rotation = Quaternion.Slerp(targetedBone.target.transform.rotation, referenceRotation * rotation, value); - if (setScale) - targetedBone.target.transform.localScale = Vector3.Scale(targetedBone.target.transform.localScale, Vector3.Lerp(Vector3.one, referenceRotation * scale, value)); - } - } - public void UpdateTranslation(HumanoidControl humanoid, Side side = Side.AnySide) { - if (side == Side.AnySide) { - if (boneRef.boneId < 0 || boneRef.boneId > Bone.Count || boneRef.boneId == Bone.None) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(boneRef.boneId); - if (targetedBone.target.transform == null) - return; - - setTranslation = true; - Vector3 targetBasePosition = targetedBone.TargetBasePosition(); - if (referenceBoneRef.boneId == Bone.None) { - translation = Quaternion.Inverse(humanoid.transform.rotation) * (targetedBone.target.transform.position - targetBasePosition); - return; - } - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(referenceBoneRef.boneId); - if (referenceBone.target.transform != null) - translation = Quaternion.Inverse(referenceBone.bone.targetRotation) * (targetedBone.target.transform.position - targetBasePosition); - else - translation = Quaternion.Inverse(humanoid.transform.rotation) * (targetedBone.target.transform.position - targetBasePosition); - - setTranslation = (translation.sqrMagnitude > 0.001F); - } - else { - if (boneRef.sideBoneId < 0 || boneRef.sideBoneId > SideBone.Count) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(side, boneRef.sideBoneId); - if (targetedBone.target.transform == null) - return; - - setTranslation = true; - Vector3 targetBasePosition = targetedBone.TargetBasePosition(); - if (referenceBoneRef.sideBoneId == SideBone.None) { - translation = Quaternion.Inverse(humanoid.transform.rotation) * (targetedBone.target.transform.position - targetBasePosition); - return; - } - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(side, referenceBoneRef.sideBoneId); - if (referenceBone.target.transform != null) - translation = Quaternion.Inverse(referenceBone.bone.targetRotation) * (targetedBone.target.transform.position - targetBasePosition); - else - translation = Quaternion.Inverse(humanoid.transform.rotation) * (targetedBone.target.transform.position - targetBasePosition); - - setTranslation = (translation.sqrMagnitude > 0.001F); - } - } - - public void UpdateRotation(HumanoidControl humanoid, Side side = Side.AnySide) { - if (side == Side.AnySide) { - if (boneRef.boneId < 0 || boneRef.boneId > Bone.Count || boneRef.boneId == Bone.None) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(boneRef.boneId); - if (targetedBone.target.transform == null) - return; - - setRotation = true; - if (referenceBoneRef.boneId == Bone.None) { - rotation = Quaternion.Inverse(humanoid.transform.rotation) * targetedBone.target.transform.rotation; - return; - } - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(referenceBoneRef.boneId); - if (referenceBone.target.transform == null) - rotation = Quaternion.Inverse(humanoid.transform.rotation) * targetedBone.target.transform.rotation; - else - rotation = Quaternion.Inverse(referenceBone.target.transform.rotation) * targetedBone.target.transform.rotation; - - } - else { - if (boneRef.sideBoneId < 0 || boneRef.sideBoneId > SideBone.Count) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(side, boneRef.sideBoneId); - if (targetedBone.target.transform == null) - return; - - setRotation = true; - if (referenceBoneRef.sideBoneId == SideBone.None) { - rotation = Quaternion.Inverse(humanoid.transform.rotation) * targetedBone.target.transform.rotation; - return; - } - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(side, referenceBoneRef.sideBoneId); - if (referenceBone.target.transform == null) - rotation = Quaternion.Inverse(humanoid.transform.rotation) * targetedBone.target.transform.rotation; - else { - rotation = Quaternion.Inverse(referenceBone.target.transform.rotation) * targetedBone.target.transform.rotation; - } - if (side == Side.Right) { - // Sidebones need to be stored like left bones - rotation = Quaternion.Inverse(rotation); - } - } - } - - public void SetReferenceRoot() { - //old_referenceBoneId = HumanBodyBones.LastBone; - referenceBoneRef.boneId = Humanoid.Tracking.Bone.None; - } - - public void SetReferenceLocal(HumanoidControl humanoid, Side side = Side.AnySide) { - if (side == Side.AnySide) { - if (boneRef.boneId < 0 || boneRef.boneId > Bone.Count) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(boneRef.boneId); - if (targetedBone.parent == null) - SetReferenceRoot(); - else { - referenceBoneRef.type = BoneType.AllBones; - referenceBoneRef.boneId = targetedBone.parent.boneId; - } - } - else { - if (boneRef.sideBoneId < 0 || boneRef.sideBoneId > SideBone.Count) - return; - - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(side, boneRef.sideBoneId); - if (targetedBone.parent == null) - SetReferenceRoot(); - else { - referenceBoneRef.type = BoneType.SideBones; - SideBone parentSideBoneId = BoneReference.HumanoidSideBone(targetedBone.parent.boneId); - referenceBoneRef.sideBoneId = parentSideBoneId; - } - } - } - - public void SetReference(Bone referenceBoneId) { - referenceBoneRef.boneId = referenceBoneId; - } - - public float GetScore(HumanoidControl humanoid, Side side) { - float score = 0; - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(side, boneRef.sideBoneId); - if (targetedBone == null) - return score; - - Vector3 referencePosition = Vector3.zero; - Quaternion referenceRotation = Quaternion.identity; - Vector3 referenceScale = Vector3.zero; - - HumanoidTarget.TargetedBone referenceBone = humanoid.GetBone(side, referenceBoneRef.sideBoneId); - if (referenceBone != null && referenceBone.bone.transform != null) { - referencePosition = referenceBone.target.transform.position; - referenceRotation = referenceBone.bone.targetRotation; - referenceScale = referenceBone.target.transform.lossyScale; - } - else { - referencePosition = humanoid.transform.position; - referenceRotation = humanoid.transform.rotation; - referenceScale = humanoid.transform.lossyScale; - } - - if (setRotation) { - Quaternion poseRotation = rotation; - if (boneRef.type == BoneType.SideBones && boneRef.side == Side.AnySide && side == Side.Right) { - // We need to convert the left-orientated anyside to a right side - // For this, we mirror the translation/rotation along the YZ-plane - poseRotation = new Quaternion(rotation.x, -rotation.y, -rotation.z, rotation.w); - } - - float angle = Quaternion.Angle(targetedBone.bone.targetRotation, referenceRotation * poseRotation); - score = Mathf.Clamp01((90 - angle) / 90); - score *= score; - } - return score; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs.meta deleted file mode 100644 index 9b7ebfc..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/BonePose.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 91f6c45d6bbc0dc4aa89c710f7a13033 -timeCreated: 1535609364 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs b/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs deleted file mode 100644 index 443d0f9..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - -/* - [System.Serializable] - public class HandPoseMixer : PoseMixer { - protected HandTarget handTarget; - - public HandPoseMixer(HandTarget handTarget) { - this.handTarget = handTarget; - } - - public override MixedPose Add() { - HandPose newHandPose = ScriptableObject.CreateInstance(); - newHandPose.Init(handTarget); - - MixedPose newMixedPose = new MixedPose() { - pose = newHandPose - }; - mixedPoses.Add(newMixedPose); - return newMixedPose; - } - - /// Return the best matching Pose for the current hand pose - public Pose DeterminePose(FingersTarget fingersTarget, bool isLeft) { - int bestHandPose = -1; - float bestHandPoseConfidence = 0; - int i = 0; - foreach (MixedPose mixedPose in mixedPoses) { - float confidence = mixedPose.pose.GetConfidence(); - if (confidence > bestHandPoseConfidence) { - bestHandPose = i; - bestHandPoseConfidence = confidence; - } - i++; - } - - if (bestHandPoseConfidence > 0.4F) { - return mixedPoses[bestHandPose].pose; - } - else { - return null; - } - } - } - - [System.Serializable] - [CreateAssetMenu(menuName = "Humanoid/HandPose", fileName = "HumanoidHandPose", order = 104)] - public class HandPose : Pose { - protected HandTarget handTarget; - - public float thumbCurl; - //protected float thumbSwing; - public float indexCurl; - public float middleCurl; - public float ringCurl; - public float littleCurl; - //bool withOrientation - //Quaternion orientation; - - public void Init(HandTarget handTarget) { - this.handTarget = handTarget; - } - - public override void UpdatePose(HumanoidControl humanoid) { - thumbCurl = handTarget.fingers.thumb.GetCurl(handTarget.isLeft); - indexCurl = handTarget.fingers.index.GetCurl(handTarget.isLeft); - middleCurl = handTarget.fingers.middle.GetCurl(handTarget.isLeft); - ringCurl = handTarget.fingers.ring.GetCurl(handTarget.isLeft); - littleCurl = handTarget.fingers.little.GetCurl(handTarget.isLeft); - } - - public override float GetConfidence() { - float thumbCurlScore = GetFingerScore(handTarget.fingers.thumb.GetCurl(handTarget.isLeft), thumbCurl); - float indexCurlScore = GetFingerScore(handTarget.fingers.index.GetCurl(handTarget.isLeft), indexCurl); - float middleCurlScore = GetFingerScore(handTarget.fingers.middle.GetCurl(handTarget.isLeft), middleCurl); - float ringCurlScore = GetFingerScore(handTarget.fingers.ring.GetCurl(handTarget.isLeft), ringCurl); - float littleCurlScore = GetFingerScore(handTarget.fingers.little.GetCurl(handTarget.isLeft), littleCurl); - - return 1 - (thumbCurlScore + indexCurlScore + middleCurlScore + ringCurlScore + littleCurlScore); - } - - private static float GetFingerScore(float curl, float targetCurl) { - float score = Mathf.Abs(curl - targetCurl); - score = score * score; - return score; - } - } -*/ -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs.meta deleted file mode 100644 index 79697d3..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPose.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 1000c174ffaab17478d28610b232cd18 -timeCreated: 1515772287 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs b/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs deleted file mode 100644 index 651a72d..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - - public class HandPoseHandler : MonoBehaviour { - - public void PoseHandler(int pose) { - Debug.Log("Handler: " + pose); - } - } -} diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs.meta deleted file mode 100644 index 2b8e0bb..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPoseHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9550a34814d39f647bd6719aa1f74bc2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs b/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs deleted file mode 100644 index 9a98c30..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs +++ /dev/null @@ -1 +0,0 @@ -// This file is intentionally empty \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs.meta deleted file mode 100644 index 6a1ed3a..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/HandPoses.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 72a8082aca3a2e844a89ca105389edcd -timeCreated: 1515772287 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/Pose.cs b/Runtime/HumanoidFree/Scripts/Pose/Pose.cs deleted file mode 100644 index d8d0d91..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/Pose.cs +++ /dev/null @@ -1,198 +0,0 @@ -using System.Collections.Generic; -using Passer; -using Passer.Humanoid.Tracking; -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - [CreateAssetMenu(menuName = "Humanoid/Pose", fileName = "HumanoidPose",order = 103)] - public class Pose : ScriptableObject { - - public virtual float GetConfidence() { - return 0; - } - - #region Bones - - /// - /// The bones affected by this pose - /// - public List bonePoses; - - public BonePose CheckBone(Bone boneId, bool useSideBones = false) { - BonePose bone; - if (useSideBones) { - SideBone sideBone = BoneReference.HumanoidSideBone(boneId); - bone = GetSideBone(sideBone); - } else - bone = GetBone(boneId); - if (bone == null) - bone = AddBone(boneId, useSideBones); - return bone; - } - - public BonePose GetBone(Bone boneId) { - if (bonePoses != null) - for (int i = 0; i < bonePoses.Count; i++) { - if (bonePoses[i].boneRef.boneId == boneId) - return bonePoses[i]; - } - - return null; - } - - public BonePose GetSideBone(SideBone sideBoneId) { - if (bonePoses != null) - for (int i = 0; i < bonePoses.Count; i++) { - if (bonePoses[i].boneRef.sideBoneId == sideBoneId) - return bonePoses[i]; - } - - return null; - } - - public BonePose AddBone(Bone _boneId, bool useSideBones = false) { - BonePose newBonePose = new BonePose(); - - SideBone sideBone = BoneReference.HumanoidSideBone(_boneId); - if (sideBone == SideBone.None) { - newBonePose.boneRef = new BoneReference() { - type = BoneType.AllBones, - boneId = _boneId - }; - } else { - newBonePose.boneRef = new BoneReference() { - type = BoneType.SideBones, - boneId = _boneId, - }; - newBonePose.boneRef.side = newBonePose.boneRef.isLeftSideBone ? Side.Left : Side.Right; - } - newBonePose.translation = Vector3.zero; - newBonePose.rotation = Quaternion.identity; - bonePoses.Add(newBonePose); - - return newBonePose; - } - - #endregion - - #region Blendshapes - - /// - /// The blendshapes affected by this pose - /// - public List blendshapePoses; - - public BlendshapePose CheckBlendshape(SkinnedMeshRenderer renderer, int blendshapeId) { - BlendshapePose blendshape = GetBlendshape(renderer, blendshapeId); - if (blendshape == null) - blendshape = AddBlendshape(renderer, blendshapeId); - return blendshape; - } - - public BlendshapePose GetBlendshape(SkinnedMeshRenderer renderer, int blendshapeId) { - if (blendshapePoses != null) { - for (int i = 0; i < blendshapePoses.Count; i++) { - if (blendshapePoses[i].renderer == renderer && - blendshapePoses[i].blendshapeId == blendshapeId) - return blendshapePoses[i]; - } - } - return null; - } - - public BlendshapePose AddBlendshape(SkinnedMeshRenderer _renderer, int _blendshapeId) { - BlendshapePose blendshapePose = new BlendshapePose() { - renderer = _renderer, - blendshapeId = _blendshapeId - }; - blendshapePoses.Add(blendshapePose); - return blendshapePose; - } - - #endregion - - public void Cleanup() { - if (bonePoses != null) - bonePoses.RemoveAll(bonePose => bonePose == null || (!bonePose.setTranslation && !bonePose.setRotation && !bonePose.setScale)); - if (blendshapePoses != null) - blendshapePoses.RemoveAll(blendshapePose => blendshapePose == null || blendshapePose.value == 0); - } - - /// Update the pose with the current bone positions - public virtual void UpdatePose(HumanoidControl humanoid) { - UpdatePose(humanoid, Bone.Hips); - UpdatePose(humanoid, Bone.Head); - UpdatePose(humanoid, Bone.LeftHand); - UpdatePose(humanoid, Bone.RightHand); - UpdatePose(humanoid, Bone.LeftFoot); - UpdatePose(humanoid, Bone.RightFoot); - Cleanup(); - } - private void UpdatePose(HumanoidControl humanoid, Bone boneId) { - BonePose poseTargetBone = CheckBone(boneId); - poseTargetBone.UpdateTranslation(humanoid); - poseTargetBone.UpdateRotation(humanoid); - } - - public void Show(HumanoidControl humanoid, float value = 1) { - ShowBlendshapes(humanoid, value); - ShowBones(humanoid, value); - } - public void Show(HumanoidControl humanoid, Side showSide, float value = 1) { - ShowBlendshapes(humanoid, value); - ShowBones(humanoid, showSide, value); - } - public void ShowAdditive(HumanoidControl humanoid, Side showSide, float value = 1) { - //ShowBlendshapesAdditive(humanoid, value); - ShowBonesAdditive(humanoid, showSide, value); - } - - public void ShowBones(HumanoidControl humanoid, float value) { - if (bonePoses == null) - return; - foreach (BonePose bonePose in bonePoses) - bonePose.ShowPose(humanoid, value); - } - - public void ShowBones(HumanoidControl humanoid, Side showSide, float value) { - if (bonePoses == null) - return; - foreach (BonePose bonePose in bonePoses) - bonePose.ShowPose(humanoid, showSide, value); - } - - public void ShowBonesAdditive(HumanoidControl humanoid, Side showSide, float value) { - if (bonePoses == null) - return; - foreach (BonePose bonePose in bonePoses) - bonePose.ShowPoseAdditive(humanoid, showSide, value); - } - - public void ShowBlendshapes(HumanoidControl humanoid, float value) { - if (blendshapePoses == null) - return; - foreach (BlendshapePose blendshapePose in blendshapePoses) - blendshapePose.ShowPose(humanoid, value); - } - - public float GetScore(HumanoidControl humanoid, Side side) { - if (bonePoses == null) - return 0; - - float score = 0; - float n = 0; - foreach (BonePose bonePose in bonePoses) { - score += bonePose.GetScore(humanoid, side); - n++; - } - if (n == 0) - return 0; - else - return score / n; - } - } - - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Pose/Pose.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/Pose.cs.meta deleted file mode 100644 index 7cd1837..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/Pose.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 176353f8dc15fbd41aec3c678c7246e4 -timeCreated: 1515772119 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs b/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs deleted file mode 100644 index 4d1a6a1..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs +++ /dev/null @@ -1,207 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer.Humanoid { - - [System.Serializable] - public class PoseMixer { - public List mixedPoses = new List(); - [System.NonSerialized] - public int currentPoseIx; - [System.NonSerialized] - public int detectedPoseIx; - public enum PoseMode { - Set, - Detect - } - public PoseMode poseMode; - [System.NonSerialized] - public Pose detectedPose; - - // New version without currentPose - public void SetPoseValue(int newCurrentPoseIx, float value = 1) { - MixedPose currentPose = mixedPoses[newCurrentPoseIx]; - if (currentPoseIx != newCurrentPoseIx && currentPose != null && !currentPose.additive) { - currentPoseIx = newCurrentPoseIx; - - for (int i = 0; i < mixedPoses.Count; i++) { - MixedPose mixedPose = mixedPoses[i]; - if (mixedPose.value > 0 && i != currentPoseIx) - mixedPose.previousValue = mixedPose.value; - else - mixedPose.previousValue = 0; - } - } - - if (currentPose != null) { - currentPose.value = value; - - if (!currentPose.additive) { - float invValue = 1 - value; - for (int j = 0; j < mixedPoses.Count; j++) { - MixedPose mixedPose = mixedPoses[j]; - if (mixedPose.previousValue != 0) - mixedPose.value = invValue * mixedPose.previousValue; - } - //foreach (MixedPose mixedPose in mixedPoses) { - // if (mixedPose.previousValue != 0) - // mixedPose.value = invValue * mixedPose.previousValue; - //} - } - } - - } - - public void SetPoseValue(Pose newCurrentPose, float value = 1) { - if (newCurrentPose == null) - return; - - int poseIx = GetPoseIx(newCurrentPose); - if (value == 0 && poseIx == currentPoseIx) { - Remove(newCurrentPose); - return; - } - SetPoseValue(poseIx, value); - } - - public virtual MixedPose Add() { - MixedPose newMixedPose = new MixedPose() { - pose = ScriptableObject.CreateInstance() - }; - mixedPoses.Add(newMixedPose); - return newMixedPose; - } - - public MixedPose Add(Pose _pose) { - MixedPose foundMixedPose = mixedPoses.Find(mixedPose => mixedPose.pose == _pose); - if (foundMixedPose != null) - return foundMixedPose; - MixedPose newMixedPose = new MixedPose() { - pose = _pose - }; - mixedPoses.Add(newMixedPose); - return newMixedPose; - } - public void Remove(Pose _pose) { - mixedPoses.RemoveAll(mixedPose => mixedPose.pose == _pose); - } - - public int GetPoseIx(Pose _pose) { - int ix = mixedPoses.FindIndex(mixedPose => mixedPose.pose == _pose); - if (ix != -1) - return ix; - MixedPose newMixedPose = new MixedPose() { - pose = _pose - }; - mixedPoses.Add(newMixedPose); - // position is last position; - return mixedPoses.Count - 1; - } - public MixedPose GetEditedPose() { - foreach (MixedPose mixedPose in mixedPoses) { - if (mixedPose.pose != null && mixedPose.isEdited) - return mixedPose; - } - return null; - } - - public void ShowPose(HumanoidControl humanoid) { - foreach (MixedPose mixedPose in mixedPoses) { - if (mixedPose != null && mixedPose.pose != null) - mixedPose.pose.Show(humanoid, mixedPose.value); - } - } - public void ShowPose(HumanoidControl humanoid, Side showSide) { - detectedPoseIx = -1; - float bestScore = -1; - - if (poseMode == PoseMode.Set) - ResetAffectedBones(humanoid, showSide); - int i = 0; - foreach (MixedPose mixedPose in mixedPoses) { - if (poseMode == PoseMode.Set && mixedPose != null && mixedPose.pose != null) { - mixedPose.pose.ShowAdditive(humanoid, showSide, mixedPose.value); - } - mixedPose.UpdateScore(humanoid, showSide); - if (mixedPose.score > bestScore) { - detectedPoseIx = i; - bestScore = mixedPose.score; - detectedPose = mixedPose.pose; - } - i++; - } - } - - public void ResetAffectedBones(HumanoidControl humanoid, Side showSide) { - foreach (MixedPose mixedPose in mixedPoses) { - if (mixedPose != null && mixedPose.pose != null && mixedPose.pose.bonePoses != null) { - - foreach (BonePose bonePose in mixedPose.pose.bonePoses) { - HumanoidTarget.TargetedBone targetedBone = humanoid.GetBone(showSide, bonePose.boneRef.sideBoneId); - if (targetedBone == null || targetedBone.target.transform == null) - continue; - - if (bonePose.setTranslation) - targetedBone.target.transform.position = targetedBone.TargetBasePosition(); - if (bonePose.setRotation) - targetedBone.target.transform.rotation = targetedBone.TargetBaseRotation(); - if (bonePose.setRotation) - targetedBone.target.transform.localScale = Vector3.one; - } - - } - } - } - - public void Cleanup() { - mixedPoses.RemoveAll(mixedPose => mixedPose.pose == null); - } - - public string[] GetPoseNames() { - string[] poseNames = new string[mixedPoses.Count];//.Length]; - for (int i = 0; i < poseNames.Length; i++) { - if (mixedPoses[i].pose == null) - poseNames[i] = ""; - else - poseNames[i] = mixedPoses[i].pose.name; - } - return poseNames; - } - } - - [System.Serializable] - public class MixedPose { - /// - /// The pose itself - /// - public Pose pose; - /// - /// The current value of the pose - /// - public float value; - /// - /// This is an additive pose - /// - public bool additive; - /// - /// The value of the pose when it became the previous pose - /// - [System.NonSerialized] - public float previousValue; - /// - /// Pose is in editing mode - /// - public bool isEdited; - /// Score indicating how much the current pose matched this pose - [System.NonSerialized] - public float score; - - public void UpdateScore(HumanoidControl humanoid, Side side) { - if (pose == null) - return; - - score = pose.GetScore(humanoid, side); - } - } -} - diff --git a/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs.meta b/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs.meta deleted file mode 100644 index 3c80872..0000000 --- a/Runtime/HumanoidFree/Scripts/Pose/PoseMixer.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: eb03bf4e121b69940a3f17aa0c029ed4 -timeCreated: 1534835017 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources.meta b/Runtime/HumanoidFree/Scripts/Resources.meta deleted file mode 100644 index 711aa27..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources.meta +++ /dev/null @@ -1,5 +0,0 @@ -fileFormatVersion: 2 -guid: c4d4ec919ca84e84b9506a0330938723 -folderAsset: yes -DefaultImporter: - userData: diff --git a/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab b/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab deleted file mode 100644 index 9e988b6..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab +++ /dev/null @@ -1,2767 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1013922709025916 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4020857003718316} - m_Layer: 0 - m_Name: RightForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4020857003718316 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1013922709025916} - m_LocalRotation: {x: -2.3283062e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.25876004, y: -5.813945e-12, z: 4.4668338e-10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4388123769618922} - m_Father: {fileID: 4539672956612472} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1015272508457484 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4602458008216608} - m_Layer: 0 - m_Name: RightHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4602458008216608 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1015272508457484} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329407, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4238523835879206} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1017111697310652 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4594412105052764} - m_Layer: 0 - m_Name: LeftLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4594412105052764 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1017111697310652} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.012004041, y: -0.45650727, z: -0.015162091} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4614227722333004} - m_Father: {fileID: 4853197623524236} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1021161642985360 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4558240690773950} - m_Layer: 0 - m_Name: LeftShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4558240690773950 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1021161642985360} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.04904938, y: 0.0406308, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4945798737231434} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1033916591818018 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4897756725022398} - m_Layer: 0 - m_Name: RightToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4897756725022398 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1033916591818018} - m_LocalRotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - m_LocalPosition: {x: 0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4420243079123968} - m_Father: {fileID: 4845693691525688} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1060478984554138 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4677958979611272} - m_Layer: 0 - m_Name: LeftHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4677958979611272 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1060478984554138} - m_LocalRotation: {x: 4.6251358e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02503746, y: -0.002580261, z: -0.00006344959} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4317310911040790} - m_Father: {fileID: 4618234235717974} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1068892541665356 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4185642012009948} - m_Layer: 0 - m_Name: Spine1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4185642012009948 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1068892541665356} - m_LocalRotation: {x: -4.656613e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -1.9845957e-15, y: 0.11258178, z: -3.9639472e-11} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4321058117585574} - m_Father: {fileID: 4703656715930640} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098145141473308 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4853197623524236} - m_Layer: 0 - m_Name: LeftUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4853197623524236 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098145141473308} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4594412105052764} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098284834131522 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4527379878525070} - m_Layer: 0 - m_Name: LeftHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4527379878525070 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098284834131522} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.07022827, y: -0.0011416626, z: 0.004263849} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4141782078933880} - m_Father: {fileID: 4034292906043112} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1098523101444156 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4864647067298810} - m_Layer: 0 - m_Name: RightHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4864647067298810 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1098523101444156} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.027794037, y: -0.0017300415, z: -0.000012518613} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4405910821065408} - m_Father: {fileID: 4755313617476360} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1110025933181608 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4247556009045498} - m_Layer: 0 - m_Name: Spine3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4247556009045498 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1110025933181608} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.52742e-16, y: 0.117230676, z: 0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4558240690773950} - - {fileID: 4143409446020670} - - {fileID: 4981416426651850} - m_Father: {fileID: 4321058117585574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1110373897718044 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4608424988925430} - m_Layer: 0 - m_Name: RightHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4608424988925430 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1110373897718044} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04375305, y: 0.006900177, z: 0.026853401} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4198118768489570} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1115736632720636 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4885334286591018} - m_Layer: 0 - m_Name: LeftHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4885334286591018 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115736632720636} - m_LocalRotation: {x: 1.7373489e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.0334935, y: -0.0025872802, z: 0.00014287948} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4468941225946244} - m_Father: {fileID: 4141782078933880} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1116129957090148 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4238523835879206} - m_Layer: 0 - m_Name: RightHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4238523835879206 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1116129957090148} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.0222126, y: -0.0022802735, z: 0.00006594256} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4602458008216608} - m_Father: {fileID: 4970408688845060} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1126967404723980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4539672956612472} - m_Layer: 0 - m_Name: RightUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4539672956612472 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1126967404723980} - m_LocalRotation: {x: 2.3283064e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.1564886, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4020857003718316} - m_Father: {fileID: 4981416426651850} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1140778296366970 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4500357875551362} - m_Layer: 0 - m_Name: RightHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4500357875551362 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1140778296366970} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.056183014, y: -0.00035995478, z: -0.014798106} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4049969287411434} - m_Father: {fileID: 4229670953639224} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1157445315310822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4034292906043112} - m_Layer: 0 - m_Name: LeftHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4034292906043112 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1157445315310822} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.045923002, y: 0.0070205685, z: 0.010279348} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4527379878525070} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1165229942477720 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4520241488013312} - m_Layer: 0 - m_Name: RightHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4520241488013312 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1165229942477720} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.03472366, y: 0.000028686509, z: -0.00020205184} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4556940821754954} - m_Father: {fileID: 4111323599385598} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1175738748580054 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4151093633662824} - m_Layer: 0 - m_Name: LeftHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4151093633662824 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1175738748580054} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029779052, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4801437705384802} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1184008569229792 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4981416426651850} - m_Layer: 0 - m_Name: RightShoulder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4981416426651850 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1184008569229792} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.049049404, y: 0.04062805, z: -0.012485102} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4539672956612472} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1200376388689808 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4801437705384802} - m_Layer: 0 - m_Name: LeftHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4801437705384802 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1200376388689808} - m_LocalRotation: {x: 9.382326e-10, y: -7.190296e-18, z: 0.00000004003126, w: 1} - m_LocalPosition: {x: -0.029778114, y: 0.000015687518, z: 0.00024009302} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4151093633662824} - m_Father: {fileID: 4044276183876396} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1227526719274706 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4936289302321692} - m_Layer: 0 - m_Name: LeftHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4936289302321692 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1227526719274706} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.04567215, y: 0.007352142, z: -0.0017597537} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4208306150548480} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1235055050112846 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4647155121876880} - m_Layer: 0 - m_Name: RightHandMiddle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4647155121876880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1235055050112846} - m_LocalRotation: {x: 2.571394e-39, y: -2.1196503e-24, z: -0.0000000889553, w: 1} - m_LocalPosition: {x: 0.033493422, y: -0.0025901617, z: 0.000085894324} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4649621898448202} - m_Father: {fileID: 4182831468102996} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1237657638124524 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4826023243270814} - m_Layer: 0 - m_Name: RightHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4826023243270814 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1237657638124524} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.033787, y: 0.0025801086, z: 0.042356003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4111323599385598} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1237953593474150 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4141782078933880} - m_Layer: 0 - m_Name: LeftHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4141782078933880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1237953593474150} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.053481977, y: -0.003643341, z: -0.00015678957} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4885334286591018} - m_Father: {fileID: 4527379878525070} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1258497856504126 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4139726322110278} - - component: {fileID: 33910490985778178} - - component: {fileID: 23863490358980508} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4139726322110278 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4746777317671054} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &33910490985778178 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_Mesh: {fileID: 4300000, guid: fcf9a9e3fb67cb64887a4d17ddc7c85c, type: 3} ---- !u!23 &23863490358980508 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1258497856504126} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 15932f28e65def049945387d8ce8f70c, 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: 0 - 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 ---- !u!1 &1282323654634568 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4031332134401838} - m_Layer: 0 - m_Name: LeftHandLittle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4031332134401838 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282323654634568} - m_LocalRotation: {x: -9.123824e-10, y: 4.8709725e-17, z: 0.000000053387403, w: 1} - m_LocalPosition: {x: -0.022208022, y: -0.00232193, z: 0.000012555385} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4871368328097880} - m_Father: {fileID: 4496119973859378} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1282551738059702 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4657458840255468} - m_Layer: 0 - m_Name: RightHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4657458840255468 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282551738059702} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.062955014, y: -0.00029998776, z: -0.0065212003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4284520946962660} - m_Father: {fileID: 4940625000453716} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1288469714210180 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4143409446020670} - m_Layer: 0 - m_Name: Neck - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4143409446020670 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1288469714210180} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.1879386e-16, y: 0.120701596, z: -0.012485121} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4643022250758746} - m_Father: {fileID: 4247556009045498} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1296454132969236 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4618234235717974} - m_Layer: 0 - m_Name: LeftHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4618234235717974 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1296454132969236} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.03232788, y: -0.0023251341, z: 0.000018807203} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4677958979611272} - m_Father: {fileID: 4880954805439224} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1301950514373280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4996372359689838} - m_Layer: 0 - m_Name: RightHandThumb4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4996372359689838 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1301950514373280} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.029778594, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4556940821754954} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1323181385765068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4653958478622642} - m_Layer: 0 - m_Name: RightHandMiddle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4653958478622642 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1323181385765068} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04592308, y: 0.0070201107, z: 0.010279321} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4836652144944730} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340156926473822 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4416949517587016} - m_Layer: 0 - m_Name: LeftHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4416949517587016 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340156926473822} - m_LocalRotation: {x: -6.938894e-18, y: 6.203854e-25, z: -0.000000048550163, w: 1} - m_LocalPosition: {x: -0.024411585, y: -0.00263807, z: 0.00006414011} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4279258841442284} - m_Father: {fileID: 4933210508217398} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340216024363490 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4369941294081632} - m_Layer: 0 - m_Name: LeftHandIndex - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4369941294081632 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340216024363490} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.043752592, y: 0.0068923947, z: 0.026853435} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4541786926279050} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1340863644878772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4198118768489570} - m_Layer: 0 - m_Name: RightHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4198118768489570 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1340863644878772} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.070869066, y: -0.0012400817, z: 0.013564706} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4755313617476360} - m_Father: {fileID: 4608424988925430} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1346911220311386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4317310911040790} - m_Layer: 0 - m_Name: LeftHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4317310911040790 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1346911220311386} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025170134, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4677958979611272} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1351568090274164 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4405910821065408} - m_Layer: 0 - m_Name: RightHandIndex4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4405910821065408 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1351568090274164} - m_LocalRotation: {x: 0.0000000011378876, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.024410933, y: -0.002639923, z: -0.0001821129} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4744505505259998} - m_Father: {fileID: 4864647067298810} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1354593843412354 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4429971395333998} - m_Layer: 0 - m_Name: LeftHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4429971395333998 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1354593843412354} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: 8.881784e-16, w: 1} - m_LocalPosition: {x: -0.049987946, y: 0.00012684021, z: -0.00012565777} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4044276183876396} - m_Father: {fileID: 4353235304731280} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1356961387841328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4744505505259998} - m_Layer: 0 - m_Name: RightHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4744505505259998 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1356961387841328} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553984, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4405910821065408} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1362156033337370 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4933210508217398} - m_Layer: 0 - m_Name: LeftHandIndex3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4933210508217398 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1362156033337370} - m_LocalRotation: {x: -1.517253e-39, y: 1.8611566e-24, z: 0.000000097100354, w: 1} - m_LocalPosition: {x: -0.0277937, y: -0.0017312705, z: 0.000109813955} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4416949517587016} - m_Father: {fileID: 4051421714285294} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1366343764086228 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4321058117585574} - m_Layer: 0 - m_Name: Spine2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4321058117585574 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1366343764086228} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.0527506e-16, y: 0.120330654, z: -1.9229062e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4247556009045498} - m_Father: {fileID: 4185642012009948} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1372313101893982 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4845693691525688} - m_Layer: 0 - m_Name: RightFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4845693691525688 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1372313101893982} - m_LocalRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - m_LocalPosition: {x: -0.0044376277, y: -0.46711615, z: -0.0025090335} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4897756725022398} - m_Father: {fileID: 4284033142102930} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1379923748956450 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4468941225946244} - m_Layer: 0 - m_Name: LeftHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4468941225946244 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379923748956450} - m_LocalRotation: {x: 1.1672813e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.026661986, y: -0.0027456665, z: 0.0000018486779} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4457508282459534} - m_Father: {fileID: 4885334286591018} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1404256305067948 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4940625000453716} - m_Layer: 0 - m_Name: RightHandRing - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4940625000453716 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1404256305067948} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.045672074, y: 0.0073501584, z: -0.0017598001} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4657458840255468} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1414372552533312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4293642491721424} - m_Layer: 0 - m_Name: LeftHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4293642491721424 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1414372552533312} - m_LocalRotation: {x: 9.849145e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.03736122, y: -0.002046814, z: 0.00010685041} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4496119973859378} - m_Father: {fileID: 4141517989867146} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1420245713514594 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4284520946962660} - m_Layer: 0 - m_Name: RightHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4284520946962660 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1420245713514594} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.046512604, y: -0.0043777465, z: 0.00012611701} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4190442107530260} - m_Father: {fileID: 4657458840255468} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1446520034660392 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4460837836933230} - m_Layer: 0 - m_Name: RightHandRing4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4460837836933230 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446520034660392} - m_LocalRotation: {x: 3.7002212e-10, y: 1.7525295e-17, z: -0.000000047362832, w: 1} - m_LocalPosition: {x: 0.0249897, y: -0.002992096, z: -0.00024336025} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4470399520913036} - m_Father: {fileID: 4190442107530260} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1468121793114350 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4044276183876396} - m_Layer: 0 - m_Name: LeftHandThumb3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4044276183876396 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1468121793114350} - m_LocalRotation: {x: -6.938894e-18, y: -4.135903e-25, z: -0.000000040031257, w: 1} - m_LocalPosition: {x: -0.034724806, y: -0.00007960955, z: 0.00010122135} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4801437705384802} - m_Father: {fileID: 4429971395333998} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1506927701114692 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4182831468102996} - m_Layer: 0 - m_Name: RightHandMiddle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4182831468102996 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1506927701114692} - m_LocalRotation: {x: 2.7723215e-10, y: -1.9675563e-17, z: 0.00000007097143, w: 1} - m_LocalPosition: {x: 0.053482816, y: -0.003639984, z: -0.00013987467} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4647155121876880} - m_Father: {fileID: 4836652144944730} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1512494148778312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4970408688845060} - m_Layer: 0 - m_Name: RightHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4970408688845060 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1512494148778312} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.023571929, y: -0.0017774963, z: 0.00009028032} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4238523835879206} - m_Father: {fileID: 4049969287411434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1536452568738772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4284033142102930} - m_Layer: 0 - m_Name: RightLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4284033142102930 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536452568738772} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.012004041, y: -0.45650727, z: -0.015162091} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4845693691525688} - m_Father: {fileID: 4285708893687638} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1538613054430410 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4111323599385598} - m_Layer: 0 - m_Name: RightHandThumb2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4111323599385598 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1538613054430410} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.049988404, y: -0.000057678237, z: -0.00022398635} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4520241488013312} - m_Father: {fileID: 4826023243270814} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1574763856061922 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4353235304731280} - m_Layer: 0 - m_Name: LeftHandThumb1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4353235304731280 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1574763856061922} - m_LocalRotation: {x: -6.938894e-18, y: -2.2959e-41, z: 0.00000002384746, w: 1} - m_LocalPosition: {x: -0.033786695, y: 0.002574768, z: 0.04235597} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4429971395333998} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1601672230453298 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4285708893687638} - m_Layer: 0 - m_Name: RightUpLeg - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4285708893687638 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1601672230453298} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.1055315, y: -0.0880629, z: -0.0085835215} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4284033142102930} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1611260466696856 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4703656715930640} - m_Layer: 0 - m_Name: Spine - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4703656715930640 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1611260466696856} - m_LocalRotation: {x: 4.6566195e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 1.7684579e-15, y: 0.096092984, z: 0.0000000023841857} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4185642012009948} - m_Father: {fileID: 4181504975483354} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1623765817312144 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4705635283009600} - m_Layer: 0 - m_Name: Head_End_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4705635283009600 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1623765817312144} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.16325943, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4859466552975116} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1637669774204796 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4643022250758746} - m_Layer: 0 - m_Name: Head - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4643022250758746 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1637669774204796} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.1183214e-16, y: 0.100040585, z: -2.3736567e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4859466552975116} - m_Father: {fileID: 4143409446020670} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1655126710600840 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4983645719502506} - m_Layer: 0 - m_Name: LeftToeBase - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4983645719502506 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1655126710600840} - m_LocalRotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - m_LocalPosition: {x: -0.00000008547017, y: -0.08017616, z: 0.121593356} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4234289099827942} - m_Father: {fileID: 4614227722333004} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1666304877136126 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4871368328097880} - m_Layer: 0 - m_Name: LeftHandLittle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4871368328097880 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1666304877136126} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.022329101, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4031332134401838} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1679796588345304 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4836652144944730} - m_Layer: 0 - m_Name: RightHandMiddle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4836652144944730 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1679796588345304} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.070227966, y: -0.0011398315, z: 0.004263851} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4182831468102996} - m_Father: {fileID: 4653958478622642} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1687898318833826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4746777317671054} - - component: {fileID: 95905176592788846} - m_Layer: 0 - m_Name: HumanoidTargetsRig - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4746777317671054 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1687898318833826} - m_LocalRotation: {x: 0.000000081460335, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4139726322110278} - - {fileID: 4181504975483354} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!95 &95905176592788846 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1687898318833826} - m_Enabled: 1 - m_Avatar: {fileID: 9000000, guid: 0ef46fdec482c674c8bd176e0b18d448, type: 3} - m_Controller: {fileID: 0} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 1 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1 &1688168515294058 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4234289099827942} - m_Layer: 0 - m_Name: LeftToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4234289099827942 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1688168515294058} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4983645719502506} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1689562266869402 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4281010555487502} - m_Layer: 0 - m_Name: RightHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4281010555487502 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1689562266869402} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802063, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4649621898448202} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1723346527823006 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4496119973859378} - m_Layer: 0 - m_Name: LeftHandLittle3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4496119973859378 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1723346527823006} - m_LocalRotation: {x: -8.3417817e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.02357231, y: -0.0017794799, z: -0.00011877301} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4031332134401838} - m_Father: {fileID: 4293642491721424} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1732198550211476 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4420243079123968} - m_Layer: 0 - m_Name: RightToeBase_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4420243079123968 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1732198550211476} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.14564738, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4897756725022398} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1740140316850160 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4614227722333004} - m_Layer: 0 - m_Name: LeftFoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4614227722333004 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1740140316850160} - m_LocalRotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} - m_LocalPosition: {x: 0.0044376277, y: -0.46711615, z: -0.0025090335} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4983645719502506} - m_Father: {fileID: 4594412105052764} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1741233635479078 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4541786926279050} - m_Layer: 0 - m_Name: LeftHandIndex1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4541786926279050 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741233635479078} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.07086868, y: -0.0012365723, z: 0.013564725} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4051421714285294} - m_Father: {fileID: 4369941294081632} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1759428941890862 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4049969287411434} - m_Layer: 0 - m_Name: RightHandLittle2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4049969287411434 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759428941890862} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.03736191, y: -0.0020390318, z: -0.00017240926} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4970408688845060} - m_Father: {fileID: 4500357875551362} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1759871676179508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4839389822556444} - m_Layer: 0 - m_Name: LeftForearm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4839389822556444 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1759871676179508} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.2587603, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4836098136808748} - m_Father: {fileID: 4945798737231434} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1764391134343402 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4859466552975116} - m_Layer: 0 - m_Name: Head_End - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4859466552975116 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1764391134343402} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5254398e-16, y: 0.16325943, z: -2.58904e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4705635283009600} - m_Father: {fileID: 4643022250758746} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1773833581693880 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4755313617476360} - m_Layer: 0 - m_Name: RightHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4755313617476360 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773833581693880} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.049062192, y: -0.002389984, z: 0.00008839682} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4864647067298810} - m_Father: {fileID: 4198118768489570} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1774990846042824 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4181504975483354} - m_Layer: 0 - m_Name: Hips - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4181504975483354 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1774990846042824} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 1.1138859, z: -0.012485122} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4853197623524236} - - {fileID: 4285708893687638} - - {fileID: 4703656715930640} - m_Father: {fileID: 4746777317671054} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1780295947606908 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4945798737231434} - m_Layer: 0 - m_Name: LeftUpperArm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4945798737231434 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1780295947606908} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.15648837, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4839389822556444} - m_Father: {fileID: 4558240690773950} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1783024770570700 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4279258841442284} - m_Layer: 0 - m_Name: LeftHandIndex4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4279258841442284 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1783024770570700} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.024553832, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4416949517587016} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1787220505458482 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4190442107530260} - m_Layer: 0 - m_Name: RightHandRing3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4190442107530260 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1787220505458482} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.032289885, y: -0.0028092957, z: -0.00015483782} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4460837836933230} - m_Father: {fileID: 4284520946962660} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1787276421764996 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4470399520913036} - m_Layer: 0 - m_Name: RightHandRing4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4470399520913036 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1787276421764996} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.025169373, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4460837836933230} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1800926129486508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4211326451096924} - m_Layer: 0 - m_Name: LeftHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4211326451096924 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800926129486508} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.042913206, y: 0.006371307, z: -0.016307002} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4141517989867146} - m_Father: {fileID: 4836098136808748} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1800997498218726 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4556940821754954} - m_Layer: 0 - m_Name: RightHandThumb4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4556940821754954 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800997498218726} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.029777298, y: 0.00011596679, z: 0.00026114538} - m_LocalScale: {x: 1, y: 0.99999994, z: 1} - m_Children: - - {fileID: 4996372359689838} - m_Father: {fileID: 4520241488013312} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1820661632411804 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4836098136808748} - m_Layer: 0 - m_Name: LeftHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4836098136808748 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1820661632411804} - m_LocalRotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.28402027, y: 0, z: -2.131628e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4369941294081632} - - {fileID: 4211326451096924} - - {fileID: 4034292906043112} - - {fileID: 4936289302321692} - - {fileID: 4353235304731280} - m_Father: {fileID: 4839389822556444} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1854339969901812 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4457508282459534} - m_Layer: 0 - m_Name: LeftHandMiddle4_end - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4457508282459534 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1854339969901812} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 0.026802978, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4468941225946244} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1869968226402612 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4649621898448202} - m_Layer: 0 - m_Name: RightHandMiddle4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4649621898448202 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1869968226402612} - m_LocalRotation: {x: 2.2268e-41, y: 1.0339768e-25, z: 0.000000044477652, w: 1} - m_LocalPosition: {x: 0.026656894, y: -0.0027399855, z: -0.0005033262} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4281010555487502} - m_Father: {fileID: 4647155121876880} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1871057163034284 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4229670953639224} - m_Layer: 0 - m_Name: RightHandLittle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4229670953639224 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1871057163034284} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.04291298, y: 0.0063700867, z: -0.016306998} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4500357875551362} - m_Father: {fileID: 4388123769618922} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1900168544683678 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4208306150548480} - m_Layer: 0 - m_Name: LeftHandRing1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4208306150548480 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1900168544683678} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.06295448, y: -0.00030258176, z: -0.006521179} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4880954805439224} - m_Father: {fileID: 4936289302321692} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1926295627984376 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4880954805439224} - m_Layer: 0 - m_Name: LeftHandRing2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4880954805439224 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1926295627984376} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.046582032, y: -0.0035731506, z: 0.000023220333} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4618234235717974} - m_Father: {fileID: 4208306150548480} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1926641755231346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4051421714285294} - m_Layer: 0 - m_Name: LeftHandIndex2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4051421714285294 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1926641755231346} - m_LocalRotation: {x: -6.938894e-18, y: 1.42345e-39, z: -0.00000008561503, w: 1} - m_LocalPosition: {x: -0.049062345, y: -0.002390747, z: -0.00012319013} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4933210508217398} - m_Father: {fileID: 4541786926279050} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1942275194123670 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4141517989867146} - m_Layer: 0 - m_Name: LeftHandLittle1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4141517989867146 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1942275194123670} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.056182478, y: -0.00036621088, z: -0.0147980675} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4293642491721424} - m_Father: {fileID: 4211326451096924} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1999458028057688 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4388123769618922} - m_Layer: 0 - m_Name: RightHand - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4388123769618922 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1999458028057688} - m_LocalRotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.28401995, y: 0, z: -2.1760372e-15} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4608424988925430} - - {fileID: 4229670953639224} - - {fileID: 4653958478622642} - - {fileID: 4940625000453716} - - {fileID: 4826023243270814} - m_Father: {fileID: 4020857003718316} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab.meta b/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab.meta deleted file mode 100644 index af0a576..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/HumanoidTargetsRig.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 94cc904628763c548944b198ccc94346 -timeCreated: 1486644658 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Materials.meta b/Runtime/HumanoidFree/Scripts/Resources/Materials.meta deleted file mode 100644 index e2606aa..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Materials.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: cc84ac7c95c473c44b97c107602087b7 -folderAsset: yes -timeCreated: 1486643266 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat b/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat deleted file mode 100644 index 12bae38..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat +++ /dev/null @@ -1,76 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: Material - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _EMISSION - m_LightmapFlags: 1 - 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: 0} - 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_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: 0.8, g: 0.8, b: 0.8, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat.meta b/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat.meta deleted file mode 100644 index 8e6b97a..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Materials/Material.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f288e74f24dec3949aed8e4f550c4b83 -timeCreated: 1486643266 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models.meta b/Runtime/HumanoidFree/Scripts/Resources/Models.meta deleted file mode 100644 index d059233..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Models.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 02da7ec8c993b874381f34377f818316 -folderAsset: yes -timeCreated: 1486643408 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx b/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx deleted file mode 100644 index d40a0fa..0000000 Binary files a/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx and /dev/null differ diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx.meta b/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx.meta deleted file mode 100644 index f8dc2fc..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Models/HumanoidTargets.fbx.meta +++ /dev/null @@ -1,1096 +0,0 @@ -fileFormatVersion: 2 -guid: 0ef46fdec482c674c8bd176e0b18d448 -timeCreated: 1486644632 -licenseType: Free -ModelImporter: - serializedVersion: 19 - fileIDToRecycleName: - 100000: Cube - 100002: Head - 100004: Head_End - 100006: Head_End_end - 100008: Hips - 100010: //RootNode - 100012: LeftFoot - 100014: LeftForearm - 100016: LeftHand - 100018: LeftHandIndex - 100020: LeftHandIndex1 - 100022: LeftHandIndex2 - 100024: LeftHandIndex3 - 100026: LeftHandIndex4 - 100028: LeftHandIndex4_end - 100030: LeftHandLittle - 100032: LeftHandLittle1 - 100034: LeftHandLittle2 - 100036: LeftHandLittle3 - 100038: LeftHandLittle4 - 100040: LeftHandLittle4_end - 100042: LeftHandMiddle - 100044: LeftHandMiddle1 - 100046: LeftHandMiddle2 - 100048: LeftHandMiddle3 - 100050: LeftHandMiddle4 - 100052: LeftHandMiddle4_end - 100054: LeftHandRing - 100056: LeftHandRing1 - 100058: LeftHandRing2 - 100060: LeftHandRing3 - 100062: LeftHandRing4 - 100064: LeftHandRing4_end - 100066: LeftHandThumb1 - 100068: LeftHandThumb2 - 100070: LeftHandThumb3 - 100072: LeftHandThumb4 - 100074: LeftHandThumb4_end - 100076: LeftLeg - 100078: LeftShoulder - 100080: LeftToeBase - 100082: LeftToeBase_end - 100084: LeftUpLeg - 100086: LeftUpperArm - 100088: Neck - 100090: RightFoot - 100092: RightForearm - 100094: RightHand - 100096: RightHandIndex - 100098: RightHandIndex1 - 100100: RightHandIndex2 - 100102: RightHandIndex3 - 100104: RightHandIndex4 - 100106: RightHandIndex4_end - 100108: RightHandLittle - 100110: RightHandLittle1 - 100112: RightHandLittle2 - 100114: RightHandLittle3 - 100116: RightHandLittle4 - 100118: RightHandLittle4_end - 100120: RightHandMiddle - 100122: RightHandMiddle1 - 100124: RightHandMiddle2 - 100126: RightHandMiddle3 - 100128: RightHandMiddle4 - 100130: RightHandMiddle4_end - 100132: RightHandRing - 100134: RightHandRing1 - 100136: RightHandRing2 - 100138: RightHandRing3 - 100140: RightHandRing4 - 100142: RightHandRing4_end - 100144: RightHandThumb1 - 100146: RightHandThumb2 - 100148: RightHandThumb3 - 100150: RightHandThumb4 - 100152: RightHandThumb4_end - 100154: RightLeg - 100156: RightShoulder - 100158: RightToeBase - 100160: RightToeBase_end - 100162: RightUpLeg - 100164: RightUpperArm - 100166: Spine - 100168: Spine1 - 100170: Spine2 - 100172: Spine3 - 400000: Cube - 400002: Head - 400004: Head_End - 400006: Head_End_end - 400008: Hips - 400010: //RootNode - 400012: LeftFoot - 400014: LeftForearm - 400016: LeftHand - 400018: LeftHandIndex - 400020: LeftHandIndex1 - 400022: LeftHandIndex2 - 400024: LeftHandIndex3 - 400026: LeftHandIndex4 - 400028: LeftHandIndex4_end - 400030: LeftHandLittle - 400032: LeftHandLittle1 - 400034: LeftHandLittle2 - 400036: LeftHandLittle3 - 400038: LeftHandLittle4 - 400040: LeftHandLittle4_end - 400042: LeftHandMiddle - 400044: LeftHandMiddle1 - 400046: LeftHandMiddle2 - 400048: LeftHandMiddle3 - 400050: LeftHandMiddle4 - 400052: LeftHandMiddle4_end - 400054: LeftHandRing - 400056: LeftHandRing1 - 400058: LeftHandRing2 - 400060: LeftHandRing3 - 400062: LeftHandRing4 - 400064: LeftHandRing4_end - 400066: LeftHandThumb1 - 400068: LeftHandThumb2 - 400070: LeftHandThumb3 - 400072: LeftHandThumb4 - 400074: LeftHandThumb4_end - 400076: LeftLeg - 400078: LeftShoulder - 400080: LeftToeBase - 400082: LeftToeBase_end - 400084: LeftUpLeg - 400086: LeftUpperArm - 400088: Neck - 400090: RightFoot - 400092: RightForearm - 400094: RightHand - 400096: RightHandIndex - 400098: RightHandIndex1 - 400100: RightHandIndex2 - 400102: RightHandIndex3 - 400104: RightHandIndex4 - 400106: RightHandIndex4_end - 400108: RightHandLittle - 400110: RightHandLittle1 - 400112: RightHandLittle2 - 400114: RightHandLittle3 - 400116: RightHandLittle4 - 400118: RightHandLittle4_end - 400120: RightHandMiddle - 400122: RightHandMiddle1 - 400124: RightHandMiddle2 - 400126: RightHandMiddle3 - 400128: RightHandMiddle4 - 400130: RightHandMiddle4_end - 400132: RightHandRing - 400134: RightHandRing1 - 400136: RightHandRing2 - 400138: RightHandRing3 - 400140: RightHandRing4 - 400142: RightHandRing4_end - 400144: RightHandThumb1 - 400146: RightHandThumb2 - 400148: RightHandThumb3 - 400150: RightHandThumb4 - 400152: RightHandThumb4_end - 400154: RightLeg - 400156: RightShoulder - 400158: RightToeBase - 400160: RightToeBase_end - 400162: RightUpLeg - 400164: RightUpperArm - 400166: Spine - 400168: Spine1 - 400170: Spine2 - 400172: Spine3 - 2300000: Cube - 3300000: Cube - 4300000: Cube - 9500000: //RootNode - materials: - importMaterials: 0 - materialName: 0 - materialSearch: 1 - animations: - legacyGenerateAnimations: 4 - bakeSimulation: 0 - resampleCurves: 1 - optimizeGameObjects: 0 - motionNodeName: - animationImportErrors: - animationImportWarnings: - animationRetargetingWarnings: - animationDoRetargetingWarnings: 0 - animationCompression: 3 - animationRotationError: 0.5 - animationPositionError: 0.5 - animationScaleError: 0.5 - animationWrapMode: 0 - extraExposedTransformPaths: [] - clipAnimations: [] - isReadable: 1 - meshes: - lODScreenPercentages: [] - globalScale: 1 - meshCompression: 0 - addColliders: 0 - importBlendShapes: 0 - swapUVChannels: 0 - generateSecondaryUV: 0 - useFileUnits: 1 - optimizeMeshForGPU: 1 - keepQuads: 0 - weldVertices: 1 - secondaryUVAngleDistortion: 8 - secondaryUVAreaDistortion: 15.000001 - secondaryUVHardAngle: 88 - secondaryUVPackMargin: 4 - useFileScale: 1 - tangentSpace: - normalSmoothAngle: 60 - normalImportMode: 0 - tangentImportMode: 3 - importAnimation: 0 - copyAvatar: 0 - humanDescription: - serializedVersion: 2 - 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: LeftUpLeg - 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: RightUpLeg - 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: LeftLeg - 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: RightLeg - 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: LeftFoot - 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: RightFoot - 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: Spine1 - 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: LeftShoulder - 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: RightShoulder - 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: LeftUpperArm - 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: RightUpperArm - 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: LeftForearm - 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: RightForearm - 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: LeftHand - 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: RightHand - 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: LeftToeBase - 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: RightToeBase - 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: LeftHandThumb1 - 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: LeftHandThumb2 - 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: LeftHandThumb3 - 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: LeftHandIndex1 - 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: LeftHandIndex2 - 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: LeftHandIndex3 - 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: LeftHandMiddle1 - 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: LeftHandMiddle2 - 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: LeftHandMiddle3 - 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: LeftHandRing1 - 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: LeftHandRing2 - 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: LeftHandRing3 - 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: LeftHandLittle1 - 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: LeftHandLittle2 - 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: LeftHandLittle3 - 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: RightHandThumb1 - 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: RightHandThumb2 - 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: RightHandThumb3 - 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: RightHandIndex1 - 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: RightHandIndex2 - 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: RightHandIndex3 - 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: RightHandMiddle1 - 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: RightHandMiddle2 - 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: RightHandMiddle3 - 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: RightHandRing1 - 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: RightHandRing2 - 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: RightHandRing3 - 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: RightHandLittle1 - 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: RightHandLittle2 - 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: RightHandLittle3 - 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 - skeleton: - - name: HumanoidTargets(Clone) - parentName: - position: {x: -0, y: 0, z: 0} - rotation: {x: 0.000000081460335, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Cube - parentName: HumanoidTargets(Clone) - position: {x: -0, y: 0, z: 0} - rotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} - scale: {x: 100, y: 100, z: 100} - - name: Hips - parentName: HumanoidTargets(Clone) - position: {x: -0, y: 1.1138859, z: -0.012485122} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftUpLeg - parentName: Hips - position: {x: -0.1055315, y: -0.0880629, z: -0.0085835215} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftLeg - parentName: LeftUpLeg - position: {x: -0.012004041, y: -0.45650727, z: -0.01516209} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftFoot - parentName: LeftLeg - position: {x: 0.0044376277, y: -0.46711615, z: -0.0025090333} - rotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: LeftToeBase - parentName: LeftFoot - position: {x: -0.00000008547017, y: -0.08017616, z: 0.121593356} - rotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftToeBase_end - parentName: LeftToeBase - position: {x: -0, y: 0.14564738, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightUpLeg - parentName: Hips - position: {x: 0.1055315, y: -0.0880629, z: -0.0085835215} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightLeg - parentName: RightUpLeg - position: {x: 0.012004041, y: -0.45650727, z: -0.01516209} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightFoot - parentName: RightLeg - position: {x: -0.0044376277, y: -0.46711615, z: -0.0025090333} - rotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: RightToeBase - parentName: RightFoot - position: {x: 0.00000008547017, y: -0.08017616, z: 0.121593356} - rotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightToeBase_end - parentName: RightToeBase - position: {x: -0, y: 0.14564738, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Spine - parentName: Hips - position: {x: 1.7684578e-15, y: 0.096092984, z: 0.0000000023841857} - rotation: {x: 4.6566195e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Spine1 - parentName: Spine - position: {x: -1.9845957e-15, y: 0.112581775, z: -3.9639472e-11} - rotation: {x: -4.656613e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Spine2 - parentName: Spine1 - position: {x: 4.0527506e-16, y: 0.12033065, z: -1.9229062e-15} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Spine3 - parentName: Spine2 - position: {x: -1.52742e-16, y: 0.11723067, z: 0.012485121} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftShoulder - parentName: Spine3 - position: {x: -0.049049377, y: 0.0406308, z: -0.012485122} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftUpperArm - parentName: LeftShoulder - position: {x: -0.15648837, y: 0, z: -2.131628e-15} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftForearm - parentName: LeftUpperArm - position: {x: -0.2587603, y: 0, z: -2.131628e-15} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: LeftHand - parentName: LeftForearm - position: {x: -0.28402027, y: 0, z: -2.131628e-15} - rotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandIndex - parentName: LeftHand - position: {x: -0.043752592, y: 0.0068923947, z: 0.026853435} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandIndex1 - parentName: LeftHandIndex - position: {x: -0.07086868, y: -0.0012365723, z: 0.0135647245} - rotation: {x: -0.0027754728, y: 0.057435125, z: -0.009264627, w: 0.9983024} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandIndex2 - parentName: LeftHandIndex1 - position: {x: -0.049062345, y: -0.002390747, z: -0.00012319013} - rotation: {x: -6.938894e-18, y: 1.42345e-39, z: -0.00000008561503, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandIndex3 - parentName: LeftHandIndex2 - position: {x: -0.027793698, y: -0.0017312705, z: 0.00010981395} - rotation: {x: -1.517253e-39, y: 1.8611566e-24, z: 0.000000097100354, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: LeftHandIndex4 - parentName: LeftHandIndex3 - position: {x: -0.024411585, y: -0.0026380697, z: 0.00006414011} - rotation: {x: -6.938894e-18, y: 6.203854e-25, z: -0.000000048550163, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandIndex4_end - parentName: LeftHandIndex4 - position: {x: -0, y: 0.024553832, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle - parentName: LeftHand - position: {x: -0.042913206, y: 0.006371307, z: -0.016307002} - rotation: {x: 0.013194116, y: 0.16565485, z: -0.054192387, w: 0.9846053} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle1 - parentName: LeftHandLittle - position: {x: -0.056182478, y: -0.00036621085, z: -0.014798067} - rotation: {x: 0.0050780545, y: -0.09357571, z: -0.016963964, w: 0.99545467} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle2 - parentName: LeftHandLittle1 - position: {x: -0.03736122, y: -0.0020468137, z: 0.00010685041} - rotation: {x: 9.849145e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle3 - parentName: LeftHandLittle2 - position: {x: -0.02357231, y: -0.0017794799, z: -0.00011877301} - rotation: {x: -8.3417817e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle4 - parentName: LeftHandLittle3 - position: {x: -0.022208022, y: -0.0023219297, z: 0.000012555385} - rotation: {x: -9.123824e-10, y: 4.8709725e-17, z: 0.000000053387403, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandLittle4_end - parentName: LeftHandLittle4 - position: {x: -0, y: 0.022329101, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle - parentName: LeftHand - position: {x: -0.045923002, y: 0.0070205685, z: 0.010279348} - rotation: {x: -0.0017986371, y: 0.022708913, z: -0.023544895, w: 0.9994632} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle1 - parentName: LeftHandMiddle - position: {x: -0.07022827, y: -0.0011416626, z: 0.004263849} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle2 - parentName: LeftHandMiddle1 - position: {x: -0.053481977, y: -0.003643341, z: -0.00015678957} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle3 - parentName: LeftHandMiddle2 - position: {x: -0.0334935, y: -0.0025872802, z: 0.00014287948} - rotation: {x: 1.7373489e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle4 - parentName: LeftHandMiddle3 - position: {x: -0.026661986, y: -0.0027456665, z: 0.0000018486778} - rotation: {x: 1.1672813e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandMiddle4_end - parentName: LeftHandMiddle4 - position: {x: -0, y: 0.026802978, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing - parentName: LeftHand - position: {x: -0.045672145, y: 0.007352142, z: -0.0017597537} - rotation: {x: 0.0040522967, y: 0.089893736, z: -0.043290984, w: 0.99500185} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing1 - parentName: LeftHandRing - position: {x: -0.06295448, y: -0.00030258176, z: -0.006521179} - rotation: {x: 0.0014130104, y: -0.018503865, z: -0.012782419, w: 0.9997461} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing2 - parentName: LeftHandRing1 - position: {x: -0.046582032, y: -0.0035731504, z: 0.000023220331} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing3 - parentName: LeftHandRing2 - position: {x: -0.032327875, y: -0.0023251341, z: 0.000018807203} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing4 - parentName: LeftHandRing3 - position: {x: -0.02503746, y: -0.002580261, z: -0.00006344959} - rotation: {x: 4.6251358e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandRing4_end - parentName: LeftHandRing4 - position: {x: -0, y: 0.025170133, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumb1 - parentName: LeftHand - position: {x: -0.033786695, y: 0.002574768, z: 0.04235597} - rotation: {x: 0.0012036926, y: 0.42838153, z: -0.0464294, w: 0.9024036} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumb2 - parentName: LeftHandThumb1 - position: {x: -0.049987942, y: 0.00012684021, z: -0.00012565777} - rotation: {x: -6.938894e-18, y: 0, z: 8.881784e-16, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumb3 - parentName: LeftHandThumb2 - position: {x: -0.034724806, y: -0.00007960955, z: 0.00010122135} - rotation: {x: -6.938894e-18, y: -4.135903e-25, z: -0.000000040031257, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumb4 - parentName: LeftHandThumb3 - position: {x: -0.029778114, y: 0.000015687518, z: 0.00024009302} - rotation: {x: 9.382326e-10, y: -7.190296e-18, z: 0.00000004003126, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: LeftHandThumb4_end - parentName: LeftHandThumb4 - position: {x: -0, y: 0.02977905, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Neck - parentName: Spine3 - position: {x: 1.1879386e-16, y: 0.120701596, z: -0.012485121} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Head - parentName: Neck - position: {x: -3.118321e-16, y: 0.100040585, z: -2.3736567e-15} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Head_End - parentName: Head - position: {x: 1.5254398e-16, y: 0.16325943, z: -2.58904e-15} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: Head_End_end - parentName: Head_End - position: {x: -0, y: 0.16325943, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightShoulder - parentName: Spine3 - position: {x: 0.0490494, y: 0.04062805, z: -0.012485101} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightUpperArm - parentName: RightShoulder - position: {x: 0.1564886, y: 0, z: -2.131628e-15} - rotation: {x: 2.3283064e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: RightForearm - parentName: RightUpperArm - position: {x: 0.25876004, y: -5.813945e-12, z: 4.4668336e-10} - rotation: {x: -2.3283062e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHand - parentName: RightForearm - position: {x: 0.28401995, y: 0, z: -2.1760372e-15} - rotation: {x: -2.3283056e-10, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex - parentName: RightHand - position: {x: 0.04375305, y: 0.006900177, z: 0.0268534} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex1 - parentName: RightHandIndex - position: {x: 0.070869066, y: -0.0012400817, z: 0.013564706} - rotation: {x: -0.0027053691, y: -0.055199377, z: 0.009087725, w: 0.9984304} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex2 - parentName: RightHandIndex1 - position: {x: 0.04906219, y: -0.002389984, z: 0.00008839682} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex3 - parentName: RightHandIndex2 - position: {x: 0.027794035, y: -0.0017300413, z: -0.000012518613} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex4 - parentName: RightHandIndex3 - position: {x: 0.024410933, y: -0.002639923, z: -0.00018211288} - rotation: {x: 0.0000000011378876, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandIndex4_end - parentName: RightHandIndex4 - position: {x: -0, y: 0.024553984, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle - parentName: RightHand - position: {x: 0.04291298, y: 0.006370086, z: -0.016306998} - rotation: {x: 0.013201551, y: -0.16564701, z: 0.054150026, w: 0.9846089} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle1 - parentName: RightHandLittle - position: {x: 0.05618301, y: -0.00035995478, z: -0.014798106} - rotation: {x: 0.0049725897, y: 0.08970931, z: 0.016697032, w: 0.99581563} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle2 - parentName: RightHandLittle1 - position: {x: 0.03736191, y: -0.0020390318, z: -0.00017240924} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle3 - parentName: RightHandLittle2 - position: {x: 0.023571929, y: -0.0017774963, z: 0.00009028032} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle4 - parentName: RightHandLittle3 - position: {x: 0.022212598, y: -0.0022802735, z: 0.00006594256} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandLittle4_end - parentName: RightHandLittle4 - position: {x: -0, y: 0.022329407, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle - parentName: RightHand - position: {x: 0.04592308, y: 0.0070201107, z: 0.010279321} - rotation: {x: -0.0017974114, y: -0.022703126, z: 0.02353501, w: 0.9994636} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle1 - parentName: RightHandMiddle - position: {x: 0.070227966, y: -0.0011398315, z: 0.004263851} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle2 - parentName: RightHandMiddle1 - position: {x: 0.053482816, y: -0.0036399837, z: -0.00013987467} - rotation: {x: 2.7723215e-10, y: -1.9675563e-17, z: 0.00000007097143, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle3 - parentName: RightHandMiddle2 - position: {x: 0.033493422, y: -0.0025901615, z: 0.000085894324} - rotation: {x: 2.571394e-39, y: -2.1196503e-24, z: -0.0000000889553, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle4 - parentName: RightHandMiddle3 - position: {x: 0.026656894, y: -0.0027399855, z: -0.0005033262} - rotation: {x: 2.2268e-41, y: 1.0339768e-25, z: 0.000000044477652, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandMiddle4_end - parentName: RightHandMiddle4 - position: {x: -0, y: 0.026802063, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing - parentName: RightHand - position: {x: 0.045672074, y: 0.0073501584, z: -0.0017598} - rotation: {x: 0.004054473, y: -0.089888595, z: 0.043275755, w: 0.995003} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing1 - parentName: RightHandRing - position: {x: 0.062955014, y: -0.00029998776, z: -0.0065212} - rotation: {x: 0.002031268, y: 0.022117436, z: 0.018592251, w: 0.9995805} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing2 - parentName: RightHandRing1 - position: {x: 0.046512604, y: -0.0043777465, z: 0.00012611701} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing3 - parentName: RightHandRing2 - position: {x: 0.032289885, y: -0.0028092957, z: -0.0001548378} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing4 - parentName: RightHandRing3 - position: {x: 0.024989698, y: -0.002992096, z: -0.00024336025} - rotation: {x: 3.7002212e-10, y: 1.7525295e-17, z: -0.000000047362832, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandRing4_end - parentName: RightHandRing4 - position: {x: -0, y: 0.02516937, z: 0} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandThumb1 - parentName: RightHand - position: {x: 0.033787, y: 0.0025801086, z: 0.042356003} - rotation: {x: -0.00028289354, y: -0.42939124, z: 0.047473088, w: 0.90186995} - scale: {x: 1, y: 1, z: 1} - - name: RightHandThumb2 - parentName: RightHandThumb1 - position: {x: 0.0499884, y: -0.000057678233, z: -0.00022398635} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandThumb3 - parentName: RightHandThumb2 - position: {x: 0.03472366, y: 0.000028686509, z: -0.00020205184} - rotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - scale: {x: 1, y: 1, z: 1} - - name: RightHandThumb4 - parentName: RightHandThumb3 - position: {x: 0.029777296, y: 0.00011596678, z: 0.00026114538} - rotation: {x: 0, y: -0, z: -0, w: 1} - scale: {x: 1, y: 0.99999994, z: 1} - - name: RightHandThumb4_end - parentName: RightHandThumb4 - position: {x: -0, y: 0.029778594, 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: 0.05 - legStretch: 0.05 - feetSpacing: 0 - rootMotionBoneName: - rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} - hasTranslationDoF: 0 - hasExtraRoot: 0 - skeletonHasParents: 1 - lastHumanDescriptionAvatarSource: {instanceID: 0} - animationType: 3 - humanoidOversampling: 1 - additionalBone: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials.meta b/Runtime/HumanoidFree/Scripts/Resources/Models/Materials.meta deleted file mode 100644 index 05f1783..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: ee731481bc8b0c949a45ebf8fa2144a7 -folderAsset: yes -timeCreated: 1486644078 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat b/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat deleted file mode 100644 index 9c92ea9..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat +++ /dev/null @@ -1,76 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_Name: No Name - m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _EMISSION - m_LightmapFlags: 1 - 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: 0} - 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_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} diff --git a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat.meta b/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat.meta deleted file mode 100644 index efdd2ca..0000000 --- a/Runtime/HumanoidFree/Scripts/Resources/Models/Materials/No Name.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a85626db694b4b64aa5b9f475236c885 -timeCreated: 1486644078 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets.meta b/Runtime/HumanoidFree/Scripts/Targets.meta deleted file mode 100644 index e5ba6a1..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: bb24c57d682ac2847bf489b2e40dec9b -folderAsset: yes -timeCreated: 1472812527 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs deleted file mode 100644 index f21df30..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs +++ /dev/null @@ -1,696 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Tracking; - - [System.Serializable] - public class FingersTarget : ITarget { - public HandTarget handTarget; - - #region SubTargets - - public TargetedFinger thumb = null; - public TargetedFinger index = null; - public TargetedFinger middle = null; - public TargetedFinger ring = null; - public TargetedFinger little = null; - public TargetedFinger[] allFingers; - - public FingersTarget(HandTarget handTarget) { - this.handTarget = handTarget; - thumb = new TargetedFinger(this); - index = new TargetedFinger(this); - middle = new TargetedFinger(this); - ring = new TargetedFinger(this); - little = new TargetedFinger(this); - - allFingers = new TargetedFinger[] { - thumb, - index, - middle, - ring, - little - }; - } - - #region Finger - - [System.Serializable] - public class TargetedFinger { - [System.NonSerialized] - public FingersTarget fingers; - - //public TargetedPhalanges metaCarpal; - public TargetedPhalanges proximal; - public TargetedPhalanges intermediate; - public TargetedPhalanges distal; - - public TargetedFinger(FingersTarget fingers) { - this.fingers = fingers; - - //metaCarpal = new TargetedPhalanges(this, proximal); - proximal = new TargetedPhalanges(this, intermediate); - intermediate = new TargetedPhalanges(this, distal); - distal = new TargetedPhalanges(this, null); - - //proximal.parent = metaCarpal; - proximal.parent = this.fingers.handTarget.hand; - intermediate.parent = proximal; - distal.parent = intermediate; - } - - public void Init(FingersTarget _fingers) { - fingers = _fingers; - - proximal.parent = fingers.handTarget.hand; - - //metaCarpal.nextBone = proximal; - proximal.nextBone = intermediate; - intermediate.nextBone = distal; - } - - public void RetrieveBones(HumanoidControl humanoid, Bone firstBoneId) { - proximal.boneId = firstBoneId; - intermediate.boneId = firstBoneId + 1; - distal.boneId = firstBoneId + 2; - - //metaCarpal.RetrieveBones(humanoid); - proximal.RetrieveBones(humanoid); - intermediate.RetrieveBones(humanoid); - distal.RetrieveBones(humanoid); - } - - public void MatchTargetToAvatar() { - //metaCarpal.MatchTargetToAvatar(); - proximal.MatchTargetToAvatar(); - intermediate.MatchTargetToAvatar(); - distal.MatchTargetToAvatar(); - } - - public Vector3 right { - get { - Quaternion intermediateRotation = Quaternion.FromToRotation(proximal.forward, intermediate.forward); - float angle; - Vector3 rotationAxis; - intermediateRotation.ToAngleAxis(out angle, out rotationAxis); - return rotationAxis; - } - } - - public void DoMeasurements() { - //metaCarpal.DoMeasurements(); - proximal.DoMeasurements(); - intermediate.DoMeasurements(); - distal.DoMeasurements(); - } - - #region Curl - - private float _curl; - public float curl { - get { return _curl; } - set { SetCurl(fingers, value); } - } - - public float GetCurl(HandTarget handTarget) { - if (proximal.target.transform == null || proximal.bone.transform == null || intermediate.bone.transform == null) - _curl = 0; - else if (proximal.boneId == Bone.LeftThumbProximal || proximal.boneId == Bone.RightThumbProximal) { - _curl = CalculateThumbCurl(handTarget, proximal.target.transform.localRotation); - } - else { - Quaternion intermediateRotation = Quaternion.Inverse(proximal.target.transform.rotation) * intermediate.target.transform.rotation; - float fingerAngle = handTarget.isLeft ? intermediateRotation.eulerAngles.z : -intermediateRotation.eulerAngles.z; - fingerAngle = UnityAngles.Normalize(fingerAngle) / 90; - _curl = Mathf.Clamp(fingerAngle, -0.1F, 1); - } - return _curl; - } - - protected float CalculateThumbCurl(HandTarget handTarget, Quaternion localRotation) { - /* - Quaternion rotation = localRotation * Quaternion.Inverse(proximal.target.baseRotation); - float angle1 = handTarget.isLeft ? -rotation.eulerAngles.y : rotation.eulerAngles.y; - float angle = -UnityAngles.Normalize(angle1) * 2; - float curl1 = handTarget.isLeft ? angle / 90 : angle / -90; - float _curl = (curl1 * 1.5F) + 0.75F; - - _curl = Mathf.Clamp(_curl, -0.5F, 1); - */ - _curl = CalculateThumbCurl(); - return _curl; - } - - public float GetTargetCurl(HandTarget handTarget) { - if (proximal.target.transform == null || proximal.bone.transform == null) - _curl = 0; - else if (proximal.boneId == Bone.LeftThumbProximal || proximal.boneId == Bone.RightThumbProximal) { - _curl = CalculateThumbCurl(handTarget, proximal.target.transform.localRotation); - } - else { - Quaternion intermediateRotation = Quaternion.Inverse(proximal.target.transform.rotation) * intermediate.target.transform.rotation; - float fingerAngle = handTarget.isLeft ? intermediateRotation.eulerAngles.z : -intermediateRotation.eulerAngles.z; - fingerAngle = UnityAngles.Normalize(fingerAngle) / 90; - _curl = Mathf.Clamp(fingerAngle, -0.1F, 1); - } - return _curl; - } - - public float CalculateCurl() { - if (this == fingers.thumb) { - float curl = CalculateThumbCurl(); - return curl; - } else { - float curl = CalculateFingerCurl(); - return curl; - } - } - - #region Thumb Curl - - protected float CalculateThumbCurl() { - Quaternion rotation = Quaternion.Inverse(proximal.target.transform.rotation) * distal.target.transform.rotation; - float angle = fingers.handTarget.isLeft ? -rotation.eulerAngles.y : rotation.eulerAngles.y; - angle = UnityAngles.Normalize(angle); - angle = angle - 15; - if (angle < 0) - _curl = angle / 50; - else - _curl = angle / 50; - - _curl = Mathf.Clamp(_curl, -0.5F, 1); - - return _curl; - } - - protected void SetThumb1Rotation(float curlValue) { - if (proximal.target.transform == null) - return; - - float angleUp = curlValue > 0 ? curlValue * -5 : curlValue * -45; - float angleFwd = curlValue * -10; - - if (!fingers.handTarget.isLeft) { - angleUp = -angleUp; - angleFwd = -angleFwd; - } - - Quaternion localRotation = proximal.target.baseRotation * Quaternion.Euler(0, angleUp, angleFwd); - proximal.target.transform.localRotation = localRotation; - } - - protected void SetThumb2Rotation(float curlValue) { - if (intermediate.target.transform == null) - return; - - float angleUp = curlValue * -20; - - if (!fingers.handTarget.isLeft) - angleUp = -angleUp; - - Quaternion localRotation = intermediate.target.baseRotation * Quaternion.AngleAxis(angleUp, Vector3.up); - intermediate.target.transform.localRotation = localRotation; - } - - protected void SetThumb3Rotation(float curlValue) { - if (distal.target.transform == null) - return; - - float angleUp = curlValue * -20; - - if (!fingers.handTarget.isLeft) - angleUp = -angleUp; - - Quaternion localRotation = distal.target.baseRotation * Quaternion.AngleAxis(angleUp, Vector3.up); - distal.target.transform.localRotation = localRotation; - } - - #endregion - - #region Finger Curl - - protected float CalculateFingerCurl() { - Quaternion rotation = proximal.target.transform.localRotation * Quaternion.Inverse(proximal.target.baseRotation); - float angle = fingers.handTarget.isLeft ? rotation.eulerAngles.z : -rotation.eulerAngles.z; - angle = UnityAngles.Normalize(angle); - _curl = angle / 70; - - _curl = Mathf.Clamp(_curl, -0.1F, 1); - return _curl; - } - - protected void SetFinger1Rotation(float curlValue) { - if (proximal.target.transform == null) - return; - - float angleFwd = curlValue * 70; - - if (!fingers.handTarget.isLeft) { - angleFwd = -angleFwd; - } - - Quaternion localRotation = proximal.target.baseRotation * Quaternion.AngleAxis(angleFwd, Vector3.forward); - proximal.target.transform.localRotation = localRotation; - } - - protected void SetFinger2Rotation(float curlValue) { - if (intermediate.target.transform == null) - return; - - float angleFwd = (curlValue + 0.1F) * 70; - - if (!fingers.handTarget.isLeft) { - angleFwd = -angleFwd; - } - - Quaternion localRotation = intermediate.target.baseRotation * Quaternion.AngleAxis(angleFwd, Vector3.forward); - intermediate.target.transform.localRotation = localRotation; - } - - protected void SetFinger3Rotation(float curlValue) { - if (distal.target.transform == null) - return; - - float angleFwd = curlValue * 70; - - if (!fingers.handTarget.isLeft) { - angleFwd = -angleFwd; - } - - Quaternion localRotation = distal.target.baseRotation * Quaternion.AngleAxis(angleFwd, Vector3.forward); - distal.target.transform.localRotation = localRotation; - } - - #endregion - - private void SetCurl(FingersTarget fingers, float curlValue) { - _curl = curlValue; - if (this == fingers.thumb) { - SetThumb1Rotation(curlValue); - SetThumb2Rotation(curlValue); - SetThumb3Rotation(curlValue); - } - else { - SetFinger1Rotation(curlValue); - SetFinger2Rotation(curlValue); - SetFinger3Rotation(curlValue); - } - } - - #endregion - - #region Swing - private float _swing = 0; - public float swing { - get { return _swing; } - set { SetSwing(value); } - } - - public float GetSwing() { - if (fingers == null || proximal.target.transform == null) - _swing = 0; - else if (this == fingers.thumb) { - float angle = proximal.target.transform.localEulerAngles.z; - _swing = UnityAngles.Normalize(angle) / 90; - } - else { - float angle = proximal.target.transform.localEulerAngles.y; - _swing = UnityAngles.Normalize(angle) / 90; - } - return _swing; - } - - public void SetSwing(float swingValue) { - _swing = swingValue; - - if (this == fingers.thumb) { - float angle = _swing * 90; - Vector3 proximalAngles = proximal.target.transform.localEulerAngles; - proximal.target.transform.localRotation = Quaternion.Euler(proximalAngles.x, proximalAngles.y, angle); - } - else { - float angle = _swing * 90; - - Vector3 proximalAngles = proximal.target.transform.localEulerAngles; - proximal.target.transform.localRotation = Quaternion.Euler(proximalAngles.x, angle, proximalAngles.z); - } - } - #endregion - } - - [System.Serializable] - public class TargetedPhalanges : HumanoidTarget.TargetedBone { - [System.NonSerialized] - TargetedFinger finger; - private Quaternion defaultRotation; - //private Quaternion localDefaultRotation; - - public TargetedPhalanges(TargetedFinger finger, HumanoidTarget.TargetedBone nextBone) - : base(nextBone) { - - this.finger = finger; - } - - public Vector3 forward { - get { - if (bone.transform == null || (nextBone != null && nextBone.bone.transform == null)) - return Vector3.forward; - - if (nextBone == null) { // this is true for distal - if (bone.transform.childCount == 1) { - Transform childBone = bone.transform.GetChild(0); - return (childBone.position - bone.transform.position).normalized; - } - else if (parent != null) { - return parent.DetermineRotation() * finger.fingers.handTarget.outward; - } - else - return finger.fingers.handTarget.isLeft ? Vector3.left : Vector3.right; - // This is not correct when the distal and intermediate are not aligned. - } - else - return nextBone.bone.transform.position - bone.transform.position; - } - } - - public override Quaternion DetermineRotation() { - Vector3 up; - - if (finger.fingers == null) - return Quaternion.identity; - - Quaternion parentBaseRotation = - (parent == null || parent.target.transform == null) ? Quaternion.identity : parent.DetermineRotation(); - - Vector3 bendAxis = finger.right; - float angle = finger.CalculateCurl(); - if (angle < 10) { // finger is hardly bent - if (parent == null || parent.target.transform == null) - up = finger.fingers.handTarget.hand.bone.targetRotation * Vector3.up; - else - up = parentBaseRotation * Vector3.up; -// bendAxis = Vector3.Cross(up, forward); - } - else { - up = Vector3.Cross(forward, bendAxis); - } - - Quaternion lookRotation = Quaternion.LookRotation(forward, up); - defaultRotation = lookRotation * Quaternion.AngleAxis(finger.fingers.handTarget.isLeft ? 90 : -90, Vector3.up); - if (parent != null) - target.baseRotation = Quaternion.Inverse(parentBaseRotation) * defaultRotation; - else - target.baseRotation = Quaternion.Inverse(target.transform.parent.rotation) * defaultRotation; - - HandTarget handTarget = finger.fingers.handTarget; - if (handTarget.poseMixer.detectedPose != null) { - BonePose bonePose = handTarget.poseMixer.detectedPose.GetBone(boneId); - if (bonePose == null) { - SideBone sideBoneId = BoneReference.HumanoidSideBone(boneId); - bonePose = handTarget.poseMixer.detectedPose.GetSideBone(sideBoneId); - } - if (bonePose != null) { - HumanoidTarget.TargetedBone referenceBone = handTarget.humanoid.GetBone(bonePose.referenceBoneRef.boneId); - Quaternion referenceRotation; - if (referenceBone != null && referenceBone.bone.transform != null) { - referenceRotation = referenceBone.bone.targetRotation; - } else { - referenceRotation = handTarget.humanoid.transform.rotation; - } - if (parent != null) - target.baseRotation = Quaternion.Inverse(parentBaseRotation) * referenceRotation; - else - target.baseRotation = Quaternion.Inverse(target.transform.parent.rotation) * referenceRotation; - } - } - - return defaultRotation; - } - } - - #endregion - - #endregion - - #region Limitations - // Default limitations - public static readonly Vector3 minProximalAngles = new Vector3(-10, 0, 0); - public static readonly Vector3 maxProximalAngles = new Vector3(45, 0, 0); - - public static readonly Vector3 minIntermediateAngles = new Vector3(0, 0, 0); - public static readonly Vector3 maxIntermediateAngles = new Vector3(90, 0, 0); - - public static readonly Vector3 minDistalAngles = new Vector3(0, 0, 0); - public static readonly Vector3 maxDistalAngles = new Vector3(90, 0, 0); - #endregion - - #region Configuration - public void RetrieveBones(HandTarget handTarget) { - if (handTarget == null) - return; - - thumb.RetrieveBones(handTarget.humanoid, handTarget.isLeft ? Bone.LeftThumbProximal : Bone.RightThumbProximal); - index.RetrieveBones(handTarget.humanoid, handTarget.isLeft ? Bone.LeftIndexProximal : Bone.RightIndexProximal); - middle.RetrieveBones(handTarget.humanoid, handTarget.isLeft ? Bone.LeftMiddleProximal : Bone.RightMiddleProximal); - ring.RetrieveBones(handTarget.humanoid, handTarget.isLeft ? Bone.LeftRingProximal : Bone.RightRingProximal); - little.RetrieveBones(handTarget.humanoid, handTarget.isLeft ? Bone.LeftLittleProximal : Bone.RightLittleProximal); - } - - private static readonly string[] boneNames = { - "Thumb Proximal", - "Thumb Intermediate", - "Thumb Distal", - - "Index Finger Proximal", - "Index Finger Intermediate", - "Index Finger Distal", - - "Middle Finger Proximal", - "Middle Finger Intermediate", - "Middle Finger Distal", - - "Ring Finger Proximal", - "Ring Finger Intermediate", - "Ring Finger Distal", - - "Little Finger Proximal", - "Little Finger Intermediate", - "Little Finger Distal", - }; - - HumanoidTarget.TargetedBone[] ITarget.GetBones() { - HumanoidTarget.TargetedBone[] bones = new HumanoidTarget.TargetedBone[] { - thumb.proximal, - thumb.intermediate, - thumb.distal, - - index.proximal, - index.intermediate, - index.distal, - - middle.proximal, - middle.intermediate, - middle.distal, - - ring.proximal, - ring.intermediate, - ring.distal, - - little.proximal, - little.intermediate, - little.distal, - }; - - for (int i = 0; i < bones.Length; i++) - bones[i].name = boneNames[i]; - - return bones; - } - public SkinnedMeshRenderer blendshapeRenderer { - get { return null; } - } - string[] ITarget.GetBlendshapeNames() { - return null; - } - int ITarget.FindBlendshape(string namepart) { - return -1; - } - - public void SetBlendshapeWeight(string blendshape, float weight) { } - public float GetBlendshapeWeight(string blendshape) { return 0; } - #endregion - - #region Init - public void InitAvatar() { - thumb.Init(this); - index.Init(this); - middle.Init(this); - ring.Init(this); - little.Init(this); - - thumb.DoMeasurements(); - index.DoMeasurements(); - middle.DoMeasurements(); - ring.DoMeasurements(); - little.DoMeasurements(); - } - - public void NewComponent(HandTarget _handTarget) { - handTarget = _handTarget; - index.fingers = handTarget.fingers; - } - - public void MatchTargetsToAvatar() { - thumb.MatchTargetToAvatar(); - index.MatchTargetToAvatar(); - middle.MatchTargetToAvatar(); - ring.MatchTargetToAvatar(); - little.MatchTargetToAvatar(); - } - #endregion - - #region Update - public static void CopyFingerTargetsToRig(HandTarget handTarget) { - if (handTarget.grabbedObject != null && handTarget.grabbedHandle != null) { - handTarget.SetPose1(handTarget.grabbedHandle.pose); - } - } - - public static void CopyRigToFingerTargets(HandTarget handTarget) { - UpdateCurlValues(handTarget); - } - - public static void UpdateCurlValues(HandTarget handTarget) { - handTarget.fingers.thumb.GetCurl(handTarget); - handTarget.fingers.thumb.GetSwing(); - handTarget.fingers.index.GetCurl(handTarget); - handTarget.fingers.index.GetSwing(); - handTarget.fingers.middle.GetCurl(handTarget); - handTarget.fingers.middle.GetSwing(); - handTarget.fingers.ring.GetCurl(handTarget); - handTarget.fingers.ring.GetSwing(); - handTarget.fingers.little.GetCurl(handTarget); - handTarget.fingers.little.GetSwing(); - } - - public static void UpdateTargetCurlValues(HandTarget handTarget) { - handTarget.fingers.thumb.GetTargetCurl(handTarget); - handTarget.fingers.thumb.GetSwing(); - handTarget.fingers.index.GetTargetCurl(handTarget); - handTarget.fingers.index.GetSwing(); - handTarget.fingers.middle.GetTargetCurl(handTarget); - handTarget.fingers.middle.GetSwing(); - handTarget.fingers.ring.GetTargetCurl(handTarget); - handTarget.fingers.ring.GetSwing(); - handTarget.fingers.little.GetTargetCurl(handTarget); - handTarget.fingers.little.GetSwing(); - } - - #endregion - - public float GetFingerCurl(Finger fingerID) { - return allFingers[(int)fingerID].CalculateCurl();//curl; - } - - public void AddFingerCurl(Finger fingerID, float curlValue) { - allFingers[(int)fingerID].curl += curlValue; - } - - public void SetFingerCurl(Finger fingerID, float curlValue) { - allFingers[(int)fingerID].curl = curlValue; - } - - public enum FingerGroup { - AllButIndex, - FingersButIndex, - AllFingers - } - public void SetFingerGroupCurl(FingerGroup fingerGroupID, float curlValue) { - switch (fingerGroupID) { - case FingerGroup.AllButIndex: - SetFingerCurl(Finger.Thumb, curlValue); - SetFingerCurl(Finger.Middle, curlValue); - SetFingerCurl(Finger.Ring, curlValue); - SetFingerCurl(Finger.Little, curlValue); - break; - case FingerGroup.FingersButIndex: - SetFingerCurl(Finger.Middle, curlValue); - SetFingerCurl(Finger.Ring, curlValue); - SetFingerCurl(Finger.Little, curlValue); - break; - case FingerGroup.AllFingers: - SetFingerCurl(Finger.Index, curlValue); - SetFingerCurl(Finger.Middle, curlValue); - SetFingerCurl(Finger.Ring, curlValue); - SetFingerCurl(Finger.Little, curlValue); - break; - } - } - - public void DetermineFingerCurl() { - CopyRigToFingerTargets(handTarget); - } - - public void DetermineFingerCurl(Finger fingerID) { - allFingers[(int)fingerID].CalculateCurl(); - } - - public static Transform GetFingerBone(HandTarget handTarget, Finger finger, FingerBones bone) { - return GetFingerBone(handTarget.humanoid.avatarRig, handTarget.isLeft, finger, bone); - } - - public static Transform GetFingerBone(Animator rig, bool isLeft, Finger finger, FingerBones bone) { - if (rig == null) - return null; - - int offset = 0; - if (isLeft) - offset = 24; - else - offset = 39; - - offset += (int)finger * 3 + (int)bone; - - return rig.GetBoneTransform((HumanBodyBones)offset); - } - - #region DrawRigs - public void DrawTargetRig(HandTarget handTarget) { - DrawFingerTargetRig(handTarget, thumb); - DrawFingerTargetRig(handTarget, index); - DrawFingerTargetRig(handTarget, middle); - DrawFingerTargetRig(handTarget, ring); - DrawFingerTargetRig(handTarget, little); - } - - private void DrawFingerTargetRig(HandTarget handTarget, TargetedFinger finger) { - if (handTarget == null) - return; - - if (finger.proximal.target != null) - HumanoidTarget.DrawTarget(finger.proximal.target.confidence, finger.proximal.target.transform, handTarget.outward, 0.03F); - if (finger.intermediate.target != null) - HumanoidTarget.DrawTarget(finger.intermediate.target.confidence, finger.intermediate.target.transform, handTarget.outward, 0.02F); - if (finger.distal.target != null) - HumanoidTarget.DrawTarget(finger.distal.target.confidence, finger.distal.target.transform, handTarget.outward, 0.02F); - } - - public void DrawAvatarRig(HandTarget handTarget) { - DrawFingerAvatarRig(handTarget, thumb); - DrawFingerAvatarRig(handTarget, index); - DrawFingerAvatarRig(handTarget, middle); - DrawFingerAvatarRig(handTarget, ring); - DrawFingerAvatarRig(handTarget, little); - } - - private void DrawFingerAvatarRig(HandTarget handTarget, TargetedFinger finger) { - if (finger.proximal.bone.transform != null) - Debug.DrawRay(finger.proximal.bone.transform.position, finger.proximal.bone.targetRotation * handTarget.outward * finger.proximal.bone.length, Color.cyan); - if (finger.intermediate.bone.transform != null) - Debug.DrawRay(finger.intermediate.bone.transform.position, finger.intermediate.bone.targetRotation * handTarget.outward * finger.intermediate.bone.length, Color.cyan); - if (finger.distal.bone.transform != null) - Debug.DrawRay(finger.distal.bone.transform.position, finger.distal.bone.targetRotation * handTarget.outward * finger.distal.bone.length, Color.cyan); - } - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs.meta deleted file mode 100644 index 280b136..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/FingersTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 57047f37667ef1c4997b266a5e8fb62e -timeCreated: 1506233678 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs deleted file mode 100644 index fafe266..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs +++ /dev/null @@ -1,1011 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - public enum LegBones { - UpperLeg, - LowerLeg, - Foot, - Toes - } - - /// - /// \ref HumanoidControl "Humanoid Control" options for leg related things - /// - /// - /// \image html FootTargetInspector.png - /// - /// Sensors - /// ======= - /// See the list of - /// supported devices - /// to get information on the hand target of each device. - /// - /// Configuration - /// ============= - /// Bones - /// ----- - /// For Mecanim compatible avatars, the correct bones are detected automatically. - /// For other avatars, the correct bone Transforms can be assigned manually using the Bone parameters. - /// It is also possible to override the default bones from Mecanim with your own choice - /// by manual assignment of the bone. To return to the default bone, - /// it is sufficient to clear the applicable Bone parameter. - /// For the thumb and finger bones, only the first, proximal bone is needed, - /// other child bones will be detected automatically. - /// - /// Limits - /// ------ - /// For the arm bones, it is possible to configure the limits of movement. The maximum angle can be set when - /// Joint Limitations is enabled. - /// - /// Settings - /// ======== - /// * \ref FootTarget::rotationSpeedLimitation "Rotation Speed Limitation" - /// * \ref FootTarget::slidePrevention "Slide Prevention" - /// - /// Events - /// ====== - /// * \ref FootTarget::groundEvent "Ground Event" - /// - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_foot_target.html")] - public class FootTarget : HumanoidTarget { - public bool isLeft; - public Side side; - - public FootTarget() { - upperLeg = new TargetedUpperLegBone(this); - lowerLeg = new TargetedLowerLegBone(this); - foot = new TargetedFootBone(this); - toes = new TargetedToesBone(this); - } - - public FootTarget otherFoot; - - public LegMovements legMovements = new LegMovements(); - - #region Limitations - /// - /// Limits the maximum rotation speed of the joints. - /// - /// This can result in more natural movements with optical tracking solutions. - public bool rotationSpeedLimitation = false; - - public const float maxUpperLegAngle = 120; - public const float maxLowerLegAngle = 130; - public const float maxFootAngle = 50; - public const float maxToesAngle = 30; - - // for future use - public static readonly Vector3 minLeftUpperLegAngles = new Vector3(-130, -45, -50); - public static readonly Vector3 maxLeftUpperLegAngles = new Vector3(30, 40, 30); - public static readonly Vector3 minRightUpperLegAngles = new Vector3(-130, -40, -30); - public static readonly Vector3 maxRightUpperLegAngles = new Vector3(30, 45, 50); - - public static readonly Vector3 minLeftLowerLegAngles = new Vector3(-15, float.NaN, float.NaN); - public static readonly Vector3 maxLeftLowerLegAngles = new Vector3(130, float.NaN, float.NaN); - public static readonly Vector3 minRightLowerLegAngles = new Vector3(-15, float.NaN, float.NaN); - public static readonly Vector3 maxRightLowerLegAngles = new Vector3(130, float.NaN, float.NaN); - - public static readonly Vector3 minLeftFootAngles = new Vector3(-45, 0, -30); - public static readonly Vector3 maxLeftFootAngles = new Vector3(70, 0, 20); - public static readonly Vector3 minRightFootAngles = new Vector3(-45, 0, -20); - public static readonly Vector3 maxRightFootAngles = new Vector3(50, 0, 30); - - public static readonly Vector3 minLeftToesAngles = new Vector3(-70, float.NaN, float.NaN); - public static readonly Vector3 maxLeftToesAngles = new Vector3(45, float.NaN, float.NaN); - public static readonly Vector3 minRightToesAngles = new Vector3(-70, float.NaN, float.NaN); - public static readonly Vector3 maxRightToesAngles = new Vector3(45, float.NaN, float.NaN); - #endregion - - #region Sensors - - public LegAnimator legAnimator = new LegAnimator(); - public override Passer.Sensor animator { get { return legAnimator; } } - -#if hSTEAMVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - public ViveTrackerLeg viveTracker = new ViveTrackerLeg(); -#endif -#if hNEURON - public PerceptionNeuronLeg neuron = new PerceptionNeuronLeg(); -#endif -#if hKINECT1 - public Kinect1Leg kinect1 = new Kinect1Leg(); -#endif -#if hKINECT2 - public Kinect2Foot kinect2 = new Kinect2Foot(); -#endif -#if hKINECT4 - public Kinect4Leg kinect4 = new Kinect4Leg(); -#endif -#if hORBBEC - public AstraLeg astra = new AstraLeg(); -#endif -#if hOPTITRACK - public OptitrackLeg optitrack = new OptitrackLeg(); -#endif -#if hANTILATENCY - public AntilatencyLeg antilatency = new AntilatencyLeg(); -#endif -#if hCUSTOM - public CustomLeg custom = new CustomLeg(); -#endif - - private Humanoid.LegSensor[] sensors; - - public override void InitSensors() { - if (sensors == null) { - sensors = new LegSensor[] { - legAnimator, -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - viveTracker, -#endif -#if hKINECT1 - kinect1, -#endif -#if hKINECT2 - kinect2, -#endif -#if hKINECT4 - kinect4, -#endif -#if hORBBEC - astra, -#endif -#if hNEURON - neuron, -#endif -#if hOPTITRACK - optitrack, -#endif -#if hANTILATENCY - antilatency, -#endif -#if hCUSTOM - custom, -#endif - }; - } - } - - public override void StartSensors() { - for (int i = 0; i < sensors.Length; i++) - sensors[i].Start(humanoid, transform); - } - - protected override void UpdateSensors() { - for (int i = 0; i < sensors.Length; i++) - sensors[i].Update(); - } - - #endregion - - #region SubTargets - - public override TargetedBone main { - get { return foot; } - } - - #region UpperLeg - - public TargetedUpperLegBone upperLeg; - - [System.Serializable] - public class TargetedUpperLegBone : TargetedBone { - private FootTarget footTarget; - - public TargetedUpperLegBone(FootTarget footTarget) : base(footTarget.lowerLeg) { - this.footTarget = footTarget; - } - - public override void Init() { - parent = footTarget.humanoid.hipsTarget.hips; - nextBone = footTarget.lowerLeg; - - boneId = footTarget.isLeft ? Bone.LeftUpperLeg : Bone.RightUpperLeg; - - if (footTarget.isLeft) { - bone.minAngles = minLeftUpperLegAngles; - bone.maxAngles = maxLeftUpperLegAngles; - } - else { - bone.minAngles = minRightUpperLegAngles; - bone.maxAngles = maxRightUpperLegAngles; - } - } - - public override Quaternion DetermineRotation() { - Vector3 direction = footTarget.lowerLeg.bone.transform.position - bone.transform.position; - - Vector3 humanoidForward = footTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.forward; - Quaternion rotation = Quaternion.LookRotation(direction, humanoidForward) * Quaternion.Euler(-90, 0, 0); - return rotation; - } - - public override float GetTension() { - Quaternion restRotation = footTarget.humanoid.hipsTarget.hips.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - - #endregion - - #region LowerLeg - public TargetedLowerLegBone lowerLeg; - - [System.Serializable] - public class TargetedLowerLegBone : TargetedBone { - private FootTarget footTarget; - - public TargetedLowerLegBone(FootTarget footTarget) : base(footTarget.foot) { - this.footTarget = footTarget; - } - - public override void Init() { - parent = footTarget.upperLeg; - nextBone = footTarget.foot; - - boneId = footTarget.isLeft ? Bone.LeftLowerLeg : Bone.RightLowerLeg; - - if (footTarget.isLeft) { - bone.minAngles = minLeftLowerLegAngles; - bone.maxAngles = maxLeftLowerLegAngles; - } - else { - bone.minAngles = minRightLowerLegAngles; - bone.maxAngles = maxRightLowerLegAngles; - } - } - - public override Quaternion DetermineRotation() { - Vector3 direction = footTarget.foot.bone.transform.position - bone.transform.position; - Vector3 humanoidForward = footTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.forward; - Quaternion rotation = Quaternion.LookRotation(direction, humanoidForward) * Quaternion.Euler(-90, 0, 0); - return rotation; - } - - public override float GetTension() { - Quaternion restRotation = footTarget.upperLeg.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - - } - } - #endregion - - #region Foot - public TargetedFootBone foot; - - [System.Serializable] - public class TargetedFootBone : TargetedBone { - private FootTarget footTarget; - - public TargetedFootBone(FootTarget footTarget) : base(footTarget.toes) { - this.footTarget = footTarget; - } - - public override void Init() { - parent = footTarget.lowerLeg; - nextBone = footTarget.toes; - - boneId = footTarget.isLeft ? Bone.LeftFoot : Bone.RightFoot; - - if (footTarget.isLeft) { - bone.minAngles = minLeftFootAngles; - bone.maxAngles = maxLeftFootAngles; - } - else { - bone.minAngles = minRightFootAngles; - bone.maxAngles = maxRightFootAngles; - } - } - - public override Quaternion DetermineRotation() { - if (footTarget.humanoid.transform == null) - return Quaternion.identity; - - Vector3 humanoidUp = footTarget.humanoid.up; - if (footTarget.toes.bone.transform != null) { - Vector3 direction = footTarget.toes.bone.transform.position - bone.transform.position; - - Quaternion rotation = Quaternion.LookRotation(direction, humanoidUp); - bone.baseRotation = Quaternion.Inverse(footTarget.humanoid.transform.rotation) * rotation; - } - float humanoidRotation = footTarget.humanoid.hipsTarget.hips.bone.targetRotation.eulerAngles.y; - Quaternion footRotation = Quaternion.AngleAxis(humanoidRotation, humanoidUp); - return footRotation; - } - - public override float GetTension() { - Quaternion restRotation = footTarget.lowerLeg.bone.targetRotation; // * Quaternion.AngleAxis(90, Vector3.right); - float tension = GetTension(restRotation, this); - return tension; - } - - protected override void DetermineBasePosition() { - if (target.basePosition.sqrMagnitude != 0) - // Base Position is already determined - return; - - Transform basePositionReference = GetBasePositionReference(); - target.basePosition = basePositionReference.InverseTransformPoint(target.transform.position); - } - - public override Vector3 TargetBasePosition() { - Transform basePositionReference = GetBasePositionReference(); - Vector3 basePosition = basePositionReference.TransformPoint(target.basePosition); - return basePosition; - } - - private Transform GetBasePositionReference() { - return footTarget.humanoid.transform; - } - - } - #endregion - - #region Toes - public TargetedToesBone toes; - - [System.Serializable] - public class TargetedToesBone : TargetedBone { - private FootTarget footTarget; - - public TargetedToesBone(FootTarget footTarget) { - this.footTarget = footTarget; - } - - public override void Init() { - parent = footTarget.foot; - nextBone = null; - - boneId = footTarget.isLeft ? Bone.LeftToes : Bone.RightToes; - - if (footTarget.isLeft) { - bone.minAngles = minLeftToesAngles; - bone.maxAngles = maxLeftToesAngles; - } - else { - bone.minAngles = minRightToesAngles; - bone.maxAngles = maxRightToesAngles; - } - } - - public override float GetTension() { - Quaternion restRotation = footTarget.foot.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - - } - - public override Quaternion DetermineRotation() { - if (footTarget.humanoid.transform != null) { - float humanoidRotation = footTarget.humanoid.hipsTarget.hips.bone.targetRotation.eulerAngles.y; - Quaternion toesRotation = Quaternion.AngleAxis(humanoidRotation, footTarget.humanoid.up); - return toesRotation; - } - else - return Quaternion.identity; - } - } - #endregion - - protected void InitSubTargets() { - upperLeg.Init(); - lowerLeg.Init(); - foot.Init(); - toes.Init(); - } - - private void SetTargetPositionsToAvatar() { - upperLeg.SetTargetPositionToAvatar(); - lowerLeg.SetTargetPositionToAvatar(); - foot.SetTargetPositionToAvatar(); - toes.SetTargetPositionToAvatar(); - } - - private void DoMeasurements() { - upperLeg.DoMeasurements(); - lowerLeg.DoMeasurements(); - foot.DoMeasurements(); - toes.DoMeasurements(); - } - - public Bone GetBoneId(bool isLeft, LegBones armBone) { - if (isLeft) { - switch (armBone) { - case LegBones.UpperLeg: - return Bone.LeftUpperLeg; - case LegBones.LowerLeg: - return Bone.LeftLowerLeg; - case LegBones.Foot: - return Bone.LeftFoot; - case LegBones.Toes: - return Bone.LeftToes; - } - } - else { - switch (armBone) { - case LegBones.UpperLeg: - return Bone.RightUpperLeg; - case LegBones.LowerLeg: - return Bone.RightLowerLeg; - case LegBones.Foot: - return Bone.RightFoot; - case LegBones.Toes: - return Bone.RightToes; - } - } - return Bone.None; - } - - public TargetedBone GetTargetBone(LegBones boneID) { - switch (boneID) { - case LegBones.UpperLeg: - return upperLeg; - case LegBones.LowerLeg: - return lowerLeg; - case LegBones.Foot: - return foot; - case LegBones.Toes: - return toes; - default: - return null; - } - } - - #endregion - - #region Configuration - - public virtual void ClearBones() { - upperLeg.bone.transform = null; - lowerLeg.bone.transform = null; - foot.bone.transform = null; - toes.bone.transform = null; - } - - public override Transform GetDefaultTarget(HumanoidControl humanoid) { - Transform targetTransform = null; - GetDefaultBone(humanoid.targetsRig, ref targetTransform, isLeft ? HumanBodyBones.LeftFoot : HumanBodyBones.RightFoot); - return targetTransform; - } - - // Do not remove this, this is dynamically called from Target_Editor! - public static FootTarget CreateTarget(FootTarget oldTarget) { - HumanoidControl humanoid = oldTarget.humanoid; - - GameObject targetObject = new GameObject(); - if (oldTarget.isLeft) - targetObject.name = "Left Foot Target"; - else - targetObject.name = "Right Foot Target"; - Transform targetTransform = targetObject.transform; - - targetTransform.parent = humanoid.transform; - targetTransform.position = oldTarget.transform.position; - targetTransform.rotation = oldTarget.transform.rotation; - - FootTarget footTarget = Constructor(humanoid, oldTarget.isLeft, targetTransform); - if (footTarget.isLeft) - humanoid.leftFootTarget = footTarget; - else - humanoid.rightFootTarget = footTarget; - - footTarget.RetrieveBones(); - footTarget.InitAvatar(); - footTarget.MatchTargetsToAvatar(); - - return footTarget; - } - - // Do not remove this, this is dynamically called from Target_Editor! - // Changes the target transform used for this head target - // Generates a new headtarget component, so parameters will be lost if transform is changed - public static FootTarget SetTarget(HumanoidControl humanoid, Transform targetTransform, bool isLeft) { - FootTarget currentFootTarget = isLeft ? humanoid.leftFootTarget : humanoid.rightFootTarget; - if (targetTransform == currentFootTarget.transform) - return currentFootTarget; - - GetDefaultBone(humanoid.targetsRig, ref targetTransform, isLeft ? HumanBodyBones.LeftFoot : HumanBodyBones.RightFoot); - if (targetTransform == null) - return currentFootTarget; - - FootTarget footTarget = targetTransform.GetComponent(); - if (footTarget == null) - footTarget = targetTransform.gameObject.AddComponent(); - - if (isLeft) - humanoid.leftFootTarget = footTarget; - else - humanoid.rightFootTarget = footTarget; - - footTarget.NewComponent(humanoid); - - return footTarget; - } - - public void RetrieveBones() { - upperLeg.RetrieveBones(humanoid); - lowerLeg.RetrieveBones(humanoid); - foot.RetrieveBones(humanoid); - toes.RetrieveBones(humanoid); - } - - #endregion - - #region Settings - - public bool jointLimitations = true; - /// - /// Prevents movement of the foot when it is on the ground. - /// - public bool slidePrevention = false; - public bool physics = true; - - public void ShowControllers(bool shown) { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length - 1; i++) - sensors[i].ShowSensor(this, shown); - } - - #endregion - - #region Events - - /// - /// Use to call functions based on the foot touching the ground. - /// - public GameObjectEventHandlers groundEvent = new GameObjectEventHandlers() { - id = 1, - label = "Ground Event", - tooltip = - "Call function based on ground standing\n" + - "Parameter: the ground object", - eventTypeLabels = new string[] { - "Never", - "On Grounded", - "On not Grounded", - "While Grounded", - "While not Grounded", - "When Ground Changes", - "Always" - }, - fromEventLabel = "ground.gameObject" - }; - - protected virtual void UpdateEvents() { - if (ground == null) - groundEvent.value = null; - else - groundEvent.value = ground.gameObject; - } - #endregion - - #region Ground - public Transform ground; - // the ground on which the foot is standing, == null when the foot is not on the ground - public Vector3 groundNormal = Vector3.up; - // the normal of the ground on which the foot in standing - public Vector3 groundTranslation = Vector3.zero; - // the amount the ground moved since last update - public float groundDistance = 0; - // the distance to the ground - - #region private - [HideInInspector] - private Transform lastGround; - [HideInInspector] - private Vector3 lastGroundPosition = Vector3.zero; - - private void CheckGroundMovement() { - if (ground != null && ground == lastGround && lastGroundPosition.sqrMagnitude != 0) { - groundTranslation = ground.position - lastGroundPosition; - } - else { - groundTranslation = Vector3.zero; - } - - lastGround = ground; - if (ground != null) - lastGroundPosition = ground.position; - else - lastGroundPosition = Vector3.zero; - } - #endregion - #endregion - - public float soleThicknessFoot; - public float soleThicknessToes; - - #region Init - public static bool IsInitialized(HumanoidControl humanoid) { - if (humanoid.leftFootTarget == null || humanoid.leftFootTarget.humanoid == null) - return false; - if (humanoid.rightFootTarget == null || humanoid.rightFootTarget.humanoid == null) - return false; - if (humanoid.leftFootTarget.foot.target.transform == null || humanoid.leftFootTarget.foot.target.transform == null) - return false; - if (humanoid.leftFootTarget.foot.bone.transform == null && humanoid.rightFootTarget.foot.bone.transform == null) - return false; - return true; - } - private void Reset() { - humanoid = GetHumanoid(); - if (humanoid == null) - return; - - NewComponent(humanoid); - - upperLeg.bone.maxAngle = maxUpperLegAngle; - lowerLeg.bone.maxAngle = maxLowerLegAngle; - foot.bone.maxAngle = maxFootAngle; - toes.bone.maxAngle = maxToesAngle; - } - - private HumanoidControl GetHumanoid() { - // This does not work for prefabs - HumanoidControl[] humanoids = FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) { - if ((humanoids[i].leftFootTarget != null && humanoids[i].leftFootTarget.transform == this.transform) || - (humanoids[i].rightFootTarget != null && humanoids[i].rightFootTarget.transform == this.transform)) { - - return humanoids[i]; - } - } - - return null; - } - - public override void InitAvatar() { - InitSubTargets(); - - otherFoot = isLeft ? humanoid.rightFootTarget : humanoid.leftFootTarget; - - upperLeg.DoMeasurements(); - lowerLeg.DoMeasurements(); - foot.DoMeasurements(); - toes.DoMeasurements(); -#if pCEREBELLUM - Cerebellum_InitAvatar(); -#endif - } - -#if pCEREBELLUM - - private void Cerebellum_InitAvatar() { - Bone boneId; - ICerebellumJoint cJoint; - - boneId = GetBoneId(isLeft, LegBones.UpperLeg); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = upperLeg.bone.transform.position; - cJoint.orientation = upperLeg.bone.transform.rotation; - - boneId = GetBoneId(isLeft, LegBones.LowerLeg); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = lowerLeg.bone.transform.position; - cJoint.orientation = lowerLeg.bone.transform.rotation; - - boneId = GetBoneId(isLeft, LegBones.Foot); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = foot.bone.transform.position; - cJoint.orientation = foot.bone.transform.rotation; - - boneId = GetBoneId(isLeft, LegBones.Toes); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = toes.bone.transform.position; - cJoint.orientation = toes.bone.transform.rotation; - } - -#endif - - private static FootTarget Constructor(HumanoidControl humanoid, bool isLeft, Transform targetTransform) { - FootTarget footTarget = targetTransform.gameObject.AddComponent(); - footTarget.humanoid = humanoid; - footTarget.isLeft = isLeft; - footTarget.side = isLeft ? Side.Left : Side.Right; - footTarget.otherFoot = isLeft ? humanoid.rightFootTarget : humanoid.leftFootTarget; - - footTarget.InitSubTargets(); - return footTarget; - } - - public override void NewComponent(HumanoidControl _humanoid) { - humanoid = _humanoid; - isLeft = (this == humanoid.leftFootTarget); - - otherFoot = isLeft ? humanoid.rightFootTarget : humanoid.leftFootTarget; - - InitComponent(); - } - - public override void InitComponent() { - if (humanoid == null) - return; - - InitSubTargets(); - RetrieveBones(); - - // We need to do this before the measurements - SetTargetPositionsToAvatar(); - DoMeasurements(); - } - - public override void StartTarget() { - side = isLeft ? Side.Left : Side.Right; - - InitSensors(); - - if (foot.bone.transform != null) - soleThicknessFoot = foot.bone.transform.position.y - humanoid.transform.position.y; - else - soleThicknessFoot = foot.target.transform.position.y - humanoid.transform.position.y; - - if (toes.bone.transform != null && ground != null) - soleThicknessToes = toes.bone.transform.position.y - humanoid.transform.position.y; - else - soleThicknessToes = soleThicknessFoot; - - legMovements.Start(humanoid, this); - } - - public bool IsInTPose() { - if (foot.bone.transform != null) { - float d; - Ray upper2foot = new Ray(upperLeg.bone.transform.position, foot.bone.transform.position - upperLeg.bone.transform.position); - - // Vertical? (needs adjustments for mini avatars) - if (Mathf.Abs(upper2foot.direction.x) > 0.1F || - Mathf.Abs(upper2foot.direction.z) > 0.1F) - return false; - - // All lined up? - d = Vectors.DistanceToRay(upper2foot, lowerLeg.bone.transform.position); - if (d > 0.05F) - return false; - - // Leg stretched? - d = Vector3.Distance(upperLeg.bone.transform.position, foot.bone.transform.position); - if (d < upperLeg.bone.length - 0.05F) - return false; - - return true; - } - else - return false; - } - - /// - /// Checks whether the humanoid has a FootTarget - /// and adds one if none has been found - /// - /// The humanoid to check - /// Is this the left foot? - public static void DetermineTarget(HumanoidControl humanoid, bool isLeft) { - FootTarget footTarget = isLeft ? humanoid.leftFootTarget : humanoid.rightFootTarget; - - if (footTarget == null && humanoid.targetsRig != null) { - Transform footTargetTransform = humanoid.targetsRig.GetBoneTransform(isLeft ? HumanBodyBones.LeftFoot : HumanBodyBones.RightFoot); - if (footTargetTransform == null) { - Debug.LogError("Could not find foot bone in targets rig"); - return; - } - - footTarget = footTargetTransform.GetComponent(); - if (footTarget == null) { - footTarget = Constructor(humanoid, isLeft, footTargetTransform); - } - } - - if (isLeft) - humanoid.leftFootTarget = footTarget; - else - humanoid.rightFootTarget = footTarget; - } - - public override void MatchTargetsToAvatar() { - upperLeg.MatchTargetToAvatar(); - lowerLeg.MatchTargetToAvatar(); - foot.MatchTargetToAvatar(); - - if (main.target.transform && transform != null) { - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(transform.position, main.target.transform.position); - if (targetDistance > 0.001F) - transform.position = main.target.transform.position; - } - else - transform.position = main.target.transform.position; - - transform.rotation = main.target.transform.rotation; - } - - toes.MatchTargetToAvatar(); - } - - #endregion - - #region Update - - public override void UpdateTarget() { - upperLeg.target.confidence = Confidence.none; - lowerLeg.target.confidence = Confidence.none; - foot.target.confidence = Confidence.none; - - UpdateSensors(); - - CheckGroundMovement(); - if (slidePrevention) - SlidePrevention(); - foot.CalculateVelocity(); - -#if pCEREBELLUM - SetTargets(); -#endif - UpdateEvents(); - } - -#if pCEREBELLUM - private void SetTargets() { - SetTargetTransform(LegBones.UpperLeg, upperLeg.target); - SetTargetTransform(LegBones.LowerLeg, lowerLeg.target); - SetTargetTransform(LegBones.Foot, foot.target); - SetTargetTransform(LegBones.Toes, toes.target); - } - - private void SetTargetTransform(LegBones legBone, TargetTransform target) { - if (humanoid.cerebellum == null || target.transform == null) - return; - - Bone boneId = GetBoneId(isLeft, legBone); - ICerebellumTarget cTarget = humanoid.cerebellum.GetTarget(boneId); - cTarget.SetPosition(target.transform.position, target.confidence.position); - cTarget.SetOrientation(target.transform.rotation, target.confidence.rotation); - } -#endif - - public override void UpdateMovements(HumanoidControl humanoid) { - if (humanoid == null || !humanoid.calculateBodyPose) - return; - - LegMovements.Update(this); -#if pCEREBELLUM - if (isLeft) { - if (humanoid.cerebellum != null) { - ICerebellumJoint cJoint; - - cJoint = humanoid.cerebellum.GetJoint(Bone.LeftUpperLeg); - upperLeg.bone.transform.rotation = cJoint.orientation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.LeftLowerLeg); - lowerLeg.bone.transform.rotation = cJoint.orientation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.LeftFoot); - foot.bone.transform.rotation = cJoint.orientation; - } - } -#endif - } - - public override void CopyTargetToRig() { - if (Application.isPlaying && - humanoid.animatorEnabled && humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (foot.target.transform == null || transform == foot.target.transform) - return; - - if (foot.target.transform != null && transform != foot.target.transform) { - foot.target.transform.position = transform.position; - foot.target.transform.rotation = transform.rotation; - } -#if pCEREBELLUM - SetTargets(); -#endif - } - - public override void CopyRigToTarget() { - if (foot.target.transform == null || transform == foot.target.transform) - return; - - if (!Application.isPlaying && foot.bone.transform != null) { - float targetDistance = Vector3.Distance(foot.bone.transform.position, foot.target.transform.position); - if (targetDistance < 0.001F) - return; - } - - transform.position = foot.target.transform.position; - transform.rotation = foot.target.transform.rotation; - } - - public void UpdateSensorsFromTarget() { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) - sensors[i].UpdateSensorTransformFromTarget(this.transform); - } - - #endregion - - #region Ground - public void CheckGrounded() { - if (foot.target.transform == null) - return; - - Vector3 checkStartPosition = foot.target.transform.position - (soleThicknessFoot - humanoid.stepOffset) * humanoid.up; - - groundDistance = humanoid.GetDistanceToGroundAt(checkStartPosition, humanoid.stepOffset * 1.2F, out ground, out groundNormal); - groundDistance += humanoid.stepOffset; - if (groundDistance < -0.02F) - ground = null; - //else - //groundDistance = 0; - } - #endregion - - #region SlidePrevention - Vector3 lastPosition; - private void SlidePrevention() { - Vector3 localPosition = foot.target.transform.position - humanoid.transform.position; - if (ground == null) { - // Foot is not on the ground - lastPosition = localPosition; - return; - } - bool isStandingLeg = true; - if (otherFoot.ground != null && otherFoot.foot.target.transform.position.y < foot.target.transform.position.y) - // Other foot is also on the ground, but it is lower, so that foot should not slide - isStandingLeg = false; - - Vector3 delta = new Vector3(localPosition.x - lastPosition.x, 0, localPosition.z - lastPosition.z); - float slideDistance = delta.magnitude; - if (slideDistance > 0.001F && slideDistance < 0.15F) { - if (foot.target.confidence.position > 0 && - foot.target.confidence.position >= humanoid.hipsTarget.hips.target.confidence.position && - foot.target.confidence.position >= humanoid.headTarget.head.target.confidence.position && - isStandingLeg) { - - // We are sliding on the ground with this leg, move the humanoid in opposite direction - humanoid.transform.position -= delta; - } - else { - // Move the foot in the opposite direction - foot.target.transform.position -= delta; - } - } - lastPosition = localPosition; - } - #endregion - - #region DrawRigs - - protected override void DrawTargetRig(HumanoidControl humanoid) { - if (this != humanoid.leftFootTarget && this != humanoid.rightFootTarget) - return; - - DrawTarget(upperLeg.target.confidence, upperLeg.target.transform, Vector3.down, upperLeg.target.length); - DrawTarget(lowerLeg.target.confidence, lowerLeg.target.transform, Vector3.down, lowerLeg.target.length); - DrawTarget(foot.target.confidence, foot.target.transform, Vector3.forward, foot.target.length); - } - - protected override void DrawAvatarRig(HumanoidControl humanoid) { - if (this != humanoid.leftFootTarget && this != humanoid.rightFootTarget) - return; - - if (upperLeg.bone.transform != null) - DrawAvatarBone(upperLeg, Vector3.down); - if (lowerLeg.bone.transform != null) - DrawAvatarBone(lowerLeg, Vector3.down); - if (foot.bone.transform != null) - DrawAvatarBone(foot, Vector3.forward); - } - - #endregion - } -} diff --git a/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs.meta deleted file mode 100644 index 4af0914..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/FootTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: eb3310a2943ad7741b6c53520f451c91 -timeCreated: 1456860319 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs deleted file mode 100644 index 583304d..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs +++ /dev/null @@ -1,2014 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -#if pCEREBELLUM -using System.Runtime.InteropServices; -#endif - -namespace Passer.Humanoid { - using Passer.Tracking; - using Passer.Humanoid.Tracking; - - public enum ArmBones { - Hand, - Forearm, - UpperArm, - Shoulder - } - - public enum HandBones { - ThumbProximal = 0, - ThumbIntermediate = 1, - ThumbDistal = 2, - IndexProximal = 3, - IndexIntermediate = 4, - IndexDistal = 5, - MiddleProximal = 6, - MiddleIntermediate = 7, - MiddleDistal = 8, - RingProximal = 9, - RingIntermediate = 10, - RingDistal = 11, - LittleProximal = 12, - LittleIntermediate = 13, - LittleDistal = 14, - LastHandBone = 15 - } - - /// - /// \ref HumanoidControl "Humanoid Control" options for hand-related things - /// - /// - /// \image html HandTargetInspector.png - /// - /// Sensors - /// ======= - /// See the list of - /// supported devices - /// to get information on the hand target of each device. - /// - /// Sub Targets - /// =========== - /// Thumb and Finger Curl - /// --------------------- - /// The current curl value of the thumb and/or fingers is found here. - /// It is possible to control the curl value of a finger of thumb directly using the slider during play if it is not directly controlled by input or hand poses. If it is controlled by input, the current curl value can be seen here. - /// - /// Configuration - /// ============= - /// Bones - /// ----- - /// For Mecanim compatible avatars, the correct bones are detected automatically. - /// For other avatars, the correct bone Transforms can be assigned manually using the Bone parameters. - /// It is also possible to override the default bones from Mecanim with your own choice - /// by manual assignment of the bone. To return to the default bone, - /// it is sufficient to clear the applicable Bone parameter. - /// For the thumb and finger bones, only the first, proximal bone is needed, - /// other child bones will be detected automatically. - /// - /// Limits - /// ------ - /// For the arm bones, it is possible to configure the limits of movement. The maximum angle can be set when - /// Joint Limitations is enabled. - /// - /// Hand Pose - /// ========= - /// Shows the currently detected hand pose. - /// More information on hand poses can be found - /// here. - /// - /// Settings - /// ======== - /// * \ref HandTarget::showRealObjects "Show Real Objects" - /// * \ref HandTarget::rotationSpeedLimitation "Rotation Speed Limitation" - /// * \ref HandTarget::touchInteraction "Touch Interaction" - /// * \ref HandTarget::physics "Physics" - /// * \ref HandTarget::strength "Strength" - /// - /// Events - /// ====== - /// * \ref HandTarget::poseEvent "Pose Event" - /// * \ref HandTarget::touchEvent "Touch Event" - /// * \ref HandTarget::grabEvent "Grab Event" - /// - /// Buttons - /// ======= - /// * Add \ref Passer::InteractionPointer "Interaction Pointer": - /// Adds a interaction pointer to the hand target. - /// For more information about interaction see - /// Interaction, Event System and UI. - /// * Add \ref Passer::Teleporter "Teleporter": Adds a preconfigured interaction pointer - /// to the hand target which can teleport the avatar by pointing to new positions. - [System.Serializable] - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_hand_target.html")] - public partial class HandTarget : HumanoidTarget { - public HandTarget() { - shoulder = new TargetedShoulderBone(this); - upperArm = new TargetedUpperArmBone(this); - forearm = new TargetedForearmBone(this); - hand = new TargetedHandBone(this); - subTargets = new TargetedBone[] { - shoulder, - upperArm, - forearm, - hand - }; - - fingers = new FingersTarget(this); - } - -#if pCEREBELLUM - [System.NonSerialized] - private Cerebellum.Arm arm; -#endif - /// - /// Is this the left hand? - /// - public bool isLeft; - /// - /// Left or right hand side hand - /// - public Side side; - /// - /// Vector pointing toward the outward direction of the hand. - /// In general this is the index finger pointing direction - /// - public Vector3 outward; - /// - /// Vector3 pointing toward the up direction of the hand. - /// This is the opposite side of the palm of the hand - /// - public Vector3 up; - - public FingersTarget fingers = null; - - #region Limitations - - /// - /// Limits the maximum rotation speed of the joints. - /// This can result in more natural movements with optical tracking solutions. - /// - public bool rotationSpeedLimitation = false; - - public const float maxShoulderAngle = 30; - public const float maxUpperArmAngle = 120; - public const float maxForearmAngle = 130; - public const float maxHandAngle = 100; - - // for future use - public static readonly Vector3 minLeftShoulderAngles = new Vector3(0, 0, -45); - public static readonly Vector3 maxLeftShoulderAngles = new Vector3(0, 45, 0); - public static readonly Vector3 minRightShoulderAngles = new Vector3(0, -45, 0); - public static readonly Vector3 maxRightShoulderAngles = new Vector3(0, 0, 45); - - public static readonly Vector3 minLeftUpperArmAngles = new Vector3(-180, -45, -180); - public static readonly Vector3 maxLeftUpperArmAngles = new Vector3(60, 130, 45); - public static readonly Vector3 minRightUpperArmAngles = new Vector3(-180, -130, -45); - public static readonly Vector3 maxRightUpperArmAngles = new Vector3(60, 45, 180); - - public static readonly Vector3 minLeftForearmAngles = new Vector3(0, 0, 0); - public static readonly Vector3 maxLeftForearmAngles = new Vector3(0, 150, 0); - public static readonly Vector3 minRightForearmAngles = new Vector3(0, -150, 0); - public static readonly Vector3 maxRightForearmAngles = new Vector3(0, 0, 0); - - public static readonly Vector3 minLeftHandAngles = new Vector3(-180, -50, -70); - public static readonly Vector3 maxLeftHandAngles = new Vector3(90, 20, 90); - public static readonly Vector3 minRightHandAngles = new Vector3(-90, -20, -70); - public static readonly Vector3 maxRightHandAngles = new Vector3(45, 50, 70); - #endregion - - #region Sensors - -#if pUNITYXR - public UnityXRController unity; -#endif - - private ArmPredictor armPredictor = new ArmPredictor(); - public ArmAnimator armAnimator = new ArmAnimator(); - public override Passer.Sensor animator { get { return armAnimator; } } - -#if pUNITYXR - public UnityXRHand unityXR = new UnityXRHand(); -#endif -#if hSTEAMVR && UNITY_STANDALONE_WIN -#if hVIVETRACKER - public ViveTrackerArm viveTracker = new ViveTrackerArm(); -#endif -#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - public WindowsMRHand mixedReality = new WindowsMRHand(); -#endif -#if hWAVEVR - public WaveVRHand waveVR = new WaveVRHand(); -#endif -#if hVRTK - public VrtkHand vrtk = new VrtkHand(); -#endif -#if hNEURON - public NeuronHand neuron = new NeuronHand(); -#endif -#if hLEAP - public LeapHand leap = new LeapHand(); -#endif -#if hKINECT1 - public Kinect1Arm kinect1 = new Kinect1Arm(); -#endif -#if hKINECT2 - public Kinect2Arm kinect2 = new Kinect2Arm(); -#endif -#if hKINECT4 - public Kinect4Arm kinect4 = new Kinect4Arm(); -#endif -#if hORBBEC - public AstraArm astra = new AstraArm(); -#endif -#if hHYDRA - public RazerHydraHand hydra = new RazerHydraHand(); -#endif -#if hOPTITRACK - public OptitrackArm optitrack = new OptitrackArm(); -#endif -#if hANTILATENCY - public AntilatencyHand antilatency = new AntilatencyHand(); -#endif -#if hHI5 - public Hi5Hand hi5 = new Hi5Hand(); -#endif -#if hCUSTOM - public CustomArm custom = new CustomArm(); -#endif - - protected ArmSensor[] sensors; - protected List sensorComponents = new List(); - protected List trackedRigidbodies = new List(); - - /// - /// Is this hand currently using hand tracking? - /// - public bool isTrackingHand { get; protected set; } - - /*! \cond PRIVATE */ - - public override void InitSensors() { - if (sensors == null) { - sensors = new Humanoid.ArmSensor[] { - armPredictor, - armAnimator, -#if pUNITYXR - unityXR, -#endif -#if hMINDSTORMS - mindstormsHand, -#endif -#if hHYDRA - hydra, -#endif -#if hLEAP - leap, -#endif -#if hKINECT1 - kinect1, -#endif -#if hKINECT2 - kinect2, -#endif -#if hKINECT4 - kinect4, -#endif -#if hORBBEC - astra, -#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - mixedReality, -#endif -#if hWAVEVR - waveVR, -#endif -#if hSTEAMVR && UNITY_STANDALONE_WIN -#if hVIVETRACKER - viveTracker, -#endif -#endif - -#if hVRTK - vrtk, -#endif -#if hREALSENSE - //realsenseHand, -#endif -#if hNEURON - neuron, -#endif -#if hOPTITRACK - optitrack, -#endif -#if hANTILATENCY - antilatency, -#endif -#if hHI5 - hi5, -#endif -#if hCUSTOM - custom, -#endif - }; - } - } - - public override void StartSensors() { - for (int i = 0; i < sensors.Length; i++) { - if (sensors[i] != null) - sensors[i].Start(humanoid, this.transform); - } - } - - protected override void UpdateSensors() { - for (int i = 0; i < sensors.Length; i++) { - if (sensors[i] != null) - sensors[i].Update(); - } - isTrackingHand = -#if hLEAP - (leap.handSkeleton != null && leap.handSkeleton.status == Tracker.Status.Tracking) | -#endif -#if pUNITYXR && (hOCHAND || hVIVEHAND) - (unityXR.handSkeleton != null && unityXR.handSkeleton.status == Tracker.Status.Tracking) | -#endif - false; - } - - public override void StopSensors() { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) { - if (sensors[i] != null) - sensors[i].Stop(); - } - } - - public void ShowSensors(bool shown, bool refresh = false) { - if (sensors == null) - InitSensors(); - - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) { - if (refresh) - sensors[i].RefreshSensor(); - sensors[i].ShowSensor(shown); - } - } - - public void AddSensorComponent(SensorComponent sensorComponent) { - sensorComponents.Add(sensorComponent); - } - - protected void RemoveSensorComponent(SensorComponent sensorComponent) { - sensorComponents.Remove(sensorComponent); - } - - public void AddTrackedRigidbody(TrackedRigidbody trackedRigidbody) { - trackedRigidbodies.Add(trackedRigidbody); - } - - public void RemoveTrackedRigidbody(TrackedRigidbody trackedRigidbody) { - trackedRigidbodies.Remove(trackedRigidbody); - } - - /*! \endcond */ - - #endregion - - #region SubTargets - - public override TargetedBone main { - get { return hand; } - } - public Transform stretchlessTarget; - private readonly TargetedBone[] subTargets; - - #region Shoulder - - public TargetedShoulderBone shoulder; - - [System.Serializable] - public class TargetedShoulderBone : TargetedBone { - private HandTarget handTarget; - - public TargetedShoulderBone(HandTarget handTarget) : base(handTarget.upperArm) { - this.handTarget = handTarget; - bone.jointLimitations = true; - } - - public override void Init() { - if (handTarget.humanoid == null || handTarget.humanoid.hipsTarget == null) - parent = null; - else - parent = (handTarget.humanoid.hipsTarget.chest.bone.transform != null) ? - (TargetedBone)handTarget.humanoid.hipsTarget.chest : - (TargetedBone)handTarget.humanoid.hipsTarget.hips; - - nextBone = handTarget.upperArm; - - boneId = handTarget.isLeft ? Bone.LeftShoulder : Bone.RightShoulder; - - bone.maxAngle = maxShoulderAngle; - if (handTarget.isLeft) { - bone.minAngles = minLeftShoulderAngles; - bone.maxAngles = maxLeftShoulderAngles; - } - else { - bone.minAngles = minRightShoulderAngles; - bone.maxAngles = maxRightShoulderAngles; - } - } - - public override Quaternion DetermineRotation() { - Quaternion torsoRotation; - if (handTarget.humanoid.hipsTarget.chest.bone.transform != null) - torsoRotation = Quaternion.LookRotation(handTarget.humanoid.hipsTarget.chest.bone.targetRotation * Vector3.forward, handTarget.humanoid.up); - else - torsoRotation = Quaternion.LookRotation(handTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.forward, handTarget.humanoid.up); - - Vector3 shoulderOutwardDirection = handTarget.upperArm.bone.transform.position - bone.transform.position; - - Quaternion shoulderRotation = Quaternion.LookRotation(shoulderOutwardDirection, Vector3.up) * Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up); - bone.baseRotation = Quaternion.Inverse(torsoRotation) * shoulderRotation; - return shoulderRotation; - } - - public override float GetTension() { - if (parent == null) - return 0; - - Quaternion restRotation = parent.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - - #endregion - - #region UpperArm - - public TargetedUpperArmBone upperArm; - - [System.Serializable] - public class TargetedUpperArmBone : TargetedBone { - private HandTarget handTarget; - - public TargetedUpperArmBone(HandTarget handTarget) : base(handTarget.forearm) { - this.handTarget = handTarget; - } - - public override void Init() { - parent = handTarget.shoulder; - nextBone = handTarget.forearm; - - boneId = handTarget.isLeft ? Bone.LeftUpperArm : Bone.RightUpperArm; - - bone.maxAngle = maxUpperArmAngle; - if (handTarget.isLeft) { - bone.minAngles = minLeftUpperArmAngles; - bone.maxAngles = maxLeftUpperArmAngles; - } - else { - bone.minAngles = minRightUpperArmAngles; - bone.maxAngles = maxRightUpperArmAngles; - } - } - - public override Quaternion DetermineRotation() { - Vector3 upperArmBoneDirection = (handTarget.forearm.bone.transform.position - bone.transform.position).normalized; - - // Because we do upperarm before forearm, we need to ensure the forearm rotation is already calculated - Quaternion forearmRotation = handTarget.forearm.DetermineRotation(); - Vector3 upperArmUp = ArmMovements.CalculateUpperArmUp(forearmRotation); - - Quaternion rotation = Quaternion.LookRotation(upperArmBoneDirection, upperArmUp); - if (handTarget.isLeft) - return rotation * Quaternion.Euler(0, 90, 0); - else - return rotation * Quaternion.Euler(0, -90, 0); - } - - public override float GetTension() { - Quaternion restRotation = handTarget.shoulder.bone.targetRotation * Quaternion.AngleAxis(handTarget.isLeft ? 45 : -45, Vector3.forward); - float tension = GetTension(restRotation, this); - return tension; - } - } - - #endregion - - #region Forearm - public TargetedForearmBone forearm; - - [System.Serializable] - public class TargetedForearmBone : TargetedBone { - private HandTarget handTarget; - - public TargetedForearmBone(HandTarget handTarget) : base(handTarget.hand) { - this.handTarget = handTarget; - } - - public override void Init() { - parent = handTarget.upperArm; - nextBone = handTarget.hand; - - boneId = handTarget.isLeft ? Bone.LeftForearm : Bone.RightForearm; - - bone.maxAngle = maxForearmAngle; - if (handTarget.isLeft) { - bone.minAngles = minLeftForearmAngles; - bone.maxAngles = maxLeftForearmAngles; - } - else { - bone.minAngles = minRightForearmAngles; - bone.maxAngles = maxRightForearmAngles; - } - } - - public override Quaternion DetermineRotation() { - if (handTarget.hand.bone.transform == null) - return Quaternion.identity; - - Vector3 forearmBoneDirection = (handTarget.hand.bone.transform.position - bone.transform.position).normalized; - Vector3 upperArmBoneDirection = (bone.transform.position - handTarget.upperArm.bone.transform.position).normalized; - float angle = Vector3.Angle(upperArmBoneDirection, forearmBoneDirection); - Vector3 rotationAxis = angle > 10 ? Vector3.Cross(upperArmBoneDirection, forearmBoneDirection) : handTarget.humanoid.up; - if (angle > 10) { - if (handTarget.isLeft) - return Quaternion.LookRotation(forearmBoneDirection, rotationAxis) * Quaternion.Euler(0, 90, 0); - else - return Quaternion.LookRotation(forearmBoneDirection, -rotationAxis) * Quaternion.Euler(0, -90, 0); - } - else { - if (handTarget.isLeft) - return Quaternion.LookRotation(forearmBoneDirection, handTarget.humanoid.up) * Quaternion.Euler(0, 90, 0); - else - return Quaternion.LookRotation(forearmBoneDirection, handTarget.humanoid.up) * Quaternion.Euler(0, -90, 0); - } - } - - public override float GetTension() { - if (handTarget.upperArm.bone.transform == null) - return 0; - - Quaternion restRotation = handTarget.upperArm.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - #endregion - - #region Hand - - public TargetedHandBone hand; - - [System.Serializable] - public class TargetedHandBone : TargetedBone { - private HandTarget handTarget; - - public TargetedHandBone(HandTarget handTarget) { - this.handTarget = handTarget; - } - - public override void Init() { - parent = handTarget.forearm; - - boneId = handTarget.isLeft ? Bone.LeftHand : Bone.RightHand; - - bone.maxAngle = maxHandAngle; - if (handTarget.isLeft) { - bone.minAngles = minLeftHandAngles; - bone.maxAngles = maxLeftHandAngles; - } - else { - bone.minAngles = minRightHandAngles; - bone.maxAngles = maxRightHandAngles; - } - } - - public override Quaternion DetermineRotation() { - Vector3 outward = handTarget.HandBoneOutwardAxis(); - Vector3 right = handTarget.HandBoneRightAxis(); - Vector3 up = Vector3.Cross(outward, right); - - if (handTarget.isLeft) - return Quaternion.LookRotation(outward, up) * Quaternion.Euler(0, 90, 0); - else - return Quaternion.LookRotation(outward, up) * Quaternion.Euler(0, -90, 0); - } - - public override float GetTension() { - if (handTarget.forearm.bone.transform == null) - return 0; - - Quaternion restRotation = handTarget.forearm.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - - protected override void DetermineBasePosition() { - if (target.basePosition.sqrMagnitude != 0) - // Base Position is already determined - return; - - Transform basePositionReference = GetBasePositionReference(); - target.basePosition = basePositionReference.InverseTransformPoint(target.transform.position); - } - - public override Vector3 TargetBasePosition() { - Transform basePositionReference = GetBasePositionReference(); - return basePositionReference.TransformPoint(target.basePosition); - } - - private Transform GetBasePositionReference() { - return handTarget.humanoid.headTarget.neck.target.transform; - } - - public override void CalculateVelocity() { - if (handTarget.grabSocket == null) - return; - - if (lastTime > 0 && lastRotation != Quaternion.identity && Time.time > lastTime) { - float deltaTime = Time.time - lastTime; - - Vector3 newVelocity = (handTarget.grabSocket.transform.position - lastPosition) / deltaTime; - // velocity = newVelocity - // velocity smoothing - velocity = velocity * 0.5F + (newVelocity * 0.5F); - - Quaternion deltaRotation = handTarget.grabSocket.transform.rotation * Quaternion.Inverse(lastRotation); - float angle; - Vector3 axis; - deltaRotation.ToAngleAxis(out angle, out axis); - angle *= Mathf.Deg2Rad; - angularVelocity = angle * axis / Time.deltaTime; - } - - lastTime = Time.time; - lastPosition = handTarget.grabSocket.transform.position; - lastRotation = handTarget.grabSocket.transform.rotation; - } - } - - #endregion - - private void InitSubTargets() { - //foreach (TargetedBone subTarget in subTargets) - // subTarget.Init(); - shoulder.Init(); - upperArm.Init(); - forearm.Init(); - hand.Init(); - } - - private void SetTargetPositionsToAvatar() { - hand.SetTargetPositionToAvatar(); - forearm.SetTargetPositionToAvatar(); - upperArm.SetTargetPositionToAvatar(); - shoulder.SetTargetPositionToAvatar(); - } - - private void DoMeasurements() { - hand.DoMeasurements(); - forearm.DoMeasurements(); - upperArm.DoMeasurements(); - shoulder.DoMeasurements(); - } - - public override Transform GetDefaultTarget(HumanoidControl humanoid) { - Transform targetTransform = null; - if (humanoid != null) - GetDefaultBone(humanoid.targetsRig, ref targetTransform, isLeft ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand); - return targetTransform; - } - - // Do not remove this, this is dynamically called from Target_Editor! - public static HandTarget CreateTarget(HandTarget oldTarget) { - HumanoidControl humanoid = oldTarget.humanoid; - - GameObject targetObject = new GameObject(); - if (oldTarget.isLeft) - targetObject.name = "Left Hand Target"; - else - targetObject.name = "Right Hand Target"; - Transform targetTransform = targetObject.transform; - - targetTransform.parent = humanoid.transform; - targetTransform.position = oldTarget.transform.position; - targetTransform.rotation = oldTarget.transform.rotation; - - HandTarget handTarget = Constructor(humanoid, oldTarget.isLeft, targetTransform); - if (oldTarget.isLeft) { - humanoid.leftHandTarget = handTarget; - //handTarget.otherHand = humanoid.rightHandTarget; - } - else { - humanoid.rightHandTarget = handTarget; - //handTarget.otherHand = humanoid.leftHandTarget; - } - - handTarget.RetrieveBones(); - handTarget.InitAvatar(); - handTarget.MatchTargetsToAvatar(); - - return handTarget; - } - - // Do not remove this, this is dynamically called from Target_Editor! - // Changes the target transform used for this head target - // Generates a new headtarget component, so parameters will be lost if transform is changed - public static HandTarget SetTarget(HumanoidControl humanoid, Transform targetTransform, bool isLeft) { - HandTarget currentHandTarget = isLeft ? humanoid.leftHandTarget : humanoid.rightHandTarget; - if (targetTransform == currentHandTarget.transform) - return currentHandTarget; - - GetDefaultBone(humanoid.targetsRig, ref targetTransform, isLeft ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand); - if (targetTransform == null) - return currentHandTarget; - - HandTarget handTarget = targetTransform.GetComponent(); - if (handTarget == null) - handTarget = targetTransform.gameObject.AddComponent(); - - if (isLeft) - humanoid.leftHandTarget = handTarget; - else - humanoid.rightHandTarget = handTarget; - - handTarget.NewComponent(humanoid); - - return handTarget; - } - - public Bone GetBoneId(bool isLeft, ArmBones armBone) { - if (isLeft) { - switch (armBone) { - case ArmBones.Hand: - return Bone.LeftHand; - case ArmBones.Forearm: - return Bone.LeftForearm; - case ArmBones.UpperArm: - return Bone.LeftUpperArm; - case ArmBones.Shoulder: - return Bone.LeftShoulder; - } - } - else { - switch (armBone) { - case ArmBones.Hand: - return Bone.RightHand; - case ArmBones.Forearm: - return Bone.RightForearm; - case ArmBones.UpperArm: - return Bone.RightUpperArm; - case ArmBones.Shoulder: - return Bone.RightShoulder; - } - } - return Bone.None; - } - - public TargetedBone GetTargetBone(ArmBones boneID) { - switch (boneID) { - case ArmBones.Hand: - return hand; - case ArmBones.Forearm: - return forearm; - case ArmBones.UpperArm: - return upperArm; - case ArmBones.Shoulder: - return shoulder; - default: - return null; - } - } - - #endregion - - #region Configuration - - public static void ClearBones(HandTarget handTarget) { - handTarget.handMovements.ReattachHand(); - handTarget.shoulder.bone.transform = null; - handTarget.upperArm.bone.transform = null; - handTarget.forearm.bone.transform = null; - handTarget.hand.bone.transform = null; - handTarget.ClearHandBones(); - } - - private void ClearHandBones() { - fingers.thumb.proximal.bone.transform = null; - fingers.index.proximal.bone.transform = null; - fingers.middle.proximal.bone.transform = null; - fingers.ring.proximal.bone.transform = null; - fingers.little.proximal.bone.transform = null; - } - - public void RetrieveBones() { - foreach (TargetedBone subTarget in subTargets) - subTarget.RetrieveBones(humanoid); - - fingers.RetrieveBones(this); - } - - #endregion - - #region Settings - //public bool jointLimitations = true; - - public enum PoseMethod { - Position, - Rotation - } - public PoseMethod poseMethod; - - //public override bool showRealObjects { - // get { return base.showRealObjects; } - // set { - // if (value != base.showRealObjects) { - // base.showRealObjects = value; - // ShowSensors(value); - // } - // } - //} - - /// - /// Enables physics for this hand - /// - /// See Physics. - public bool physics = true; - public AdvancedHandPhysics.PhysicsMode physicsMode = AdvancedHandPhysics.PhysicsMode.HybridKinematic; - /// - /// The strength of the arm when interacting with physics - /// - public float strength = 100; - /* Replaced by grabbingType - /// - /// Enables grabbing of objects - /// - public bool grabbing = true; - */ - /// - /// Grabbing techniques - /// - public enum GrabbingTechnique { - TouchGrabbing, ///< try to grab the object when you touch it and you close the hand - NearGrabbing, ///< try to grab an object near to your hand when you close the hand - NoGrabbing, ///< do not try to grab objects when you close the hand - } - /// - /// The GrabbingType used to grab objects - /// - public GrabbingTechnique grabbingTechnique = GrabbingTechnique.TouchGrabbing; - /// - /// Enables touch interaction with the envrionment - /// - /// See Interaction - public bool touchInteraction = true; - - #endregion - - #region Poses - - [System.NonSerialized] - public Pose detectedPose; - public int detectedPoseIx { get; protected set; } - - public PoseMixer poseMixer = new PoseMixer(); - public void SetPose1(Pose pose) { - showRealObjects = true; - poseMixer.SetPoseValue(pose, 1); - } - public void SetPose(Pose pose, float weight) { - poseMixer.SetPoseValue(pose, weight); - } - - #endregion - - #region Interaction - - /// - /// The Socket for holding objects with the whole hand - /// - public HandSocket grabSocket; - /// - /// The Socket for holding objects between the thumb and index finger - /// - public Socket pinchSocket; - - [System.NonSerialized] - public InteractionModule inputModule; - - [System.NonSerialized] - public GameObject touchedObject = null; - public GameObject grabbedPrefab; - public GameObject grabbedObject; - public Handle grabbedHandle = null; - public Vector3 targetToHandle; - - public bool grabbedRigidbody; - public bool grabbedKinematicRigidbody; - public List colliders; - - public bool twoHandedGrab = false; - public Vector3 targetToSecondaryHandle; - - public bool GrabbedStaticObject() { - if (grabbedObject != null && grabbedRigidbody && grabbedKinematicRigidbody) - return true; - - return (grabbedObject != null && !grabbedRigidbody); - } - - public static void TmpDisableCollisions(HandTarget handTarget, float duration) { - handTarget.StartCoroutine(TmpDisableCollisions(handTarget.hand.bone.transform.gameObject, duration)); - } - - private static IEnumerator TmpDisableCollisions(GameObject handObj, float duration) { - HandMovements.SetAllColliders(handObj, false); - yield return new WaitForSeconds(duration); - HandMovements.SetAllColliders(handObj, true); - } - - #endregion - - #region Events - - /// - /// Use to call functions based on the defined poses of the hand. - /// - public IntEventHandlers poseEvent = new IntEventHandlers() { - id = 1, - label = "Pose Event", - tooltip = - "Call functions based on recognized poses" + - "Parameter: the index of the recognized pose", - eventTypeLabels = new string[] { - "Never", - "On Pose Recognized", - "On No Pose Recongnized", - "While Pose Recognized", - "While No Pose Recognized", - "When Pose Changes", - "Always", - }, - fromEventLabel = "poseMixer.detectedPoseIx", - }; - /// - /// Use to call functions based on the hand touching objects - /// - public GameObjectEventHandlers touchEvent = new GameObjectEventHandlers() { - id = 2, - label = "Touch Event", - tooltip = - "Call funtions based on touched objects" + - "Parameter: the touched object", - eventTypeLabels = new string[] { - "Never", - "On Touch Start", - "On Touch End", - "While Touching", - "While not Touching", - "On Touched Object Changes", - "Always", - }, - fromEventLabel = "touchedObject", - }; - /// - /// Use to call functions based on the hand grabbing objects - /// - public GameObjectEventHandlers grabEvent = new GameObjectEventHandlers() { - id = 3, - label = "Grab Event", - tooltip = - "Call functions based on grabbed objects" + - "Parameter: the grabbed object", - eventTypeLabels = new string[] { - "Never", - "On Grab Start", - "On Grab End", - "While Holding Object", - "While not Holding Object", - "On Grabbed Object Changes", - "Always", - }, - fromEventLabel = "grabbedObject", - }; - - protected virtual void UpdateEvents() { - detectedPoseIx = poseMixer.detectedPoseIx; - detectedPose = poseMixer.detectedPose; - - poseEvent.value = detectedPoseIx; - touchEvent.value = touchedObject; - grabEvent.value = grabbedObject; - } - - #endregion - - public Transform handPalm; - public Rigidbody handRigidbody; - - public AdvancedHandPhysics handPhysics; - - public HandMovements handMovements = new HandMovements(); - public ArmMovements armMovements = new ArmMovements(); - - public HandTarget otherHand { - get { - return isLeft ? humanoid.rightHandTarget : humanoid.leftHandTarget; - } - } - - private Vector3 _localPalmPosition = Vector3.zero; - public Vector3 localPalmPosition { - get { - if (_localPalmPosition == Vector3.zero) - CalculatePalm(); - return _localPalmPosition; - } - } - private Quaternion localPalmRotation = Quaternion.identity; - private void CalculatePalm() { - Transform indexFingerBone = fingers.index.proximal.bone.transform; - Transform middleFingerBone = fingers.middle.proximal.bone.transform; - - // Determine position - if (indexFingerBone) - _localPalmPosition = (indexFingerBone.position - hand.bone.transform.position) * 0.9F + new Vector3(0, 0, 0); - else if (middleFingerBone) - _localPalmPosition = (middleFingerBone.position - hand.bone.transform.position) * 0.9F + new Vector3(0, 0, 0); - else - _localPalmPosition = new Vector3(0.1F, 0, 0); - - Vector3 handPalmPosition = hand.bone.transform.position + _localPalmPosition; - - Vector3 handUp = hand.bone.targetRotation * Vector3.up; - Vector3 handForward = Vector3.zero; - - if (indexFingerBone) - handForward = indexFingerBone.position - handPalmPosition; - else if (middleFingerBone) - handForward = middleFingerBone.position - handPalmPosition; - else if (isLeft) - handForward = -humanoid.avatarRig.transform.right; - else - handForward = humanoid.avatarRig.transform.right; - - Quaternion worldPalmRotation = Quaternion.LookRotation(handForward, handUp); - localPalmRotation = Quaternion.Inverse(hand.target.transform.rotation) * worldPalmRotation; - _localPalmPosition = Quaternion.Inverse(hand.target.transform.rotation) * _localPalmPosition; - - // Now get it in the palm - if (isLeft) { - localPalmRotation *= Quaternion.Euler(0, -45, -90); - _localPalmPosition += localPalmRotation * new Vector3(0.02F, -0.04F, 0); - } - else { - localPalmRotation *= Quaternion.Euler(0, 45, 90); - _localPalmPosition += localPalmRotation * new Vector3(-0.02F, -0.04F, 0); - } - } - - public Vector3 palmPosition { - get { - //if (localPalmPosition.sqrMagnitude == 0) - // CalculatePalm(); - - Vector3 handPalmPosition = hand.bone.transform.position + hand.bone.targetRotation * localPalmPosition; - return handPalmPosition; - } - } - public Quaternion palmRotation { - get { - if (localPalmPosition.sqrMagnitude == 0) - CalculatePalm(); - - Quaternion handPalmRotation = hand.bone.targetRotation * localPalmRotation; - return handPalmRotation; - } - } - - - // index<->little - public Vector3 HandBoneRightAxis() { - if (fingers.index.proximal.bone.transform == null || fingers.little.proximal.bone.transform == null) - return isLeft ? Vector3.forward : Vector3.back; - - Transform indexFingerBone = fingers.index.proximal.bone.transform; - Transform littleFingerBone = fingers.little.proximal.bone.transform; - - if (indexFingerBone == null || littleFingerBone == null) - return Vector3.zero; - - Vector3 fingersDirection; - if (isLeft) - fingersDirection = (indexFingerBone.position - littleFingerBone.position).normalized; - else - fingersDirection = (littleFingerBone.position - indexFingerBone.position).normalized; - - return fingersDirection;//humanoid.transform.InverseTransformDirection(fingersDirection); - } - - public Vector3 HandBoneOutwardAxis() { - Transform fingerBone = null; - //if (fingers.middleFinger != null && fingers.middleFinger.bones.Length > 0 && fingers.middleFinger.bones[0] != null) - if (fingers.middle.proximal.bone.transform != null) - fingerBone = fingers.middle.proximal.bone.transform; // middleFinger.bones[0]; - //else if (fingers.indexFinger != null && fingers.indexFinger.bones.Length > 0 && fingers.indexFinger.bones[0] != null) - else if (fingers.index.proximal.bone.transform != null) - fingerBone = fingers.index.proximal.bone.transform; // fingers.indexFinger.bones[0]; - - if (fingerBone == null) - return Vector3.forward; - - Vector3 outward = (fingerBone.position - hand.bone.transform.position).normalized; - return outward; - } - - #region Init - - public static bool IsInitialized(HumanoidControl humanoid) { - if (humanoid.leftHandTarget == null || humanoid.leftHandTarget.humanoid == null) - return false; - if (humanoid.leftHandTarget.hand.target.transform == null || humanoid.rightHandTarget.hand.target.transform == null) - return false; - if (humanoid.rightHandTarget == null || humanoid.rightHandTarget.humanoid == null) - return false; - return true; - } - - private void Reset() { - humanoid = GetHumanoid(); - if (humanoid == null) - return; - - //poses.poses = null; - NewComponent(humanoid); - - shoulder.bone.maxAngle = maxShoulderAngle; - upperArm.bone.maxAngle = maxUpperArmAngle; - forearm.bone.maxAngle = maxForearmAngle; - hand.bone.maxAngle = maxHandAngle; - } - - private HumanoidControl GetHumanoid() { - // This does not work for prefabs - HumanoidControl[] humanoids = FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) { - if ((humanoids[i].leftHandTarget != null && humanoids[i].leftHandTarget.transform == this.transform) || - (humanoids[i].rightHandTarget != null && humanoids[i].rightHandTarget.transform == this.transform)) { - - return humanoids[i]; - } - } - - return null; - } - - public void InitTarget() { - InitSensors(); - CheckRigidbody(); - if (grabSocket == null) - grabSocket = CreateGrabSocket(); - if (pinchSocket == null) - pinchSocket = CreatePinchSocket(); - } - - protected void CheckRigidbody() { - if (handRigidbody == null) { - if (hand.bone.transform == null) - return; - - handRigidbody = hand.bone.transform.GetComponent(); - if (handRigidbody == null) - handRigidbody = hand.bone.transform.gameObject.AddComponent(); - } - handRigidbody.mass = 1; - handRigidbody.drag = 0; - handRigidbody.angularDrag = 10; - handRigidbody.useGravity = false; - handRigidbody.isKinematic = true; - handRigidbody.interpolation = RigidbodyInterpolation.None; - handRigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative; - if (handPalm != null) - handRigidbody.centerOfMass = handPalm.position - hand.bone.transform.position; - - } - - public override void InitAvatar() { - InitSubTargets(); - - shoulder.DoMeasurements(); - upperArm.DoMeasurements(); - forearm.DoMeasurements(); - hand.DoMeasurements(); - - fingers.InitAvatar(); - - DeterminePalmPosition(); - if (Application.isPlaying) { - HandMovements.DetachHand(this); - } -#if pCEREBELLUM - RetrieveBoneTransforms(); -#endif - } - - // This function is called only when the humanoid is created - private static HandTarget Constructor(HumanoidControl humanoid, bool isLeft, Transform handTargetTransform) { - HandTarget handTarget = handTargetTransform.gameObject.AddComponent(); - handTarget.humanoid = humanoid; - handTarget.isLeft = isLeft; - handTarget.side = isLeft ? Side.Left : Side.Right; - handTarget.outward = handTarget.isLeft ? Vector3.left : Vector3.right; - - handTarget.InitSubTargets(); - return handTarget; - } - - public override void NewComponent(HumanoidControl _humanoid) { - humanoid = _humanoid; - isLeft = (this == humanoid.leftHandTarget); - if (isLeft) - outward = Vector3.left; - else - outward = Vector3.right; - - fingers.NewComponent(this); - - if (hand == null) - hand = new TargetedHandBone(this); - if (forearm == null) - forearm = new TargetedForearmBone(this); - if (upperArm == null) - upperArm = new TargetedUpperArmBone(this); - - //otherHand = isLeft ? humanoid.rightHandTarget : humanoid.leftHandTarget; - - InitComponent(); - } - - // This function is called every time the avatar is changed - public override void InitComponent() { - if (humanoid == null) - return; - - //bones = new TargetedBone[] { hand, forearm, upperArm, shoulder }; - //bonesReverse = new TargetedBone[] { hand, forearm, upperArm, shoulder }; - - InitSubTargets(); - //foreach (TargetedBone bone in bones) - // bone.Init(this); - - //RetrieveBones(); - - DeterminePalmPosition(); - - // We need to do this before the measurements - //foreach (TargetedBone bone in bones) - // bone.SetTargetPositionToAvatar(); - SetTargetPositionsToAvatar(); - //foreach (TargetedBone bone in bones) - // bone.DoMeasurements(); - DoMeasurements(); - - if (stretchlessTarget == null && hand.target.transform != null) { - stretchlessTarget = hand.target.transform.Find("Stretchless Target"); - if (stretchlessTarget == null) { - - GameObject stretchlessTargetObj = new GameObject("Stretchless Target"); - stretchlessTarget = stretchlessTargetObj.transform; - stretchlessTarget.parent = hand.target.transform; - stretchlessTarget.localPosition = Vector3.zero; - stretchlessTarget.localRotation = Quaternion.identity; - } - } - - //poses.InitPoses(fingers); - - } - - public override void StartTarget() { - side = isLeft ? Side.Left : Side.Right; - - InitSensors(); - - if (grabSocket == null) - grabSocket = CreateGrabSocket(); - if (pinchSocket == null) - pinchSocket = CreatePinchSocket(); - - //RetrieveBones(); - - //fingers.CalculateFingerRetargeting(); - - CheckColliders(); -#if hVRTK - // VRTK is not compatible with touch interaction - // because it uses its own EventSystem - // which will be destroyed by humanoid control - if (touchInteraction && !(humanoid.vrtk.enabled && vrtk.enabled)) -#else - if (touchInteraction) -#endif - StartInteraction(); - - - if (humanoid.avatarRig != null) { - Vector3 handRightAxis = HandBoneRightAxis(); - Vector3 handOutwardAxis = HandBoneOutwardAxis(); - up = Vector3.Cross(handOutwardAxis, handRightAxis); - } - - handMovements.Start(humanoid, this); - - if (humanoid.physics && physics && hand.bone.transform != null) - handPhysics = hand.bone.transform.GetComponent(); - } - - /// - /// Checks whether the humanoid has an HandTarget - /// and adds one if none has been found - /// - /// The humanoid to check - /// Is this the left hand? - public static void DetermineTarget(HumanoidControl humanoid, bool isLeft) { - HandTarget handTarget = isLeft ? humanoid.leftHandTarget : humanoid.rightHandTarget; - - if (handTarget == null && humanoid.targetsRig != null) { - Transform handTargetTransform = humanoid.targetsRig.GetBoneTransform(isLeft ? HumanBodyBones.LeftHand : HumanBodyBones.RightHand); - if (handTargetTransform == null) { - Debug.LogError("Could not find hand bone in targets rig"); - return; - } - - handTarget = handTargetTransform.GetComponent(); - if (handTarget == null) - handTarget = Constructor(humanoid, isLeft, handTargetTransform); - } - - if (isLeft) - humanoid.leftHandTarget = handTarget; - else - humanoid.rightHandTarget = handTarget; - } - -#if pCEREBELLUM - private void RetrieveBoneTransforms() { - Bone boneId; - ICerebellumJoint cJoint; - - boneId = GetBoneId(isLeft, ArmBones.Shoulder); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = shoulder.bone.transform.position; - cJoint.orientation = shoulder.bone.transform.rotation; - - boneId = GetBoneId(isLeft, ArmBones.UpperArm); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = upperArm.bone.transform.position; - cJoint.orientation = upperArm.bone.transform.rotation; - - boneId = GetBoneId(isLeft, ArmBones.Forearm); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = forearm.bone.transform.position; - cJoint.orientation = forearm.bone.transform.rotation; - - boneId = GetBoneId(isLeft, ArmBones.Hand); - cJoint = humanoid.cerebellum.GetJoint(boneId); - cJoint.position = hand.bone.transform.position; - cJoint.orientation = hand.bone.transform.rotation; - } -#endif - public override void MatchTargetsToAvatar() { - if (shoulder != null) - shoulder.MatchTargetToAvatar(); - if (upperArm != null) - upperArm.MatchTargetToAvatar(); - if (forearm != null) - forearm.MatchTargetToAvatar(); - MatchHandTargetToAvatar(); - -#if pCEREBELLUM - if (shoulder != null) - CopyBoneToTarget(ArmBones.Shoulder, shoulder); - if (upperArm != null) - CopyBoneToTarget(ArmBones.UpperArm, upperArm); - if (forearm != null) - CopyBoneToTarget(ArmBones.Forearm, forearm); - if (hand != null) - CopyBoneToTarget(ArmBones.Hand, hand); -#endif - - fingers.MatchTargetsToAvatar(); - } -#if pCEREBELLUM - public void CopyBoneToTarget(ArmBones armBone, TargetedBone bone) { - if (humanoid.cerebellum == null || bone == null) - return; - - Bone boneId = GetBoneId(isLeft, armBone); - ICerebellumTarget cTarget = humanoid.cerebellum.GetTarget(boneId); - cTarget.SetPosition(bone.target.transform.position, bone.target.confidence.position); - cTarget.SetOrientation(bone.target.transform.rotation, bone.target.confidence.rotation); - } -#endif - - //private void MatchHandTargetToAvatar() { - // if (hand == null) - // return; - - // //hand.DoMeasurements(); - // if (hand.bone.transform != null) { - // transform.position = hand.bone.transform.position; - // transform.rotation = hand.bone.targetRotation; - // if (hand.target.transform != null) { - // hand.target.transform.position = transform.position; - // hand.target.transform.rotation = transform.rotation; - // } - // } - //} - - private void MatchHandTargetToAvatar() { - if (hand == null) - return; - - //hand.DoMeasurements(); - if (hand.bone.transform == null) - return; - - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(hand.bone.transform.position, hand.target.transform.position); - if (targetDistance > 0.001F) - hand.target.transform.position = hand.bone.transform.position; - - float targetAngle = Quaternion.Angle(hand.bone.targetRotation, hand.target.transform.rotation); - if (targetAngle > 0.1F) - hand.target.transform.rotation = hand.bone.targetRotation; - } - else { - transform.position = hand.bone.transform.position; - transform.rotation = hand.bone.targetRotation; - } - - if (hand.target.transform != null) { - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(transform.position, hand.target.transform.position); - if (targetDistance > 0.001F) - hand.target.transform.position = transform.position; - } - else - hand.target.transform.position = transform.position; - hand.target.transform.rotation = transform.rotation; - - } - - //if (hand.target.transform != null) { - // if (!Application.isPlaying) { - // float targetDistance = Vector3.Distance(transform.position, hand.target.transform.position); - // if (targetDistance > 0.001F) - // hand.target.transform.position = transform.position; - // } - // else - // hand.target.transform.position = transform.position; - // hand.target.transform.rotation = transform.rotation; - //} - } - - private void MatchFingersToAvatar() { - - } - #endregion - - #region Update - - public bool grabbedChanged; - - public override void UpdateTarget() { - GameObject lastGrabbedObject = grabbedObject; - - // handRigidbody needs to be there to do proper grabbing - if (grabbingTechnique == GrabbingTechnique.NearGrabbing && handRigidbody != null && !otherHand.grabbedChanged) - NearGrabCheck(); - - grabbedChanged = (lastGrabbedObject != grabbedObject); - - hand.target.confidence.Degrade(); - forearm.target.confidence.Degrade(); - upperArm.target.confidence.Degrade(); - shoulder.target.confidence.Degrade(); - - UpdateSensors(); - - // Letting go leap does not work yet because curl values depend on - // bone rotations/ - // Set curl values from LeapHand? - // This gives problems with the remote humanoid thumb movements not being correct - //FingersTarget.UpdateTargetCurlValues(this); - - - // Override the hand pose when it is set - poseMixer.ShowPose(humanoid, isLeft ? Side.Left : Side.Right); - - if (!grabbedChanged && !otherHand.grabbedChanged) - CheckLetGo(); - -#if pCEREBELLUM - SetTargets(); -#endif - hand.CalculateVelocity(); - - UpdateEvents(); - } - -#if pCEREBELLUM - public void SetTargets() { - SetTargetOrientation(ArmBones.Shoulder, shoulder.target); - SetTargetOrientation(ArmBones.UpperArm, upperArm.target); - SetTargetOrientation(ArmBones.Forearm, forearm.target); - SetTargetOrientation(ArmBones.Hand, hand.target); - //targetPosition = handTarget.transform.position; - //targetRotation = handTarget.transform.rotation; - } - - private void SetTargetOrientation(ArmBones armBone, TargetTransform target) { - Bone boneId = GetBoneId(isLeft, armBone); - ICerebellumTarget cTarget = humanoid.cerebellum.GetTarget((sbyte)boneId); - cTarget.SetOrientation(target.transform.rotation, target.confidence.rotation); - } - -#endif - - protected void UpdateUsingTrackedRigidbody(TrackedRigidbody trackedRigidbody) { - Debug.Log("using trackedRigidbody"); - hand.target.transform.position = trackedRigidbody.transform.position; - hand.target.transform.rotation = trackedRigidbody.transform.rotation; - } - - protected void UpdateTwoHanded2() { - if (!twoHandedGrab) - return; - - Vector3 primaryHandlePosition = hand.target.transform.TransformPoint(targetToHandle); - Vector3 secondaryHandlePosition = hand.target.transform.TransformPoint(targetToSecondaryHandle); - - Vector3 secondarySocketPosition = otherHand.hand.target.transform.TransformPoint(otherHand.targetToHandle); - - Vector3 toSecondaryHandle = secondaryHandlePosition - primaryHandlePosition; - // toSecondaryHandle is not correct for the bow, because there the relative position of the handle - // changes when the bow is stretched. - Vector3 toSecondarySocket = secondarySocketPosition - primaryHandlePosition; - Debug.DrawLine(primaryHandlePosition, secondaryHandlePosition, Color.magenta); - Debug.DrawLine(primaryHandlePosition, secondarySocketPosition, Color.green); - - Quaternion rotation = Quaternion.FromToRotation(toSecondaryHandle, toSecondarySocket); - hand.target.transform.rotation = rotation * hand.target.transform.rotation; - - - // Check secondary arm stretching - Quaternion otherForeArmRotation = otherHand.forearm.bone.targetRotation; - Vector3 nostretchPosition = otherHand.forearm.bone.transform.position + otherForeArmRotation * otherHand.outward * otherHand.forearm.bone.length; - Vector3 delta = nostretchPosition - otherHand.hand.bone.transform.position; - - hand.target.transform.position += delta * 0.5F; - // This decreases the secondary arm stretch, but when the right hand is fully stretched too, it does not work - // because the stretchtarget (which I want to get rig of anyway) does not take this delta into account. - - } - - protected Vector3 Orthagonal(Transform primaryTransform, Transform secondaryTransform) { - Vector3 forwardDirection = secondaryTransform.position - primaryTransform.position; - Vector3 upDirection = primaryTransform.up; - float angle = Vector3.Angle(forwardDirection, upDirection); - if (angle == 0) - upDirection = primaryTransform.forward; - Debug.DrawRay(primaryTransform.position, forwardDirection); - Vector3 orthagonal = Vector3.Cross(upDirection, forwardDirection); - return orthagonal; - } - - public override void UpdateMovements(HumanoidControl humanoid) { - if (humanoid == null || !humanoid.calculateBodyPose) - return; - - UpdateTwoHanded2(); - - ArmMovements.Update(this); - HandMovements.Update(this); - FingerMovements.Update(this); -#if pCEREBELLUM - if (isLeft) { - //Debug.Log(forearm.target.transform.localPosition + " / " + humanoid.cerebellum.GetLocalJointPosition(Bone.LeftForearm)); - //Debug.Log(hand.target.transform.rotation.eulerAngles + " || " + humanoid.cerebellum.GetTargetOrientation(Bone.LeftHand).eulerAngles); - //Debug.Log(hand.bone.transform.rotation.eulerAngles + " -- " + humanoid.cerebellum.GetBoneOrientation(Bone.LeftHand).eulerAngles); - - //hand.bone.transform.rotation = humanoid.cerebellum.GetJointOrientation(Bone.LeftHand); - //forearm.bone.transform.rotation = humanoid.cerebellum.GetJointOrientation(Bone.LeftForearm); - //upperArm.bone.transform.rotation = humanoid.cerebellum.GetJointOrientation(Bone.LeftUpperArm); - //shoulder.bone.transform.rotation = humanoid.cerebellum.GetJointOrientation(Bone.LeftShoulder); - } - -#endif - } - - [HideInInspector] - public bool directFingerMovements = true; - public override void CopyTargetToRig() { - if (humanoid == null) - return; - - if (Application.isPlaying && - humanoid.animatorEnabled && humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (directFingerMovements) - FingersTarget.CopyFingerTargetsToRig(this); - - if (hand.target.transform == null || transform == hand.target.transform) - return; - - hand.target.transform.position = transform.position; - hand.target.transform.rotation = transform.rotation; -#if pCEREBELLUM - SetTargets(); -#endif - } - - public override void CopyRigToTarget() { - - if (hand.target.transform == null || transform == hand.target.transform) - return; - - if (!Application.isPlaying && hand.bone.transform != null) { - float targetDistance = Vector3.Distance(hand.bone.transform.position, hand.target.transform.position); - if (targetDistance < 0.001F) - return; - } - - if (hand.target.transform != null && transform != hand.target.transform) { - transform.position = hand.target.transform.position; - transform.rotation = hand.target.transform.rotation; - } - - //FingersTarget.CopyRigToFingerTargets(this); - //pose = HandPoses.DetermineHandPose(fingers, out poseConfidence); - - // Wierd place for this, but it needs the finger subtargets to work - if (humanoid != null && humanoid.avatarRig != null) { - FingerMovements.Update(this); - } - } - - public void UpdateSensorsFromTarget() { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) - sensors[i].UpdateSensorTransformFromTarget(this.transform); - } - - public float GetFingerCurl(Finger fingerID) { - return fingers.GetFingerCurl(fingerID); - } - public float GetFingerCurl(FingersTarget.TargetedFinger finger) { - return finger.CalculateCurl(); - } - - public void AddFingerCurl(Finger fingerID, float curlValue) { - fingers.AddFingerCurl(fingerID, curlValue); - } - - public void SetFingerCurl(Finger fingerID, float curlValue) { - fingers.SetFingerCurl(fingerID, curlValue); - } - - public void SetFingerGroupCurl(FingersTarget.FingerGroup fingerGroupID, float curlValue) { - fingers.SetFingerGroupCurl(fingerGroupID, curlValue); - } - - public void DetermineFingerCurl(Finger fingerID) { - fingers.DetermineFingerCurl(fingerID); - } - - public float HandCurl() { - - float middleCurl = fingers.middle.CalculateCurl(); - float ringCurl = fingers.ring.CalculateCurl(); - float littleCurl = fingers.little.CalculateCurl(); - - // Leave out index finger to prevent interference with pinching - //float indexCurl = fingers.index.CalculateCurl(); - //return indexCurl + middleCurl + ringCurl + littleCurl; - - return (middleCurl + ringCurl + littleCurl) / 3 * 4; - } - - #endregion - - #region DrawRigs - - protected override void DrawTargetRig(HumanoidControl humanoid) { - if (this != humanoid.leftHandTarget && this != humanoid.rightHandTarget) - return; - - if (shoulder != null) - DrawTargetBone(shoulder, outward); - if (upperArm != null) - DrawTargetBone(upperArm, outward); - if (forearm != null) - DrawTargetBone(forearm, outward); - if (hand != null) - DrawTargetBone(hand, outward); - - fingers.DrawTargetRig(this); - } - - protected override void DrawAvatarRig(HumanoidControl humanoid) { - if (this != humanoid.leftHandTarget && this != humanoid.rightHandTarget) - return; - - if (shoulder != null) - DrawAvatarBone(shoulder, outward); - if (upperArm != null) - DrawAvatarBone(upperArm, outward); - if (forearm != null) - DrawAvatarBone(forearm, outward); - if (hand != null) - DrawAvatarBone(hand, outward); - - fingers.DrawAvatarRig(this); - } - - #endregion - - #region Colliders - - private void CheckColliders() { - if (hand.bone.transform == null) - return; - - if (hand.bone.transform != null) { - Collider c = hand.bone.transform.GetComponent(); - // Does not work if the hand has grabbed an object with colliders... - if (c == null) - GenerateColliders(); - } - - } - - // assumes hand scale is uniform! - protected virtual void GenerateColliders() { - float unscale = 1 / hand.bone.transform.lossyScale.x; - - if (fingers.middle.proximal.bone.transform == null) - return; - - BoxCollider hc = hand.bone.transform.gameObject.AddComponent(); - hc.center = hand.bone.toTargetRotation * (isLeft ? new Vector3(-0.05F * unscale, 0, 0) : new Vector3(0.05F * unscale, 0, 0)); - Vector3 hcSize = hand.bone.toTargetRotation * new Vector3(0.1F * unscale, 0.03F * unscale, 0.05F * unscale); - - hc.size = new Vector3(Mathf.Abs(hcSize.x), Mathf.Abs(hcSize.y), Mathf.Abs(hcSize.z)); - - - // TO DO: thumb - for (int i = 1; i < 5; i++) { - FingersTarget.TargetedFinger finger = fingers.allFingers[i]; - - Transform proximal = finger.proximal.bone.transform; - if (proximal == null) - continue; - - Transform intermediate = finger.intermediate.bone.transform; - Transform distal = finger.distal.bone.transform; - - if (intermediate != null) { - Vector3 localIntermediatePosition = proximal.InverseTransformPoint(intermediate.position); - //Quaternion fingerRotation = Quaternion.FromToRotation(localIntermediatePosition, Vector3.forward); - float proximalLength = Vector3.Distance(proximal.position, intermediate.position); - - GameObject proximalColliderObj = new GameObject("Proximal Collider"); - proximalColliderObj.tag = this.gameObject.tag; - proximalColliderObj.layer = this.gameObject.layer; - proximalColliderObj.transform.parent = proximal; - proximalColliderObj.transform.localPosition = localIntermediatePosition / 2; - proximalColliderObj.transform.localRotation = Quaternion.LookRotation(localIntermediatePosition); - - CapsuleCollider cc = proximalColliderObj.AddComponent(); - cc.height = proximalLength * unscale; - cc.radius = 0.01F * unscale; - cc.direction = 2; // Z-axis - - if (distal != null) { - GameObject distalColliderObj = new GameObject("Distal Collider"); - distalColliderObj.tag = this.gameObject.tag; - distalColliderObj.layer = this.gameObject.layer; - distalColliderObj.transform.parent = distal; - distalColliderObj.transform.localPosition = localIntermediatePosition.normalized * 0.01F; - distalColliderObj.transform.localRotation = Quaternion.identity; - - SphereCollider sc = distalColliderObj.AddComponent(); - //sc.center = fingerRotation * new Vector3(0, 0, -0.01F * unscale); - sc.radius = 0.01F * unscale; - } - } - } - } - - #endregion - - public void Vibrate(float strength) { - for (int i = 0; i < sensors.Length; i++) - sensors[i].Vibrate(0.1F, strength); - } - } -} - -#if pCEREBELLUM -namespace Passer.Humanoid.Cerebellum { - [StructLayout(LayoutKind.Sequential)] - public struct Vec3 { - public float x; - public float y; - public float z; - - public Vec3(Vector3 v) { - x = v.x; - y = v.y; - z = v.z; - } - public Vector3 Vector3 { - get { return new Vector3(x, y, z); } - } - } - - [StructLayout(LayoutKind.Sequential)] - public struct Quat { - public float x; - public float y; - public float z; - public float w; - - public Quat(Quaternion q) { - x = q.x; - y = q.y; - z = q.z; - w = q.w; - } - public Quaternion Quaternion { - get { return new Quaternion(x, y, z, w); } - } - } - - public class Arm { - private System.IntPtr pArm; - - //public Arm() { - // pArm = Arm_Constructor(); - //} - //[DllImport("CerebellumH")] - //private static extern System.IntPtr Arm_Constructor(); - - //~Arm() { - // Arm_Destructor(pArm); - //} - //[DllImport("CerebellumH")] - //private static extern void Arm_Destructor(System.IntPtr pArm); - -#region Parameters - public bool isLeft { - get { return Arm_GetIsLeft(pArm); } - set { Arm_SetIsLeft(pArm, value); } - } - [DllImport("CerebellumH")] - private static extern bool Arm_GetIsLeft(System.IntPtr pArm); - [DllImport("CerebellumH")] - private static extern void Arm_SetIsLeft(System.IntPtr pArm, bool isLeft); - -#region Main Target - public Vector3 targetPosition { - get { return Arm_GetMainTargetPosition(pArm).Vector3; } - set { Arm_SetMainTargetPosition(pArm, new Vec3(value)); } - } - [DllImport("CerebellumH")] - private static extern Vec3 Arm_GetMainTargetPosition(System.IntPtr pArm); - [DllImport("CerebellumH")] - private static extern void Arm_SetMainTargetPosition(System.IntPtr pArm, Vec3 position); - - public Quaternion targetRotation { - get { return Arm_GetMainTargetRotation(pArm).Quaternion; } - set { Arm_SetMainTargetRotation(pArm, new Quat(value)); } - } - [DllImport("CerebellumH")] - private static extern Quat Arm_GetMainTargetRotation(System.IntPtr pArm); - [DllImport("CerebellumH")] - private static extern void Arm_SetMainTargetRotation(System.IntPtr pArm, Quat rotation); -#endregion - -#region Sub Target - public void SetTargetPosition(ArmBones boneId, Vector3 position) { - Arm_SetTargetPosition(pArm, (int)boneId, new Vec3(position)); - } - [DllImport("CerebellumH")] - private static extern void Arm_SetTargetPosition(System.IntPtr pArm, int boneId, Vec3 position); - - public Vector3 GetTargetPosition(ArmBones boneId) { - return Arm_GetTargetPosition(pArm, (int)boneId).Vector3; - } - [DllImport("CerebellumH")] - private static extern Vec3 Arm_GetTargetPosition(System.IntPtr pArm, int boneId); - - public void SetTargetRotation(ArmBones boneId, Quaternion rotation) { - Arm_SetTargetRotation(pArm, (int)boneId, new Quat(rotation)); - } - [DllImport("CerebellumH")] - private static extern void Arm_SetTargetRotation(System.IntPtr pArm, int boneId, Quat rotation); - - public Quaternion GetTargetRotation(ArmBones boneId) { - return Arm_GetTargetRotation(pArm, (int)boneId).Quaternion; - } - [DllImport("CerebellumH")] - private static extern Quat Arm_GetTargetRotation(System.IntPtr pArm, int boneId); -#endregion - -#region Bone - // Set Bone Position - public void SetBonePosition(ArmBones boneId, Vector3 position) { - Arm_SetBonePosition(pArm, (int)boneId, new Vec3(position)); - } - [DllImport("CerebellumH")] - private static extern void Arm_SetBonePosition(System.IntPtr pArm, int boneId, Vec3 position); - - // Get Bone Position - public Vector3 GetBonePosition(ArmBones boneId) { - return Arm_GetBonePosition(pArm, (int)boneId).Vector3; - } - [DllImport("CerebellumH")] - private static extern Vec3 Arm_GetBonePosition(System.IntPtr pArm, int boneId); - - // Set Bone Rotation - public void SetBoneRotation(ArmBones boneId, Quaternion rotation) { - Arm_SetBoneRotation(pArm, (int)boneId, new Quat(rotation)); - } - [DllImport("CerebellumH")] - private static extern void Arm_SetBoneRotation(System.IntPtr pArm, int boneId, Quat rotation); - - // Get Bone Rotation - public Quaternion GetBoneRotation(ArmBones boneId) { - return Arm_GetBoneRotation(pArm, (int)boneId).Quaternion; - } - [DllImport("CerebellumH")] - private static extern Quat Arm_GetBoneRotation(System.IntPtr pArm, int boneId); -#endregion -#endregion - -#region Init - public void Init() { - Arm_Init(pArm); - } - [DllImport("CerebellumH")] - private static extern void Arm_Init(System.IntPtr pArm); -#endregion - -#region Update - public void Update() { - Debug.Log("Update"); - Arm_Update(pArm); - } - [DllImport("CerebellumH")] - private static extern void Arm_Update(System.IntPtr pArm); - - public void UpdateMovements() { - Arm_UpdateMovements(pArm); - } - [DllImport("HumanoidMovements")] - private static extern void Arm_UpdateMovements(System.IntPtr pArm); -#endregion - -#region Tools - public void SetTargets(HandTarget handTarget) { - SetTargetRotation(ArmBones.Shoulder, handTarget.shoulder.target.transform.rotation); - SetTargetRotation(ArmBones.UpperArm, handTarget.upperArm.target.transform.rotation); - SetTargetRotation(ArmBones.Forearm, handTarget.forearm.target.transform.rotation); - SetTargetRotation(ArmBones.Hand, handTarget.hand.target.transform.rotation); - //targetPosition = handTarget.transform.position; - //targetRotation = handTarget.transform.rotation; - } - - public void CopyToRig(HandTarget handTarget) { - Debug.Log(handTarget.hand.bone.transform.rotation + " " + GetBoneRotation(ArmBones.Hand)); - handTarget.hand.bone.transform.rotation = GetBoneRotation(ArmBones.Hand); - //handTarget.forearm.bone.transform.rotation = GetBoneRotation(ArmBones.Forearm); - //handTarget.upperArm.bone.transform.rotation = GetBoneRotation(ArmBones.UpperArm); - //handTarget.shoulder.bone.transform.rotation = GetBoneRotation(ArmBones.Shoulder); - } -#endregion - } -} -#endif \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs.meta deleted file mode 100644 index b3decb3..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HandTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 2c296d86543384d49ba4e7f2ea1179cb -timeCreated: 1455619344 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs deleted file mode 100644 index a25e469..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs +++ /dev/null @@ -1,1233 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Tracking; - - /// - /// \ref HumanoidControl "Humanoid Control" options for head-related things - /// - /// - /// \image html HeadTargetInspector.png - /// - /// %Sensors - /// =========== - /// Depending on the selected Inputs in HumanoidControl, a number of controllers are available - /// for the Head %Target. These can be individually enabled or disabled to suit your needs. - /// For example you can disable head tracking using Kinect while still have body tracking on other - /// parts of the body. - /// - /// See the list of - /// supported devices - /// to get information on the head target of each device. - /// - /// Sub Targets (Pro) - /// ================= - /// Sub targets are used in combination with facial tracking. Depending on the tracking device, - /// additional facial target can be tracked and used. - /// When the microphone has been enabled, the Audio Energy will show the received volume of sound. - /// - /// Configuration (Pro) - /// =================== - /// Configuration is used in combination with - /// facial tracking. - /// - /// Expressions (Pro) - /// ================= - /// In %Humanoid Control Pro, facial expressions can be defined and set. For more information see - /// Facial Expressions. - /// - /// Focus Object (Pro) - /// ================== - /// This is the object the humanoid is looking at. With eye tracking, - /// this is determined from the detected gaze direction, - /// without eye tracking a raycast from the eyes is used in the forward direction of the head. - /// - /// Settings - /// ======== - /// * \ref HeadTarget::collisionFader "Collision Fader" - /// - /// Events - /// ====== - /// * \ref HeadTarget::trackingEvent "Tracking Event" - /// * \ref HeadTarget::audioEvent "Audio Event" - /// * \ref HeadTarget::focusEvent "Focus Event" (Pro) - /// * \ref HeadTarget::blinkEvent "Blink Event" (Pro) - /// * \ref HeadTarget::insideColliderEvent "In Collider Event" - /// - /// Buttons - /// ======= - /// * Add \ref Passer::InteractionPointer "Interaction Pointer": Adds a gaze interaction pointer - /// to the head target. For more information about interaction see - /// Interaction, Event System and UI. - /// * Add \ref Passer::Teleporter "Teleporter": Adds a preconfigured gaze interaction pointer - /// to the head target which can teleport the avatar by pointing to new positions. - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_head_target.html")] - public class HeadTarget : HumanoidTarget { - - public HeadTarget() { - neck = new TargetedNeckBone(this); - head = new TargetedHeadBone(this); -#if hFACE - face = new FaceTarget(this); -#endif - } - - #region Limitations - public const float maxNeckAngle = 80; - public const float maxHeadAngle = 50; - - // for future use - public static readonly float neckTurnRatio = 0.65F; - public static readonly Vector3 minHeadAngles = new Vector3(0, 0, 0); - public static readonly Vector3 maxHeadAngles = new Vector3(0, 0, 0); - - public static readonly Vector3 minNeckAngles = new Vector3(-55, -70, -35); - public static readonly Vector3 maxNeckAngles = new Vector3(80, 70, 35); - - public static readonly Vector minNeckAngles2 = new Vector(-55, -70, 0); - public static readonly Vector maxNeckAngles2 = new Vector(80, 70, 0); - #endregion - - #region Sensors - - /// - /// Is the Head Target updated using an active tracking device - /// - public bool tracking; - -#if pUNITYXR - [System.Obsolete] - public Passer.Tracking.UnityXRHmd unity; -#endif -#if hLEGACYXR - //public UnityVRHead unity = new UnityVRHead(); -#endif - - private HeadPredictor headPredictor = new HeadPredictor(); - - /// - /// Controls the head when no tracking is active - /// - public HeadAnimator headAnimator = new HeadAnimator(); - public override Passer.Sensor animator { get { return headAnimator; } } - -#if pUNITYXR - public UnityXRHead unityXR = new UnityXRHead(); -#endif -#if hSTEAMVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - public ViveTrackerHead viveTracker = new ViveTrackerHead(); -#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - public WindowsMRHead mixedReality = new WindowsMRHead(); -#endif -#if hWAVEVR - public WaveVRHead waveVR = new WaveVRHead(); -#endif -#if hVRTK - public VrtkHead vrtk = new VrtkHead(); -#endif -#if hNEURON - public PerceptionNeuronHead neuron = new PerceptionNeuronHead(); -#endif -#if hKINECT1 - public Kinect1Head kinect1 = new Kinect1Head(); -#endif -#if hKINECT2 - public Kinect2Head kinect2 = new Kinect2Head(); -#endif -#if hKINECT4 - public Kinect4Head kinect4 = new Kinect4Head(); -#endif -#if hORBBEC && (UNITY_STANDALONE_WIN || UNITY_ANDROID || UNITY_WSA_10_0) - public AstraHead astra = new AstraHead(); -#endif -#if hREALSENSE - public IntelRealsenseHead realsense = new IntelRealsenseHead(); -#endif -#if hOPTITRACK - public OptitrackHead optitrack = new OptitrackHead(); -#endif -#if hANTILATENCY - public AntilatencyHead antilatency = new AntilatencyHead(); -#endif -#if hCUSTOM - public CustomHead custom = new CustomHead(); -#endif - -#if hFACE - public MicrophoneHead microphone = new MicrophoneHead(); -#if hKINECT2 - public Kinect2Face kinectFace; -#endif -#if hTOBII - public TobiiHead tobiiHead = new TobiiHead(); -#endif -#if hARKIT && UNITY_IOS && UNITY_2019_1_OR_NEWER - public ArKitHead arkit = new ArKitHead(); -#endif -#if hPUPIL - public Tracking.Pupil.Head pupil = new Tracking.Pupil.Head(); -#endif -#if hDLIB - public DlibHead dlib = new DlibHead(); -#endif -#endif - - public HeadSensor[] sensors; - - public override void InitSensors() { -#if pUNITYXR - //if (humanoid.unity == null) { - // GameObject realWorld = HumanoidControl.GetRealWorld(humanoid.transform); - // humanoid.unity = Passer.Tracking.UnityXR.Get(realWorld.transform); - // if (humanoid.unity != null) { - // humanoid.unity.transform.position = humanoid.transform.position; - // humanoid.unity.transform.rotation = humanoid.transform.rotation; - // } - //} - - //if (unity == null) { - // unity = Passer.Tracking.UnityXRHmd.Get(humanoid.unity); - // if (unity != null) { - // unity.transform.position = transform.position + head2eyes; - // unity.transform.rotation = transform.rotation; - // } - //} -#endif - if (sensors == null) { - sensors = new HeadSensor[] { - headPredictor, -#if hOPTITRACK - optitrack, -#endif -//#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) -// openVR, -//#if hVIVETRACKER -// viveTracker, -//#endif -//#endif -#if hSTEAMVR && UNITY_STANDALONE_WIN - //steamVR, -#if hVIVETRACKER - viveTracker, -#endif -#endif - -//#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) -// oculus, -//#endif -#if hWINDOWSMR && UNITY_WSA_10_0 - mixedReality, -#endif -#if hWAVEVR - waveVR, -#endif -#if pUNITYXR - unityXR, -#endif - -#if hVRTK - vrtk, -#endif -#if hKINECT1 - kinect1, -#endif -#if hKINECT2 - kinect2, -#endif -#if hKINECT4 - kinect4, -#endif -#if hORBBEC && (UNITY_STANDALONE_WIN || UNITY_ANDROID) - astra, -#endif -#if hNEURON - neuron, -#endif -#if hREALSENSE - realsense, -#endif - -#if hFACE - microphone, -#if hTOBII - tobiiHead, -#endif -#if hARKIT && UNITY_IOS && UNITY_2019_1_OR_NEWER - arkit, -#endif -#if hPUPIL - pupil, -#endif -#if hDLIB - dlib, -#endif -#endif -#if hANTILATENCY - antilatency, -#endif - headAnimator, -#if hCUSTOM - custom, -#endif - }; - } - } - - public override void StartSensors() { - headAnimator.Start(humanoid, this.transform); - - for (int i = 0; i < sensors.Length; i++) - sensors[i].Start(humanoid, transform); - - HeadCollisionHandler.AddHeadCollider(this.gameObject); - HeadCollisionHandler headHandler = this.gameObject.AddComponent(); - // shouldn't this be attached to the target.head.bone? - headHandler.Initialize(humanoid); - - //SphereCollider sc = HeadCollisionHandler.AddHeadCollider(this.gameObject); - // another one for receiving raycasting collisions - //sc.isTrigger = false; -#if hFACE - face.StartSensors(); -#endif - } - - protected override void UpdateSensors() { - for (int i = 0; i < sensors.Length; i++) { - sensors[i].Update(); - } - } - - #endregion - - #region SubTargets - - public override TargetedBone main { - get { return head; } - } - - #region Head - - public TargetedHeadBone head = null; - - [System.Serializable] - public class TargetedHeadBone : TargetedBone { - private HeadTarget headTarget; - - public TargetedHeadBone(HeadTarget headTarget) { - this.headTarget = headTarget; - - boneId = Bone.Head; - - bone.minAngles = minHeadAngles; - bone.maxAngles = maxHeadAngles; - bone.length = 0.1F; - } - - public override void Init() { - parent = headTarget.neck; - nextBone = null; - } - - public override Quaternion DetermineRotation() { - if (headTarget == null) - return Quaternion.identity; - - Vector3 headUp = Vector3.up; - Vector3 headForward; - if (headTarget.humanoid.hipsTarget.hips.bone.transform != null) - headForward = headTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.forward; - else - headForward = headTarget.humanoid.transform.forward; - - Quaternion headRotation = Quaternion.LookRotation(headUp, -headForward) * Quaternion.AngleAxis(90, Vector3.right); - return headRotation; - } - - public override float GetTension() { - Quaternion restRotation = headTarget.neck.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - - protected override void DetermineBasePosition() { - if (target.basePosition.sqrMagnitude != 0) - // Base Position is already determined - return; - - Transform basePositionReference = GetBasePositionReference(); - target.basePosition = basePositionReference.InverseTransformPoint(target.transform.position); - } - - public override Vector3 TargetBasePosition() { - Transform basePositionReference = GetBasePositionReference(); - return basePositionReference.TransformPoint(target.basePosition); - } - - private Transform GetBasePositionReference() { - return headTarget.humanoid.hipsTarget.hips.target.transform.parent; - } - - //public override void MatchTargetToAvatar() { - // if (bone.transform == null || target.transform == null) - // return; - - // //if (!Application.isPlaying) { - // // float targetDistance = Vector3.Distance(bone.transform.position, target.transform.position); - // // if (targetDistance > 0.001F) - // // target.transform.position = bone.transform.position; - // //} - // //else - // target.transform.position = bone.transform.position; - - // target.transform.rotation = bone.targetRotation; - - // DetermineBasePosition(); - // DetermineBaseRotation(); - //} - } - - #endregion - - #region Neck - public TargetedNeckBone neck = null; - - [System.Serializable] - public class TargetedNeckBone : TargetedBone { - public HeadTarget headTarget; - - public TargetedNeckBone(HeadTarget headTarget) { - this.headTarget = headTarget; - boneId = Bone.Neck; - - bone.minAngles = minNeckAngles; - bone.maxAngles = maxNeckAngles; - } - - public override void Init() { - if (headTarget.humanoid == null || headTarget.humanoid.hipsTarget == null) - parent = null; - else - parent = (headTarget.humanoid.hipsTarget.chest.bone.transform != null) ? - (TargetedBone)headTarget.humanoid.hipsTarget.chest : - (TargetedBone)headTarget.humanoid.hipsTarget.hips; - - nextBone = headTarget.head; - } - - public override Quaternion DetermineRotation() { - if (headTarget == null) - return Quaternion.identity; - - Vector3 neckUp = Vector3.up; - if (nextBone != null && nextBone.bone.transform != null) - neckUp = nextBone.bone.transform.position - bone.transform.position; - - Vector3 humanoidForward = headTarget.humanoid.hipsTarget.hips.bone.targetRotation * Vector3.forward; - - Quaternion neckRotation = Quaternion.LookRotation(neckUp, -humanoidForward) * Quaternion.AngleAxis(90, Vector3.right); - - //bone.baseRotation = Quaternion.Inverse(headTarget.humanoid.hipsTarget.hips.target.transform.rotation) * neckRotation; - bone.baseRotation = Quaternion.Inverse(headTarget.humanoid.transform.rotation) * neckRotation; - return neckRotation; - } - - public override float GetTension() { - Quaternion restRotation = headTarget.humanoid.hipsTarget.chest.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - #endregion - - private void InitSubTargets() { - neck.Init(); - head.Init(); - } - - private void SetTargetPositionsToAvatar() { - neck.SetTargetPositionToAvatar(); - head.SetTargetPositionToAvatar(); - } - - private void DoMeasurements() { - neck.DoMeasurements(); - head.DoMeasurements(); - } - -#if hFACE - public FaceTarget face = null; -#endif - - //public float smileValue; - //public float puckerValue; - //public float frownValue; - - //public float stress; - - public float audioEnergy; - - public Vector3 lookDirection = Vector3.forward; - public Vector3 localLookDirection = Vector3.forward; - - public void TurnTo(GameObject obj) { - TurnTo(obj, 1); - } - public void TurnTo(GameObject obj, float confidence) { - if (obj == null) - return; - TurnTo(obj.transform.position, confidence); - } - - public void LookTo(Vector3 position) { - TurnTo(position, 1); - } - public void TurnTo(Vector3 position, float confidence) { -#if hFACE - face.GazeTo(position, confidence); -#else - Vector3 eyePosition = GetEyePosition(); - - Vector3 direction = (position - eyePosition).normalized; - SetLookDirection(direction, confidence); -#endif - } - - public void SetLookDirection(Vector3 direction, float confidence) { - lookDirection = direction; - localLookDirection = humanoid.hipsTarget.hips.target.transform.InverseTransformDirection(direction); - } - #endregion SubTargets - - #region Configuration - public Vector3 neck2eyes; - public Vector3 head2eyes; - - public override Transform GetDefaultTarget(HumanoidControl humanoid) { - Transform targetTransform = null; - if (humanoid != null) - GetDefaultHead(humanoid.targetsRig, ref targetTransform); - return targetTransform; - } - - // Do not remove this, this is dynamically called from Target_Editor! - public static HeadTarget CreateTarget(HumanoidTarget oldTarget) { - GameObject targetObject = new GameObject("Head Target"); - Transform targetTransform = targetObject.transform; - HumanoidControl humanoid = oldTarget.humanoid; - - RemoveFirstPersonCamara((HeadTarget)oldTarget); - - targetTransform.parent = oldTarget.humanoid.transform; - targetTransform.position = oldTarget.transform.position; - targetTransform.rotation = oldTarget.transform.rotation; - - HeadTarget headTarget = targetTransform.gameObject.AddComponent(); - headTarget.humanoid = humanoid; - humanoid.headTarget = headTarget; -#if hFACE - headTarget.face.headTarget = headTarget; -#endif - - headTarget.RetrieveBones(); - headTarget.InitAvatar(); - headTarget.MatchTargetsToAvatar(); - - return headTarget; - } - - // Do not remove this, this is dynamically called from Target_Editor! - // Changes the target transform used for this head target - // Generates a new headtarget component, so parameters will be lost if transform is changed - public static HeadTarget SetTarget(HumanoidControl humanoid, Transform targetTransform) { - HeadTarget currentHeadTarget = humanoid.headTarget; - if (targetTransform == currentHeadTarget.transform) - return currentHeadTarget; - - RemoveFirstPersonCamara(currentHeadTarget); - - GetDefaultHead(humanoid.targetsRig, ref targetTransform); - if (targetTransform == null) - return currentHeadTarget; - - HeadTarget headTarget = targetTransform.GetComponent(); - if (headTarget == null) - headTarget = targetTransform.gameObject.AddComponent(); - - headTarget.NewComponent(humanoid); - headTarget.InitComponent(); - - return headTarget; - } - - public void RetrieveBones() { - neck.RetrieveBones(humanoid); - head.RetrieveBones(humanoid); -#if hFACE - face.RetrieveBones(this); -#endif - } - - public static void GetDefaultNeck(Animator rig, ref Transform boneTransform) { - GetDefaultBone(rig, ref boneTransform, HumanBodyBones.Neck, "Neck", "neck"); - if (boneTransform == null) { - GetDefaultBone(rig, ref boneTransform, HumanBodyBones.Head, "Head", "head"); - } - } - public static void GetDefaultHead(Animator rig, ref Transform boneTransform) { - GetDefaultBone(rig, ref boneTransform, HumanBodyBones.Head, "Head", "head"); - } - - public static void ClearBones(HeadTarget headTarget) { - headTarget.neck.bone.transform = null; - headTarget.head.bone.transform = null; - } - #endregion Configuration - - #region Settings - - /// - /// Adds a screen fader which blacks out the camera when the head enters objects. - /// - public bool collisionFader = false; - public bool isInsideCollider = false; - - //public bool jointLimitations = true; - - public enum InteractionType { - None, - Gazing - } - - #region Virtual3D - public bool virtual3d = false; - [HideInInspector] - - public Transform screenTransform; - #endregion - #endregion - - #region Events - - /// - /// Use to call functions based on the tracking status of the headset. - /// - public BoolEventHandlers trackingEvent = new BoolEventHandlers() { - id = 1, - label = "Tracking Event", - tooltip = - "Call functions using the HMD tracking status\n" + - "Parameter: HMD tracking", - eventTypeLabels = new string[] { - "Never", - "On Tracking Start", - "On Tracking Stop", - "While Tracking", - "While not Tracking", - "On Tracking Changes", - "Always", - }, - fromEventLabel = "tracking", - }; - - /// - /// Use to call functions based on the audio level measured with the microphone. - /// - public FloatEventHandlers audioEvent = new FloatEventHandlers() { - id = 2, - label = "Audio Event", - tooltip = - "Call functions based on the microphone audio level\n" + - "Parameter: the audio level", - eventTypeLabels = new string[] { - "Never", - "On Loud Start", - "On Silence Start", - "While Noisy", - "While Silent", - "On Level Changes", - "Always", - }, - fromEventLabel = "audioEnergy", - }; -#if hFACE - /// - /// Use to call functions based on the object in focus - /// - public GameObjectEventHandlers focusEvent = new GameObjectEventHandlers() { - id = 3, - label = "Focus Event", - tooltip = - "Call functions using the focus\n" + - "Parameter: the focus object", - eventTypeLabels = new string[] { - "Never", - "On Focus Start", - "On Focus End", - "While Focusing", - "While Nothing in Focus", - "On Focus Changes", - "Always", - }, - fromEventLabel = "Focus Object", - }; - /// - /// Use to call functions based on eye blinking - /// - public BoolEventHandlers blinkEvent = new BoolEventHandlers() { - id = 4, - label = "Blink Event", - tooltip = - "Call functions using blinking\n" + - "Parameter: the blinking state", - eventTypeLabels = new string[] { - "Never", - "On Blink Starts", - "On Blink Ends", - "While Eyes Closed", - "While Eyes Open", - "On Blink Starts or Ends", - "Always", - }, - fromEventLabel = "Eyes Closed", - }; -#endif - /// - /// Use to call functions based on the state of the head being inside colliders. - /// - public BoolEventHandlers insideColliderEvent = new BoolEventHandlers() { - id = 5, - label = "In Collider Event", - tooltip = - "Call functions using the head being inside Colliders\n" + - "Parameter: isInsideCollider state", - eventTypeLabels = new string[] { - "Never", - "When Head Enters Collider", - "When Head Exits Collider", - "While Head is inside Collider", - "While Head outside Collider", - "When Enters/Exists Collider", - "Always", - }, - fromEventLabel = "Inside Collider", - }; - protected virtual void UpdateEvents() { - trackingEvent.value = tracking; - audioEvent.value = audioEnergy; -#if hFACE - focusEvent.value = face.focusObject; - blinkEvent.value = (face.leftEye.closed + face.rightEye.closed) / 2 > 0.5F; -#endif - } - - #endregion - - public SkinnedMeshRenderer smRenderer; - public Rigidbody headRigidbody; - public HeadMovements headMovements = new HeadMovements(); - - #region Init - - /// Is the head target initialized? - public static bool IsInitialized(HumanoidControl humanoid) { - if (humanoid.headTarget == null || humanoid.headTarget.humanoid == null) - return false; - if (humanoid.headTarget.head.target.transform == null) - return false; - if (humanoid.headTarget.head.bone.transform == null && humanoid.headTarget.neck.bone.transform == null) - return false; - return true; - } - - private void Reset() { - humanoid = GetHumanoid(); - if (humanoid == null) - return; - - NewComponent(humanoid); - - neck.bone.maxAngle = maxNeckAngle; - head.bone.maxAngle = maxHeadAngle; - } - - private HumanoidControl GetHumanoid() { - // This does not work for prefabs - HumanoidControl[] humanoids = FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) { - if (humanoids[i].headTarget != null && humanoids[i].headTarget.transform == this.transform) - return humanoids[i]; - } - - return null; - } - - public override void InitAvatar() { - InitSubTargets(); - - neck.DoMeasurements(); - head.DoMeasurements(); - - neck2eyes = GetNeckEyeDelta(); - head2eyes = GetHeadEyeDelta(); - -#if hFACE - face.InitAvatar(this); -#endif -#if pCEREBELLUM - Cerebellum_InitAvatar(); -#endif - } - -#if pCEREBELLUM - - private void Cerebellum_InitAvatar() { - ICerebellumJoint cJoint; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Neck); - cJoint.position = neck.bone.transform.position; - cJoint.orientation = neck.bone.transform.rotation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Head); - cJoint.position = head.bone.transform.position; - cJoint.orientation = head.bone.transform.rotation; - } - -#endif - - - public override void NewComponent(HumanoidControl _humanoid) { } - - public override void InitComponent() { - if (humanoid == null) - return; - -#if hFACE - face.InitComponent(); -#endif - } - - public override void StartTarget() { - InitSensors(); - - neck2eyes = GetNeckEyeDelta(); - head2eyes = GetHeadEyeDelta(); - - headMovements.Start(humanoid, this); - } - - /// Checks whether the humanoid has an HeadTargetand adds one if none has been found - /// The humanoid to check - public static void DetermineTarget(HumanoidControl humanoid) { - HeadTarget headTarget = humanoid.headTarget; - - if (headTarget == null && humanoid.targetsRig != null) { - Transform headTargetTransform = humanoid.targetsRig.GetBoneTransform(HumanBodyBones.Head); - if (headTargetTransform == null) { - Debug.LogError("Could not find head bone in targets rig"); - return; - } - - headTarget = headTargetTransform.GetComponent(); - if (headTarget == null) { - headTarget = headTargetTransform.gameObject.AddComponent(); - headTarget.humanoid = humanoid; - } - humanoid.headTarget = headTarget; - } - - humanoid.headTarget = headTarget; - } - - private static void RemoveFirstPersonCamara(HeadTarget headTarget) { - Camera cam = headTarget.GetComponentInChildren(); - if (cam != null) { - if (cam.gameObject.name == "First Person Camera") { - DestroyImmediate(cam.gameObject); - return; - } - DestroyImmediate(cam, true); - } - AudioListener listener = headTarget.GetComponentInChildren(); - if (listener != null) - DestroyImmediate(listener, true); - } - - public override void MatchTargetsToAvatar() { - // Match targets should be done before the scene plays in the editor - // So it should not happen at runtime. - // But this is for Change Avatar?? - // What does this solve? - - //if (Application.isPlaying) - // return; - - //base.MatchTargetsToAvatar(); - neck.MatchTargetToAvatar(); - head.MatchTargetToAvatar(); - - if (transform != null && head.target.transform != null) { - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(transform.position, head.target.transform.position); - if (targetDistance > 0.001F) - transform.position = head.target.transform.position; - } - else - transform.position = head.target.transform.position; - transform.rotation = head.target.transform.rotation; - } -#if hFACE - face.MatchTargetsToAvatar(); -#endif - } - - #endregion - - #region Update - - /// Update all head sensors - public override void UpdateTarget() { - tracking = false; - - neck.target.confidence.Degrade(); - head.target.confidence.Degrade(); - -#if hFACE - if (head.bone.transform != null) - face.SetGazeDirection(head.bone.targetRotation * Vector3.forward, 0.2F); -#endif - UpdateSensors(); -#if hFACE - face.UpdateTarget(); -#endif -#if pCEREBELLUM - Cerebellum_UpdateTargets(); -#endif - UpdateEvents(); - } - -#if pCEREBELLUM - - private void Cerebellum_UpdateTargets() { - if (humanoid.cerebellum != null) { - ICerebellumTarget cTarget; - - cTarget = humanoid.cerebellum.GetTarget(Bone.Neck); - cTarget.SetPosition(neck.target.transform.position, neck.target.confidence.position); - cTarget.SetOrientation(neck.target.transform.rotation, neck.target.confidence.rotation); - - cTarget = humanoid.cerebellum.GetTarget(Bone.Head); - cTarget.SetPosition(head.target.transform.position, head.target.confidence.position); - cTarget.SetOrientation(head.target.transform.rotation, head.target.confidence.rotation); - } - } - -#endif - - /// Updates the avatar bones based on the current target rig - public override void UpdateMovements(HumanoidControl humanoid) { - if (humanoid.calculateBodyPose) { - HeadMovements.Update(this); -#if hFACE - face.UpdateMovements(); -#endif -#if pCEREBELLUM - if (humanoid.cerebellum != null) { - ICerebellumJoint cNeck = humanoid.cerebellum.GetJoint((sbyte)Bone.Neck); - neck.bone.transform.rotation = cNeck.orientation; // humanoid.cerebellum.GetJointOrientation(Bone.Neck); - ICerebellumJoint cHead = humanoid.cerebellum.GetJoint((sbyte)Bone.Head); - head.bone.transform.rotation = cHead.orientation; // humanoid.cerebellum.GetJointOrientation(Bone.Head); - } -#endif - } - } - - /// Copy the head target to the target rig - public override void CopyTargetToRig() { - if (Application.isPlaying && - humanoid.animatorEnabled && humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (head.target.transform == null || transform == head.target.transform) - return; - - head.target.transform.position = transform.position; - head.target.transform.rotation = transform.rotation; -#if pCEREBELLUM - Cerebellum_UpdateTargets(); -#endif - } - - /// Copy the target rig head bone to the head target - public override void CopyRigToTarget() { - if (head.target.transform == null || transform == head.target.transform) - return; - - if (!Application.isPlaying && head.bone.transform != null) { - float targetDistance = Vector3.Distance(head.bone.transform.position, head.target.transform.position); - if (targetDistance < 0.001F) - return; - } - - transform.position = head.target.transform.position; - transform.rotation = head.target.transform.rotation; - } - - /// Update the sensor locations based on the head target - public void UpdateSensorsFromTarget() { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) - sensors[i].UpdateSensorTransformFromTarget(this.transform); - } - - /// Draw the target rig - protected override void DrawTargetRig(HumanoidControl humanoid) { - if (this != humanoid.headTarget) - return; - - DrawTarget(neck.target.confidence, neck.target.transform, Vector3.up, 0.1F); - DrawTarget(head.target.confidence, head.target.transform, Vector3.up, 0.1F); -#if hFACE - if (face != null) - face.DrawTargetRig(); -#endif - } - - /// Draw the avatar rig - protected override void DrawAvatarRig(HumanoidControl humanoid) { - if (this != humanoid.headTarget) - return; - - if (neck.bone.transform != null) - Debug.DrawRay(neck.bone.transform.position, neck.bone.targetRotation * Vector3.up * neck.bone.length, Color.cyan); - if (head.bone.transform != null) - Debug.DrawRay(head.bone.transform.position, head.bone.targetRotation * Vector3.up * head.bone.length, Color.cyan); -#if hFACE - if (face != null) - face.DrawAvatarRig(); -#endif - } - - #endregion - - #region HeadPose - private static float maxXangle = 1; - private static float maxYangle = 70; - - /// Sets the rotation of the head around the X axis - public void RotationX(float angle) { - Quaternion localTargetRotation = Quaternion.Inverse(humanoid.transform.rotation) * transform.rotation; - GetSwingTwist(Vector3.right, localTargetRotation, out Quaternion swing, out Quaternion twist); - - float xAngle = angle * maxXangle; - Quaternion newLocalTargetRotation = Quaternion.AngleAxis(xAngle, Vector3.right) * swing; - transform.rotation = humanoid.transform.rotation * newLocalTargetRotation; - } - - /// Sets the rotation of the head around the Y axis - public void RotationY(float angle) { - Vector3 angles = (Quaternion.Inverse(humanoid.transform.rotation) * transform.rotation).eulerAngles; - float yAngle = angle * maxYangle; - transform.rotation = humanoid.transform.rotation * Quaternion.Euler(angles.x, yAngle, angles.z); - } - - public static Quaternion GetRotationAround(Vector3 axis, Quaternion rotation) { - Vector3 ra = new Vector3(rotation.x, rotation.y, rotation.z); // rotation axis - Vector3 p = Vector3.Project(ra, axis); // return projection v1 on to v2 (parallel component) - Quaternion twist = new Quaternion(p.x, p.y, p.z, rotation.w); - twist = Normalize(twist); - return twist; - } - - public static Quaternion Normalize(Quaternion q) { - float length = Mathf.Sqrt(q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w); - if (length == 0) - return Quaternion.identity; - - float scale = 1.0f / length; - Quaternion q1 = new Quaternion(q.x * scale, q.y * scale, q.z * scale, q.w * scale); - return q1; - } - - public static void GetSwingTwist(Vector3 axis, Quaternion rotation, out Quaternion swing, out Quaternion twist) { - twist = GetRotationAround(axis, rotation); - swing = rotation * Quaternion.Inverse(twist); - } - - #endregion - - #region Tools - - /// Gets the eye position in world coordinates - public Vector3 GetEyePosition() { - if (Application.isPlaying && gameObject != null) { - Camera camera = gameObject.GetComponentInChildren(); - if (camera != null) - return camera.transform.position; - } - -#if hFACE - if (neck.bone.transform != null && face.leftEye.bone.transform != null && face.rightEye.bone.transform != null) { - Vector3 centerEyePosition = (face.leftEye.bone.transform.transform.position + face.rightEye.bone.transform.position) / 2; - return centerEyePosition; - } -#else - if (humanoid.avatarRig != null) { - Transform leftEye = humanoid.avatarRig.GetBoneTransform(HumanBodyBones.LeftEye); - Transform rightEye = humanoid.avatarRig.GetBoneTransform(HumanBodyBones.RightEye); - if (leftEye != null && rightEye != null) { - Vector3 centerEyePosition = (leftEye.position + rightEye.position) / 2; - return centerEyePosition; - } - } -#endif - if (this != null && gameObject != null) { - Camera camera = gameObject.GetComponentInChildren(); - if (camera != null) - return camera.transform.position; - } - - Quaternion neckYRotation = Quaternion.AngleAxis(neck.target.transform.eulerAngles.y, Vector3.up); - if (neck.bone.transform != null) - return neck.bone.transform.position + neckYRotation * new Vector3(0, 0.13F, 0.13F); - else - return neck.target.transform.position + neckYRotation * new Vector3(0, 0.13F, 0.13F); - } - - /// Gets the local eye position relative to the neck bone - public Vector3 GetNeckEyeDelta() { - Vector3 eyePosition = GetEyePosition(); - //Vector3 worldNeckEyeDelta = (neck.bone.transform != null) ? - // (eyePosition - neck.bone.transform.position) : - // (eyePosition - neck.target.transform.position); - - // With ChangeAvatar, the bone may be at a different height than wat setup in the scene - // But with Scale Avatar to Tracking, the target position is wrong - // so we still use the neckbone here. - if (neck.bone.transform != null) { - Vector3 worldNeckEyeDelta = eyePosition - neck.bone.transform.position; - Vector3 localNeckEyeDelta = Quaternion.AngleAxis(-neck.target.transform.eulerAngles.y, Vector3.up) * worldNeckEyeDelta; - return localNeckEyeDelta; - } - else { - Vector3 worldNeckEyeDelta = eyePosition - neck.target.transform.position; - Vector3 localNeckEyeDelta = Quaternion.AngleAxis(-neck.target.transform.eulerAngles.y, Vector3.up) * worldNeckEyeDelta; - return localNeckEyeDelta; - } - } - - /// Gets the local eye position realtive to the head bone - public Vector3 GetHeadEyeDelta() { - Vector3 eyePosition = GetEyePosition(); - //Vector3 worldHeadEyeDelta = (neck.bone.transform != null) ? - // (eyePosition - head.bone.transform.position) : - // (eyePosition - head.target.transform.position); - - // With ChangeAvatar, the bone may be at a different height than wat setup in the scene - // Therfore we need to use the target here - // I don't understand myself here. Using bone again - Vector3 worldHeadEyeDelta; - if (neck.bone.transform != null) - worldHeadEyeDelta = eyePosition - head.bone.transform.position; - else - worldHeadEyeDelta = eyePosition - head.target.transform.position; - - Vector3 localHeadEyeDelta = Quaternion.AngleAxis(-head.target.transform.eulerAngles.y, Vector3.up) * worldHeadEyeDelta; - return localHeadEyeDelta; - } - - /// Gets the local head position relative to the neck bone - public Vector3 GetNeckHeadDelta() { - if (neck.target.transform != null && head.target.transform != null) { - Vector3 worldNeckHeadDelta = (head.target.transform.position - neck.target.transform.position); - Vector3 localNeckHeadDelta = neck.target.transform.InverseTransformDirection(worldNeckHeadDelta); - return localNeckHeadDelta; - } - - return Vector3.zero; - } - - //public Vector3 GetHeadNeckDelta() { - // if (neck.bone.transform != null && head.bone.transform != null) { - // Vector3 worldHeadNeckDelta = (neck.bone.transform.position - head.bone.transform.position); - // Vector3 localHeadNeckDelta = head.target.transform.InverseTransformDirection(worldHeadNeckDelta); - // return localHeadNeckDelta; - // } - - // return Vector3.zero; - //} - public static SkinnedMeshRenderer[] FindAvatarMeshes(HumanoidControl humanoid) { - if (humanoid.avatarRig == null) - return new SkinnedMeshRenderer[0]; - - Transform avatar = humanoid.avatarRig.transform; - SkinnedMeshRenderer[] renderers = avatar.GetComponentsInChildren(); - Mesh[] meshes = new Mesh[renderers.Length]; - - for (int i = 0; i < renderers.Length; i++) - meshes[i] = renderers[i].sharedMesh; - return renderers; - } - - public static string[] DistillAvatarMeshNames(SkinnedMeshRenderer[] meshes) { - string[] names = new string[meshes.Length]; - - for (int i = 0; i < meshes.Length; i++) - names[i] = meshes[i].name; - - return names; - } - - public static int FindMeshWithBlendshapes(SkinnedMeshRenderer[] renderers) { - for (int i = 0; i < renderers.Length; i++) - if (renderers[i].sharedMesh != null && renderers[i].sharedMesh.blendShapeCount > 0) - return i; - - return 0; - } - - public static int FindBlendshapemesh(SkinnedMeshRenderer[] renderers, SkinnedMeshRenderer renderer) { - for (int i = 0; i < renderers.Length; i++) - if (renderers[i] == renderer) - return i; - - return 0; - } - - public static string[] GetBlendshapes(SkinnedMeshRenderer renderer) { - if (renderer == null || renderer.sharedMesh == null) - return new string[0]; - - string[] blendShapes = new string[renderer.sharedMesh.blendShapeCount + 1]; - for (int i = 0; i < renderer.sharedMesh.blendShapeCount; i++) { - blendShapes[i] = renderer.sharedMesh.GetBlendShapeName(i); - } - blendShapes[blendShapes.Length - 1] = " "; - return blendShapes; - } - - public static void FindBlendshapeWith(string[] blendshapes, string namepart1, string namepart2, ref int blendshape) { - for (int i = 0; i < blendshapes.Length; i++) { - if (blendshapes[i].Contains(namepart1) && blendshapes[i].Contains(namepart2)) { - blendshape = i; - return; - } - } - } - - public void DisableVR() { - UnityEngine.XR.XRSettings.LoadDeviceByName("None"); - } - - public void EnableVR() { - // Just oculus for now - UnityEngine.XR.XRSettings.LoadDeviceByName("Oculus"); - } - - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs.meta deleted file mode 100644 index d00a514..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HeadTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 35164cbaf9701d94a8a457b1aeadc9dd -timeCreated: 1455627384 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs deleted file mode 100644 index 83ab393..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs +++ /dev/null @@ -1,736 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - using Humanoid.Tracking; - - public enum TorsoBones { - Hips, - Spine, - Chest, - } - - /// - /// \ref HumanoidControl "Humanoid Control" options for torso related things - /// - /// - /// Sensors - /// ======= - /// See the list of - /// supported devices - /// to get information on the hips target of each device. - /// - /// Configuration - /// ============= - /// Bones - /// ----- - /// For Mecanim compatible avatars, the correct bones are detected automatically. - /// For other avatars, the correct bone Transforms can be assigned manually using the Bone parameters. - /// It is also possible to override the default bones from Mecanim - /// with your own choice by manual assignment of the bone. - /// To return to the default bone, it is sufficient to clear the applicable Bone parameter. - /// - /// Limits - /// ------ - /// For the spine and chest bones, it is possible to configure the limits of movement. - /// The maximum angle can be set when Joint Limitations is enabled. - /// - /// Settings - /// ======== - /// \ref HipsTarget::bodyRotation "Body Rotation" - /// - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_hips_target.html")] - public partial class HipsTarget : HumanoidTarget { - - public HipsTarget() { - chest = new TargetedChestBone(this); - spine = new TargetedSpineBone(this); - hips = new TargetedHipsBone(this); - } - - public bool newSpineIK = false; - public TorsoMovements torsoMovements = new TorsoMovements(); - - #region Limitations - public const float maxSpineAngle = 20; - public const float maxChestAngle = 20; - #endregion - - #region Sensors - - /// - /// Controls the hips when no tracking is active - /// - public TorsoAnimator torsoAnimator = new TorsoAnimator(); - public override Passer.Sensor animator { get { return torsoAnimator; } } - -#if hSTEAMVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - public ViveTrackerTorso viveTracker = new ViveTrackerTorso(); -#endif -#if hNEURON - public PerceptionNeuronTorso neuron = new PerceptionNeuronTorso(); -#endif -#if hKINECT1 - public Kinect1Torso kinect1 = new Kinect1Torso(); -#endif -#if hKINECT2 - public Kinect2Torso kinect2 = new Kinect2Torso(); -#endif -#if hKINECT4 - public Kinect4Torso kinect4 = new Kinect4Torso(); -#endif -#if hORBBEC - public AstraTorso astra = new AstraTorso(); -#endif -#if hOPTITRACK - public OptitrackTorso optitrack = new OptitrackTorso(); -#endif -#if hCUSTOM - public CustomTorso custom = new CustomTorso(); -#endif - - private TorsoSensor[] sensors; - - - public override void InitSensors() { - if (sensors == null) { - sensors = new TorsoSensor[] { - torsoAnimator, -#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - viveTracker, -#endif -#if hKINECT1 - kinect1, -#endif -#if hKINECT2 - kinect2, -#endif -#if hKINECT4 - kinect4, -#endif -#if hORBBEC - astra, -#endif -#if hNEURON - neuron, -#endif -#if hOPTITRACK - optitrack, -#endif -#if hCUSTOM - custom, -#endif - }; - } - } - - public override void StartSensors() { - torsoAnimator.Start(humanoid, transform); - - for (int i = 0; i < sensors.Length; i++) - sensors[i].Start(humanoid, this.transform); - } - - protected override void UpdateSensors() { - for (int i = 0; i < sensors.Length; i++) - sensors[i].Update(); - } - - public TargetedBone GetTargetBone(TorsoBones boneID) { - switch (boneID) { - case TorsoBones.Hips: - return hips; - case TorsoBones.Spine: - return spine; - case TorsoBones.Chest: - return chest; - default: - return null; - } - } - - #endregion - - #region SubTargets - - public override TargetedBone main { - get { return hips; } - } - - #region Chest - - public TargetedChestBone chest = null; - - [System.Serializable] - public class TargetedChestBone : TargetedBone { - private HipsTarget hipsTarget; - - public TargetedChestBone(HipsTarget hipsTarget) { - this.hipsTarget = hipsTarget; - boneId = Bone.Chest; - } - - public override void Init() { - parent = hipsTarget.spine; - nextBone = (hipsTarget.humanoid.headTarget.neck.bone.transform != null) ? - (TargetedBone)hipsTarget.humanoid.headTarget.neck : - (TargetedBone)hipsTarget.humanoid.headTarget.head; - boneId = Bone.Chest; - } - - public override Quaternion DetermineRotation() { - if (nextBone.bone.transform == null) - return Quaternion.identity; - - Vector3 chestUpDirection = Vector3.up; - if (nextBone != null && nextBone.bone.transform != null) - chestUpDirection = (nextBone.bone.transform.position - bone.transform.position).normalized; - - Vector3 humanoidForward = hipsTarget.hips.bone.targetRotation * Vector3.forward; // GetForward(); - //Vector3 humanoidForward = hipsTarget.hips.bone.targetRotation * Vector3.forward; - Quaternion chestRotation = Quaternion.LookRotation(chestUpDirection, -humanoidForward) * Quaternion.AngleAxis(90, Vector3.right); ; - bone.baseRotation = Quaternion.Inverse(hipsTarget.humanoid.transform.rotation) * chestRotation; - - return chestRotation; - } - - public override float GetTension() { - Quaternion restRotation = hipsTarget.spine.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - - #endregion - - #region Spine - - public TargetedSpineBone spine = null; - - [System.Serializable] - public class TargetedSpineBone : TargetedBone { - private HipsTarget hipsTarget; - - public TargetedSpineBone(HipsTarget hipsTarget) { - this.hipsTarget = hipsTarget; - boneId = Bone.Spine; - } - - public override void Init() { - parent = hipsTarget.hips; - if (hipsTarget.chest.bone.transform != null) - nextBone = hipsTarget.chest; - else - nextBone = hipsTarget.humanoid.headTarget.neck; - boneId = Bone.Spine; - } - - public override Quaternion DetermineRotation() { - Vector3 spineUpDirection = hipsTarget.humanoid.up; - if (nextBone != null && nextBone.bone.transform != null) - spineUpDirection = nextBone.bone.transform.position - bone.transform.position; - - Vector3 humanoidForward = hipsTarget.hips.bone.targetRotation * Vector3.forward; - Quaternion spineRotation = Quaternion.LookRotation(spineUpDirection, -humanoidForward) * Quaternion.AngleAxis(90, Vector3.right); - - bone.baseRotation = Quaternion.Inverse(hipsTarget.humanoid.transform.rotation) * spineRotation; - - return spineRotation; - } - - public override float GetTension() { - Quaternion restRotation = hipsTarget.hips.bone.targetRotation; - float tension = GetTension(restRotation, this); - return tension; - } - } - #endregion - - #region Hips - - public TargetedHipsBone hips = null; - - [System.Serializable] - public class TargetedHipsBone : TargetedBone { - public HipsTarget hipsTarget; - - public TargetedHipsBone(HipsTarget hipsTarget) { - this.hipsTarget = hipsTarget; - boneId = Bone.Hips; - } - - public override void Init() { - parent = null; - if (hipsTarget.spine.bone.transform != null) - nextBone = hipsTarget.spine; - else if (hipsTarget.chest.bone.transform != null) - nextBone = hipsTarget.chest; - else - nextBone = hipsTarget.humanoid.headTarget.neck; - boneId = Bone.Hips; - } - - public Vector3 GetForward() { - HumanoidControl humanoid = hipsTarget.humanoid; - if (humanoid.rightFootTarget.upperLeg.bone.transform == null || humanoid.leftFootTarget.upperLeg.bone.transform == null) - return humanoid.transform.forward; - - Vector3 humanoidRight = humanoid.rightFootTarget.upperLeg.bone.transform.position - humanoid.leftFootTarget.upperLeg.bone.transform.position; - Vector3 humanoidForward = Vector3.Cross(humanoidRight, humanoid.up); - return humanoidForward; - } - - public override Quaternion DetermineRotation() { - Vector3 hipsUp = nextBone.bone.transform.position - hipsTarget.hips.bone.transform.position; - - Vector3 humanoidForward = GetForward(); - - Quaternion hipsRotation = Quaternion.LookRotation(hipsUp, -humanoidForward) * Quaternion.AngleAxis(90, Vector3.right); - - bone.baseRotation = Quaternion.Inverse(hipsTarget.humanoid.transform.rotation) * hipsRotation; - - return hipsRotation; - } - - protected override void DetermineBasePosition() { - if (target.basePosition.sqrMagnitude != 0) - // Base Position is already determined - return; - - Transform basePositionReference = GetBasePositionReference(); - target.basePosition = basePositionReference.InverseTransformPoint(target.transform.position); - } - - public override Vector3 TargetBasePosition() { - Transform basePositionReference = GetBasePositionReference(); - return basePositionReference.TransformPoint(target.basePosition); - } - - private Transform GetBasePositionReference() { - return hipsTarget.humanoid.transform; - } - - protected static Quaternion quaternionZero = new Quaternion(0, 0, 0, 0); - - public override void MatchTargetToAvatar() { - // Don't know why this was here - // but with this, the targets will never be matched when changing avatars - //if (Application.isPlaying) - // return; - - if (bone.transform == null || target.transform == null) - return; - - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(bone.transform.position, target.transform.position); - if (targetDistance > 0.001F) - target.transform.position = bone.transform.position; - - float targetAngle = Quaternion.Angle(bone.targetRotation, target.transform.rotation); - if (targetAngle > 0.1F) - target.transform.rotation = bone.targetRotation; - } - else { - target.transform.position = bone.transform.position; - - if (bone.toTargetRotation != quaternionZero) - target.transform.rotation = bone.targetRotation; - else - target.transform.rotation = hipsTarget.humanoid.transform.rotation * bone.baseRotation; - } - - DetermineBasePosition(); - DetermineBaseRotation(); - } - } - - #endregion - - private void InitSubTargets() { - hips.hipsTarget = this; - - hips.Init(); - spine.Init(); - chest.Init(); - } - - private void SetTargetPositionsToAvatar() { - hips.SetTargetPositionToAvatar(); - spine.SetTargetPositionToAvatar(); - chest.SetTargetPositionToAvatar(); - - // We need to set neck target here too, because HeadTarget.InitComponent is called later and the chest direction depends on the neck.target.position... - humanoid.headTarget.neck.SetTargetPositionToAvatar(); - } - - private void DoMeasurements() { - hips.DoMeasurements(); - spine.DoMeasurements(); - chest.DoMeasurements(); - } - #endregion - - #region Configuration - - public override Transform GetDefaultTarget(HumanoidControl humanoid) { - Transform targetTransform = null; - GetDefaultBone(humanoid.targetsRig, ref targetTransform, HumanBodyBones.Hips); - return targetTransform; - } - - // Do not remove this, this is dynamically called from Target_Editor! - public static HipsTarget CreateTarget(HumanoidTarget oldTarget) { - GameObject targetObject = new GameObject("Hips Target"); - Transform targetTransform = targetObject.transform; - HumanoidControl humanoid = oldTarget.humanoid; - - targetTransform.parent = oldTarget.humanoid.transform; - targetTransform.position = oldTarget.transform.position; - targetTransform.rotation = oldTarget.transform.rotation; - - HipsTarget hipsTarget = targetTransform.gameObject.AddComponent(); - hipsTarget.humanoid = humanoid; - humanoid.hipsTarget = hipsTarget; - - hipsTarget.RetrieveBones(); - hipsTarget.InitAvatar(); - hipsTarget.MatchTargetsToAvatar(); - //hipsTarget.NewComponent(oldTarget.humanoid); - //hipsTarget.InitComponent(); - - return hipsTarget; - } - - // Do not remove this, this is dynamically called from Target_Editor! - // Changes the target transform used for this head target - // Generates a new headtarget component, so parameters will be lost if transform is changed - public static HipsTarget SetTarget(HumanoidControl humanoid, Transform targetTransform, bool isLeft) { - HipsTarget currentHipsTarget = humanoid.hipsTarget; - if (targetTransform == currentHipsTarget.transform) - return currentHipsTarget; - - GetDefaultBone(humanoid.targetsRig, ref targetTransform, HumanBodyBones.Hips); - if (targetTransform == null) - return currentHipsTarget; - - HipsTarget hipsTarget = targetTransform.GetComponent(); - if (hipsTarget == null) - hipsTarget = targetTransform.gameObject.AddComponent(); - - hipsTarget.NewComponent(humanoid); - hipsTarget.InitComponent(); - - return hipsTarget; - } - - public void RetrieveBones() { - hips.RetrieveBones(humanoid); - spine.RetrieveBones(humanoid); - chest.RetrieveBones(humanoid); - } - - #endregion - - #region Settings - - public float bendingFactor = 1; - - #endregion - - #region Init - public static bool IsInitialized(HumanoidControl humanoid) { - if (humanoid.hipsTarget == null || humanoid.hipsTarget.humanoid == null || humanoid.hipsTarget.hips.hipsTarget == null) - return false; - if (humanoid.hipsTarget.hips.target.transform == null) - return false; - if (humanoid.hipsTarget.hips.bone.transform == null && humanoid.hipsTarget.spine.bone.transform == null && humanoid.hipsTarget.chest.bone.transform == null) - return false; - return true; - } - - private void Reset() { - humanoid = GetHumanoid(); - if (humanoid == null) - return; - - NewComponent(humanoid); - - spine.bone.maxAngle = maxSpineAngle; - chest.bone.maxAngle = maxChestAngle; - } - - private HumanoidControl GetHumanoid() { - // This does not work for prefabs - HumanoidControl[] humanoids = FindObjectsOfType(); - - for (int i = 0; i < humanoids.Length; i++) { - if (humanoids[i].hipsTarget != null && humanoids[i].hipsTarget.transform == this.transform) - return humanoids[i]; - } - - return null; - } - - public override void InitAvatar() { - InitSubTargets(); - DoMeasurements(); - - torsoLength = DetermineTorsoLength(); - spine2HipsRotation = DetermineSpine2HipsRotation(); - -#if pCEREBELLUM - Cerebellum_InitAvatar(); -#endif - } - -#if pCEREBELLUM - private void Cerebellum_InitAvatar() { - ICerebellumJoint cJoint; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Hips); - cJoint.position = hips.bone.transform.position; - cJoint.orientation = hips.bone.transform.rotation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Spine); - cJoint.position = spine.bone.transform.position; - cJoint.orientation = spine.bone.transform.rotation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Chest); - cJoint.position = chest.bone.transform.position; - cJoint.orientation = chest.bone.transform.rotation; - } -#endif - - public float torsoLength; - // This is the hipsRotation when the neck is exactly above the hips. - // This depends on the default curvature of the spine. - //When the spine is straight, deltaHipRotation = 0 - public Quaternion spine2HipsRotation; - - public override void InitComponent() { - //bones = new TargetedBone[] { hips, spine, chest }; - //bonesReverse = new TargetedBone[] { chest, spine, hips }; - - //foreach (TargetedBone bone in bones) - // bone.Init(this); - InitSubTargets(); - - RetrieveBones(); - - // We need to do this before the measurements - //foreach (TargetedBone bone in bones) - // bone.SetTargetPositionToAvatar(); - SetTargetPositionsToAvatar(); - - // We need the neck.bone to measure the chest length. This can be null when the avatar is changed - if (humanoid.headTarget.neck.bone.transform == null) - humanoid.headTarget.neck.RetrieveBones(humanoid); - //HeadTarget.GetDefaultNeck(humanoid.avatarRig, ref humanoid.headTarget.neck.bone.transform); - humanoid.headTarget.neck.SetTargetPositionToAvatar(); - - //foreach (TargetedBone bone in bones) - // bone.DoMeasurements(); - DoMeasurements(); - - if (humanoid.headTarget.neck.bone.transform != null && hips.bone.transform != null) - torsoLength = Vector3.Distance(humanoid.headTarget.neck.bone.transform.position, hips.bone.transform.position); - else if (humanoid.headTarget.neck.target.transform != null) - torsoLength = Vector3.Distance(humanoid.headTarget.neck.target.transform.position, hips.target.transform.position); - else - return; - - spine2HipsRotation = DetermineSpine2HipsRotation(); - } - - private float DetermineTorsoLength() { - if (humanoid.headTarget.neck.bone.transform != null && hips.bone.transform != null) - return Vector3.Distance(humanoid.headTarget.neck.bone.transform.position, hips.bone.transform.position); - else if (humanoid.headTarget.neck.target.transform != null) - return Vector3.Distance(humanoid.headTarget.neck.target.transform.position, hips.target.transform.position); - else - return 0.5F; - } - - protected Quaternion DetermineSpine2HipsRotation() { - Vector3 torsoTop; - if (humanoid.headTarget.neck.bone.transform != null) - torsoTop = humanoid.headTarget.neck.bone.transform.position; - else - torsoTop = humanoid.headTarget.neck.target.transform.position; - - if (hips.bone.transform != null) { - Vector3 torsoUp = torsoTop - hips.bone.transform.position; - Vector3 hipsForward = hips.bone.targetRotation * Vector3.forward; //hips.target.transform.forward; //humanoid.transform.forward; - Quaternion torsoRotation = Quaternion.LookRotation(torsoUp, -hipsForward) * Quaternion.AngleAxis(90, Vector3.right); - return Quaternion.Inverse(torsoRotation) * hips.bone.targetRotation; - } - else - return spine2HipsRotation; - } - - public override void StartTarget() { - InitSensors(); - - torsoMovements.Start(humanoid, this); - } - - /// - /// Checks whether the humanoid has an HipsTarget - /// and adds one if none has been found - /// - /// The humanoid to check - public static void DetermineTarget(HumanoidControl humanoid) { - HipsTarget hipsTarget = humanoid.hipsTarget; - - if (hipsTarget == null && humanoid.targetsRig != null) { - Transform hipsTargetTransform = humanoid.targetsRig.GetBoneTransform(HumanBodyBones.Hips); - if (hipsTargetTransform == null) { - Debug.LogError("Could not find hips bone in targets rig"); - return; - } - - hipsTarget = hipsTargetTransform.GetComponent(); - if (hipsTarget == null) { - hipsTarget = hipsTargetTransform.gameObject.AddComponent(); - hipsTarget.humanoid = humanoid; - } - } - - humanoid.hipsTarget = hipsTarget; - } - - public override void MatchTargetsToAvatar() { - //if (!Application.isPlaying) - // return; - - hips.MatchTargetToAvatar(); - if (main.bone.transform != null && main.target.transform != null && transform != null) { - transform.position = main.target.transform.position; - // This is disabled, because the hips rotation is more dependent on the head target - // than the hips target. Enabling this will make the posing instable. - transform.rotation = main.target.transform.rotation; - } - spine.MatchTargetToAvatar(); - chest.MatchTargetToAvatar(); - } - - - #endregion - - #region Update - - public override void UpdateTarget() { - hips.target.confidence.Degrade(); - spine.target.confidence = Confidence.none; - chest.target.confidence = Confidence.none; - - UpdateSensors(); - -#if pCEREBELLUM - Cerebellum_UpdateTargets(); -#endif - } - -#if pCEREBELLUM - - public void Cerebellum_UpdateTargets() { - ICerebellumTarget cTarget; - - cTarget = humanoid.cerebellum.GetTarget(Bone.Hips); - cTarget.SetPosition(hips.target.transform.position, hips.target.confidence.position); - cTarget.SetOrientation(hips.target.transform.rotation, hips.target.confidence.rotation); - - cTarget = humanoid.cerebellum.GetTarget(Bone.Spine); - cTarget.SetOrientation(spine.target.transform.rotation, spine.target.confidence.rotation); - - cTarget = humanoid.cerebellum.GetTarget(Bone.Chest); - cTarget.SetOrientation(chest.target.transform.rotation, chest.target.confidence.rotation); - } - -#endif - - public override void UpdateMovements(HumanoidControl humanoid) { - TorsoMovements.Update(this); -#if pCEREBELLUM - if (humanoid.cerebellum != null) { - ICerebellumJoint cJoint; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Hips); - hips.bone.transform.rotation = cJoint.orientation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Spine); - spine.bone.transform.rotation = cJoint.orientation; - - cJoint = humanoid.cerebellum.GetJoint(Bone.Chest); - chest.bone.transform.rotation = cJoint.orientation; - } -#endif - } - - public override void CopyTargetToRig() { - if (Application.isPlaying && - humanoid.animatorEnabled && humanoid.targetsRig.runtimeAnimatorController != null) - return; - - if (hips.target.transform == null || transform == hips.target.transform) - return; - - hips.target.transform.SetPositionAndRotation(transform.position, transform.rotation); -#if pCEREBELLUM - Cerebellum_UpdateTargets(); -#endif - - } - - public override void CopyRigToTarget() { - if (hips.target.transform == null || transform == hips.target.transform) - return; - - if (!Application.isPlaying && hips.bone.transform != null) { - float targetDistance = Vector3.Distance(hips.bone.transform.position, hips.target.transform.position); - if (targetDistance < 0.001F) - return; - float angleDifference = Quaternion.Angle(hips.bone.targetRotation, hips.target.transform.rotation); - if (angleDifference < 0.1F) - return; - } - - transform.position = hips.target.transform.position; - transform.rotation = hips.target.transform.rotation; - } - - public void UpdateSensorsFromTarget() { - if (sensors == null) - return; - - for (int i = 0; i < sensors.Length; i++) - sensors[i].UpdateSensorTransformFromTarget(this.transform); - } - - #endregion - - #region DrawRigs - - protected override void DrawTargetRig(HumanoidControl humanoid) { - if (this != humanoid.hipsTarget) - return; - - DrawTarget(hips.target.confidence, hips.target.transform, Vector3.up, hips.target.length); - DrawTarget(spine.target.confidence, spine.target.transform, Vector3.up, spine.target.length); - DrawTarget(chest.target.confidence, chest.target.transform, Vector3.up, chest.target.length); - } - - protected override void DrawAvatarRig(HumanoidControl humanoid) { - if (this != humanoid.hipsTarget) - return; - - if (chest.bone.transform != null) - Debug.DrawRay(chest.bone.transform.position, chest.bone.targetRotation * Vector3.up * chest.bone.length, Color.cyan); - if (spine.bone.transform != null) - Debug.DrawRay(spine.bone.transform.position, spine.bone.targetRotation * Vector3.up * spine.bone.length, Color.cyan); - if (hips.bone.transform != null) - Debug.DrawRay(hips.bone.transform.position, hips.bone.targetRotation * Vector3.up * hips.bone.length, Color.cyan); - } - - #endregion - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs.meta deleted file mode 100644 index a4f22ba..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HipsTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: a92bd8efd3050c94ca4271d58273b4e0 -timeCreated: 1461857393 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs deleted file mode 100644 index f7b485b..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs +++ /dev/null @@ -1,607 +0,0 @@ -using Passer.Humanoid.Tracking; -using UnityEngine; - -namespace Passer.Humanoid { - public static class TransformExtension { - public static Transform FindDeepChild(this Transform parent, string name) { - if (!parent.gameObject.activeInHierarchy) - return null; - - Transform result = parent.Find(name); - if (result != null) - return result; - - foreach (Transform child in parent) { - result = child.FindDeepChild(name); - if (result != null) - return result; - } - return null; - } - } - - public interface ITarget { - HumanoidTarget.TargetedBone[] GetBones(); - SkinnedMeshRenderer blendshapeRenderer { - get; - } - string[] GetBlendshapeNames(); - int FindBlendshape(string namepart); - void SetBlendshapeWeight(string name, float weight); - float GetBlendshapeWeight(string name); - } - - public class VectorRotation { - public static Vector ToVector(Vector3 vector3) { - return new Vector(vector3.x, vector3.y, vector3.z); - } - - public static Vector3 ToVector3(Vector position) { - return new Vector3(position.x, position.y, position.z); - } - - public static Rotation ToRotation(Quaternion quaternion) { - return new Rotation(quaternion.x, quaternion.y, quaternion.z, quaternion.w); - } - - public static Quaternion ToQuaternion(Rotation orientation) { - return new Quaternion(orientation.x, orientation.y, orientation.z, orientation.w); - } - - public static void SetRotation(Transform transform, Rotation orientation) { - transform.rotation = ToQuaternion(orientation); - } - } -} - - - -namespace Passer.Humanoid { - - /// - /// A tracking transform for humanoids - /// - [System.Serializable] - public abstract class HumanoidTarget : Target { - - public static Vector ToVector(Vector3 vector3) { - return new Vector(vector3.x, vector3.y, vector3.z); - } - - public static Vector3 ToVector3(Vector position) { - return new Vector3(position.x, position.y, position.z); - } - - public static Rotation ToRotation(Quaternion quaternion) { - return new Rotation(quaternion.x, quaternion.y, quaternion.z, quaternion.w); - } - - public static Quaternion ToQuaternion(Rotation orientation) { - return new Quaternion(orientation.x, orientation.y, orientation.z, orientation.w); - } - - public static void SetRotation(Transform transform, Rotation orientation) { - transform.rotation = ToQuaternion(orientation); - } - - public HumanoidControl humanoid; - //public IControl iControl; - - public abstract TargetedBone main { - get; - } - - public abstract Transform GetDefaultTarget(HumanoidControl humanoid); - - public abstract void InitAvatar(); - - public virtual void NewComponent(HumanoidControl _humanoid) { - humanoid = _humanoid; - } - - #region Gizmos - public void OnDrawGizmos() { - if (humanoid == null) - return; - if (humanoid.showTargetRig) - DrawTargetRig(humanoid); - if (humanoid.showAvatarRig) - DrawAvatarRig(humanoid); - } - public void OnDrawGizmosSelected() { - if (humanoid == null) - return; - - DrawTensions(); - } - - protected virtual void DrawTargetRig(HumanoidControl humanoid) { } - protected virtual void DrawAvatarRig(HumanoidControl humanoid) { } - - public static void DrawTarget(Confidence confidence, Transform target, Vector3 direction, float length) { - if (target == null) - return; - if (confidence.rotation > 0.8F) - Debug.DrawRay(target.position, target.rotation * direction * length, Color.green); - else if (confidence.rotation > 0.6F) - Debug.DrawRay(target.position, target.rotation * direction * length, Color.yellow); - else if (confidence.rotation > 0F) - Debug.DrawRay(target.position, target.rotation * direction * length, Color.red); - else - Debug.DrawRay(target.position, target.rotation * direction * length, Color.black); - } - - public static void DrawTargetBone(TargetedBone bone, Vector3 direction) { - DrawTargetBone(bone.target, direction); - } - public static void DrawTargetBone(TargetTransform target, Vector3 direction) { - if (target.transform == null) - return; - - if (target.confidence.rotation > 0.8F) - Debug.DrawRay(target.transform.position, target.transform.rotation * direction * target.length, Color.green); - else if (target.confidence.rotation > 0.6F) - Debug.DrawRay(target.transform.position, target.transform.rotation * direction * target.length, Color.yellow); - else if (target.confidence.rotation > 0F) - Debug.DrawRay(target.transform.position, target.transform.rotation * direction * target.length, Color.red); - //else - // Debug.DrawRay(target.transform.position, target.transform.rotation * direction * target.length, Color.black); - } - - public static void DrawAvatarBone(TargetedBone bone, Vector3 direction) { - DrawAvatarBone(bone.bone, direction); - } - public static void DrawAvatarBone(BoneTransform bone, Vector3 direction) { - if (bone.transform == null) - return; - - Debug.DrawRay(bone.transform.position, bone.targetRotation * direction * bone.length, Color.cyan); - } - - public virtual void DrawTensions() { } - //private void DrawTensions() { - // if (bones == null || humanoid == null || !humanoid.showMuscleTension) - // return; - - // foreach (TargetedBone bone in bones) - // DrawTensionGizmo(bone); - //} - - protected virtual void DrawTensionGizmo(TargetedBone targetedBone) { - if (targetedBone.bone.transform == null) - return; - - float tension = targetedBone.GetTension(); - Gizmos.color = Color.yellow; - Gizmos.DrawWireSphere(targetedBone.bone.transform.position, tension * 0.05F); - } - #endregion - - // boneNames convention: - // 0 = UMA - // 1 = MCS / Morph3D - // 2 = AutoDesk - public static void GetDefaultBone(Animator rig, ref Transform boneTransform, Bone boneId, params string[] boneNames) { - GetDefaultBone(rig, ref boneTransform, BoneReference.HumanBodyBone(boneId), boneNames); - } - public static void GetDefaultBone(Animator rig, ref Transform boneTransform, HumanBodyBones boneID, params string[] boneNames) { - if (boneTransform != null || rig == null) - return; - - boneTransform = rig.GetBoneTransform(boneID); - if (boneTransform != null) - return; - - for (int i = 0; i < boneNames.Length; i++) { - if (boneTransform != null) - return; - - boneTransform = rig.transform.FindDeepChild(boneNames[i]); - } - } - - public static void GetDefaultTargetBone(Animator rig, ref Transform boneTransform, Bone boneID, params string[] boneNames) { - GetDefaultBone(rig, ref boneTransform, boneID, boneNames); - if (boneTransform == null) { - boneTransform = TargetedBone.NewTargetTransform(boneID.ToString()); - } - } - - // For bones not in the Mecanim rig - // boneNames convention: - // 0 = UMA - // 1 = MCS / Morph3D - // 2 = AutoDesk - public static void GetDefaultBone(Animator rig, ref Transform boneTransform, params string[] boneNames) { - if (boneTransform != null) - return; - - for (int i = 0; i < boneNames.Length; i++) { - if (boneNames[i] == null) - continue; - - boneTransform = rig.transform.FindDeepChild(boneNames[i]); - if (boneTransform != null) - return; - } - - } - - public abstract void UpdateMovements(HumanoidControl humanoid); - - public abstract void MatchTargetsToAvatar(); - public abstract void CopyTargetToRig(); - public abstract void CopyRigToTarget(); - - // Needed for Networking - public abstract Sensor animator { get; } - - [System.Serializable] - public class TargetTransform : TargetData { - public Transform transform = null; - - public Quaternion baseRotation = Quaternion.identity; - public Vector3 basePosition = Vector3.zero; - - public Quaternion toBoneRotation = Quaternion.identity; - - /* - [System.NonSerialized] - public float lastTime = 0; - [System.NonSerialized] - public Vector3 lastPosition = Vector3.zero; - [System.NonSerialized] - public Vector3 velocity = Vector3.zero; - - [System.NonSerialized] - protected Quaternion lastRotation = Quaternion.identity; - //[System.NonSerialized] - //public Quaternion rotationVelocity = Quaternion.identity; - //[System.NonSerialized] - //public Vector3 rotationVelocityAxis = Vector3.forward; - //[System.NonSerialized] - //public float rotationVelocityAngle = 0; - [System.NonSerialized] - public Vector3 angularVelocity = Vector3.zero; - - // This will be replaced by CalculateVelocity on HumanoidTarget; - public virtual void CalculateVelocity() { - if (transform == null) - return; - - if (lastTime > 0 && lastRotation != Quaternion.identity && Time.time > lastTime) { - float deltaTime = Time.time - lastTime; - - velocity = (transform.position - lastPosition) / deltaTime; - //rotationVelocity = Quaternion.SlerpUnclamped(lastRotation, transform.rotation, 1 / deltaTime); - //rotationVelocity.ToAngleAxis(out rotationVelocityAngle, out rotationVelocityAxis); - - Quaternion deltaRotation = transform.rotation * Quaternion.Inverse(lastRotation); - float angle; - Vector3 axis; - deltaRotation.ToAngleAxis(out angle, out axis); - angle *= Mathf.Deg2Rad; - angularVelocity = angle * axis / Time.deltaTime; - } - - lastTime = Time.time; - lastPosition = transform.position; - lastRotation = transform.rotation; - } - */ - //public void Update(Transform trackerTransform) { - // if (targetTransform == null) - // return; - - // confidence.position = targetTransform.positionConfidence; - // transform.position = trackerTransform.TransformPoint(targetTransform.position); - - // confidence.rotation = targetTransform.rotationConfidence; - // transform.rotation = trackerTransform.rotation * targetTransform.rotation; - //} - - //public float positionConfidence { - // get { - // if (targetTransform != null) - // return targetTransform.positionConfidence; - // else - // return confidence.position; - // } - //} - //public float rotationConfidence { - // get { - // if (targetTransform != null) - // return targetTransform.rotationConfidence; - // else - // return confidence.rotation; - // } - //} - } - - [System.Serializable] - public class BoneTransform { - public Transform transform; - public float length; - public bool jointLimitations = false; - public float maxAngle; - public Vector3 minAngles; - public Vector3 maxAngles; - - // The local rotation in de avatar rig - public Quaternion baseRotation = Quaternion.identity; - public Vector3 basePosition = Vector3.zero; - - public Quaternion toTargetRotation; - public Quaternion targetRotation { get { return transform.rotation * toTargetRotation; } } - - private float lastTime; - private Quaternion lastRotation; - public Quaternion rotationVelocity; - - //private float lastPositionTime; - private Vector3 lastPosition; - public Vector3 velocity; - - public Quaternion CalculateAngularVelocity() { - if (transform == null) - return Quaternion.identity; - - Quaternion boneOrientation = transform.rotation * toTargetRotation; - if (lastTime > 0 && lastRotation != Quaternion.identity && Time.time > lastTime) { - float deltaTime = Time.time - lastTime; - - Quaternion boneRotation = Quaternion.Inverse(lastRotation) * boneOrientation; - rotationVelocity = Quaternion.SlerpUnclamped(Quaternion.identity, boneRotation, 1 / deltaTime); - } - lastTime = Time.time; - lastRotation = boneOrientation; - - return rotationVelocity; - } - public Vector3 CalculateVelocity() { - float deltaTime = Time.time - lastTime; - - velocity = (lastPosition - transform.position) / deltaTime; - - //lastPositionTime = Time.time; - lastPosition = transform.position; - - return velocity; - } - } - - [System.Serializable] - public class TargetedBone { - public string name; - public Bone boneId = Bone.None; - public TargetTransform target = new TargetTransform(); - public BoneTransform bone = new BoneTransform(); - - [System.NonSerialized] - public TargetedBone parent; - [System.NonSerialized] - public TargetedBone nextBone; - - public TargetedBone() { } - - public TargetedBone(TargetedBone _nextBone) { - nextBone = _nextBone; - } - - public virtual void Init() { } - - public bool isPresent { - get { return target.confidence.position > 0; } - // 0 says that we could not find a bone and that it is not possible to set a position. - } - - public static Transform NewTargetTransform(string name) { - GameObject obj = new GameObject(name); - obj.transform.rotation = Quaternion.identity; - return obj.transform; - } - - public void RetrieveBones(HumanoidControl humanoid) { - if (humanoid.targetsRig != null) - GetDefaultTargetBone(humanoid.targetsRig, ref target.transform, boneId); - if (humanoid.avatarRig != null) - GetDefaultBone(humanoid.avatarRig, ref bone.transform, boneId); - } - - public void RetrieveBone(HumanoidControl humanoid, HumanBodyBones boneID) { - if ((bone.transform == null || bone.transform == null) && humanoid.avatarRig != null) { - bone.transform = humanoid.avatarRig.GetBoneTransform(boneID); - } - } - - public virtual Quaternion DetermineRotation() { - if (target.transform != null) - return target.transform.rotation; - else - return Quaternion.identity; - } - - public virtual void MatchTargetToAvatar() { - if (bone.transform == null || target.transform == null) - return; - - if (!Application.isPlaying) { - float targetDistance = Vector3.Distance(bone.transform.position, target.transform.position); - if (targetDistance > 0.001F) - target.transform.position = bone.transform.position; - - float targetAngle = Quaternion.Angle(bone.targetRotation, target.transform.rotation); - if (targetAngle > 0.1F) - target.transform.rotation = bone.targetRotation; - } - else { - target.transform.position = bone.transform.position; - target.transform.rotation = bone.targetRotation; - } - - DetermineBasePosition(); - DetermineBaseRotation(); - } - - protected virtual void DetermineBasePosition() { - if (target.basePosition.sqrMagnitude != 0) - // Base Position is already determined - return; - - if (parent != null) { - target.basePosition = parent.target.transform.InverseTransformPoint(target.transform.position); - } - else { - target.basePosition = target.transform.parent.InverseTransformPoint(target.transform.position); - } - } - protected virtual void DetermineBaseRotation() { - if (target.baseRotation != Quaternion.identity) - // Base Rotation is already determined - return; - - if (parent != null) { - target.baseRotation = Quaternion.Inverse(parent.target.transform.rotation) * target.transform.rotation; - } - else { - target.baseRotation = Quaternion.Inverse(target.transform.parent.rotation) * target.transform.rotation; - } - } - - public void CopyBonePositionToTarget() { - if (bone.transform != null && target.transform != null) { - target.transform.position = bone.transform.position; - } - } - public virtual Vector3 TargetBasePosition() { - Transform basePositionReference = target.transform.parent; - return basePositionReference.TransformPoint(target.basePosition); - } - public virtual Quaternion TargetBaseRotation() { - if (parent != null) - return parent.target.transform.rotation * target.baseRotation; - else - return target.transform.parent.rotation * target.baseRotation; - } - - public void SetTargetPositionToAvatar() { - if (bone.transform != null && target.transform != null) - target.transform.position = bone.transform.position; - } - - - public void DoMeasurements() { - CalculateTarget2BoneRotation(); - CalculateBoneLengths(); - } - - private void CalculateTarget2BoneRotation() { - if (bone.transform != null) { - Quaternion targetRotation = DetermineRotation(); - target.toBoneRotation = Quaternion.Inverse(targetRotation) * bone.transform.rotation; - bone.toTargetRotation = Quaternion.Inverse(bone.transform.rotation) * targetRotation; - } - } - - private void CalculateBoneLengths() { - if (target.transform != null && bone.transform != null && nextBone != null && nextBone.bone.transform != null && nextBone.target.transform != null) { - bone.length = Vector3.Distance(bone.transform.position, nextBone.bone.transform.position); - if (bone.length <= 0) - Debug.Log("zero bone"); - if (target != null) - target.length = Vector3.Distance(target.transform.position, nextBone.target.transform.position); - } - else { - bone.length = 0.02F; //default value - } - } - - public virtual float GetTension() { - return 0; - } - - protected static float GetTension(Quaternion restRotation, TargetedBone targetedBone) { - float angle = Quaternion.Angle(restRotation, targetedBone.bone.targetRotation); - float wristTension = GetTensionFromAngle(angle, targetedBone.bone.maxAngle); - return wristTension; - } - - private static float GetTensionFromAngle(float angle, float max) { - angle = Mathf.Abs(angle); - if (max == 0) - return 0; - return angle / max; - } - - public void SetBonePosition(Vector3 targetPosition) { - if (bone.transform == null) - return; - - bone.transform.position = targetPosition; - } - - public void SetBoneRotation(Quaternion targetRotation) { - if (bone.transform == null) - return; - - bone.transform.rotation = targetRotation * target.toBoneRotation; - } - - [System.NonSerialized] - protected float lastTime = 0; - [System.NonSerialized] - protected Quaternion lastRotation; - [System.NonSerialized] - protected Vector3 lastPosition; - - [System.NonSerialized] - public Vector3 velocity = Vector3.zero; - [System.NonSerialized] - public Vector3 angularVelocity = Vector3.zero; - - public virtual void CalculateVelocity() { - if (target.transform == null) - return; - - if (lastTime > 0 && lastRotation != Quaternion.identity && Time.time > lastTime) { - float deltaTime = Time.time - lastTime; - - velocity = (target.transform.position - lastPosition) / deltaTime; - - Quaternion deltaRotation = target.transform.rotation * Quaternion.Inverse(lastRotation); - float angle; - Vector3 axis; - deltaRotation.ToAngleAxis(out angle, out axis); - angle *= Mathf.Deg2Rad; - angularVelocity = angle * axis / Time.deltaTime; - } - - lastTime = Time.time; - lastPosition = target.transform.position; - lastRotation = target.transform.rotation; - } - - } - - //public static void SetColliderToTrigger(GameObject obj, bool b) { - // Rigidbody rb = obj.GetComponent(); - // if (rb != null) - // SetColliderToTrigger(rb, b); - // else { - // Collider[] colliders = obj.GetComponentsInChildren(); - // for (int j = 0; j < colliders.Length; j++) { - // colliders[j].isTrigger = b; - // } - // } - //} - - //public static void SetColliderToTrigger(Rigidbody rb, bool b) { - // Collider[] colliders = rb.GetComponentsInChildren(); - // for (int j = 0; j < colliders.Length; j++) { - // if (colliders[j].attachedRigidbody == null || colliders[j].attachedRigidbody == rb) - // colliders[j].isTrigger = b; - // } - - //} - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs.meta deleted file mode 100644 index 7fdc310..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/HumanoidTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4900897359a23f246a09ec57e593ca81 -timeCreated: 1476425932 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs b/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs deleted file mode 100644 index c9f5ecc..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs +++ /dev/null @@ -1,88 +0,0 @@ -/* -using UnityEngine; - -namespace Passer { - public class ObjectTarget : Target { - - #region Sensors -#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - public SteamVrHandController steamVR = new SteamVrHandController(); -#if hVIVETRACKER - public ViveTrackerSensor viveTracker = new ViveTrackerSensor(); -#endif -#endif -#if hOCULUS - public OculusController oculus = new OculusController(); -#endif -#if hHYDRA - public RazerHydraController hydra = new RazerHydraController(); -#endif - public UnitySensor[] sensors; - - public override void InitSensors() { - if (sensors == null) { - sensors = new UnitySensor[] { -#if hHYDRA - hydra, -#endif -#if hOCULUS - oculus, -#endif -//#if hWINDOWSMR && UNITY_WSA_10_0 -// mrHand, -//#endif -#if hOPENVR && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX) - steamVR, -#if hVIVETRACKER - viveTracker, -#endif -#endif - null - }; - } - } - - public override void StartSensors() { - for (int i = 0; i < sensors.Length - 1; i++) - sensors[i].Start(this.transform); - } - - protected override void UpdateSensors() { - for (int i = 0; i < sensors.Length - 1; i++) - sensors[i].Update(); - } - - public override void UpdateMovements() { - } - - public override void StartTarget() { - InitSensors(); - } - - public override Transform GetDefaultTarget() { - return this.transform; - } - #endregion - - #region Start - public void Awake() { - StartTarget(); - } - - public void Start() { - StartSensors(); - } - #endregion - - #region Update - public void Update() { - UpdateSensors(); - } - - public override void UpdateTarget() { - } - - #endregion - } -} -*/ \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs.meta deleted file mode 100644 index 67bcc34..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/ObjectTarget.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 353da8bd2b7a30e4b8c7971e2556f4d0 -timeCreated: 1515774399 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Targets/Target.cs b/Runtime/HumanoidFree/Scripts/Targets/Target.cs deleted file mode 100644 index a195590..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/Target.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Passer { - - /// - /// Target side - /// - public enum Side { - AnySide, - Left, - Right, - } - - /// - /// A main tracking transform - /// - public abstract class Target : MonoBehaviour { - - protected bool _showRealObjects = true; - /// - /// show the target meshes - /// - public virtual bool showRealObjects { - get { return _showRealObjects; } - set { _showRealObjects = value; } - } - - public virtual void InitComponent() { } - - public abstract void StartTarget(); - public abstract void InitSensors(); - public virtual void StartSensors() { } - protected virtual void UpdateSensors() { } - public virtual void StopSensors() { } - public abstract void UpdateTarget(); - - public static List SetColliderToTrigger(GameObject obj) { - Rigidbody rb = obj.GetComponent(); - if (rb != null) - return SetColliderToTrigger(rb); - else { - List changedColliders = new List(); - - Collider[] colliders = obj.GetComponentsInChildren(); - for (int j = 0; j < colliders.Length; j++) { - if (!colliders[j].isTrigger) { - colliders[j].isTrigger = true; - changedColliders.Add(colliders[j]); - } - } - - return changedColliders; - } - } - - public static List SetColliderToTrigger(Rigidbody rb) { - List changedColliders = new List(); - - Collider[] colliders = rb.GetComponentsInChildren(); - for (int j = 0; j < colliders.Length; j++) { - Rigidbody colliderRigidbody = colliders[j].attachedRigidbody; - if (colliderRigidbody == null || colliderRigidbody == rb) { - if (!colliders[j].isTrigger) { - colliders[j].isTrigger = true; - changedColliders.Add(colliders[j]); - } - } - } - return changedColliders; - } - - public static void UnsetColliderToTrigger(List colliders) { - if (colliders == null) - return; - - foreach (Collider c in colliders) { - if (c != null) - c.isTrigger = false; - } - } - - public static void UnsetColliderToTrigger(List colliders, Collider collider) { - if (colliders == null || collider == null) - return; - - if (colliders.Contains(collider)) - collider.isTrigger = false; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Targets/Target.cs.meta b/Runtime/HumanoidFree/Scripts/Targets/Target.cs.meta deleted file mode 100644 index c92ed64..0000000 --- a/Runtime/HumanoidFree/Scripts/Targets/Target.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 1be6d70336944ad4ba8571f9fd5856ee -timeCreated: 1553012924 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools.meta b/Runtime/HumanoidFree/Scripts/Tools.meta deleted file mode 100644 index dbfed7e..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools.meta +++ /dev/null @@ -1,9 +0,0 @@ -fileFormatVersion: 2 -guid: 44430b09f4ee1c144a64ffc44c78c03c -folderAsset: yes -timeCreated: 1500904469 -licenseType: Free -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs b/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs deleted file mode 100644 index f280687..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs +++ /dev/null @@ -1,103 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// Manage avatar meshes for a humanoid - /// The avatar manger can be used to manage multiple avatar meshes for a single humanoid. - /// It is supported single player and networking setups. - /// - /// Setup - /// ===== - /// The Avatar Manager script can be found should be attached to an GameObject with the - /// HumanoidControl component script. - /// - /// Single User - /// =========== - /// \image html AvatarManagerInspectorSingle.png - /// - /// The Avatar Manger script shows the list of available avatars to use. - /// Every avatar needs to have a Animator component attached and only avatars from the - /// Project Window (prefabs, models) are supported, so you cannot use avatar in you scene. - /// New avatars can be added to the list by clicking Add Avatar while empty slots will be - /// cleaned up automatically. - /// The Current Avatar Index shows the index number of the avatar which is currently used. - /// At startup, this value will determine which avatar is used when the scene is started. - /// *Note: this will override the avatar which is attached to the HumanoidControl component!* - /// - /// Networking - /// ========== - /// When Networking Support is enabled additional entries for the third person avatar will be shown. - /// \image html AvatarManagerInspectorMulti.png - /// These values match the behaviour of the Remote Avatar in the Humanoid Control script: - /// at the local client, the first person avatar is used, while the third person avatar is used on - /// remote clients. This will enable you to optimize the avatars for each case. - /// If the Third Person avatar is left to None, like for Robot Kyle in the example above, - /// the First Person avatar will also be used for remote clients. - /// - /// Changing Avatars - /// ================ - /// The avatar can be set using on of the scripting functions like PreviousAvastar, NextAvatar - /// and SetAvatar. These functions can also be used in combination with \ref Script "Scripts" - /// or ControllerInput: - /// - /// \image AvatarManagerControllerInput.png - /// - [HelpURL("https://passervr.com/apis/HumanoidControl/Unity/class_passer_1_1_humanoid_1_1_avatar_manager.html")] - public class AvatarManager : MonoBehaviour { - - /// The index of the current avatar in the list - public int currentAvatarIndex = 0; - /// The list of avatars for the humanoid - /// For networked avatars this avatar will be used for the local client. - public Animator[] fpAvatars = new Animator[0]; - /// The list of third person avatar for networked humanoids - /// This is the avatar which will be used to show a player of remote clients. - /// When no third person avatar is specified, the first person avatar will be used - /// as the third person avatar. - public Animator[] tpAvatars = new Animator[0]; - - private HumanoidControl humanoid; - - protected virtual void Start() { - humanoid = GetComponent(); - SetAvatar(currentAvatarIndex); - } - - /// Replaces the current avatar by the next avatar in the list. - /// This will wrap around when the last avatar is the current avatar. - public void NextAvatar() { - currentAvatarIndex = mod(currentAvatarIndex + 1, fpAvatars.Length); - SetAvatar(currentAvatarIndex); - } - - /// Replaces the current avatar by the previous avatar in the list. - /// This will wrap around when the first avatar is the current avatar. - public void PreviousAvatar() { - currentAvatarIndex = mod(currentAvatarIndex - 1, fpAvatars.Length); - SetAvatar(currentAvatarIndex); - } - - /// This will replace the current avatar with the avatar indicated by the avatarIndex. - /// The index of the avatar in the list of avatars - public void SetAvatar(int avatarIndex) { - if (humanoid == null) - return; - if (avatarIndex < 0 || avatarIndex > fpAvatars.Length) - return; - - if (fpAvatars[avatarIndex] != null) { -#if hNW_UNET || hNW_PHOTON - if (avatarIndex < tpAvatars.Length && tpAvatars[avatarIndex] != null) - humanoid.ChangeAvatar(fpAvatars[avatarIndex].gameObject, tpAvatars[avatarIndex].gameObject); - else -#endif - humanoid.ChangeAvatar(fpAvatars[avatarIndex].gameObject); - } - } - - public static int mod(int k, int n) { - k %= n; - return (k < 0) ? k + n : k; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs.meta deleted file mode 100644 index 7698a60..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/AvatarManager.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4322be67318099e40b371c3561a667d8 -timeCreated: 1495955710 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs b/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs deleted file mode 100644 index 01ff10d..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs +++ /dev/null @@ -1,105 +0,0 @@ -using Passer.Humanoid; -using UnityEngine; - -namespace Passer { - - public class CalibrationPoint : MonoBehaviour { - - public Transform leftCalibrationPoint; - public Transform rightCalibrationPoint; - - public bool leftDetected = false; - public bool rightDetected = false; - - public float rotationMargin = 5; - public float positionMargin = 0.01F; - - protected HumanoidControl humanoid; - protected Transform leftController; - protected Transform rightController; - protected LineRenderer leftLineRenderer; - protected LineRenderer rightLineRenderer; - - virtual protected void Awake() { - humanoid = GetComponentInParent(); - } - - virtual protected void Update() { - if (humanoid == null || leftCalibrationPoint == null || rightCalibrationPoint == null) - return; - -//#if hOCULUS && (UNITY_STANDALONE_WIN || UNITY_ANDROID) -// if (leftController == null) -// leftController = humanoid.leftHandTarget.oculus.sensorTransform; -// if (rightController == null) -// rightController = humanoid.rightHandTarget.oculus.sensorTransform; - -// if (leftLineRenderer == null && leftController != null && rightController != null) { -// Vector3 localPosition = leftCalibrationPoint.InverseTransformPoint(rightCalibrationPoint.position); -// localPosition = Vector3.Scale(localPosition, rightCalibrationPoint.lossyScale); -// leftLineRenderer = AddLineRenderer(leftController.gameObject, localPosition); -// } -// if (rightLineRenderer == null && leftController != null && rightController != null) { -// Vector3 localPosition = rightCalibrationPoint.InverseTransformPoint(leftCalibrationPoint.position); -// localPosition = Vector3.Scale(localPosition, rightCalibrationPoint.lossyScale); -// rightLineRenderer = AddLineRenderer(rightController.gameObject, localPosition); -// } -//#endif - - if (leftController == null || rightController == null) - return; - - leftDetected = DetectLeftFromRight(); - rightDetected = DetectRightFromLeft(); - - if (leftDetected && rightDetected) { - Vector3 direction = rightController.position - leftController.position; - Vector3 calibrationDirection = rightCalibrationPoint.position - leftCalibrationPoint.position; - Quaternion rotation = Quaternion.FromToRotation(direction, calibrationDirection); - - humanoid.AdjustTracking(Vector3.zero, rotation); - - Vector3 centerControllerPosition = (leftController.position + rightController.position) / 2; - Vector3 centerCalibrationPosition = (leftCalibrationPoint.position + rightCalibrationPoint.position) / 2; - Vector3 translation = centerCalibrationPosition - centerControllerPosition; - - humanoid.AdjustTracking(translation, Quaternion.identity); - - this.gameObject.SetActive(false); - Destroy(leftLineRenderer); - Destroy(rightLineRenderer); - } - } - - public void StartCalibrate() { - this.gameObject.SetActive(true); - } - - virtual protected bool DetectRightFromLeft() { - Vector3 calibrationPosition = leftCalibrationPoint.InverseTransformPoint(rightCalibrationPoint.position); - calibrationPosition = Vector3.Scale(calibrationPosition, leftCalibrationPoint.lossyScale); - Vector3 sollPosition = leftController.TransformPoint(calibrationPosition); - - float distance = Vector3.Distance(sollPosition, rightController.position); - return distance < positionMargin; - } - - virtual protected bool DetectLeftFromRight() { - Vector3 calibrationPosition = rightCalibrationPoint.InverseTransformPoint(leftCalibrationPoint.position); - calibrationPosition = Vector3.Scale(calibrationPosition, rightCalibrationPoint.lossyScale); - Vector3 sollPosition = rightController.TransformPoint(calibrationPosition); - - float distance = Vector3.Distance(sollPosition, leftController.position); - return distance < positionMargin; - } - - virtual protected LineRenderer AddLineRenderer(GameObject obj, Vector3 vector) { - LineRenderer renderer = obj.AddComponent(); - - renderer.useWorldSpace = false; - renderer.widthMultiplier = 0.01F; - renderer.SetPosition(1, vector); - return renderer; - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs.meta deleted file mode 100644 index 084d51c..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/CalibrationPoint.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: ef7cbc5bb2a2a4848bfbc89f5caec218 -timeCreated: 1557321476 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs b/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs deleted file mode 100644 index 5aeb2bd..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs +++ /dev/null @@ -1,31 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - public class ColoringInteractionPointer : InteractionPointer { - - public Material validMaterial; - public Material invalidMaterial; - - protected override void Update() { - base.Update(); - - if (!active) - return; - - if (objectInFocus != null) { - TeleportTarget teleportTarget = objectInFocus.GetComponent(); - Renderer[] renderers = GetComponentsInChildren(); - foreach (Renderer renderer in renderers) { - if (teleportTarget != null) - renderer.sharedMaterial = validMaterial; - else - renderer.sharedMaterial = invalidMaterial; - } - } - else - lineRenderer.sharedMaterial = invalidMaterial; - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs.meta deleted file mode 100644 index 9641350..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/ColoringInteractionPointer.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: cdfce9e49ac65144ba34871c39166731 -timeCreated: 1575542591 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs b/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs deleted file mode 100644 index 4e00bbc..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Collections; -using UnityEngine; - -public class FlashLight : MonoBehaviour { - - protected Light thisLight; - - public float duration = 0.1F; - - protected virtual void Awake() { - thisLight = GetComponent(); - } - - public void Flash() { - Flash(duration); - } - - public void Flash(float duration) { - if (thisLight == null) - return; - - StartCoroutine(FlashRoutine(thisLight, duration)); - } - - protected IEnumerator FlashRoutine(Light light, float duration) { - if (light == null) - yield return null; - - light.enabled = true; - yield return new WaitForSeconds(duration); - light.enabled = false; - } -} diff --git a/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs.meta deleted file mode 100644 index b828d5f..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/FlashLight.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: ef937ef713f97b44994f652900d1ef31 -timeCreated: 1550064115 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/Hit.cs b/Runtime/HumanoidFree/Scripts/Tools/Hit.cs deleted file mode 100644 index d61b3da..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Hit.cs +++ /dev/null @@ -1,8 +0,0 @@ -using UnityEngine; - -public class Hit : MonoBehaviour { - - public void HitMe() { - Debug.Log("AU!"); - } -} diff --git a/Runtime/HumanoidFree/Scripts/Tools/Hit.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/Hit.cs.meta deleted file mode 100644 index 6e8085b..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Hit.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: dce01a9c63eca624e85a4263e2e1e54c -timeCreated: 1548692516 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs b/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs deleted file mode 100644 index 50b492a..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Passer; -using UnityEngine; -using UnityEngine.Events; -using UnityEngine.EventSystems; -using UnityEngine.UI; - -namespace Passer.Humanoid { - /// Unity UI button with information on which humanoid pressed the button - /// Unity provides an great UI system which includes a Button component which can call functions on objects when it is pressed. - /// A limitation is that you cannot determine who has pressed the button which can be useful in multiplayer environments. - /// For this case we provide the Humanoid Button. - /// When a Humanoid Button is pressed, a function can be called which takes a HumanoidControl parameter - /// representing the humanoid who pressed the button. This parameter can be used to make the functionality dependent on who pressed the button. - [HelpURLAttribute("https://passervr.com/documentation/humanoid-control/tools/humanoid-button/")] - public class HumanoidButton : Button { - - /// The Event taking a HumanoidControl parameter - [System.Serializable] - public class HumanoidEvent : UnityEvent { } - - /// The onClick event which replaces the standard onClick event - /// This version takes an HumanoidControl parameter - /// The standard does not take a parameter - public new HumanoidEvent onClick = new HumanoidEvent(); - - protected void Press(BaseEventData eventData) { - if (!IsActive() || !IsInteractable()) - return; - - // Get the originator GameObject who clicked the button - GameObject originator = eventData.currentInputModule.gameObject; - if (originator == null) { - Debug.LogError("Could not find the originator for this button click"); - return; - } - - // Get the humanoid on the originator - // and check if it exists - HumanoidControl humanoid = originator.GetComponent(); - if (humanoid == null) { - Debug.LogError("Could not find the humanoid for this button click"); - return; - } - - // Call the button click function with the humanoid as parameter - onClick.Invoke(humanoid); - } - - /// This function is called when the button is clicked - /// Event payload associated with the humanoid - public override void OnPointerClick(PointerEventData eventData) { - base.OnPointerClick(eventData); - - Press(eventData); - } - - /// This function is called when the button is activated with the default button. - /// This is not supported by Humanoid Control, but added for completeness - /// /// Event payload associated with the humanoid - public override void OnSubmit(BaseEventData eventData) { - base.OnSubmit(eventData); - - Press(eventData); - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs.meta deleted file mode 100644 index 3db605e..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/HumanoidButton.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: a8aa7b3000c36c045803872625c58e29 -timeCreated: 1540819023 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs b/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs deleted file mode 100644 index 29b12f3..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs +++ /dev/null @@ -1,207 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - /* - /// An Inetraction Pointer for Humanoids - public class HumanoidInteractionPointer : InteractionPointer { - - /// The InteractionModule used for interacting with Unity UI elements - protected InteractionModule interactionModule; - /// The ID of the interaction used for interaction with Unity UI elemnts - protected int interactionID; - - - /// Adds a default InteractionPointer to the transform - /// The transform to which the Teleporter will be added - /// The interaction pointer type for the Teleporter. - public static new InteractionPointer Add(Transform parentTransform, PointerType pointerType = PointerType.Ray) { - GameObject pointerObj = new GameObject("Interaction Pointer"); - pointerObj.transform.SetParent(parentTransform); - pointerObj.transform.localPosition = Vector3.zero; - pointerObj.transform.localRotation = Quaternion.identity; - - GameObject focusPointObj = new GameObject("FocusPoint"); - focusPointObj.transform.SetParent(pointerObj.transform); - focusPointObj.transform.localPosition = Vector3.zero; - focusPointObj.transform.localRotation = Quaternion.identity; - - if (pointerType == PointerType.FocusPoint) { - GameObject focusPointSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); - focusPointSphere.transform.SetParent(focusPointObj.transform); - focusPointSphere.transform.localPosition = Vector3.zero; - focusPointSphere.transform.localRotation = Quaternion.identity; - focusPointSphere.transform.localScale = Vector3.one * 0.1F; - Collider collider = focusPointSphere.GetComponent(); - DestroyImmediate(collider, true); - } - else { - LineRenderer pointerRay = focusPointObj.AddComponent(); - pointerRay.startWidth = 0.01F; - pointerRay.endWidth = 0.01F; - pointerRay.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; - pointerRay.receiveShadows = false; - pointerRay.useWorldSpace = false; - } - - InteractionPointer pointer = pointerObj.AddComponent(); - pointer.focusPointObj = focusPointObj; - pointer.rayType = RayType.Straight; - return pointer; - } - - private HeadTarget headTarget; - - protected override void Awake() { - HumanoidControl humanoid = this.transform.root.GetComponentInChildren(); - if (humanoid == null) - base.Awake(); - - else { - //inputModule = humanoid.GetComponent(); - interactionModule = FindObjectOfType(); - if (interactionModule == null) { - interactionModule = humanoid.gameObject.AddComponent(); - } - - interactionID = interactionModule.CreateNewInteraction(transform, timedClick); - - if (focusPointObj == null) { - focusPointObj = new GameObject("Focus Point"); - focusPointObj.transform.parent = transform; - } - - lineRenderer = focusPointObj.GetComponent(); - if (lineRenderer != null) { - lineRenderer.useWorldSpace = false; - lineRenderer.SetPosition(1, Vector3.zero); - } - - headTarget = transform.parent.GetComponent(); - } - } - - #region Update - - protected override void Update() { - if (focusPointObj == null) - return; - - interactionModule.ActivatePointing(interactionID, active); - - if (interactionModule.IsPointing(interactionID)) { - focusPointObj.SetActive(true); - - if (rayType == RayType.SphereCast) { - UpdateSpherecast(); - } - else if (lineRenderer != null) { - lineRenderer.enabled = true; - switch (rayType) { - case RayType.Straight: - UpdateStraight(); - break; - case RayType.Bezier: - UpdateBezier(); - break; - case RayType.Gravity: - UpdateGravity(); - break; - } - } - else { - Vector3 focusPoint = interactionModule.GetFocusPoint(interactionID); - Vector3 localFocusPoint = transform.InverseTransformPoint(focusPoint); - focusPointObj.transform.position = transform.TransformPoint(localFocusPoint - Vector3.forward * 0.01F); - focusPointObj.transform.rotation = interactionModule.GetFocusRotation(interactionID); - } - objectInFocus = interactionModule.GetFocusObject(interactionID); - if (objectInFocus != null) { - Rigidbody rigidbodyInFocus = objectInFocus.GetComponentInParent(); - if (rigidbodyInFocus != null) - objectInFocus = rigidbodyInFocus.gameObject; - } - - if (timedClick != 0) { - if (!hasClicked && interactionModule.IsTimedClick(interactionID)) { - Click(true); - hasClicked = true; - Click(false); - } - } - - } - else { - focusPointObj.SetActive(false); - focusPointObj.transform.position = transform.position; - objectInFocus = null; - hasClicked = false; - } - - UpdateFocus(); - UpdateFocusPoint(); - - if (headTarget != null) { -#if hFACE - transform.rotation = Quaternion.LookRotation(headTarget.face.gazeDirection); -#endif - } - } - - protected override void UpdateStraight() { - Vector3 focusPosition = transform.position + transform.forward * 10; - Quaternion focusRotation = Quaternion.LookRotation(-transform.forward); - GameObject focusObject = null; - - RaycastHit hit; - bool raycastHit = Physics.Raycast(transform.position, transform.forward, out hit, maxDistance); - if (raycastHit) { - focusPosition = hit.point; - focusRotation = Quaternion.LookRotation(hit.normal); - focusObject = hit.transform.gameObject; - } - - interactionModule.SetExternalRayCast(interactionID, focusPosition, focusRotation, focusObject); - - focusPointObj.transform.position = focusPosition; - focusPointObj.transform.rotation = focusRotation; - - Vector3 endPosition = focusPointObj.transform.InverseTransformPoint(transform.position); - - lineRenderer.positionCount = 2; - lineRenderer.SetPosition(0, endPosition); - } - - #endregion - /// Sets the diration in which the pointer points - /// While writing this, I wonder why the rotation of the transform is not used here. - public void SetRayDirection(Vector3 direction) { - interactionModule.SetPointingDirection(interactionID, direction); - } - - public override void Activation(bool _active) { - base.Activation(_active); - } - - /// Automatically clicks when it is deactivated - /// This function will activate the interaction pointer when the active parameter is true - /// and will perform a click when the interaction pointer is deactivated again. - /// This enables you to do interaction with one button. - /// The new activation status of the interaction pointer - public void ActivationClick(bool _active) { - if (active && !_active) { - base.Click(true); - base.Activation(false); - base.Click(false); - } - else if (!active && _active) { - base.Activation(true); - } - } - - public override void Click(bool clicking) { - base.Click(clicking); - } - - } - */ -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs.meta deleted file mode 100644 index d705422..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/HumanoidInteractionPointer.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 8771fa56da9386d469d85526eccf2472 -timeCreated: 1520428995 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs b/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs deleted file mode 100644 index 2ee8a5a..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs +++ /dev/null @@ -1,265 +0,0 @@ -using UnityEngine; - -namespace Passer { - using Humanoid; - - /// - /// The Menu Manager uses two Interaction Pointers for each hand: - /// - An (straight) interaction pointer to interact with the menu when it is active - /// - An (curved) interaction pointer to do teleporting when the menu is not active. - /// Both pairs of interaction pointers needs to be set in the Inspector to work correctly. - /// - /// The Menu Manager uses a Trigger Sphere Collider to detect if the user has moved too - /// far the the menu to interact with it. - /// - [RequireComponent(typeof(SphereCollider))] - public class MenuManager : MonoBehaviour { - - public HumanoidControl humanoid; - public float menuDistance = 0.5F; - - public InteractionPointer leftMenuPointer; - public InteractionPointer rightMenuPointer; - - public InteractionPointer leftTeleporter; - public InteractionPointer rightTeleporter; - - /// - /// Initialization - /// - protected virtual void Awake() { - // If the humanoid is not set, try to detect the local humanoid player - if (humanoid == null) - humanoid = FindHumanoid(); - - if (humanoid != null) { - InitInteractionPointers(humanoid); - SetControllerInput(humanoid); - } - - // Sphere collider needs to be a trigger collider - SphereCollider collider = GetComponent(); - if (collider != null) - collider.isTrigger = true; - - // We start with the menu disabled - SetMenuActive(false); - } - - /// - /// Tries to find the local Humanoid - /// - /// The found humanoid, null if no local humanoid has been found - protected HumanoidControl FindHumanoid() { - HumanoidControl[] humanoids = FindObjectsOfType(); - for (int i = 0; i < humanoids.Length; i++) { - if (humanoids[i].isRemote == false) - return humanoids[i]; - } - return null; - } - - /// - /// Detects the Teleporter and Menu Interaction pointer on the humanoid - /// - /// The humanoid for which the interaction pointers need to be found - protected void InitInteractionPointers(HumanoidControl humanoid) { - leftTeleporter = humanoid.leftHandTarget.GetComponentInChildren(); - rightTeleporter = humanoid.rightHandTarget.GetComponentInChildren(); - - leftMenuPointer = GetInteractionPointer(humanoid.leftHandTarget, leftTeleporter); - rightMenuPointer = GetInteractionPointer(humanoid.rightHandTarget, rightTeleporter); - } - - /// - /// Find interaction pointer on the hand - /// - /// The hand to which the Interaction Pointer should be attached - /// (optional) when give, the interaction pointer should be not euqual to the invalidPointer - /// The found interaction pointer - protected InteractionPointer GetInteractionPointer(HandTarget handTarget, InteractionPointer invalidPointer = null) { - InteractionPointer[] interactionPointers = handTarget.GetComponentsInChildren(); - foreach (InteractionPointer interactionPointer in interactionPointers) { - if (interactionPointer != invalidPointer) - return interactionPointer; - } - return null; - } - - protected void SetControllerInput(HumanoidControl humanoid) { - ControllerInput controllerInput = humanoid.GetComponent(); - if (controllerInput != null) { - //controllerInput.leftOptionInput.SetMethod(SetMenuActive, InputEvent.EventType.Start); - //controllerInput.rightOptionInput.SetMethod(SetMenuActive, InputEvent.EventType.Start); - controllerInput.SetEventHandler(true, ControllerInput.SideButton.Option, SetMenuActive); - controllerInput.SetEventHandler(false, ControllerInput.SideButton.Option, SetMenuActive); - } - } - - /// - /// Activates or deactivates the menu and updates the interaction pointer behaviour - /// - /// Indication whether the menu has to be active - public void SetMenuActive(bool active) { - if (humanoid == null) - return; - - ControllerInput controllerInput = humanoid.GetComponent(); - - // Hide the menu when it is visble (toggle function) or - // when it is set to be inactive explicitly - if (MenuActive() || active == false) { - HideMenu(); - DisableMenuPointer(controllerInput); - EnableTeleporter(controllerInput); - } - else { - ShowMenu(); - DisableTeleporter(controllerInput); - EnableMenuPointer(controllerInput); - - AdjustOutOfRangeDistance(); - } - } - - /// - /// Trigger handler for when an object moves out of the sphere collider - /// - protected void OnTriggerExit(Collider other) { - - if (MenuActive()) { - // Is it the humanoid exiting the range sphere? - HumanoidControl triggeringHumanoid = other.GetComponentInParent(); - if (triggeringHumanoid == humanoid) - SetMenuActive(false); - } - } - - /// - /// Show the menu at 'distance' from the players' head. - /// But take core it is not placed inside objects. - /// If this happens, the menu is places closer to the humanoid. - /// - protected void ShowMenu() { - float distance = menuDistance; - - // check if the menu will intersect with an object - RaycastHit hit; - Vector3 direction = humanoid.headTarget.transform.forward; - Vector3 origin = humanoid.headTarget.transform.position + direction * 0.1F; - if (Physics.Raycast(origin, direction, out hit, menuDistance)) - distance = hit.distance; - - // Position the menu at 'distance' from the player's head - this.transform.position = humanoid.headTarget.transform.TransformPoint(0, 0, distance); - this.transform.rotation = Quaternion.LookRotation(humanoid.headTarget.transform.forward, Vector3.up); - - this.gameObject.SetActive(true); - } - - /// - /// Hide the menu - /// - protected void HideMenu() { - this.gameObject.SetActive(false); - } - - /// - /// Is the menu currently visible? - /// - /// boolean indicating whether the menu is visible - protected bool MenuActive() { - return this.gameObject.activeInHierarchy; - } - - /// - /// Enable the Menu Pointer. This will also set the controller input. - /// - /// The ControllerInput to update - protected void EnableMenuPointer(ControllerInput controllerInput) { - // activate the interaction pointer - if (leftMenuPointer != null) - leftMenuPointer.Activation(true); - if (rightMenuPointer != null) - rightMenuPointer.Activation(true); - - // enable the button click - if (controllerInput != null) { - if (leftMenuPointer != null) - controllerInput.SetEventHandler(true, ControllerInput.SideButton.Trigger1, leftMenuPointer.Click); - if (rightMenuPointer != null) - controllerInput.SetEventHandler(false, ControllerInput.SideButton.Trigger1, rightMenuPointer.Click); - } - } - - /// - /// Disable the Menu Pointer. This will also disable the controller input. - /// - /// The ControllerInput to update - protected void DisableMenuPointer(ControllerInput controllerInput) { - // deactivate the interaction pointer - if (leftMenuPointer != null) - leftMenuPointer.Activation(false); - if (rightMenuPointer != null) - rightMenuPointer.Activation(false); - - // disable the button click - if (controllerInput != null) { - controllerInput.SetEventHandler(true, ControllerInput.SideButton.Trigger1, null); - controllerInput.SetEventHandler(false, ControllerInput.SideButton.Trigger1, null); - } - } - - /// - /// Enable the teleporter. This will also set the controller input. - /// - /// The ControllerInput to update - protected void EnableTeleporter(ControllerInput controllerInput) { - // enable the button activation and click - if (controllerInput != null) { - if (leftTeleporter != null) { - controllerInput.SetEventHandler(true, ControllerInput.SideButton.StickButton, leftTeleporter.Activation); - controllerInput.SetEventHandler(true, ControllerInput.SideButton.Trigger1, leftTeleporter.Click); - } - if (rightTeleporter != null) { - controllerInput.SetEventHandler(false, ControllerInput.SideButton.StickButton, rightTeleporter.Activation); - controllerInput.SetEventHandler(false, ControllerInput.SideButton.Trigger1, rightTeleporter.Click); - } - } - } - - /// - /// Disable the Teleporter. This will also disable the controller input - /// - /// The ControllerInput to update - protected void DisableTeleporter(ControllerInput controllerInput) { - // deactivate the interaction pointer - if (leftTeleporter != null) - leftTeleporter.Activation(false); - if (rightTeleporter != null) - rightTeleporter.Activation(false); - - // disable the button activation - if (controllerInput != null) { - controllerInput.SetEventHandler(true, ControllerInput.SideButton.StickButton, null); - controllerInput.SetEventHandler(false, ControllerInput.SideButton.StickButton, null); - } - } - - /// - /// Adjust trigger sphere collider radius for out-of-range - /// - protected void AdjustOutOfRangeDistance() { - SphereCollider collider = GetComponent(); - if (collider != null) { - float radius = collider.radius; - if (leftMenuPointer != null) - radius = Mathf.Max(radius, leftMenuPointer.maxDistance); - if (rightMenuPointer != null) - radius = Mathf.Max(radius, rightMenuPointer.maxDistance); - collider.radius = radius; - } - } - } - -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs.meta deleted file mode 100644 index cd76db7..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/MenuManager.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 1fb9c90579e1c334d810394241436af2 -timeCreated: 1575542733 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs b/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs deleted file mode 100644 index 6798244..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs +++ /dev/null @@ -1,39 +0,0 @@ -using UnityEngine; - -public class Redrop : MonoBehaviour { - - // Script which is to be replaced by CollisionEventHandler - - public Collider groundCollider; - - private Rigidbody thisRigidbody; - private Vector3 startPosition; - private Quaternion startRotation; - - void Start() { - startPosition = transform.position; - startRotation = transform.rotation; - } - - void Update() { - if (groundCollider == null && transform.position.y < 0) { - MoveToStart(); - } - } - - private void OnCollisionEnter(Collision collision) { - if (collision.collider == groundCollider) { - MoveToStart(); - } - } - - private void MoveToStart() { - thisRigidbody = transform.GetComponent(); - if (thisRigidbody != null) { - thisRigidbody.MovePosition(new Vector3(startPosition.x, startPosition.y + 0.1F, startPosition.z)); - thisRigidbody.MoveRotation(startRotation); - thisRigidbody.velocity = Vector3.zero; - thisRigidbody.angularVelocity = Vector3.zero; - } - } -} diff --git a/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs.meta deleted file mode 100644 index f37188d..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Redrop.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: d45648018846a13449b6f30d381dcca0 -timeCreated: 1485518935 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs b/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs deleted file mode 100644 index 0ef19b5..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs +++ /dev/null @@ -1,34 +0,0 @@ -#if UNITY_EDITOR -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEditor; -using UnityEditor.SceneManagement; - - -[InitializeOnLoad] -public class SceneLoader { - static SceneLoader() { - EditorSceneManager.sceneOpened += SceneOpened; - } - - private static void SceneOpened(Scene scene, OpenSceneMode mode) { - if ((scene.name == "ObjectTable Pawn" || - scene.name == "ObjectTable Pawn VR" || - scene.name == "ObjectTable Humanoid") && - EditorSceneManager.loadedSceneCount == 1) { - - //Debug.Log("Additive opening ObjectTable scene"); - EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ObjectTable.unity", OpenSceneMode.Additive); - } - else if ((scene.name == "ShootingRange Pawn" || - scene.name == "ShootingRange Pawn VR" || - scene.name == "ShootingRange Humanoid") && - EditorSceneManager.loadedSceneCount == 1) { - - //Debug.Log("Additive opening ShootingRange scene"); - EditorSceneManager.OpenScene("Assets/PawnControl/Demo/Environments/ShootingRange.unity", OpenSceneMode.Additive); - } - - } -} -#endif diff --git a/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs.meta deleted file mode 100644 index 7cd31bd..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/SceneLoader.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 24e8ca57b551d7540b6ea2c944d939e3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs b/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs deleted file mode 100644 index 39137d5..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs +++ /dev/null @@ -1,7 +0,0 @@ -using UnityEngine; -/* -namespace Passer { - - public class SceneStartingPoint : MonoBehaviour { } -} -*/ \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs.meta deleted file mode 100644 index 45d560b..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/SceneStartingPoint.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: bc2ee80886d38b844a0d63e40b974f73 -timeCreated: 1529659211 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs b/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs deleted file mode 100644 index b55d08d..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs +++ /dev/null @@ -1,33 +0,0 @@ -using UnityEngine; - -namespace Passer.Humanoid { - - /// Have a humaonid grab objects from a distance - /// The Humanoid Telegrabber enables humanoids to grab objects - /// which are normally out of reach for the hands. - /// This Interaction Pointer should be used on a child of a HandTarget. - [HelpURLAttribute("https://passervr.com/documentation/humanoid-control/tools/telegrabber/")] - public class Telegrabber : InteractionPointer { - - protected override void Awake() { - clickEvent.SetMethod(EventHandler.Type.OnStart, GrabObject); - base.Awake(); - } - - /// Grab the object currently in focus of the InteractionPointer - /// If current objectInFocus is a Rigidbody, this function will have the Humanoid hand - /// try to grab the object. - public void GrabObject() { - if (objectInFocus == null) - return; - - HandTarget handTarget = transform.GetComponentInParent(); - if (handTarget == null) - return; - - Rigidbody rigidbodyInFocus = objectInFocus.GetComponentInParent(); - if (rigidbodyInFocus != null) - handTarget.GrabOrLetGo(rigidbodyInFocus.gameObject, false); - } - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs.meta b/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs.meta deleted file mode 100644 index 6969409..0000000 --- a/Runtime/HumanoidFree/Scripts/Tools/Telegrabber.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4e919ab37f076b3469df3e69a8f66134 -timeCreated: 1536832922 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs b/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs deleted file mode 100644 index e3f1746..0000000 --- a/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace Passer { - - public class TrackedRigidbody : HybridPhysics { - - } -} \ No newline at end of file diff --git a/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs.meta b/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs.meta deleted file mode 100644 index cc04de3..0000000 --- a/Runtime/HumanoidFree/Scripts/TrackedRigidbody.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 1a3fa2461817d374c8bb8a4393470100 -timeCreated: 1569481074 -licenseType: Free -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Runtime/PasserVR.HumanoidControl.asmdef b/Runtime/PasserVR.HumanoidControl.asmdef index 8dd6a16..c12bd74 100644 --- a/Runtime/PasserVR.HumanoidControl.asmdef +++ b/Runtime/PasserVR.HumanoidControl.asmdef @@ -10,7 +10,8 @@ "PhotonVoice.PUN", "PhotonVoice.API", "LeapMotion", - "LeapMotion.LeapCSharp" + "LeapMotion.LeapCSharp", + "SteamVR" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Samples~/GroceryStore/Prefabs/Humanoid.prefab b/Samples~/GroceryStore/Prefabs/Humanoid.prefab index 1e667ec..d9c5a78 100644 --- a/Samples~/GroceryStore/Prefabs/Humanoid.prefab +++ b/Samples~/GroceryStore/Prefabs/Humanoid.prefab @@ -29,9 +29,9 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 7769776041937714707} - {fileID: 2524207632691600911} - {fileID: 7740277310296953960} + - {fileID: 819564781098235500} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -47,7 +47,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b8af60788a29495468933ff82a4527ba, type: 3} m_Name: m_EditorClassIdentifier: - path: /HumanoidControl/Runtime/HumanoidPlus/Scripts/ + path: es/com.passervr.humanoidcontrol_free/Runtime/HumanoidFree/Scripts/ headTarget: {fileID: 7980081989387465033} leftHandTarget: {fileID: 6924276445279774429} rightHandTarget: {fileID: 728085395196276210} @@ -57,7 +57,7 @@ MonoBehaviour: primaryTarget: 0 targetsRig: {fileID: 1370077731969516542} showTargetRig: 0 - avatarRig: {fileID: 7769776041947517039} + avatarRig: {fileID: 0} showAvatarRig: 1 avatarNeckHeight: 0 showMuscleTension: 0 @@ -195,36 +195,6 @@ MonoBehaviour: poseFloatEvent: m_PersistentCalls: m_Calls: [] - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: - - fromEvent: 1 - localProperty: From Event - type: 0 - floatConstant: 0 - intConstant: 0 - boolConstant: 0 - stringConstant: - vector3Constant: {x: 0, y: 0, z: 0} - gameObjectConstant: {fileID: 0} - rigidbodyConstant: {fileID: 0} - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] defaultParameterProperty: leftStickVertical - id: 1 label: Stick Horizontal @@ -269,36 +239,6 @@ MonoBehaviour: poseFloatEvent: m_PersistentCalls: m_Calls: [] - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: - - fromEvent: 1 - localProperty: From Event - type: 0 - floatConstant: 0 - intConstant: 0 - boolConstant: 0 - stringConstant: - vector3Constant: {x: 0, y: 0, z: 0} - gameObjectConstant: {fileID: 0} - rigidbodyConstant: {fileID: 0} - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] defaultParameterProperty: leftStickHorizontal - id: 2 label: Stick Button @@ -312,27 +252,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 3 label: Touchpad Vertical @@ -346,27 +266,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: leftTouchpadVertical - id: 4 label: Touchpad Horizontal @@ -380,27 +280,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: leftTouchpadHorizontal - id: 5 label: Touchpad Button @@ -414,27 +294,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 6 label: Button 1 @@ -448,27 +308,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 7 label: Button 2 @@ -482,27 +322,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 8 label: Button 3 @@ -516,27 +336,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 9 label: Button 4 @@ -550,27 +350,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 10 label: Trigger 1 @@ -584,27 +364,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 11 label: Trigger 2 @@ -618,27 +378,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 12 label: Option @@ -652,27 +392,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: rightInputEvents: - id: 0 @@ -687,27 +407,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 1 label: Stick Horizontal @@ -721,27 +421,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 2 label: Stick Button @@ -755,27 +435,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 3 label: Touchpad Vertical @@ -789,27 +449,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 4 label: Touchpad Horizontal @@ -823,27 +463,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 5 label: Touchpad Button @@ -857,27 +477,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 6 label: Button 1 @@ -891,27 +491,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 7 label: Button 2 @@ -925,27 +505,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 8 label: Button 3 @@ -959,27 +519,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 9 label: Button 4 @@ -993,27 +533,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 10 label: Trigger 1 @@ -1027,27 +547,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 11 label: Trigger 2 @@ -1061,27 +561,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: - id: 12 label: Option @@ -1095,27 +575,7 @@ MonoBehaviour: - On Change - Continuous fromEventLabel: - events: - - eventType: 0 - eventNetworking: 0 - functionCall: - targetGameObject: {fileID: 0} - methodName: - parameters: [] - boolInverse: 0 - overrideMode: 0 - floatParameter: 0 - floatTriggerLow: 0.01 - floatTriggerHigh: 0.99 - multiplicationFactor: 1 - intTriggerLow: 0 - intTriggerHigh: 1 - label: - poseValue: {fileID: 0} - stringValue: - poseFloatEvent: - m_PersistentCalls: - m_Calls: [] + events: [] defaultParameterProperty: --- !u!1 &292419999129953214 GameObject: @@ -1170,8 +630,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 304514990093418807} - m_LocalRotation: {x: 0.13881722, y: 2.215905e-18, z: -1.455672e-17, w: 0.99031806} - m_LocalPosition: {x: -2.0679515e-25, y: 0.09838284, z: -0.0000000055879354} + m_LocalRotation: {x: -0, y: -4.5145178e-32, z: -9.332244e-15, w: 1} + m_LocalPosition: {x: -4.2351647e-22, y: 0.11258185, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 146483180050904319} @@ -1201,8 +661,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 366792621749089684} - m_LocalRotation: {x: -0.023752773, y: -0.09433281, z: 0.0285323, w: 0.99484825} - m_LocalPosition: {x: 0.17596613, y: -9.313226e-10, z: 0.000000007450581} + m_LocalRotation: {x: 0.0047789654, y: 0.00012399603, z: 0.0000005923608, w: 0.9999886} + m_LocalPosition: {x: 0.1564886, y: -1.6219496e-16, z: -3.679029e-39} m_LocalScale: {x: 1, y: 0.99999994, z: 1} m_Children: - {fileID: 4249058868384445712} @@ -1233,8 +693,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 563621270418297471} - m_LocalRotation: {x: 0.0016913532, y: -0, z: -0, w: 0.99999857} - m_LocalPosition: {x: 2.7755599e-18, y: 0.96801895, z: -0.07455683} + m_LocalRotation: {x: -0, y: -0, z: -9.20181e-15, w: 1} + m_LocalPosition: {x: 0, y: 1.1138859, z: -0.012485122} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 6332245014863019486} @@ -1256,7 +716,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: humanoid: {fileID: 114146988969048474} - hipsBaseHeight: -0.00000059604645 + hipsBaseHeight: -0.96801895 newSpineIK: 0 torsoAnimator: enabled: 1 @@ -1277,71 +737,69 @@ MonoBehaviour: name: boneId: 5 target: - length: 0.3582629 + length: 1.5575587 transform: {fileID: 4263678514780110732} baseRotation: {x: 0.13881722, y: 2.215905e-18, z: -1.455672e-17, w: 0.9903181} basePosition: {x: -4.135903e-25, y: 0.09838284, z: -0.0000000055879354} - toBoneRotation: {x: -0.17342691, y: 5.9046194e-25, z: -1.9341085e-24, w: 0.9848467} + toBoneRotation: {x: 6.661338e-16, y: 3.4521218e-31, z: 5.182325e-16, w: 1} bone: - transform: {fileID: 7769776041937715189} - length: 0.3520822 + transform: {fileID: 0} + length: 0.3582629 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: -0.00420811, y: -2.4523091e-26, z: 3.2305517e-24, w: 0.9999911} + baseRotation: {x: 0, y: 0, z: -5.182325e-16, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.17342691, y: -5.9046194e-25, z: 1.9341085e-24, w: 0.9848467} + toTargetRotation: {x: -6.661338e-16, y: -3.4521218e-31, z: -5.182325e-16, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} spine: name: boneId: 2 target: - length: 0.11258185 + length: 0 transform: {fileID: 3987134310708048551} baseRotation: {x: -0.14465712, y: -2.1299905e-18, z: 1.4569539e-17, w: 0.98948187} basePosition: {x: 0, y: 0.099871434, z: 0.0000000038999133} - toBoneRotation: {x: -0.000000008522472, y: 1.4761559e-17, z: -4.800697e-24, - w: 0.9999999} + toBoneRotation: {x: 4.6566195e-10, y: -4.1043502e-24, z: -8.814012e-15, w: 1} bone: - transform: {fileID: 7769776041937715191} - length: 0.09838284 + transform: {fileID: 0} + length: 0.11258185 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: -0.14298335, y: -2.1546303e-18, z: 1.4565918e-17, w: 0.98972505} + baseRotation: {x: 0, y: 0, z: 8.814012e-15, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.000000008522472, y: -1.4761559e-17, z: 4.800697e-24, - w: 0.9999999} + toTargetRotation: {x: -4.6566195e-10, y: 4.1043502e-24, z: 8.814012e-15, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} hips: name: boneId: 1 target: - length: 0.09609294 + length: 8.432076 transform: {fileID: 6333793700588530597} baseRotation: {x: 0.0016913532, y: 0, z: 0, w: 0.99999857} basePosition: {x: 2.7755599e-18, y: 0.96801895, z: -0.07455683} - toBoneRotation: {x: -0.00000022035827, y: -0, z: 0, w: 0.99999994} + toBoneRotation: {x: 0, y: -0, z: 9.20181e-15, w: 1} bone: - transform: {fileID: 7769776041937715193} - length: 0.099871434 + transform: {fileID: 0} + length: 0.09609294 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} - baseRotation: {x: 0.001691353, y: 0, z: 0, w: 0.9999985} + baseRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.00000022035827, y: 0, z: 0, w: 0.99999994} + toTargetRotation: {x: 0, y: 0, z: -9.20181e-15, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} hipsTarget: {fileID: 35313795358146351} bendingFactor: 1 - torsoLength: 0.54714984 - spine2HipsRotation: {x: 0.02954614, y: 7.508338e-20, z: -2.5401166e-18, w: 0.99956334} + torsoLength: 0.5669377 + spine2HipsRotation: {x: 0, y: 0, z: -9.064944e-15, w: 1} --- !u!1 &586576478049088199 GameObject: m_ObjectHideFlags: 0 @@ -1365,8 +823,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 586576478049088199} - m_LocalRotation: {x: -0.0043142443, y: -0.16458105, z: 0.0499713, w: 0.9850875} - m_LocalPosition: {x: -0.0195459, y: 0.045609213, z: 0.039717842} + m_LocalRotation: {x: -0, y: -1.1754944e-38, z: 5.1823254e-16, w: 1} + m_LocalPosition: {x: -0.04904938, y: 0.040630825, z: -0.012485122} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5057495325285210709} @@ -1426,8 +884,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 832882597606729072} - m_LocalRotation: {x: 2.571394e-39, y: -2.1196503e-24, z: -0.0000000889553, w: 1} - m_LocalPosition: {x: 0.027934022, y: 0.000000003979949, z: -0.000000022161544} + m_LocalRotation: {x: -0.00013389184, y: 0.010465758, z: -0.01279156, w: 0.99986345} + m_LocalPosition: {x: 0.033593573, y: 0.00000000212642, z: -0.000000003319423} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8283956867106449357} @@ -1457,8 +915,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1044431757901746770} - m_LocalRotation: {x: 0.00007047922, y: 0.0021385583, z: 0.03295008, w: 0.99945474} - m_LocalPosition: {x: 0.03181205, y: 0.00000004490721, z: 0.000000015672413} + m_LocalRotation: {x: -0.0000068470836, y: 0.0010127202, z: -0.0067608743, w: 0.99997663} + m_LocalPosition: {x: 0.049120463, y: 5.529728e-10, z: 0.0000000029795046} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 3195765373362933698} @@ -1493,7 +951,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 4968286101144654} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1150885721021700503 GameObject: @@ -1518,8 +976,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1150885721021700503} - m_LocalRotation: {x: -0.0013946104, y: -0.006942933, z: 0.1969303, w: 0.980392} - m_LocalPosition: {x: 0.029196594, y: 0.000000016996637, z: -0.0000000068394} + m_LocalRotation: {x: 0.00004510139, y: -0.0043779872, z: -0.01030091, w: 0.9999374} + m_LocalPosition: {x: 0.037417915, y: -0.000000001542503, z: -0.0000000014879333} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7102781216452166161} @@ -1549,8 +1007,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1203612774220683083} - m_LocalRotation: {x: -0.0042923833, y: 0.16375062, z: -0.049718715, w: 0.98523873} - m_LocalPosition: {x: 0.0195458, y: 0.045609213, z: 0.039717842} + m_LocalRotation: {x: -0, y: -1.1754944e-38, z: 5.1823254e-16, w: 1} + m_LocalPosition: {x: 0.049049404, y: 0.040627964, z: -0.012485102} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2773869395817682926} @@ -1581,8 +1039,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1366324885650531596} - m_LocalRotation: {x: 0.06571098, y: 0.00035375994, z: 0.026365198, w: -0.9974902} - m_LocalPosition: {x: 0.000000011175871, y: -0.38909945, z: -0.000000007450581} + m_LocalRotation: {x: 0.020767761, y: -0.0000067159554, z: -0.004095184, w: -0.999776} + m_LocalPosition: {x: 0.0000000018626451, y: -0.46714398, z: -0.000000013038516} m_LocalScale: {x: 1, y: 0.99999994, z: 1} m_Children: - {fileID: 173989879821802103} @@ -1631,63 +1089,63 @@ MonoBehaviour: name: boneId: 32 target: - length: 0.4569167 + length: 0 transform: {fileID: 6332245014863019486} baseRotation: {x: 0.051287744, y: 0.0005637996, z: 0.010977737, w: 0.99862343} basePosition: {x: -0.11306503, y: 0.0038180987, z: -0.0076525463} - toBoneRotation: {x: -0.9999399, y: 0.0000000024376035, z: -0.010959089, w: -0.000000036551736} + toBoneRotation: {x: -0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} bone: - transform: {fileID: 7769776041937714691} - length: 0.49770987 + transform: {fileID: 0} + length: 0.4569167 jointLimitations: 0 maxAngle: 0 minAngles: {x: -130, y: -45, z: -50} maxAngles: {x: 30, y: 40, z: 30} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.9999399, y: -0.0000000024376035, z: 0.010959089, w: -0.000000036551736} + toTargetRotation: {x: 0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} lowerLeg: name: boneId: 33 target: - length: 0.46714398 + length: 0.3890994 transform: {fileID: 8168424681774074368} baseRotation: {x: -0.061178457, y: 0.0014482728, z: 0.034985777, w: 0.9975125} basePosition: {x: -9.313226e-10, y: -0.4977099, z: 0.000000037252903} - toBoneRotation: {x: -0.99894893, y: 0.000000008189416, z: -0.045841355, w: 0.000000128784} + toBoneRotation: {x: -0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} bone: - transform: {fileID: 7769776041937715159} - length: 0.38909954 + transform: {fileID: 0} + length: 0.46714398 jointLimitations: 0 maxAngle: 0 minAngles: {x: -15, y: NaN, z: NaN} maxAngles: {x: 130, y: NaN, z: NaN} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.99894893, y: -0.000000008189416, z: 0.045841355, w: 0.000000128784} + toTargetRotation: {x: 0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} foot: name: boneId: 34 target: - length: 0.14564736 + length: 0.3890995 transform: {fileID: 82171149504432471} baseRotation: {x: 0.0082407575, y: 0.0005350625, z: -0.045995984, w: 0.9989076} basePosition: {x: -0.0664299, y: 0.089666426, z: -0.12843405} - toBoneRotation: {x: -0.8697181, y: 0.047805566, z: 0.047805402, w: -0.4888968} + toBoneRotation: {x: -0, y: 0, z: 0.00000000818479, w: 1} bone: - transform: {fileID: 7769776041937715145} - length: 0.13777348 + transform: {fileID: 0} + length: 0.14564736 jointLimitations: 0 maxAngle: 0 minAngles: {x: -45, y: 0, z: -30} maxAngles: {x: 70, y: 0, z: 20} - baseRotation: {x: 0.26849964, y: -0.02049732, z: 0.005714712, w: 0.9630447} + baseRotation: {x: 0.28736073, y: -0.00000032279587, z: 0.00000009684347, w: 0.95782244} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.8697181, y: -0.047805566, z: -0.047805402, w: -0.4888968} + toTargetRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} toes: @@ -1696,11 +1154,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 173989879821802103} - baseRotation: {x: -3.4698715e-17, y: 1.2603816e-11, z: -0.000000007451479, w: 1} + baseRotation: {x: 2.0411606e-17, y: 7.275969e-12, z: -0.000000008381947, w: 1.0000002} basePosition: {x: -0.005016463, y: -0.07128256, z: 0.11779294} - toBoneRotation: {x: 0.23283803, y: -0.67092836, z: -0.6709268, w: 0.2133051} + toBoneRotation: {x: -0, y: 0, z: 1.7763568e-15, w: 1} bone: - transform: {fileID: 7769776041937715185} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -1708,7 +1166,7 @@ MonoBehaviour: maxAngles: {x: 45, y: NaN, z: NaN} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.23283803, y: 0.67092836, z: 0.6709268, w: 0.2133051} + toTargetRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} jointLimitations: 1 @@ -1768,36 +1226,6 @@ Transform: m_Father: {fileID: 815571997958144132} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1408160166450874728 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4633524955936641875} - m_Layer: 0 - m_Name: Hand Palm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4633524955936641875 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1408160166450874728} - m_LocalRotation: {x: -0.31734687, y: -0.6804051, z: -0.34090987, w: 0.5657918} - m_LocalPosition: {x: 0.00574137, y: 0.087324284, z: -0.023438986} - m_LocalScale: {x: 1.0000002, y: 1.0000005, z: 1.0000008} - m_Children: [] - m_Father: {fileID: 7769776041937715139} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1846343395287115980 GameObject: m_ObjectHideFlags: 0 @@ -1821,8 +1249,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1846343395287115980} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.013552903, y: 0.00000003032619, z: 0.000000012865208} + m_LocalRotation: {x: -0.000002926688, y: 0.00021634062, z: -0.0135223325, w: 0.9999086} + m_LocalPosition: {x: 0.023639005, y: 0.0000000011276597, z: 0.0000000018753248} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4410791377464064158} @@ -1883,8 +1311,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2188552291069739373} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.020972608, y: -0.000000032329126, z: 0.0000000019219593} + m_LocalRotation: {x: -0.00007100405, y: 0.0031085527, z: -0.022835713, w: 0.9997344} + m_LocalPosition: {x: 0.0278478, y: 7.5198514e-10, z: 0.000000003433486} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7355896404086969169} @@ -1914,8 +1342,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2308373696081536077} - m_LocalRotation: {x: -0.0049570994, y: 0.09645474, z: -0.05108494, w: 0.9940132} - m_LocalPosition: {x: 0.059026867, y: -0.010682857, z: -0.021412484} + m_LocalRotation: {x: -0.004359492, y: 0.059448313, z: -0.07300611, w: 0.9955486} + m_LocalPosition: {x: 0.061303847, y: -0.0061584087, z: -0.019985441} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5687024761866430405} @@ -1976,8 +1404,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2595729650083529388} - m_LocalRotation: {x: 0.0025883645, y: -0.022855753, z: -0.09927532, w: 0.99479413} - m_LocalPosition: {x: 0.039195206, y: -0.000000025538611, z: 0.000000033163815} + m_LocalRotation: {x: 0.000012148868, y: -0.0026570668, z: -0.0045712627, w: 0.999986} + m_LocalPosition: {x: 0.05360672, y: -0.0000000024738256, z: -0.000000006730261} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2535018421292305422} @@ -2015,7 +1443,7 @@ Transform: - {fileID: 4368098808873916007} - {fileID: 6333793700588530597} m_Father: {fileID: 4968286101144654} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &1370077731969516542 Animator: @@ -2059,8 +1487,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2742881518587708218} - m_LocalRotation: {x: -0.024457773, y: 0.10152231, z: -0.029118644, w: 0.9941062} - m_LocalPosition: {x: -0.17596604, y: 0.000000011292286, z: -0.00000001816079} + m_LocalRotation: {x: 0.0047750277, y: 0.000000042146848, z: 7.940934e-22, w: 0.9999886} + m_LocalPosition: {x: -0.15648837, y: 1.6219474e-16, z: 3.679024e-39} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 796111769679837225} @@ -2121,8 +1549,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2892946025019427136} - m_LocalRotation: {x: 0.00007039679, y: -0.0021356225, z: -0.032948554, w: 0.9994548} - m_LocalPosition: {x: -0.0318122, y: -0.000000017200364, z: 0.000000028010618} + m_LocalRotation: {x: 0.000022361754, y: 0.003334172, z: 0.006706791, w: 0.999972} + m_LocalPosition: {x: -0.049120728, y: -0.0000000011423253, z: -2.0736479e-10} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5079013459638452076} @@ -2245,8 +1673,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3267643143930698079} - m_LocalRotation: {x: -0.00079982413, y: 0.03277359, z: 0.055791352, w: 0.99790406} - m_LocalPosition: {x: 0.26173532, y: -0.000000037930437, z: -0.000000029802322} + m_LocalRotation: {x: 0.0033267322, y: -0.061557796, z: 0.026148276, w: 0.9977554} + m_LocalPosition: {x: 0.28401995, y: -2.943768e-16, z: -6.677277e-39} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2694456733257721404} @@ -2281,42 +1709,42 @@ MonoBehaviour: name: boneId: 41 target: - length: 0.049988925 + length: 0 transform: {fileID: 6729240872577082944} - baseRotation: {x: 0.06460327, y: -0.15077193, z: -0.3885163, w: 0.9067245} + baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} basePosition: {x: 0.038734883, y: -0.0075387624, z: 0.017603258} - toBoneRotation: {x: 0.36499375, y: 0.36499497, z: 0.6056232, w: -0.605623} + toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} bone: - transform: {fileID: 7769776041937715075} - length: 0.04319322 + transform: {fileID: 0} + length: 0.049988925 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.36499375, y: -0.36499497, z: -0.6056232, w: -0.605623} + toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 42 target: - length: 0.0347243 + length: 0 transform: {fileID: 8208221923192374018} - baseRotation: {x: -0.00899231, y: -0.02461413, z: 0.34303188, w: 0.9389581} + baseRotation: {x: 0.00000067185977, y: 0.00068486726, z: 0.00097989, w: 0.9999994} basePosition: {x: 0.043193325, y: 0.00000009033829, z: -0.000000072061084} - toBoneRotation: {x: -0.022806969, y: -0.022806052, z: 0.7067371, w: -0.70674086} + toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} bone: - transform: {fileID: 7769776041937715103} - length: 0.034228485 + transform: {fileID: 0} + length: 0.0347243 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.022806969, y: 0.022806052, z: -0.7067371, w: -0.70674086} + toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2325,11 +1753,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 4154170314777914177} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000001} + baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} basePosition: {x: 0.034723707, y: 0.000028712675, z: -0.00020204074} - toBoneRotation: {x: 0.18216613, y: -0.14201969, z: 0.7058593, w: -0.66963327} + toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} bone: - transform: {fileID: 7769776041937715099} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2337,7 +1765,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.18216613, y: 0.14201969, z: -0.7058593, w: -0.66963327} + toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} index: @@ -2345,42 +1773,42 @@ MonoBehaviour: name: boneId: 45 target: - length: 0.049120452 + length: 0 transform: {fileID: 7694011445082085447} - baseRotation: {x: -0.005703966, y: 0.050317176, z: -0.1124943, w: 0.9923611} + baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} basePosition: {x: 0.110632144, y: -0.0052804938, z: 0.02043517} - toBoneRotation: {x: 0.5198485, y: 0.519847, z: 0.47933334, w: -0.47932908} + toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} bone: - transform: {fileID: 7769776041937715095} - length: 0.03181204 + transform: {fileID: 0} + length: 0.049120452 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5198485, y: -0.519847, z: -0.47933334, w: -0.47932908} + toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 46 target: - length: 0.027847793 + length: 0 transform: {fileID: 3437189322826192555} - baseRotation: {x: 0.00007050335, y: 0.0021385967, z: 0.032950033, w: 0.9994547} + baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} basePosition: {x: 0.031812068, y: 0.0000000115833245, z: 0.000000050424205} - toBoneRotation: {x: 0.50281656, y: 0.5028168, z: 0.49716768, w: -0.49716723} + toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} bone: - transform: {fileID: 7769776041937715091} - length: 0.020972518 + transform: {fileID: 0} + length: 0.027847793 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.50281656, y: -0.5028168, z: -0.49716768, w: -0.49716723} + toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2389,11 +1817,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 3195765373362933698} - baseRotation: {x: 0, y: 0, z: 0, w: 1} + baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} basePosition: {x: 0.020972585, y: -0.000000033031938, z: -0.000000030615826} - toBoneRotation: {x: 0.50462174, y: 0.49841845, z: 0.49218288, w: -0.5046706} + toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} bone: - transform: {fileID: 7769776041937715119} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2401,7 +1829,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.50462174, y: -0.49841845, z: -0.49218288, w: -0.5046706} + toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} middle: @@ -2409,42 +1837,42 @@ MonoBehaviour: name: boneId: 49 target: - length: 0.053606734 + length: 0 transform: {fileID: 3541944507320363570} - baseRotation: {x: -0.0040384554, y: 0.10929519, z: -0.036703277, w: 0.9933233} + baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} basePosition: {x: 0.10902338, y: 0.00000002005254, z: 0.00000002089655} - toBoneRotation: {x: 0.4797126, y: 0.47971147, z: 0.51949704, w: -0.5194958} + toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} bone: - transform: {fileID: 7769776041937715115} - length: 0.039195158 + transform: {fileID: 0} + length: 0.053606734 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4797126, y: -0.47971147, z: -0.51949704, w: -0.5194958} + toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 50 target: - length: 0.033593573 + length: 0 transform: {fileID: 2565122355157459722} - baseRotation: {x: 0.002157748, y: -0.021870496, z: -0.09815949, w: 0.99492794} + baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} basePosition: {x: 0.03919523, y: -0.000000031330273, z: 0.00000006695336} - toBoneRotation: {x: 0.52709264, y: 0.5270918, z: 0.47135285, w: -0.47135347} + toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} bone: - transform: {fileID: 7769776041937715111} - length: 0.02793408 + transform: {fileID: 0} + length: 0.033593573 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.52709264, y: -0.5270918, z: -0.47135285, w: -0.47135347} + toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2453,12 +1881,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 2535018421292305422} - baseRotation: {x: 9.967107e-10, y: 0.0000000019580917, z: -0.00000008156549, - w: 1} + baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} basePosition: {x: 0.02793408, y: 0.000000012776582, z: -0.000000037167183} - toBoneRotation: {x: 0.5419943, y: 0.52235436, z: 0.46527153, w: -0.46573696} + toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} bone: - transform: {fileID: 7769776041937715107} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2466,7 +1893,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5419943, y: -0.52235436, z: -0.46527153, w: -0.46573696} + toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} ring: @@ -2474,42 +1901,42 @@ MonoBehaviour: name: boneId: 53 target: - length: 0.046718344 + length: 0 transform: {fileID: 5662060846631334664} - baseRotation: {x: -0.004957073, y: 0.096454844, z: -0.051084917, w: 0.99401325} + baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} basePosition: {x: 0.104699, y: -0.0033326682, z: -0.023172297} - toBoneRotation: {x: 0.48684382, y: 0.48684353, z: 0.5128192, w: -0.51281893} + toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} bone: - transform: {fileID: 7769776041937715135} - length: 0.03474857 + transform: {fileID: 0} + length: 0.046718344 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48684382, y: -0.48684353, z: -0.5128192, w: -0.51281893} + toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 54 target: - length: 0.03241227 + length: 0 transform: {fileID: 5687024761866430405} - baseRotation: {x: -0.0002826376, y: 0.013882461, z: -0.020352935, w: 0.99969643} + baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} basePosition: {x: 0.034748368, y: 0.000000041851308, z: 0.00000003387686} - toBoneRotation: {x: 0.49715713, y: 0.49715796, z: 0.5028266, w: -0.5028264} + toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} bone: - transform: {fileID: 7769776041937715131} - length: 0.021958875 + transform: {fileID: 0} + length: 0.03241227 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.49715713, y: -0.49715796, z: -0.5028266, w: -0.5028264} + toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2518,11 +1945,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 8979637045327617032} - baseRotation: {x: 0, y: 0, z: 0, w: 1} + baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} basePosition: {x: 0.021958932, y: 0.000000003812829, z: 0.000000039618854} - toBoneRotation: {x: 0.51810646, y: 0.49743772, z: 0.504588, w: -0.47907525} + toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} bone: - transform: {fileID: 7769776041937715127} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2530,7 +1957,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.51810646, y: -0.49743772, z: -0.504588, w: -0.47907525} + toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} little: @@ -2538,42 +1965,42 @@ MonoBehaviour: name: boneId: 57 target: - length: 0.03741792 + length: 0 transform: {fileID: 5421611334272513992} - baseRotation: {x: -0.017655151, y: 0.11530167, z: -0.15032406, w: 0.9817314} + baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} basePosition: {x: 0.10166885, y: -0.0052805147, z: -0.044119988} - toBoneRotation: {x: 0.53274953, y: 0.53275037, z: 0.46494848, w: -0.46494958} + toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} bone: - transform: {fileID: 7769776041937715123} - length: 0.02919651 + transform: {fileID: 0} + length: 0.03741792 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.53274953, y: -0.53275037, z: -0.46494848, w: -0.46494958} + toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 58 target: - length: 0.023638997 + length: 0 transform: {fileID: 1367469362349161091} - baseRotation: {x: -0.001394608, y: -0.0069429, z: 0.19693026, w: 0.98039186} + baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} basePosition: {x: 0.029196553, y: 0.000000012631062, z: 0.000000029656803} - toBoneRotation: {x: 0.43681958, y: 0.4368103, z: 0.5560536, w: -0.55604863} + toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} bone: - transform: {fileID: 7769776041937715151} - length: 0.013552992 + transform: {fileID: 0} + length: 0.023638997 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.43681958, y: -0.4368103, z: -0.5560536, w: -0.55604863} + toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2582,11 +2009,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 7102781216452166161} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000004} + baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} basePosition: {x: 0.013552905, y: 0.000000024650944, z: 0.000000012807} - toBoneRotation: {x: 0.48400593, y: 0.48211125, z: 0.6038316, w: -0.41072482} + toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} bone: - transform: {fileID: 7769776041937715147} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2594,7 +2021,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48400593, y: -0.48211125, z: -0.6038316, w: -0.41072482} + toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} allFingers: @@ -2602,42 +2029,42 @@ MonoBehaviour: name: boneId: 41 target: - length: 0.049988925 + length: 0 transform: {fileID: 6729240872577082944} - baseRotation: {x: 0.06460327, y: -0.15077193, z: -0.3885163, w: 0.9067245} + baseRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.99759024} basePosition: {x: 0.038734883, y: -0.0075387624, z: 0.017603258} - toBoneRotation: {x: 0.36499375, y: 0.36499497, z: 0.6056232, w: -0.605623} + toBoneRotation: {x: -0.008043933, y: -0.0022356373, z: 0.0005951053, w: 0.999965} bone: - transform: {fileID: 7769776041937715075} - length: 0.04319322 + transform: {fileID: 0} + length: 0.049988925 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.36499375, y: -0.36499497, z: -0.6056232, w: -0.605623} + toTargetRotation: {x: 0.008043933, y: 0.0022356373, z: -0.0005951053, w: 0.999965} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 42 target: - length: 0.0347243 + length: 0 transform: {fileID: 8208221923192374018} - baseRotation: {x: -0.00899231, y: -0.02461413, z: 0.34303188, w: 0.9389581} + baseRotation: {x: 0.00000067185977, y: 0.00068486726, z: 0.00097989, w: 0.9999994} basePosition: {x: 0.043193325, y: 0.00000009033829, z: -0.000000072061084} - toBoneRotation: {x: -0.022806969, y: -0.022806052, z: 0.7067371, w: -0.70674086} + toBoneRotation: {x: -0.008047196, y: -0.0029126, z: -0.00039025478, w: 0.9999633} bone: - transform: {fileID: 7769776041937715103} - length: 0.034228485 + transform: {fileID: 0} + length: 0.0347243 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.022806969, y: 0.022806052, z: -0.7067371, w: -0.70674086} + toTargetRotation: {x: 0.008047196, y: 0.0029126, z: 0.00039025478, w: 0.9999633} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2646,11 +2073,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 4154170314777914177} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000001} + baseRotation: {x: -0.000012002137, y: -0.007268564, z: 0.0016510447, w: 0.9999722} basePosition: {x: 0.034723707, y: 0.000028712675, z: -0.00020204074} - toBoneRotation: {x: 0.18216613, y: -0.14201969, z: 0.7058593, w: -0.66963327} + toBoneRotation: {x: -0.008042617, y: 0.004369069, z: -0.0019827716, w: 0.9999562} bone: - transform: {fileID: 7769776041937715099} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2658,49 +2085,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.18216613, y: 0.14201969, z: -0.7058593, w: -0.66963327} + toTargetRotation: {x: 0.008042617, y: -0.004369069, z: 0.0019827716, w: 0.9999562} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 45 target: - length: 0.049120452 + length: 0 transform: {fileID: 7694011445082085447} - baseRotation: {x: -0.005703966, y: 0.050317176, z: -0.1124943, w: 0.9923611} + baseRotation: {x: -0.0030586347, y: 0.060362753, z: -0.0505134, w: 0.9968928} basePosition: {x: 0.110632144, y: -0.0052804938, z: 0.02043517} - toBoneRotation: {x: 0.5198485, y: 0.519847, z: 0.47933334, w: -0.47932908} + toBoneRotation: {x: -0.008260562, y: 0.0011011285, z: 0.024327176, w: 0.99966925} bone: - transform: {fileID: 7769776041937715095} - length: 0.03181204 + transform: {fileID: 0} + length: 0.049120452 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5198485, y: -0.519847, z: -0.47933334, w: -0.47932908} + toTargetRotation: {x: 0.008260562, y: -0.0011011285, z: -0.024327176, w: 0.99966925} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 46 target: - length: 0.027847793 + length: 0 transform: {fileID: 3437189322826192555} - baseRotation: {x: 0.00007050335, y: 0.0021385967, z: 0.032950033, w: 0.9994547} + baseRotation: {x: -0.000006847421, y: 0.0010127166, z: -0.0067608748, w: 0.9999766} basePosition: {x: 0.031812068, y: 0.0000000115833245, z: 0.000000050424205} - toBoneRotation: {x: 0.50281656, y: 0.5028168, z: 0.49716768, w: -0.49716723} + toBoneRotation: {x: -0.008285605, y: 0.000032705946, z: 0.03107689, w: 0.99948263} bone: - transform: {fileID: 7769776041937715091} - length: 0.020972518 + transform: {fileID: 0} + length: 0.027847793 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.50281656, y: -0.5028168, z: -0.49716768, w: -0.49716723} + toTargetRotation: {x: 0.008285605, y: -0.000032705946, z: -0.03107689, w: 0.99948263} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2709,11 +2136,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 3195765373362933698} - baseRotation: {x: 0, y: 0, z: 0, w: 1} + baseRotation: {x: -0.00007100411, y: 0.0031085552, z: -0.022835715, w: 0.99973434} basePosition: {x: 0.020972585, y: -0.000000033031938, z: -0.000000030615826} - toBoneRotation: {x: 0.50462174, y: 0.49841845, z: 0.49218288, w: -0.5046706} + toBoneRotation: {x: -0.008309788, y: -0.0032656642, z: 0.05386678, w: 0.99850816} bone: - transform: {fileID: 7769776041937715119} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2721,49 +2148,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.50462174, y: -0.49841845, z: -0.49218288, w: -0.5046706} + toTargetRotation: {x: 0.008309788, y: 0.0032656642, z: -0.05386678, w: 0.99850816} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 49 target: - length: 0.053606734 + length: 0 transform: {fileID: 3541944507320363570} - baseRotation: {x: -0.0040384554, y: 0.10929519, z: -0.036703277, w: 0.9933233} + baseRotation: {x: -0.0037662664, y: 0.06238191, z: -0.0601467, w: 0.99623126} basePosition: {x: 0.10902338, y: 0.00000002005254, z: 0.00000002089655} - toBoneRotation: {x: 0.4797126, y: 0.47971147, z: 0.51949704, w: -0.5194958} + toBoneRotation: {x: -0.008092714, y: -0.0010302375, z: 0.033979457, w: 0.99938923} bone: - transform: {fileID: 7769776041937715115} - length: 0.039195158 + transform: {fileID: 0} + length: 0.053606734 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4797126, y: -0.47971147, z: -0.51949704, w: -0.5194958} + toTargetRotation: {x: 0.008092714, y: 0.0010302375, z: -0.033979457, w: 0.99938923} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 50 target: - length: 0.033593573 + length: 0 transform: {fileID: 2565122355157459722} - baseRotation: {x: 0.002157748, y: -0.021870496, z: -0.09815949, w: 0.99492794} + baseRotation: {x: 0.000012148851, y: -0.0026570682, z: -0.004571264, w: 0.999986} basePosition: {x: 0.03919523, y: -0.000000031330273, z: 0.00000006695336} - toBoneRotation: {x: 0.52709264, y: 0.5270918, z: 0.47135285, w: -0.47135347} + toBoneRotation: {x: -0.008009747, y: 0.0015886417, z: 0.03856904, w: 0.9992226} bone: - transform: {fileID: 7769776041937715111} - length: 0.02793408 + transform: {fileID: 0} + length: 0.033593573 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.52709264, y: -0.5270918, z: -0.47135285, w: -0.47135347} + toTargetRotation: {x: 0.008009747, y: -0.0015886417, z: -0.03856904, w: 0.9992226} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2772,12 +2199,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 2535018421292305422} - baseRotation: {x: 9.967107e-10, y: 0.0000000019580917, z: -0.00000008156549, - w: 1} + baseRotation: {x: -0.00013389094, y: 0.010465754, z: -0.012791567, w: 0.9998634} basePosition: {x: 0.02793408, y: 0.000000012776582, z: -0.000000037167183} - toBoneRotation: {x: 0.5419943, y: 0.52235436, z: 0.46527153, w: -0.46573696} + toBoneRotation: {x: -0.00829884, y: -0.008976815, z: 0.05126169, w: 0.99861044} bone: - transform: {fileID: 7769776041937715107} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2785,49 +2211,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5419943, y: -0.52235436, z: -0.46527153, w: -0.46573696} + toTargetRotation: {x: 0.00829884, y: 0.008976815, z: -0.05126169, w: 0.99861044} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 53 target: - length: 0.046718344 + length: 0 transform: {fileID: 5662060846631334664} - baseRotation: {x: -0.004957073, y: 0.096454844, z: -0.051084917, w: 0.99401325} + baseRotation: {x: -0.004359492, y: 0.059448313, z: -0.073006116, w: 0.9955486} basePosition: {x: 0.104699, y: -0.0033326682, z: -0.023172297} - toBoneRotation: {x: 0.48684382, y: 0.48684353, z: 0.5128192, w: -0.51281893} + toBoneRotation: {x: -0.008366135, y: 0.0017439944, z: 0.046892274, w: 0.9988634} bone: - transform: {fileID: 7769776041937715135} - length: 0.03474857 + transform: {fileID: 0} + length: 0.046718344 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48684382, y: -0.48684353, z: -0.5128192, w: -0.51281893} + toTargetRotation: {x: 0.008366135, y: -0.0017439944, z: -0.046892274, w: 0.9988634} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 54 target: - length: 0.03241227 + length: 0 transform: {fileID: 5687024761866430405} - baseRotation: {x: -0.0002826376, y: 0.013882461, z: -0.020352935, w: 0.99969643} + baseRotation: {x: 0.000013166005, y: 0.0037974203, z: 0.0034672015, w: 0.99998677} basePosition: {x: 0.034748368, y: 0.000000041851308, z: 0.00000003387686} - toBoneRotation: {x: 0.49715713, y: 0.49715796, z: 0.5028266, w: -0.5028264} + toBoneRotation: {x: -0.008551198, y: -0.0020195083, z: 0.0433966, w: 0.99901927} bone: - transform: {fileID: 7769776041937715131} - length: 0.021958875 + transform: {fileID: 0} + length: 0.03241227 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.49715713, y: -0.49715796, z: -0.5028266, w: -0.5028264} + toTargetRotation: {x: 0.008551198, y: 0.0020195083, z: -0.0433966, w: 0.99901927} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2836,11 +2262,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 8979637045327617032} - baseRotation: {x: 0, y: 0, z: 0, w: 1} + baseRotation: {x: -0.000035282817, y: 0.0021739868, z: -0.016227672, w: 0.99986595} basePosition: {x: 0.021958932, y: 0.000000003812829, z: 0.000000039618854} - toBoneRotation: {x: 0.51810646, y: 0.49743772, z: 0.504588, w: -0.47907525} + toBoneRotation: {x: -0.008576375, y: -0.0043313894, z: 0.05958388, w: 0.99817705} bone: - transform: {fileID: 7769776041937715127} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2848,49 +2274,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.51810646, y: -0.49743772, z: -0.504588, w: -0.47907525} + toTargetRotation: {x: 0.008576375, y: 0.0043313894, z: -0.05958388, w: 0.99817705} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 57 target: - length: 0.03741792 + length: 0 transform: {fileID: 5421611334272513992} - baseRotation: {x: -0.017655151, y: 0.11530167, z: -0.15032406, w: 0.9817314} + baseRotation: {x: -0.0034078602, y: 0.0635157, z: -0.05346825, w: 0.99654174} basePosition: {x: 0.10166885, y: -0.0052805147, z: -0.044119988} - toBoneRotation: {x: 0.53274953, y: 0.53275037, z: 0.46494848, w: -0.46494958} + toBoneRotation: {x: -0.008010522, y: -0.0020861847, z: 0.0272751, w: 0.99959373} bone: - transform: {fileID: 7769776041937715123} - length: 0.02919651 + transform: {fileID: 0} + length: 0.03741792 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.53274953, y: -0.53275037, z: -0.46494848, w: -0.46494958} + toTargetRotation: {x: 0.008010522, y: 0.0020861847, z: -0.0272751, w: 0.99959373} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 58 target: - length: 0.023638997 + length: 0 transform: {fileID: 1367469362349161091} - baseRotation: {x: -0.001394608, y: -0.0069429, z: 0.19693026, w: 0.98039186} + baseRotation: {x: 0.00004510108, y: -0.0043779924, z: -0.010300899, w: 0.9999374} basePosition: {x: 0.029196553, y: 0.000000012631062, z: 0.000000029656803} - toBoneRotation: {x: 0.43681958, y: 0.4368103, z: 0.5560536, w: -0.55604863} + toBoneRotation: {x: -0.007914203, y: 0.002208874, z: 0.037605267, w: 0.9992589} bone: - transform: {fileID: 7769776041937715151} - length: 0.013552992 + transform: {fileID: 0} + length: 0.023638997 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.43681958, y: -0.4368103, z: -0.5560536, w: -0.55604863} + toTargetRotation: {x: 0.007914203, y: -0.002208874, z: -0.037605267, w: 0.9992589} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -2899,11 +2325,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 7102781216452166161} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000004} + baseRotation: {x: -0.0000029260668, y: 0.00021634887, z: -0.013522342, w: 0.9999085} basePosition: {x: 0.013552905, y: 0.000000024650944, z: 0.000000012807} - toBoneRotation: {x: 0.48400593, y: 0.48211125, z: 0.6038316, w: -0.41072482} + toBoneRotation: {x: -0.007948561, y: 0.001885355, z: 0.051112443, w: 0.9986595} bone: - transform: {fileID: 7769776041937715147} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -2911,7 +2337,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48400593, y: -0.48211125, z: -0.6038316, w: -0.41072482} + toTargetRotation: {x: 0.007948561, y: -0.001885355, z: -0.051112443, w: 0.9986595} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} rotationSpeedLimitation: 0 @@ -2953,64 +2379,64 @@ MonoBehaviour: name: boneId: 36 target: - length: 0.1564886 + length: 0 transform: {fileID: 424115898826659248} baseRotation: {x: -0.004315328, y: 0.16464703, z: -0.04999076, w: 0.9850756} basePosition: {x: 0.0195458, y: 0.28317055, z: 0.052202977} - toBoneRotation: {x: 0.51801676, y: 0.51801646, z: 0.48130947, w: -0.48130953} + toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937715083} - length: 0.17596613 + transform: {fileID: 0} + length: 0.1564886 jointLimitations: 1 maxAngle: 30 minAngles: {x: 0, y: -45, z: 0} maxAngles: {x: 0, y: 0, z: 45} - baseRotation: {x: -0.00431533, y: 0.16464704, z: -0.049990762, w: 0.98507553} + baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.51801676, y: -0.51801646, z: -0.48130947, w: -0.48130953} + toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} upperArm: name: boneId: 37 target: - length: 0.25876004 + length: 0 transform: {fileID: 2773869395817682926} baseRotation: {x: -0.055432968, y: -0.0940898, z: 0.018999131, w: 0.99383783} basePosition: {x: 0.17596613, y: -9.313226e-10, z: 0.000000007450581} - toBoneRotation: {x: 0.47953588, y: 0.47953567, z: 0.5196591, w: -0.51965904} + toBoneRotation: {x: 2.328313e-10, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937714693} - length: 0.20965333 + transform: {fileID: 0} + length: 0.25876004 jointLimitations: 0 maxAngle: 120 minAngles: {x: -180, y: -130, z: -45} maxAngles: {x: 60, y: 45, z: 180} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.47953588, y: -0.47953567, z: -0.5196591, w: -0.51965904} + toTargetRotation: {x: -2.328313e-10, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} forearm: name: boneId: 38 target: - length: 0.28401992 + length: 0.26173532 transform: {fileID: 4249058868384445712} baseRotation: {x: 0.000000034648366, y: -0.17829426, z: -0.0000000033409975, w: 0.98397756} basePosition: {x: 0.20965332, y: 0.0000000018626454, z: 0.00000006717164} - toBoneRotation: {x: 0.46654153, y: 0.4665415, z: 0.531356, w: -0.5313556} + toBoneRotation: {x: 6.938894e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937715161} - length: 0.26173532 + transform: {fileID: 0} + length: 0.28401992 jointLimitations: 0 maxAngle: 130 minAngles: {x: 0, y: -150, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.46654153, y: -0.4665415, z: -0.531356, w: -0.5313556} + toTargetRotation: {x: -6.938894e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} hand: @@ -3021,9 +2447,9 @@ MonoBehaviour: transform: {fileID: 7624083477925197851} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: 0.4563669, y: 0.45636737, z: 0.54011947, w: -0.54011995} + toBoneRotation: {x: -0.009768442, y: 0.06193218, z: -0.025749847, w: 0.99770033} bone: - transform: {fileID: 7769776041937715139} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 100 @@ -3031,7 +2457,7 @@ MonoBehaviour: maxAngles: {x: 45, y: 50, z: 70} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4563669, y: -0.45636737, z: -0.54011947, w: -0.54011995} + toTargetRotation: {x: 0.009768442, y: -0.06193218, z: 0.025749847, w: 0.99770033} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} poseMethod: 0 @@ -3097,7 +2523,7 @@ MonoBehaviour: - Always fromEventLabel: grabbedObject events: [] - handPalm: {fileID: 4633524955936641875} + handPalm: {fileID: 0} handRigidbody: {fileID: 0} handPhysics: {fileID: 0} grabbedChanged: 0 @@ -3204,8 +2630,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3371603549962327117} - m_LocalRotation: {x: -8.3417817e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.013552871, y: 0.000000004831236, z: 0.000000015597493} + m_LocalRotation: {x: 0.000043546504, y: 0.0030319644, z: 0.014361531, w: 0.9998923} + m_LocalPosition: {x: -0.023639707, y: -0.0000000011557972, z: 0.0000000047519753} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5883492204566660873} @@ -3235,8 +2661,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3395789967097393385} - m_LocalRotation: {x: -0.0054979273, y: -0.049288984, z: 0.11364157, w: 0.9922833} - m_LocalPosition: {x: -0.066879705, y: -0.012172932, z: -0.0064182784} + m_LocalRotation: {x: -0.00317021, y: -0.06252101, z: 0.05054191, w: 0.99675804} + m_LocalPosition: {x: -0.075136304, y: -0.0066132913, z: -0.000988517} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2247109597199933487} @@ -3266,8 +2692,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3606168334051517744} - m_LocalRotation: {x: -0.00028270792, y: -0.013883135, z: 0.020359108, w: 0.9996963} - m_LocalPosition: {x: -0.03474858, y: 0.000000013969839, z: -0.0000000028230716} + m_LocalRotation: {x: -0.000000008381903, y: 0.0000023022294, z: -0.0023784682, w: 0.9999972} + m_LocalPosition: {x: -0.046718843, y: 4.5110937e-10, z: 0.0000000026047928} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5266872343266854744} @@ -3297,8 +2723,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3682125884130507289} - m_LocalRotation: {x: -0.00028264275, y: 0.013882526, z: -0.020352917, w: 0.99969643} - m_LocalPosition: {x: 0.03474849, y: 0.000000043510227, z: 0.000000024258043} + m_LocalRotation: {x: 0.000013167039, y: 0.003797423, z: 0.0034671898, w: 0.99998677} + m_LocalPosition: {x: 0.04671835, y: 4.2200554e-10, z: 0.000000007697963} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8979637045327617032} @@ -3329,8 +2755,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3704755307910488008} - m_LocalRotation: {x: -0.051078428, y: 0.000067987494, z: 0.0014236947, w: 0.9986936} - m_LocalPosition: {x: 1.1641532e-10, y: 0.103641234, z: -0.0000000018626451} + m_LocalRotation: {x: 2.26e-43, y: -4.7019774e-38, z: -1.5585271e-15, w: 1} + m_LocalPosition: {x: 1.1911401e-21, y: 0.10004067, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8929222153988242160} @@ -3384,9 +2810,9 @@ MonoBehaviour: transform: {fileID: 4073333712384793646} baseRotation: {x: -0.05107844, y: 0.00006798714, z: 0.001423687, w: 0.9986939} basePosition: {x: 0.00029400006, y: 1.6174197, z: -0.09445348} - toBoneRotation: {x: -0.053934872, y: 0.0010665756, z: 0.001066575, w: 0.9985435} + toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937715137} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3394,37 +2820,36 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.053934872, y: -0.0010665756, z: -0.001066575, w: 0.9985435} + toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} neck: name: boneId: 6 target: - length: 0.100040674 + length: 0.103641346 transform: {fileID: 3458644235406456004} baseRotation: {x: 0.055280615, y: -0.00006199547, z: -0.0014239603, w: 0.99847007} basePosition: {x: -2.729696e-23, y: 0.35208222, z: 0} - toBoneRotation: {x: 0.00000009285625, y: -0.0014306424, z: -2.7784955e-10, w: 0.999999} + toBoneRotation: {x: 6.661338e-16, y: -1.0381878e-30, z: -1.5585273e-15, w: 1} bone: - transform: {fileID: 7769776041937715183} - length: 0.10364129 + transform: {fileID: 0} + length: 0.100040674 jointLimitations: 0 maxAngle: 0 minAngles: {x: -55, y: -70, z: -35} maxAngles: {x: 80, y: 70, z: 35} - baseRotation: {x: 0.05107844, y: -0.000067987145, z: -0.0014236866, w: 0.99869365} + baseRotation: {x: 0, y: 0, z: 1.5585273e-15, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.00000009285625, y: 0.0014306424, z: 2.7784955e-10, - w: 0.999999} + toTargetRotation: {x: -6.661338e-16, y: 1.0381878e-30, z: 1.5585273e-15, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} headTarget: {fileID: 7980081989387465033} audioEnergy: 0 lookDirection: {x: 0, y: 0, z: 1} localLookDirection: {x: 0, y: 0, z: 1} - neck2eyes: {x: 0.0000000018626451, y: 0.13910985, z: 0.11637211} - head2eyes: {x: -0.0002939982, y: 0.03600979, z: 0.105798244} + neck2eyes: {x: -7.9873386e-11, y: 0.13, z: 0.13} + head2eyes: {x: 0.017554123, y: 0.029959321, z: 0.12880936} collisionFader: 0 isInsideCollider: 0 virtual3d: 0 @@ -3536,8 +2961,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4093552793815176161} - m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.021958912, y: 0.0000000061777428, z: 0.0000000042420254} + m_LocalRotation: {x: -0.000035283232, y: 0.0021739898, z: -0.016227672, w: 0.999866} + m_LocalPosition: {x: 0.03241226, y: -8.913208e-10, z: 0.0000000020934112} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 6766280550936899431} @@ -3599,8 +3024,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4295241878036380561} - m_LocalRotation: {x: -0.00080072245, y: -0.03277328, z: -0.055791434, w: 0.99790406} - m_LocalPosition: {x: -0.26173532, y: 0.000000033671586, z: -0.0000000055879354} + m_LocalRotation: {x: 0.0033115982, y: 0.061764855, z: -0.02614338, w: 0.99774283} + m_LocalPosition: {x: -0.28402025, y: 2.9437706e-16, z: 6.677284e-39} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 575118281284780715} @@ -3635,42 +3060,42 @@ MonoBehaviour: name: boneId: 13 target: - length: 0.049988233 + length: 0 transform: {fileID: 2937189714163428199} - baseRotation: {x: 0.06460373, y: 0.15077278, z: 0.38851687, w: 0.90672415} + baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} basePosition: {x: -0.03873508, y: -0.0075387624, z: 0.017603243} - toBoneRotation: {x: 0.36499423, y: -0.36499333, z: -0.6056228, w: -0.6056239} + toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} bone: - transform: {fileID: 7769776041937715077} - length: 0.043193225 + transform: {fileID: 0} + length: 0.049988233 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.36499423, y: 0.36499333, z: 0.6056228, w: -0.6056239} + toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 14 target: - length: 0.03472507 + length: 0 transform: {fileID: 1767130827922383620} - baseRotation: {x: -0.008991983, y: 0.0246129, z: -0.3430352, w: 0.938957} + baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} basePosition: {x: -0.04319329, y: 0.00000006798655, z: 0.0000000021536835} - toBoneRotation: {x: -0.022807825, y: 0.022806363, z: -0.7067395, w: -0.7067383} + toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} bone: - transform: {fileID: 7769776041937715073} - length: 0.03422832 + transform: {fileID: 0} + length: 0.03472507 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.022807825, y: -0.022806363, z: 0.7067395, w: -0.7067383} + toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -3679,12 +3104,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 815571997958144132} - baseRotation: {x: 0.000000007703818, y: 0.000000029916496, z: -0.000000027732488, - w: 1.0000001} + baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} basePosition: {x: -0.03472478, y: -0.00007951213, z: 0.00010129184} - toBoneRotation: {x: 0.1821647, y: 0.14202075, z: -0.7058615, w: -0.669631} + toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} bone: - transform: {fileID: 7769776041937715101} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3692,7 +3116,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.1821647, y: -0.14202075, z: 0.7058615, w: -0.669631} + toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} index: @@ -3700,42 +3124,42 @@ MonoBehaviour: name: boneId: 17 target: - length: 0.04912074 + length: 0 transform: {fileID: 2184748261822125251} - baseRotation: {x: -0.0057040453, y: -0.05031723, z: 0.112495705, w: 0.992361} + baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} basePosition: {x: -0.11063229, y: -0.005280541, z: 0.020435156} - toBoneRotation: {x: 0.5198467, y: -0.5198469, z: -0.47933367, w: -0.47933084} + toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} bone: - transform: {fileID: 7769776041937715097} - length: 0.031812172 + transform: {fileID: 0} + length: 0.04912074 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5198467, y: 0.5198469, z: 0.47933367, w: -0.47933084} + toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 18 target: - length: 0.02784785 + length: 0 transform: {fileID: 2247109597199933487} - baseRotation: {x: 0.00007040986, y: -0.0021356642, z: -0.032948546, w: 0.99945474} + baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} basePosition: {x: -0.03181219, y: 0.000000007945346, z: 0.0000000391301} - toBoneRotation: {x: 0.5028153, y: -0.5028159, z: -0.49716592, w: -0.49717128} + toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} bone: - transform: {fileID: 7769776041937715093} - length: 0.020972535 + transform: {fileID: 0} + length: 0.02784785 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5028153, y: 0.5028159, z: 0.49716592, w: -0.49717128} + toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -3744,12 +3168,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 5079013459638452076} - baseRotation: {x: 0.0000000055894382, y: -0.0000000040678905, z: 0.00000009311149, - w: 1.0000004} + baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} basePosition: {x: -0.020972619, y: 0.000000031586296, z: 0.000000031773837} - toBoneRotation: {x: 0.5046204, y: -0.4984175, z: -0.49218103, w: -0.5046746} + toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} bone: - transform: {fileID: 7769776041937715089} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3757,7 +3180,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5046204, y: 0.4984175, z: 0.49218103, w: -0.5046746} + toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} middle: @@ -3765,42 +3188,42 @@ MonoBehaviour: name: boneId: 21 target: - length: 0.053606123 + length: 0 transform: {fileID: 6734234515771128407} - baseRotation: {x: -0.0040385625, y: -0.109294675, z: 0.036704447, w: 0.99332327} + baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} basePosition: {x: -0.109023385, y: -0.000000021798769, z: -0.000000044412445} - toBoneRotation: {x: 0.47971106, y: -0.47971115, z: -0.5194971, w: -0.51949745} + toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} bone: - transform: {fileID: 7769776041937715117} - length: 0.039195456 + transform: {fileID: 0} + length: 0.053606123 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.47971106, y: 0.47971115, z: 0.5194971, w: -0.51949745} + toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 22 target: - length: 0.033593606 + length: 0 transform: {fileID: 8049467791892340524} - baseRotation: {x: 0.0021576565, y: 0.02187023, z: 0.09815683, w: 0.9949282} + baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} basePosition: {x: -0.039195392, y: 0.0000000031141099, z: 0.000000044878107} - toBoneRotation: {x: 0.5270925, y: -0.52709013, z: -0.47135434, w: -0.471354} + toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} bone: - transform: {fileID: 7769776041937715113} - length: 0.027933823 + transform: {fileID: 0} + length: 0.033593606 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5270925, y: 0.52709013, z: 0.47135434, w: -0.471354} + toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -3809,11 +3232,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 7109531786445315003} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000005} + baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} basePosition: {x: -0.027933791, y: 0.00000003290188, z: 0.000000039216047} - toBoneRotation: {x: 0.54199415, y: -0.5223527, z: -0.46527293, w: -0.46573755} + toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} bone: - transform: {fileID: 7769776041937715109} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3821,7 +3244,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.54199415, y: 0.5223527, z: 0.46527293, w: -0.46573755} + toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} ring: @@ -3829,42 +3252,43 @@ MonoBehaviour: name: boneId: 25 target: - length: 0.046718832 + length: 0 transform: {fileID: 4570772102465016956} - baseRotation: {x: -0.0049566743, y: -0.09645417, z: 0.05108124, w: 0.9940135} + baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} basePosition: {x: -0.10469905, y: -0.003332876, z: -0.02317215} - toBoneRotation: {x: 0.48684487, y: -0.48684067, z: -0.51282156, w: -0.5128182} + toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} bone: - transform: {fileID: 7769776041937715105} - length: 0.03474856 + transform: {fileID: 0} + length: 0.046718832 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48684487, y: 0.48684067, z: 0.51282156, w: -0.5128182} + toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 26 target: - length: 0.032411408 + length: 0 transform: {fileID: 2120030401919416590} - baseRotation: {x: -0.00028273667, y: -0.013883139, z: 0.020359093, w: 0.9996963} + baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, + w: 0.9999972} basePosition: {x: -0.034748577, y: 0.000000013533281, z: 0.000000019106665} - toBoneRotation: {x: 0.4971546, y: -0.49715853, z: -0.5028262, w: -0.5028287} + toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} bone: - transform: {fileID: 7769776041937715133} - length: 0.021958824 + transform: {fileID: 0} + length: 0.032411408 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4971546, y: 0.49715853, z: 0.5028262, w: -0.5028287} + toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -3873,11 +3297,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 5266872343266854744} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000005} + baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} basePosition: {x: -0.021958793, y: 0.0000000024233486, z: 0.000000054079365} - toBoneRotation: {x: 0.5181041, y: -0.49743828, z: -0.50458765, w: -0.4790777} + toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} bone: - transform: {fileID: 7769776041937715129} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3885,7 +3309,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5181041, y: 0.49743828, z: 0.50458765, w: -0.4790777} + toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} little: @@ -3893,42 +3317,42 @@ MonoBehaviour: name: boneId: 29 target: - length: 0.03741744 + length: 0 transform: {fileID: 7460476021837470159} - baseRotation: {x: -0.017655034, y: -0.11530151, z: 0.15032326, w: 0.98173153} + baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} basePosition: {x: -0.10166924, y: -0.0052805482, z: -0.04411999} - toBoneRotation: {x: 0.532749, y: -0.5327491, z: -0.46494943, w: -0.46495053} + toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} bone: - transform: {fileID: 7769776041937715125} - length: 0.029196626 + transform: {fileID: 0} + length: 0.03741744 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.532749, y: 0.5327491, z: 0.46494943, w: -0.46495053} + toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 30 target: - length: 0.023639701 + length: 0 transform: {fileID: 240730503903211994} - baseRotation: {x: -0.0013944433, y: 0.0069423034, z: -0.19692202, w: 0.9803935} + baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} basePosition: {x: -0.029196521, y: -0.00000001839362, z: -0.00000003594323} - toBoneRotation: {x: 0.43681476, y: -0.43681344, z: -0.5560503, w: -0.55605334} + toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} bone: - transform: {fileID: 7769776041937715121} - length: 0.013552837 + transform: {fileID: 0} + length: 0.023639701 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.43681476, y: 0.43681344, z: 0.5560503, w: -0.55605334} + toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -3937,11 +3361,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 1469898898888776885} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000004} + baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} basePosition: {x: -0.013552994, y: -0.000000018131686, z: 0.0000000046262745} - toBoneRotation: {x: 0.4840008, y: -0.48211464, z: -0.60382974, w: -0.41072986} + toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} bone: - transform: {fileID: 7769776041937715149} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -3949,7 +3373,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4840008, y: 0.48211464, z: 0.60382974, w: -0.41072986} + toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} allFingers: @@ -3957,42 +3381,42 @@ MonoBehaviour: name: boneId: 13 target: - length: 0.049988233 + length: 0 transform: {fileID: 2937189714163428199} - baseRotation: {x: 0.06460373, y: 0.15077278, z: 0.38851687, w: 0.90672415} + baseRotation: {x: -0.0015786076, y: -0.0629985, z: 0.025000209, w: 0.99769914} basePosition: {x: -0.03873508, y: -0.0075387624, z: 0.017603243} - toBoneRotation: {x: 0.36499423, y: -0.36499333, z: -0.6056228, w: -0.6056239} + toBoneRotation: {x: -0.008090411, y: 0.001267103, z: 0.0012585014, w: 0.99996567} bone: - transform: {fileID: 7769776041937715077} - length: 0.043193225 + transform: {fileID: 0} + length: 0.049988233 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.36499423, y: 0.36499333, z: 0.6056228, w: -0.6056239} + toTargetRotation: {x: 0.008090411, y: -0.001267103, z: -0.0012585014, w: 0.99996567} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 14 target: - length: 0.03472507 + length: 0 transform: {fileID: 1767130827922383620} - baseRotation: {x: -0.008991983, y: 0.0246129, z: -0.3430352, w: 0.938957} + baseRotation: {x: 0.000006526949, y: 0.00275309, z: 0.0023710353, w: 0.9999934} basePosition: {x: -0.04319329, y: 0.00000006798655, z: 0.0000000021536835} - toBoneRotation: {x: -0.022807825, y: 0.022806363, z: -0.7067395, w: -0.7067383} + toBoneRotation: {x: -0.008097345, y: -0.0014667101, z: -0.0011347427, w: 0.9999655} bone: - transform: {fileID: 7769776041937715073} - length: 0.03422832 + transform: {fileID: 0} + length: 0.03472507 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.022807825, y: -0.022806363, z: 0.7067395, w: -0.7067383} + toTargetRotation: {x: 0.008097345, y: 0.0014667101, z: 0.0011347427, w: 0.9999655} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -4001,12 +3425,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 815571997958144132} - baseRotation: {x: 0.000000007703818, y: 0.000000029916496, z: -0.000000027732488, - w: 1.0000001} + baseRotation: {x: -0.000003705347, y: 0.0025506986, z: -0.0014522788, w: 0.99999565} basePosition: {x: -0.03472478, y: -0.00007951213, z: 0.00010129184} - toBoneRotation: {x: 0.1821647, y: 0.14202075, z: -0.7058615, w: -0.669631} + toBoneRotation: {x: -0.00808858, y: -0.00402907, z: 0.00029679146, w: 0.9999591} bone: - transform: {fileID: 7769776041937715101} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -4014,49 +3437,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.1821647, y: -0.14202075, z: 0.7058615, w: -0.669631} + toTargetRotation: {x: 0.00808858, y: 0.00402907, z: -0.00029679146, w: 0.9999591} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 17 target: - length: 0.04912074 + length: 0 transform: {fileID: 2184748261822125251} - baseRotation: {x: -0.0057040453, y: -0.05031723, z: 0.112495705, w: 0.992361} + baseRotation: {x: -0.0031702095, y: -0.06252101, z: 0.050541904, w: 0.996758} basePosition: {x: -0.11063229, y: -0.005280541, z: 0.020435156} - toBoneRotation: {x: 0.5198467, y: -0.5198469, z: -0.47933367, w: -0.47933084} + toBoneRotation: {x: -0.008087434, y: 0.001057338, z: -0.024351947, w: 0.99967015} bone: - transform: {fileID: 7769776041937715097} - length: 0.031812172 + transform: {fileID: 0} + length: 0.04912074 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5198467, y: 0.5198469, z: 0.47933367, w: -0.47933084} + toTargetRotation: {x: 0.008087434, y: -0.001057338, z: 0.024351947, w: 0.99967015} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 18 target: - length: 0.02784785 + length: 0 transform: {fileID: 2247109597199933487} - baseRotation: {x: 0.00007040986, y: -0.0021356642, z: -0.032948546, w: 0.99945474} + baseRotation: {x: 0.00002236147, y: 0.0033341702, z: 0.006706794, w: 0.9999719} basePosition: {x: -0.03181219, y: 0.000000007945346, z: 0.0000000391301} - toBoneRotation: {x: 0.5028153, y: -0.5028159, z: -0.49716592, w: -0.49717128} + toBoneRotation: {x: -0.008021276, y: -0.0022220667, z: -0.03108292, w: 0.99948215} bone: - transform: {fileID: 7769776041937715093} - length: 0.020972535 + transform: {fileID: 0} + length: 0.02784785 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5028153, y: 0.5028159, z: 0.49716592, w: -0.49717128} + toTargetRotation: {x: 0.008021276, y: 0.0022220667, z: 0.03108292, w: 0.99948215} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -4065,12 +3488,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 5079013459638452076} - baseRotation: {x: 0.0000000055894382, y: -0.0000000040678905, z: 0.00000009311149, - w: 1.0000004} + baseRotation: {x: -0.000006733816, y: -0.000296163, z: 0.022725835, w: 0.9997417} basePosition: {x: -0.020972619, y: 0.000000031586296, z: 0.000000031773837} - toBoneRotation: {x: 0.5046204, y: -0.4984175, z: -0.49218103, w: -0.5046746} + toBoneRotation: {x: -0.008072178, y: -0.0017429828, z: -0.0537865, w: 0.9985183} bone: - transform: {fileID: 7769776041937715089} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -4078,49 +3500,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5046204, y: 0.4984175, z: 0.49218103, w: -0.5046746} + toTargetRotation: {x: 0.008072178, y: 0.0017429828, z: 0.0537865, w: 0.9985183} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 21 target: - length: 0.053606123 + length: 0 transform: {fileID: 6734234515771128407} - baseRotation: {x: -0.0040385625, y: -0.109294675, z: 0.036704447, w: 0.99332327} + baseRotation: {x: -0.0037776106, y: -0.062540606, z: 0.060174223, w: 0.9962196} basePosition: {x: -0.109023385, y: -0.000000021798769, z: -0.000000044412445} - toBoneRotation: {x: 0.47971106, y: -0.47971115, z: -0.5194971, w: -0.51949745} + toBoneRotation: {x: -0.008072223, y: 0.0011886253, z: -0.034013405, w: 0.9993881} bone: - transform: {fileID: 7769776041937715117} - length: 0.039195456 + transform: {fileID: 0} + length: 0.053606123 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.47971106, y: 0.47971115, z: 0.5194971, w: -0.51949745} + toTargetRotation: {x: 0.008072223, y: -0.0011886253, z: 0.034013405, w: 0.9993881} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 22 target: - length: 0.033593606 + length: 0 transform: {fileID: 8049467791892340524} - baseRotation: {x: 0.0021576565, y: 0.02187023, z: 0.09815683, w: 0.9949282} + baseRotation: {x: 0.000016403164, y: 0.0036615278, z: 0.004479959, w: 0.99998325} basePosition: {x: -0.039195392, y: 0.0000000031141099, z: 0.000000044878107} - toBoneRotation: {x: 0.5270925, y: -0.52709013, z: -0.47135434, w: -0.471354} + toBoneRotation: {x: -0.007958614, y: -0.0024350763, z: -0.03851963, w: 0.9992232} bone: - transform: {fileID: 7769776041937715113} - length: 0.027933823 + transform: {fileID: 0} + length: 0.033593606 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5270925, y: 0.52709013, z: 0.47135434, w: -0.471354} + toTargetRotation: {x: 0.007958614, y: 0.0024350763, z: 0.03851963, w: 0.9992232} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -4129,11 +3551,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 7109531786445315003} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000005} + baseRotation: {x: -0.000024133542, y: -0.0018862914, z: 0.0127927335, w: 0.9999164} basePosition: {x: -0.027933791, y: 0.00000003290188, z: 0.000000039216047} - toBoneRotation: {x: 0.54199415, y: -0.5223527, z: -0.46527293, w: -0.46573755} + toBoneRotation: {x: -0.008037644, y: -0.00044730448, z: -0.05128425, w: 0.9986516} bone: - transform: {fileID: 7769776041937715109} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -4141,49 +3563,50 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.54199415, y: 0.5223527, z: 0.46527293, w: -0.46573755} + toTargetRotation: {x: 0.008037644, y: 0.00044730448, z: 0.05128425, w: 0.9986516} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 25 target: - length: 0.046718832 + length: 0 transform: {fileID: 4570772102465016956} - baseRotation: {x: -0.0049566743, y: -0.09645417, z: 0.05108124, w: 0.9940135} + baseRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.996066} basePosition: {x: -0.10469905, y: -0.003332876, z: -0.02317215} - toBoneRotation: {x: 0.48684487, y: -0.48684067, z: -0.51282156, w: -0.5128182} + toBoneRotation: {x: -0.008229915, y: -0.0005638827, z: -0.038266003, w: 0.99923354} bone: - transform: {fileID: 7769776041937715105} - length: 0.03474856 + transform: {fileID: 0} + length: 0.046718832 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.48684487, y: 0.48684067, z: 0.51282156, w: -0.5128182} + toTargetRotation: {x: 0.008229915, y: 0.0005638827, z: 0.038266003, w: 0.99923354} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 26 target: - length: 0.032411408 + length: 0 transform: {fileID: 2120030401919416590} - baseRotation: {x: -0.00028273667, y: -0.013883139, z: 0.020359093, w: 0.9996963} + baseRotation: {x: -0.000000008885655, y: 0.0000023032542, z: -0.0023784738, + w: 0.9999972} basePosition: {x: -0.034748577, y: 0.000000013533281, z: 0.000000019106665} - toBoneRotation: {x: 0.4971546, y: -0.49715853, z: -0.5028262, w: -0.5028287} + toBoneRotation: {x: -0.008228454, y: -0.0005857569, z: -0.035889264, w: 0.99932176} bone: - transform: {fileID: 7769776041937715133} - length: 0.021958824 + transform: {fileID: 0} + length: 0.032411408 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4971546, y: 0.49715853, z: 0.5028262, w: -0.5028287} + toTargetRotation: {x: 0.008228454, y: 0.0005857569, z: 0.035889264, w: 0.99932176} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -4192,11 +3615,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 5266872343266854744} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000005} + baseRotation: {x: -0.000020047351, y: -0.001295888, z: 0.015469412, w: 0.9998796} basePosition: {x: -0.021958793, y: 0.0000000024233486, z: 0.000000054079365} - toBoneRotation: {x: 0.5181041, y: -0.49743828, z: -0.50458765, w: -0.4790777} + toBoneRotation: {x: -0.008262998, y: 0.0008373314, z: -0.051333208, w: 0.9986471} bone: - transform: {fileID: 7769776041937715129} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -4204,49 +3627,49 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5181041, y: 0.49743828, z: 0.50458765, w: -0.4790777} + toTargetRotation: {x: 0.008262998, y: -0.0008373314, z: 0.051333208, w: 0.9986471} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} - proximal: name: boneId: 29 target: - length: 0.03741744 + length: 0 transform: {fileID: 7460476021837470159} - baseRotation: {x: -0.017655034, y: -0.11530151, z: 0.15032326, w: 0.98173153} + baseRotation: {x: -0.0032092882, y: -0.059774566, z: 0.053516567, w: 0.9967711} basePosition: {x: -0.10166924, y: -0.0052805482, z: -0.04411999} - toBoneRotation: {x: 0.532749, y: -0.5327491, z: -0.46494943, w: -0.46495053} + toBoneRotation: {x: -0.0083035035, y: -0.0016555703, z: -0.02734866, w: 0.9995901} bone: - transform: {fileID: 7769776041937715125} - length: 0.029196626 + transform: {fileID: 0} + length: 0.03741744 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.532749, y: 0.5327491, z: 0.46494943, w: -0.46495053} + toTargetRotation: {x: 0.0083035035, y: 0.0016555703, z: 0.02734866, w: 0.9995901} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} intermediate: name: boneId: 30 target: - length: 0.023639701 + length: 0 transform: {fileID: 240730503903211994} - baseRotation: {x: -0.0013944433, y: 0.0069423034, z: -0.19692202, w: 0.9803935} + baseRotation: {x: -0.000039089893, y: -0.0037677602, z: 0.01037424, w: 0.9999391} basePosition: {x: -0.029196521, y: -0.00000001839362, z: -0.00000003594323} - toBoneRotation: {x: 0.43681476, y: -0.43681344, z: -0.5560503, w: -0.55605334} + toBoneRotation: {x: -0.008384141, y: 0.002197958, z: -0.03768576, w: 0.999252} bone: - transform: {fileID: 7769776041937715121} - length: 0.013552837 + transform: {fileID: 0} + length: 0.023639701 jointLimitations: 0 maxAngle: 0 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.43681476, y: 0.43681344, z: 0.5560503, w: -0.55605334} + toTargetRotation: {x: 0.008384141, y: -0.002197958, z: 0.03768576, w: 0.999252} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} distal: @@ -4255,11 +3678,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 1469898898888776885} - baseRotation: {x: 0, y: 0, z: 0, w: 1.0000004} + baseRotation: {x: 0.000043546832, y: 0.003031966, z: 0.01436152, w: 0.99989223} basePosition: {x: -0.013552994, y: -0.000000018131686, z: 0.0000000046262745} - toBoneRotation: {x: 0.4840008, y: -0.48211464, z: -0.60382974, w: -0.41072986} + toBoneRotation: {x: -0.008280925, y: -0.000713209, z: -0.052057996, w: 0.9986095} bone: - transform: {fileID: 7769776041937715149} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -4267,7 +3690,7 @@ MonoBehaviour: maxAngles: {x: 0, y: 0, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.4840008, y: 0.48211464, z: 0.60382974, w: -0.41072986} + toTargetRotation: {x: 0.008280925, y: 0.000713209, z: 0.052057996, w: 0.9986095} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} rotationSpeedLimitation: 0 @@ -4309,64 +3732,64 @@ MonoBehaviour: name: boneId: 8 target: - length: 0.15648837 + length: 0 transform: {fileID: 7713468394923976787} baseRotation: {x: -0.0043154173, y: -0.16464704, z: 0.049991153, w: 0.9850756} basePosition: {x: -0.0195459, y: 0.28317055, z: 0.052202977} - toBoneRotation: {x: 0.5180166, y: -0.5180166, z: -0.48130918, w: -0.48130986} + toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937715085} - length: 0.17596602 + transform: {fileID: 0} + length: 0.15648837 jointLimitations: 1 maxAngle: 30 minAngles: {x: 0, y: 0, z: -45} maxAngles: {x: 0, y: 45, z: 0} - baseRotation: {x: -0.0043153935, y: -0.16464704, z: 0.04999112, w: 0.98507553} + baseRotation: {x: 0, y: -1.1754944e-38, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.5180166, y: 0.5180166, z: 0.48130918, w: -0.48130986} + toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} upperArm: name: boneId: 9 target: - length: 0.25876033 + length: 0 transform: {fileID: 5057495325285210709} baseRotation: {x: -0.05543213, y: 0.09408962, z: -0.018999647, w: 0.9938379} basePosition: {x: -0.17596605, y: 0.000000013154931, z: -0.0000000144355} - toBoneRotation: {x: 0.47953615, y: -0.47953606, z: -0.5196588, w: -0.5196585} + toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937714695} - length: 0.20965345 + transform: {fileID: 0} + length: 0.25876033 jointLimitations: 0 maxAngle: 120 minAngles: {x: -180, y: -45, z: -180} maxAngles: {x: 60, y: 130, z: 45} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.47953615, y: 0.47953606, z: 0.5196588, w: -0.5196585} + toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} forearm: name: boneId: 10 target: - length: 0.28402025 + length: 0.26173538 transform: {fileID: 796111769679837225} baseRotation: {x: -0.0000000060664687, y: 0.17829445, z: 0.000000030004518, w: 0.98397744} basePosition: {x: -0.20965345, y: -0.00000002561137, z: 0.000000029220246} - toBoneRotation: {x: 0.46654177, y: -0.4665418, z: -0.5313555, w: -0.5313555} + toBoneRotation: {x: 6.661338e-16, y: -0, z: 0, w: 1} bone: - transform: {fileID: 7769776041937715163} - length: 0.26173535 + transform: {fileID: 0} + length: 0.28402025 jointLimitations: 0 maxAngle: 130 minAngles: {x: 0, y: 0, z: 0} maxAngles: {x: 0, y: 150, z: 0} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.46654177, y: 0.4665418, z: 0.5313555, w: -0.5313555} + toTargetRotation: {x: -6.661338e-16, y: 0, z: 0, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} hand: @@ -4377,9 +3800,9 @@ MonoBehaviour: transform: {fileID: 8467765973942035875} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toBoneRotation: {x: 0.45636553, y: -0.45636657, z: -0.5401205, w: -0.54012054} + toBoneRotation: {x: -0.00976131, y: -0.061932433, z: 0.02574325, w: 0.9977005} bone: - transform: {fileID: 7769776041937715141} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 100 @@ -4387,7 +3810,7 @@ MonoBehaviour: maxAngles: {x: 90, y: 20, z: 90} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: -0.45636553, y: 0.45636657, z: 0.5401205, w: -0.54012054} + toTargetRotation: {x: 0.00976131, y: 0.061932433, z: -0.02574325, w: 0.9977005} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} poseMethod: 0 @@ -4453,7 +3876,7 @@ MonoBehaviour: - Always fromEventLabel: grabbedObject events: [] - handPalm: {fileID: 348206003818060429} + handPalm: {fileID: 0} handRigidbody: {fileID: 0} handPhysics: {fileID: 0} grabbedChanged: 0 @@ -4512,8 +3935,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4362768375276474282} - m_LocalRotation: {x: -0.14465712, y: -2.1299905e-18, z: 1.456954e-17, w: 0.98948187} - m_LocalPosition: {x: 0, y: 0.099871434, z: 0.0000000038999133} + m_LocalRotation: {x: -0, y: 4.514519e-32, z: 1.8015822e-14, w: 1} + m_LocalPosition: {x: 0, y: 0.09609294, z: 0.0000000027939677} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4263678514780110732} @@ -4543,8 +3966,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4431182774716857911} - m_LocalRotation: {x: -0.0040384866, y: 0.109295115, z: -0.036703307, w: 0.99332327} - m_LocalPosition: {x: 0.06310029, y: -0.0070200944, z: -0.0102793} + m_LocalRotation: {x: -0.0037662666, y: 0.06238191, z: -0.0601467, w: 0.9962313} + m_LocalPosition: {x: 0.07128249, y: -0.00702011, z: -0.01027932} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2565122355157459722} @@ -4574,8 +3997,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4442798847181081318} - m_LocalRotation: {x: -0.004038545, y: -0.1092947, z: 0.036704462, w: 0.9933233} - m_LocalPosition: {x: -0.06310032, y: -0.007020589, z: -0.01027938} + m_LocalRotation: {x: -0.003777611, y: -0.062540606, z: 0.06017423, w: 0.99621964} + m_LocalPosition: {x: -0.07128274, y: -0.0070205675, z: -0.010279345} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8049467791892340524} @@ -4636,8 +4059,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4588590747506760803} - m_LocalRotation: {x: -0.008992237, y: -0.02461422, z: 0.3430319, w: 0.9389581} - m_LocalPosition: {x: 0.043193247, y: 0.000000022351742, z: -0.0000000057043508} + m_LocalRotation: {x: 0.00000067055225, y: 0.0006848648, z: 0.0009798884, w: 0.99999934} + m_LocalPosition: {x: 0.04998892, y: -1.4551915e-11, z: -0.0000000041873136} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4154170314777914177} @@ -4760,8 +4183,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4616827264577384177} - m_LocalRotation: {x: 1.7373489e-10, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.027933838, y: 0.00000001531589, z: -0.000000008935103} + m_LocalRotation: {x: -0.00002413182, y: -0.0018862897, z: 0.012792739, w: 0.99991643} + m_LocalPosition: {x: -0.03359361, y: 2.2457414e-10, z: -0.000000003947975} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7261840188996162573} @@ -4821,8 +4244,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4792797724671228719} - m_LocalRotation: {x: 0.07048519, y: 0.000000008032655, z: -4.981756e-10, w: 0.9975129} - m_LocalPosition: {x: 0, y: -0.49770987, z: 0.000000033527613} + m_LocalRotation: {x: 0.022657834, y: 7.275958e-12, z: 8.1326856e-10, w: 0.9997433} + m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 82171149504432471} @@ -4853,7 +4276,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4801137131488431162} m_LocalRotation: {x: 0, y: 0, z: -0.000000008184788, w: 1} - m_LocalPosition: {x: -0.005016455, y: -0.07128249, z: 0.11779296} + m_LocalPosition: {x: -0.00000008527422, y: -0.080176204, z: 0.12159336} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5102001948768682033} @@ -4883,8 +4306,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4939765737404104998} - m_LocalRotation: {x: -6.938894e-18, y: -4.135903e-25, z: -0.000000040031257, w: 1} - m_LocalPosition: {x: -0.034724806, y: -0.00007960955, z: 0.00010122135} + m_LocalRotation: {x: -0.0000037042141, y: 0.0025506972, z: -0.0014522823, w: 0.9999957} + m_LocalPosition: {x: -0.034725063, y: -6.3632966e-10, z: -0.000000005125133} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4672632719228974860} @@ -4945,8 +4368,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5238587301101571996} - m_LocalRotation: {x: -0.008991977, y: 0.024612898, z: -0.3430352, w: 0.9389569} - m_LocalPosition: {x: -0.043193243, y: 0.000000057742, z: -0.00000004505273} + m_LocalRotation: {x: 0.0000065267095, y: 0.002753094, z: 0.0023710353, w: 0.99999344} + m_LocalPosition: {x: -0.049988233, y: 6.184564e-10, z: 0.0000000015934347} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 815571997958144132} @@ -5097,8 +4520,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5828733120279369828} - m_LocalRotation: {x: 0.0021576383, y: 0.02187022, z: 0.098156855, w: 0.99492836} - m_LocalPosition: {x: -0.03919543, y: -0.000000020372681, z: 0.000000025946065} + m_LocalRotation: {x: 0.000016403153, y: 0.0036615173, z: 0.0044799605, w: 0.99998325} + m_LocalPosition: {x: -0.05360612, y: -1.4551915e-10, z: 0.000000005631591} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7109531786445315003} @@ -5159,8 +4582,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6131207695716876702} - m_LocalRotation: {x: 0.06460373, y: 0.15077275, z: 0.38851693, w: 0.9067241} - m_LocalPosition: {x: -0.03873508, y: -0.0075387615, z: 0.01760323} + m_LocalRotation: {x: -0.0015786077, y: -0.06299851, z: 0.025000213, w: 0.9976992} + m_LocalPosition: {x: -0.03886753, y: 0.001484307, z: 0.037806235} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1767130827922383620} @@ -5190,8 +4613,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6143004620397198761} - m_LocalRotation: {x: 0.0064515574, y: 0.00146096, z: -0.026327008, w: -0.9996315} - m_LocalPosition: {x: -0.11306503, y: 0.0038180987, z: -0.0076525463} + m_LocalRotation: {x: 0.001890329, y: -0.00008607621, z: 0.0040942887, w: -0.99998987} + m_LocalPosition: {x: -0.1055315, y: -0.08806288, z: -0.0085835215} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8168424681774074368} @@ -5252,8 +4675,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6208244537816975144} - m_LocalRotation: {x: 0.06460323, y: -0.15077199, z: -0.38851634, w: 0.9067245} - m_LocalPosition: {x: 0.038734943, y: -0.0075387647, z: 0.017603222} + m_LocalRotation: {x: -0.0017219549, y: 0.063947566, z: -0.0268627, w: 0.9975902} + m_LocalPosition: {x: 0.038868114, y: 0.0014898591, z: 0.03780609} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 8208221923192374018} @@ -5283,8 +4706,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6286802332267957403} - m_LocalRotation: {x: -0.004956685, y: -0.09645421, z: 0.051081255, w: 0.9940135} - m_LocalPosition: {x: -0.059026904, y: -0.010685019, z: -0.021412365} + m_LocalRotation: {x: -0.003927261, y: -0.060736988, z: 0.064405724, w: 0.99606603} + m_LocalPosition: {x: -0.061303318, y: -0.006159441, z: -0.019985357} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2120030401919416590} @@ -5315,43 +4738,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6363070122290882725} m_LocalRotation: {x: 0, y: 0, z: 0.000000008184788, w: 1} - m_LocalPosition: {x: 0.005015462, y: -0.07128238, z: 0.117793016} + m_LocalPosition: {x: 0.00000008527422, y: -0.080176204, z: 0.12159336} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 606395546357305354} m_Father: {fileID: 5623307778277919503} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6936022455290612960 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 348206003818060429} - m_Layer: 0 - m_Name: Hand Palm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &348206003818060429 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6936022455290612960} - m_LocalRotation: {x: -0.31734052, y: 0.68040305, z: 0.3409192, w: 0.5657922} - m_LocalPosition: {x: -0.005741429, y: 0.08732511, z: -0.02343969} - m_LocalScale: {x: 0.9999999, y: 1.0000005, z: 1.0000005} - m_Children: [] - m_Father: {fileID: 7769776041937715141} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6974821445028395073 GameObject: m_ObjectHideFlags: 0 @@ -5408,8 +4801,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7252232762915606751} - m_LocalRotation: {x: 0.05528058, y: -0.00006199548, z: -0.0014239601, w: 0.9984699} - m_LocalPosition: {x: -2.5253308e-16, y: 0.114520855, z: -0.012485136} + m_LocalRotation: {x: -0, y: 3.526483e-38, z: 2.0767596e-15, w: 1} + m_LocalPosition: {x: -2.5253393e-16, y: 0.12070156, z: -0.012485121} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 4073333712384793646} @@ -5439,8 +4832,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7255106938120831372} - m_LocalRotation: {x: 0.07048482, y: 9.3132246e-10, z: 0.0000000023380833, w: 0.9975129} - m_LocalPosition: {x: 9.313226e-10, y: -0.49770978, z: 0.000000037252903} + m_LocalRotation: {x: 0.022657834, y: -7.275958e-12, z: -8.1326856e-10, w: 0.9997433} + m_LocalPosition: {x: 0, y: -0.4569167, z: 0.000000063329935} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 5623307778277919503} @@ -5470,8 +4863,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7276790893818719689} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: -0.0219588, y: -0.000000018950004, z: 0.000000028710701} + m_LocalRotation: {x: -0.000020047919, y: -0.001295886, z: 0.01546941, w: 0.99987954} + m_LocalPosition: {x: -0.032411378, y: -0.0000000021809456, z: 0.0000000011952758} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 2653163421365880598} @@ -5501,8 +4894,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7325065536697401311} - m_LocalRotation: {x: -0.017655013, y: -0.11530157, z: 0.1503233, w: 0.98173153} - m_LocalPosition: {x: -0.05875598, y: -0.011651849, z: -0.027812978} + m_LocalRotation: {x: -0.0032092885, y: -0.059774566, z: 0.05351657, w: 0.99677116} + m_LocalPosition: {x: -0.051732518, y: -0.0060922033, z: -0.026886078} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 240730503903211994} @@ -5532,8 +4925,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7395480487940366479} - m_LocalRotation: {x: -1.517253e-39, y: 1.8611566e-24, z: 0.000000097100354, w: 1} - m_LocalPosition: {x: -0.020972572, y: -0.0000000010625172, z: -0.000000016159737} + m_LocalRotation: {x: -0.00000673482, y: -0.00029616614, z: 0.022725834, w: 0.9997417} + m_LocalPosition: {x: -0.027847849, y: 4.160441e-10, z: -0.0000000019606765} m_LocalScale: {x: 1, y: 0.99999994, z: 1} m_Children: - {fileID: 4299558758846679023} @@ -5563,8 +4956,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7460461591810884424} - m_LocalRotation: {x: 0.0064516147, y: -0.0014610245, z: 0.026328193, w: -0.9996315} - m_LocalPosition: {x: 0.11306499, y: 0.0038180987, z: -0.0076525463} + m_LocalRotation: {x: 0.001890329, y: 0.00008607621, z: -0.0040942887, w: -0.99998987} + m_LocalPosition: {x: 0.1055315, y: -0.08806288, z: -0.0085835215} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 506702829398492897} @@ -5594,8 +4987,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7538446906611121590} - m_LocalRotation: {x: -0.0054981266, y: 0.049288616, z: -0.113639936, w: 0.9922834} - m_LocalPosition: {x: 0.06687912, y: -0.012180703, z: -0.0064183045} + m_LocalRotation: {x: -0.003058635, y: 0.060362756, z: -0.050513405, w: 0.99689287} + m_LocalPosition: {x: 0.07513694, y: -0.006617789, z: -0.0009887274} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 3437189322826192555} @@ -5625,8 +5018,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7678528835387023431} - m_LocalRotation: {x: -0.017655173, y: 0.1153016, z: -0.1503241, w: 0.98173136} - m_LocalPosition: {x: 0.05875596, y: -0.011650611, z: -0.02781299} + m_LocalRotation: {x: -0.0034078602, y: 0.0635157, z: -0.053468242, w: 0.99654174} + m_LocalPosition: {x: 0.051733363, y: -0.006087698, z: -0.02688626} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1367469362349161091} @@ -5656,8 +5049,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7709896988833430696} - m_LocalRotation: {x: 0.00087908667, y: -0.17549223, z: 0.00015660842, w: 0.98448044} - m_LocalPosition: {x: 0.20965332, y: 0.000000004190952, z: 0.00000004901085} + m_LocalRotation: {x: 0.0016829239, y: -0.00033157127, z: 0.0000005439917, w: 0.9999985} + m_LocalPosition: {x: 0.25876004, y: -2.6819575e-16, z: -6.083419e-39} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 7624083477925197851} @@ -5717,8 +5110,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8151119430542648939} - m_LocalRotation: {x: -6.938894e-18, y: 0, z: -0, w: 1} - m_LocalPosition: {x: 0.03472366, y: 0.000028686509, z: -0.00020205184} + m_LocalRotation: {x: -0.000012000173, y: -0.007268562, z: 0.0016510474, w: 0.9999723} + m_LocalPosition: {x: 0.0347243, y: 1.6370205e-10, z: 0.0000000021583548} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 906338171309068915} @@ -5840,8 +5233,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8520950601248945736} - m_LocalRotation: {x: 0.06571052, y: -0.00035374713, z: -0.02636625, w: -0.9974902} - m_LocalPosition: {x: -0.0000000037252903, y: -0.3890996, z: 0} + m_LocalRotation: {x: 0.020767761, y: 0.0000067159554, z: 0.004095184, w: -0.999776} + m_LocalPosition: {x: -0.0000000018626451, y: -0.46714398, z: -0.000000013038516} m_LocalScale: {x: 1, y: 0.99999994, z: 1} m_Children: - {fileID: 6384243072889662843} @@ -5890,63 +5283,63 @@ MonoBehaviour: name: boneId: 60 target: - length: 0.4569167 + length: 0 transform: {fileID: 5272594642193707320} baseRotation: {x: 0.051287577, y: -0.0005638482, z: -0.010978722, w: 0.99862343} basePosition: {x: 0.11306499, y: 0.0038180987, z: -0.0076525463} - toBoneRotation: {x: -0.9999399, y: 0.0000000235041, z: 0.010955621, w: 0.000000009167069} + toBoneRotation: {x: -0.016592667, y: -0.00021811719, z: -0.013142481, w: 0.99977595} bone: - transform: {fileID: 7769776041937714689} - length: 0.4977098 + transform: {fileID: 0} + length: 0.4569167 jointLimitations: 0 maxAngle: 0 minAngles: {x: -130, y: -40, z: -30} maxAngles: {x: 30, y: 45, z: 50} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.9999399, y: -0.0000000235041, z: -0.010955621, w: 0.000000009167069} + toTargetRotation: {x: 0.016592667, y: 0.00021811719, z: 0.013142481, w: 0.99977595} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} lowerLeg: name: boneId: 61 target: - length: 0.46714398 + length: 0.38909963 transform: {fileID: 506702829398492897} baseRotation: {x: -0.061178114, y: -0.0014482929, z: -0.034986246, w: 0.99751246} basePosition: {x: 0, y: -0.49770975, z: 0.000000033527613} - toBoneRotation: {x: -0.99894893, y: -0.000000017154644, z: 0.045837935, w: -0.000000007671826} + toBoneRotation: {x: -0.0026854707, y: 0.000012755842, z: 0.0047498452, w: 0.9999851} bone: - transform: {fileID: 7769776041937715157} - length: 0.38909963 + transform: {fileID: 0} + length: 0.46714398 jointLimitations: 0 maxAngle: 0 minAngles: {x: -15, y: NaN, z: NaN} maxAngles: {x: 130, y: NaN, z: NaN} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.99894893, y: 0.000000017154644, z: -0.045837935, w: -0.000000007671826} + toTargetRotation: {x: 0.0026854707, y: -0.000012755842, z: -0.0047498452, w: 0.9999851} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} foot: name: boneId: 62 target: - length: 0.14564736 + length: 0.38909963 transform: {fileID: 5623307778277919503} baseRotation: {x: 0.008240594, y: -0.00053507095, z: 0.04599743, w: 0.9989074} basePosition: {x: 0.06642776, y: 0.089666486, z: -0.128434} - toBoneRotation: {x: -0.8697177, y: -0.047802724, z: -0.047807693, w: -0.4888971} + toBoneRotation: {x: 0, y: 0, z: -0.00000000818479, w: 1} bone: - transform: {fileID: 7769776041937715143} - length: 0.13777347 + transform: {fileID: 0} + length: 0.14564736 jointLimitations: 0 maxAngle: 0 minAngles: {x: -45, y: 0, z: -20} maxAngles: {x: 50, y: 0, z: 30} - baseRotation: {x: 0.26849943, y: 0.020493299, z: -0.0057135853, w: 0.9630449} + baseRotation: {x: 0.28736073, y: 0.00000032279587, z: -0.00000009684347, w: 0.95782244} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.8697177, y: 0.047802724, z: 0.047807693, w: -0.4888971} + toTargetRotation: {x: 0, y: 0, z: 0.00000000818479, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} toes: @@ -5955,11 +5348,11 @@ MonoBehaviour: target: length: 0 transform: {fileID: 6384243072889662843} - baseRotation: {x: -9.540973e-18, y: -1.2601967e-11, z: 0.0000000074505664, w: 1} + baseRotation: {x: 2.0411606e-17, y: -7.275969e-12, z: 0.000000008381947, w: 1.0000002} basePosition: {x: 0.005015458, y: -0.07128226, z: 0.11779303} - toBoneRotation: {x: -0.23283654, y: -0.6709274, z: -0.6709273, w: -0.21330841} + toBoneRotation: {x: 0, y: 0, z: -1.7763568e-15, w: 1} bone: - transform: {fileID: 7769776041937714703} + transform: {fileID: 0} length: 0.02 jointLimitations: 0 maxAngle: 0 @@ -5967,7 +5360,7 @@ MonoBehaviour: maxAngles: {x: 45, y: NaN, z: NaN} baseRotation: {x: 0, y: 0, z: 0, w: 1} basePosition: {x: 0, y: 0, z: 0} - toTargetRotation: {x: 0.23283654, y: 0.6709274, z: 0.6709273, w: -0.21330841} + toTargetRotation: {x: 0, y: 0, z: 1.7763568e-15, w: 1} rotationVelocity: {x: 0, y: 0, z: 0, w: 0} velocity: {x: 0, y: 0, z: 0} jointLimitations: 1 @@ -6049,8 +5442,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8930598610249476027} - m_LocalRotation: {x: -0.0013944741, y: 0.00694235, z: -0.196922, w: 0.9803936} - m_LocalPosition: {x: -0.029196518, y: -0.000000019441359, z: -0.000000021449523} + m_LocalRotation: {x: -0.000039089708, y: -0.0037677626, z: 0.010374232, w: 0.9999391} + m_LocalPosition: {x: -0.03741743, y: -7.858034e-10, z: 0.0000000016225385} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1469898898888776885} @@ -6172,8 +5565,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9151513446690494071} - m_LocalRotation: {x: 0.0008855333, y: 0.16721438, z: -0.00015021443, w: 0.9859202} - m_LocalPosition: {x: -0.20965344, y: -0.000000022817403, z: 0.00000001839362} + m_LocalRotation: {x: 0.0016893777, y: 0.000000042145203, z: -4.5932005e-10, w: 0.9999986} + m_LocalPosition: {x: -0.25876033, y: 2.6819604e-16, z: 6.083426e-39} m_LocalScale: {x: 1, y: 0.99999994, z: 1} m_Children: - {fileID: 8467765973942035875} @@ -6210,1510 +5603,78 @@ Transform: m_Father: {fileID: 173989879821802103} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1010047513471387097 +--- !u!1001 &7964632619259579814 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 4968286101144654} m_Modifications: - - target: {fileID: 7338513305112361472, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.98442054 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361472, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.018417895 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361472, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.02539283 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361472, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.1730092 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361474, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.98560715 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361474, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.017695075 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361474, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.02544365 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361474, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.16618672 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361484, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99690443 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361484, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.07038561 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361484, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.034804255 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361484, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0040029488 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361486, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99690455 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361486, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.07038515 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361486, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.034804214 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361486, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0040033585 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: 4.6566134e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.3890996 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000011548403 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.8306658 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.5463668 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09530474 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.048935883 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361490, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9861598 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361490, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.08539829 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361490, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09403619 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361490, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.106551565 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361492, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9861598 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361492, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.08539832 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361492, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09403624 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361492, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.106551655 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361494, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.96349347 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361494, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.19701827 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361494, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.18125595 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361494, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.003239117 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: -4.947652e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.10364132 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000012572853 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9944798 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.10486602 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.002533511 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0025860136 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.00000028312212 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.26173544 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000026822093 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.997757 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.050253678 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.018209117 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.040299285 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.000000007450582 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.2617353 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000040605664 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99774134 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.050284434 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.018209992 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.04064608 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.0000000062864274 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.3890996 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: 0.000000011175873 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.8306656 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.5463671 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09530482 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.048935965 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.0000000037016834 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.074555576 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: 0.9680182 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.70591074 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.70830077 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 6.781658e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -6.7587375e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361512, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.3709356 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361512, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.071681544 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361512, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.8902036 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361512, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.2545707 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361516, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.035034034 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361516, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -1.5523309e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361516, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 5.89131e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361518, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.989482 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361518, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14465639 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361518, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -2.8276326e-10 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361518, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.000000003644485 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.x - value: -7.2164497e-16 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.23304644 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.000000022351749 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.999136 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.041506458 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.0016287733 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0013519156 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361536, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9598524 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361536, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.13081141 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361536, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.16702962 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361536, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.18350187 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361538, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9711982 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361538, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.22828913 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361538, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.05974256 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361538, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.032998346 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361540, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9711982 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361540, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.22828911 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361540, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.059742577 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361540, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.03299825 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361542, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.79303515 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361542, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.18897931 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361542, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.50280905 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361542, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.28734127 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361544, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99994814 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361544, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.0031949629 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361544, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.0025556514 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361544, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.009327909 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361546, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9988443 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361546, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.033016477 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361546, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.034922816 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361546, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.00061631727 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361548, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9988443 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361548, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.033016447 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361548, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.034922786 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361548, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0006162893 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361550, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.95985246 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361550, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.1308109 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361550, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.16702995 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361550, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.18350159 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361554, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.4709221 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361554, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.66614187 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361554, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.44502574 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361554, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.3693773 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361556, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.47092223 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361556, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.6661418 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361556, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.44502562 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361556, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.36937726 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361560, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7930352 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361560, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.18897942 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361560, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.50280905 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361560, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.28734118 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361562, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9149404 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361562, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.31390622 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361562, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.25306165 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361562, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.017512953 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361564, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9149404 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361564, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.31390655 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361564, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.25306162 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361564, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.01751282 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361568, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.999497 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361568, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.02307694 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361568, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.021606985 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361568, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0025521987 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361570, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9994846 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361570, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.020781346 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361570, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.020584352 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361570, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.013231078 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361572, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99948466 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361572, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.020781266 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361572, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.020584201 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361572, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.013230871 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361574, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9913993 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361574, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.06410095 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361574, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.06521965 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361574, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.09362153 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361576, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.96349347 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361576, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.19701824 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361576, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.1812559 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361576, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0032389767 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361578, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9820266 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361578, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14018652 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361578, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.12379833 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361578, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.025405388 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361580, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.98202664 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361580, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14018679 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361580, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.12379815 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361580, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.025405316 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361582, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.999497 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361582, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.023077039 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361582, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.021606924 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361582, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0025525386 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361584, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99059457 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361584, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09849506 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361584, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.092785515 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361584, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.020299127 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361586, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9848853 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361586, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09883952 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361586, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09396813 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361586, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.106779195 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361588, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9848852 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361588, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09883985 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361588, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09396794 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361588, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.106779024 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361590, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9999482 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361590, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.003195142 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361590, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.0025556292 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361590, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.009327988 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361592, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9913992 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361592, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.0641013 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361592, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.065219685 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361592, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.09362165 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361594, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99984354 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361594, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.009012006 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361594, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.010956725 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361594, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.01057074 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361596, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9998435 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361596, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.0090119485 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361596, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.010956862 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361596, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.010570639 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361598, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99050236 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361598, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09962664 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361598, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09234393 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361598, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.021266468 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_RootOrder - value: 0 + value: 2 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7338513305112361942, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.37093556 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361942, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.07168165 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361942, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.89020365 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361942, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.25457057 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361944, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.012209172 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361944, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.026398594 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361944, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.999558 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361944, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0061616795 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361946, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.012619707 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361946, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.026394982 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361946, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.9995529 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361946, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0061723404 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361948, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9935417 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361948, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.02914264 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361948, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.05246233 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361948, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.096298285 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361950, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9930509 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361950, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.029415905 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361950, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.051699474 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112361950, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.10154788 - objectReference: {fileID: 0} - - target: {fileID: 7338513305112455146, guid: fe76bdb4c3092db4480a5145f2d82ccc, + - target: {fileID: 7338513305112455146, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} propertyPath: m_Name value: MakeHuman_simple_TP objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: fe76bdb4c3092db4480a5145f2d82ccc, type: 3} ---- !u!4 &7769776041937715107 stripped + m_SourcePrefab: {fileID: 100100000, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} +--- !u!4 &819564781098235500 stripped Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361594, guid: fe76bdb4c3092db4480a5145f2d82ccc, + m_CorrespondingSourceObject: {fileID: 7338513305112361930, guid: 86f7ba3098b1d6d4f846836e83c3cb42, type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715111 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361598, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715115 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361586, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715119 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361590, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715091 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361546, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715099 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361538, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715103 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361542, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715143 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361502, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715157 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361484, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714689 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361944, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715185 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361512, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715145 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361488, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715159 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361486, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714691 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361946, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714703 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361942, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715191 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361518, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715193 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361504, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!95 &7769776041947517039 stripped -Animator: - m_CorrespondingSourceObject: {fileID: 7338513305103095222, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714707 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361930, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715189 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361516, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715085 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361556, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714695 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361950, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715105 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361592, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715163 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361474, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715141 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361500, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715095 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361550, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715073 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361560, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715101 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361540, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715097 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361536, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715093 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361548, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715089 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361544, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715117 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361588, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715113 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361584, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715109 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361596, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715133 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361572, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715129 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361568, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715125 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361580, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715121 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361576, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715149 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361492, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715083 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361554, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715135 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361574, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715161 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361472, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715137 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361496, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715183 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361526, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937714693 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361948, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715139 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361498, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715077 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361564, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715151 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361494, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715123 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361578, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715127 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361582, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715131 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361570, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715075 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361562, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} - m_PrefabAsset: {fileID: 0} ---- !u!4 &7769776041937715147 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7338513305112361490, guid: fe76bdb4c3092db4480a5145f2d82ccc, - type: 3} - m_PrefabInstance: {fileID: 1010047513471387097} + m_PrefabInstance: {fileID: 7964632619259579814} m_PrefabAsset: {fileID: 0} diff --git a/Samples~/GroceryStore/Prefabs/Humanoid.prefab.meta b/Samples~/GroceryStore/Prefabs/Humanoid.prefab.meta index 17092d7..05810fd 100644 --- a/Samples~/GroceryStore/Prefabs/Humanoid.prefab.meta +++ b/Samples~/GroceryStore/Prefabs/Humanoid.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7f1913940d91094408ea28e4de119b2b +guid: b09ff8d1366440649b959c12df4d1076 NativeFormatImporter: externalObjects: {} mainObjectFileID: 0 diff --git a/Samples~/GroceryStore/Scenes/Grocery Store.unity b/Samples~/GroceryStore/Scenes/Grocery Store.unity deleted file mode 100644 index 69ab622..0000000 --- a/Samples~/GroceryStore/Scenes/Grocery Store.unity +++ /dev/null @@ -1,11722 +0,0 @@ -%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.2, g: 0.2, b: 0.2, a: 1} - m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - 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: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &4 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 11 - 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: 1 - m_BakeResolution: 50 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 0 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 0 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 1024 - m_ReflectionCompression: 2 - m_MixedBakeMode: 1 - m_BakeBackend: 0 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 500 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 0 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 0 - 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: 0} - m_UseShadowmask: 0 ---- !u!196 &5 -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.16666666 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &1113803 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1113804} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1113804 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1113803} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 208 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2709474 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2709475} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2709475 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2709474} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 124 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3216819 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3216820} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3216820 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3216819} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 52 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5715170 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5715171} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5715171 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5715170} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 215 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8966254 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8966255} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8966255 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8966254} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 51 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &19918285 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 19918286} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &19918286 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 19918285} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 235 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &24089974 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 24089975} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &24089975 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 24089974} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 135 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &29847534 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 29847535} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &29847535 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 29847534} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 18 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &38352425 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1504978430117208, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_Name - value: Hopjes1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.x - value: -1.0646 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.z - value: 4.64456 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.y - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -180 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} ---- !u!4 &38352426 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, - type: 3} - m_PrefabInstance: {fileID: 38352425} - m_PrefabAsset: {fileID: 0} ---- !u!1 &44558078 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 44558079} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &44558079 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 44558078} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 286 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &46989782 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 46989783} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &46989783 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 46989782} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 15 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &56421127 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 56421128} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &56421128 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 56421127} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 78 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &61648148 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 61648149} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &61648149 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 61648148} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 297 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &64111790 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 64111791} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &64111791 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 64111790} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 156 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &65828380 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 65828381} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &65828381 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65828380} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 49 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &66949991 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 66949992} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &66949992 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 66949991} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &76424350 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 76424351} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &76424351 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 76424350} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 77 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &76765275 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 76765276} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &76765276 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 76765275} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 71 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &78277468 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 78277469} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &78277469 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 78277468} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 237 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &83228976 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 83228977} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &83228977 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 83228976} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 90 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &106925436 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 106925437} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &106925437 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106925436} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 166 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &116216169 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 116216170} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &116216170 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 116216169} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 234 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &125682679 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 125682680} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &125682680 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 125682679} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 26 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &133607770 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 133607771} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &133607771 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 133607770} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 239 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &144733965 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 144733966} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &144733966 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 144733965} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 39 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &159305886 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 159305887} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &159305887 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 159305886} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 45 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &165881608 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 165881609} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &165881609 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 165881608} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 296 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &167108804 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 167108805} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &167108805 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167108804} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 257 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &176287457 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 176287458} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &176287458 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 176287457} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 69 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &185863319 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1504978430117208, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_Name - value: Hopjes2 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.x - value: -0.8527 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.z - value: 4.64456 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.y - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} ---- !u!4 &185863320 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, - type: 3} - m_PrefabInstance: {fileID: 185863319} - m_PrefabAsset: {fileID: 0} ---- !u!1 &192444255 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 192444256} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &192444256 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 192444255} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 48 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &236716836 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 236716837} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &236716837 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 236716836} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 134 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &240080115 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 240080116} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &240080116 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 240080115} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 272 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &248204036 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 248204037} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &248204037 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 248204036} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 130 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &257738242 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 257738243} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &257738243 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 257738242} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 95 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &267584229 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 267584230} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &267584230 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 267584229} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 260 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &272583088 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 272583089} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &272583089 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 272583088} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 133 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &274340640 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 274340641} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &274340641 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274340640} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 158 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &282854378 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 282854379} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &282854379 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 282854378} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 221 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &284416307 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 284416308} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &284416308 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 284416307} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 163 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &286447858 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 286447859} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &286447859 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 286447858} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 154 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &296533266 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 296533267} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &296533267 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 296533266} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 289 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &296536867 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 296536868} - - component: {fileID: 296536869} - m_Layer: 0 - m_Name: Point light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &296536868 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 296536867} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 4, z: 1.17} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 621814091} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!108 &296536869 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 296536867} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 2 - 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: 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: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 1 - 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_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!1 &300154222 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 300154223} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &300154223 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 300154222} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 167 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &301966873 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 301966874} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &301966874 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 301966873} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 96 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &305135046 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 305135047} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &305135047 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 305135046} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 210 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &305595226 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 305595227} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &305595227 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 305595226} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 113 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &318594767 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 318594768} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &318594768 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 318594767} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 242 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &321283338 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1325909658251226, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_Name - value: Chair2 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_RootOrder - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.x - value: -2.13 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.z - value: 1.43675 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5ff139ee067e6344f8950476517a0465, type: 3} ---- !u!4 &321283339 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, - type: 3} - m_PrefabInstance: {fileID: 321283338} - m_PrefabAsset: {fileID: 0} ---- !u!1 &358217995 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 358217996} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &358217996 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 358217995} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 57 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &359295361 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 359295362} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &359295362 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359295361} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 89 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &359896377 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 359896378} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &359896378 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 359896377} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 144 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &363416098 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 363416099} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &363416099 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 363416098} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 212 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &371733368 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 371733369} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &371733369 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 371733368} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 108 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &391160573 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 391160574} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &391160574 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 391160573} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 70 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &391458950 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 391458951} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &391458951 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 391458950} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 79 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &410898128 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 100004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_Name - value: Bruidsuikers2 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_RootOrder - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.x - value: 0.02671 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.z - value: 4.72251 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.w - value: 0.14418358 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.y - value: -0.98955095 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 71baab1c77e29994195882e47580a5a2, type: 3} ---- !u!4 &410898129 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, - type: 3} - m_PrefabInstance: {fileID: 410898128} - m_PrefabAsset: {fileID: 0} ---- !u!1 &416950200 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 416950201} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &416950201 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416950200} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 142 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &422434804 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 422434805} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &422434805 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 422434804} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 224 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &425732455 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 425732456} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &425732456 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 425732455} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 256 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &434779151 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 434779152} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &434779152 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 434779151} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 19 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &443966648 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 443966649} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &443966649 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 443966648} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 278 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &448822217 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 448822218} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &448822218 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 448822217} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 218 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &453260890 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 453260891} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &453260891 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 453260890} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 25 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &456762518 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 456762519} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &456762519 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 456762518} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 220 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &465450621 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 465450622} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &465450622 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 465450621} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 265 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &474789920 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 474789921} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &474789921 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 474789920} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 160 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &484300638 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 484300639} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &484300639 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 484300638} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 109 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &490295260 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 490295261} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &490295261 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 490295260} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 245 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &491901883 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 491901884} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &491901884 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 491901883} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 62 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &498975942 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 498975943} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &498975943 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498975942} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 145 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &505387615 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 505387616} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &505387616 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 505387615} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 266 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &509213423 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 509213424} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &509213424 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 509213423} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 60 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &524098740 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 524098741} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &524098741 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 524098740} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 192 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &530833088 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 530833089} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &530833089 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 530833088} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 270 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &549838029 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 549838030} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &549838030 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 549838029} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 110 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &558936180 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 558936181} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &558936181 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 558936180} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 50 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &565370660 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 565370661} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &565370661 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 565370660} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 149 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &583889820 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 583889821} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &583889821 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 583889820} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 43 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &599573762 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 599573763} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &599573763 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 599573762} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 102 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &602664904 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 602664905} - m_Layer: 0 - m_Name: Objects - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &602664905 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 602664904} - 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_Children: - - {fileID: 38352426} - - {fileID: 185863320} - - {fileID: 1056602322} - - {fileID: 1126052867} - - {fileID: 680848238} - - {fileID: 410898129} - - {fileID: 1110515844} - - {fileID: 1910985204} - - {fileID: 991637201} - - {fileID: 321283339} - - {fileID: 975718300} - - {fileID: 1353845131} - - {fileID: 1622697299} - - {fileID: 993015065} - m_Father: {fileID: 621814091} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &605090364 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 605090365} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &605090365 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 605090364} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 281 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &610734146 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 610734147} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &610734147 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 610734146} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 29 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &612165414 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 612165415} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &612165415 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 612165414} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 233 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &617228873 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 617228874} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &617228874 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 617228873} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 41 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &621814090 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 100000, guid: 439b5f3b36c8d49409ca3f56dcbaae8c, - type: 2} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 621814091} - m_Layer: 0 - m_Name: GroceryStore - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &621814091 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 400000, guid: 439b5f3b36c8d49409ca3f56dcbaae8c, - type: 2} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621814090} - 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_Children: - - {fileID: 908083212462696406} - - {fileID: 602664905} - - {fileID: 838225047} - - {fileID: 296536868} - - {fileID: 2072285039} - - {fileID: 1126424692} - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &629232741 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 629232742} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &629232742 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 629232741} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 126 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &630767345 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 630767346} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &630767346 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 630767345} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 92 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &636720621 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 636720622} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &636720622 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636720621} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 176 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &636993214 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 636993215} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &636993215 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 636993214} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 111 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &637561327 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 637561328} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &637561328 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 637561327} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 277 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &638784923 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 638784924} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &638784924 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 638784923} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 186 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &639774870 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 639774871} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &639774871 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 639774870} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &650004134 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 650004135} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &650004135 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 650004134} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 202 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &652123146 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 652123147} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &652123147 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 652123146} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 216 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &658150224 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 658150225} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &658150225 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 658150224} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 206 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &668058386 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 668058387} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &668058387 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 668058386} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 244 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &671084589 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 671084590} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &671084590 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 671084589} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 64 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &676769035 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 676769036} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &676769036 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 676769035} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 196 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &678839950 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 678839951} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &678839951 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 678839950} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 97 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &680848237 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 100004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_Name - value: Bruidsuikers1 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_RootOrder - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.x - value: 0.33804 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalPosition.z - value: 4.70315 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.w - value: 0.14418358 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.y - value: -0.98955095 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 71baab1c77e29994195882e47580a5a2, type: 3} ---- !u!4 &680848238 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 400004, guid: 71baab1c77e29994195882e47580a5a2, - type: 3} - m_PrefabInstance: {fileID: 680848237} - m_PrefabAsset: {fileID: 0} ---- !u!1 &687047542 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 687047543} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &687047543 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 687047542} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 295 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &698116798 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 698116799} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &698116799 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 698116798} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 148 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &699472130 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 699472131} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &699472131 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 699472130} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 54 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &705070971 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 705070972} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &705070972 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 705070971} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 99 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &713286622 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 713286623} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &713286623 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 713286622} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 240 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &717608098 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 717608099} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &717608099 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 717608098} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &718830074 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 718830075} - m_Layer: 0 - m_Name: Dummy Tracker Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &718830075 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 718830074} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &731502892 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 731502893} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &731502893 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 731502892} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 267 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &733780933 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 733780934} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &733780934 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 733780933} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 58 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &737236868 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 737236869} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &737236869 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 737236868} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 229 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &748158492 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 748158493} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &748158493 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 748158492} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 38 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &748295887 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 748295888} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &748295888 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 748295887} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 67 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &754101968 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 754101969} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &754101969 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 754101968} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 290 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &758746335 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 758746336} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &758746336 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 758746335} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 253 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &765794984 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 765794985} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &765794985 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 765794984} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 264 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &773403959 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 773403960} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &773403960 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 773403959} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 173 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &776614722 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 776614723} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &776614723 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 776614722} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 169 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &778566601 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 778566602} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &778566602 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 778566601} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 201 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &789435932 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 789435933} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &789435933 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 789435932} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 138 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &790241898 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 790241899} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &790241899 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 790241898} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 198 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &805817912 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 805817913} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &805817913 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 805817912} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &806881383 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 806881384} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &806881384 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 806881383} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 131 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &809722717 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 809722718} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &809722718 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 809722717} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 175 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &814179570 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 814179571} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &814179571 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 814179570} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 20 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &818371750 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 818371751} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &818371751 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 818371750} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 193 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &819068584 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 819068585} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &819068585 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 819068584} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 259 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &828773006 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 828773007} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &828773007 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 828773006} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 261 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &830757534 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 830757535} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &830757535 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 830757534} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 74 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &830921320 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 830921321} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &830921321 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 830921320} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 81 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &838225046 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 621814091} - m_Modifications: - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalPosition.x - value: -4.1534 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.76704 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 138152924820518229, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - propertyPath: m_Name - value: Dorpsstraat-20-collider - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: b145fce870893ef41b25a51f4aa8c95f, type: 3} ---- !u!4 &838225047 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 138152924820518228, guid: b145fce870893ef41b25a51f4aa8c95f, - type: 3} - m_PrefabInstance: {fileID: 838225046} - m_PrefabAsset: {fileID: 0} ---- !u!1 &844484958 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 844484959} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &844484959 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 844484958} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 68 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &856514870 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 856514871} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &856514871 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 856514870} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 164 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &862112114 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 862112115} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &862112115 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 862112114} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 249 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &864158459 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 864158460} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &864158460 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 864158459} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 228 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &871664995 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 871664996} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &871664996 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 871664995} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 125 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &876101951 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 876101952} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &876101952 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 876101951} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 293 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &876377299 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 876377300} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &876377300 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 876377299} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 292 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &898711701 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 898711702} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &898711702 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 898711701} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 226 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &907275007 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 907275008} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &907275008 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 907275007} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 23 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &919403335 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 919403336} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &919403336 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 919403335} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 28 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &927533934 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 927533935} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &927533935 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 927533934} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 104 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &944744062 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 944744063} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &944744063 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 944744062} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 14 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &946035577 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 946035578} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &946035578 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 946035577} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 59 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &949297321 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 949297322} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &949297322 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 949297321} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 165 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &955967228 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 955967229} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &955967229 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 955967228} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 155 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &975718299 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1256118978501938, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_Name - value: Table - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_RootOrder - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalPosition.x - value: -2.0979 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalPosition.z - value: 0.88314 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 18a8db5c5786286429f068d17cf92326, type: 3} ---- !u!4 &975718300 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4914274037234322, guid: 18a8db5c5786286429f068d17cf92326, - type: 3} - m_PrefabInstance: {fileID: 975718299} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &991637200 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1325909658251226, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_Name - value: Chair1 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_RootOrder - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.x - value: -2.0958 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalPosition.z - value: 0.27571 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.y - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5ff139ee067e6344f8950476517a0465, type: 3} ---- !u!4 &991637201 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4289530546592370, guid: 5ff139ee067e6344f8950476517a0465, - type: 3} - m_PrefabInstance: {fileID: 991637200} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &993015064 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1886339611299816, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_Name - value: Gun - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_RootOrder - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalPosition.x - value: 1.956 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalPosition.y - value: 1.073895 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalPosition.z - value: 3.421 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalRotation.w - value: 0.0842268 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalRotation.x - value: -0.70207256 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalRotation.y - value: -0.70207256 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalRotation.z - value: 0.0842268 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -166.318 - objectReference: {fileID: 0} - - target: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 90 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: f63da22be8a7aad4382c985d63e1d330, type: 3} ---- !u!4 &993015065 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4001617637216370, guid: f63da22be8a7aad4382c985d63e1d330, - type: 3} - m_PrefabInstance: {fileID: 993015064} - m_PrefabAsset: {fileID: 0} ---- !u!1 &993790261 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 993790262} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &993790262 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 993790261} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 65 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &995624218 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 995624219} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &995624219 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 995624218} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 172 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1001880369 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1001880370} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1001880370 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1001880369} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 183 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1005256216 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1005256217} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1005256217 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1005256216} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 120 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1007488131 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1007488132} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1007488132 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1007488131} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 153 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1009750698 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1009750699} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1009750699 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1009750698} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 85 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1010754325 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1010754326} - m_Layer: 0 - m_Name: Dummy Tracker Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1010754326 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1010754325} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1014591198 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1014591199} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1014591199 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1014591198} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 174 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1023070641 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1023070642} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1023070642 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1023070641} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 150 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1031311011 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1031311012} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1031311012 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1031311011} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 123 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1031377133 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1031377134} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1031377134 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1031377133} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 263 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1039933201 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1039933202} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1039933202 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1039933201} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 197 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1052605673 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1052605674} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1052605674 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1052605673} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 238 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1053761259 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1053761260} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1053761260 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1053761259} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 66 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1056602321 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1504978430117208, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_Name - value: Hopjes3 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.x - value: -0.39 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.z - value: 4.64456 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.y - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} ---- !u!4 &1056602322 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, - type: 3} - m_PrefabInstance: {fileID: 1056602321} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1072942687 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1072942688} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1072942688 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1072942687} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 184 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1078679226 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1078679227} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1078679227 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1078679226} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 241 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1079991512 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1079991513} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1079991513 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1079991512} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 116 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1082849809 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1082849810} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1082849810 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1082849809} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 230 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1087634810 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1087634811} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1087634811 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1087634810} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 213 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1092595343 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1092595344} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1092595344 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1092595343} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 255 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1094237477 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1094237478} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1094237478 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1094237477} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 40 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1094921190 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1094921191} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1094921191 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1094921190} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 298 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1097093862 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1097093863} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1097093863 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1097093862} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 17 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1106549857 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1106549858} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1106549858 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106549857} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 44 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1110515843 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1637081267702634, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_Name - value: Sword1 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_RootOrder - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.x - value: -0.9352 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.y - value: 1.0779 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.z - value: 2.9195 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ec763216341646342a341b040becd945, type: 3} ---- !u!4 &1110515844 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, - type: 3} - m_PrefabInstance: {fileID: 1110515843} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1119122746 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1119122747} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1119122747 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1119122746} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 117 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1126052866 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1504978430117208, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_Name - value: Hopjes4 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.x - value: -0.613 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.y - value: 1.44376 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalPosition.z - value: 4.64456 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.y - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, type: 3} ---- !u!4 &1126052867 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4802546407832438, guid: 33d4e4e71c6d60d4cb9d84ba0930da69, - type: 3} - m_PrefabInstance: {fileID: 1126052866} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1126424691 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1126424692} - - component: {fileID: 1126424693} - m_Layer: 0 - m_Name: Reflection Probe - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1126424692 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1126424691} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.24, z: 3.298} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 621814091} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!215 &1126424693 -ReflectionProbe: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1126424691} - m_Enabled: 1 - serializedVersion: 2 - m_Type: 0 - m_Mode: 1 - m_RefreshMode: 0 - m_TimeSlicingMode: 0 - m_Resolution: 128 - m_UpdateFrequency: 0 - m_BoxSize: {x: 10, y: 10, z: 10} - m_BoxOffset: {x: 0, y: 0, z: 0} - m_NearClip: 0.3 - m_FarClip: 1000 - m_ShadowDistance: 100 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_IntensityMultiplier: 1 - m_BlendDistance: 1 - m_HDR: 1 - m_BoxProjection: 0 - m_RenderDynamicObjects: 0 - m_UseOcclusionCulling: 1 - m_Importance: 1 - m_CustomBakedTexture: {fileID: 0} ---- !u!1 &1126484573 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1126484574} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1126484574 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1126484573} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 180 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1132459956 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1132459957} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1132459957 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1132459956} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 187 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1139295065 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1139295066} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1139295066 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1139295065} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 282 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1142327094 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1142327095} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1142327095 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1142327094} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 101 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1147851886 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1147851887} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1147851887 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1147851886} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 189 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1149691853 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1149691854} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1149691854 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1149691853} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 56 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1152617017 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1152617018} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1152617018 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1152617017} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 287 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1155216100 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1155216101} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1155216101 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1155216100} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 73 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1162359112 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1162359113} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1162359113 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1162359112} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 34 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1162615862 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1162615863} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1162615863 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1162615862} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1164658951 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1164658952} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1164658952 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1164658951} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 137 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1174962557 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1174962558} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1174962558 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1174962557} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 284 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1187297584 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1187297585} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1187297585 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1187297584} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1191122053 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1191122054} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1191122054 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1191122053} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 61 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1209939404 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1209939405} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1209939405 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1209939404} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 100 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1233243752 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1233243753} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1233243753 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1233243752} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 107 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1236997809 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1236997810} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1236997810 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1236997809} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 93 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1250169629 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1250169630} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1250169630 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1250169629} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 136 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1253307491 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1253307492} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1253307492 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1253307491} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 254 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1254351038 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1254351039} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1254351039 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1254351038} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 24 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1255062755 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1255062756} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1255062756 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1255062755} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 121 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1255083724 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1255083725} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1255083725 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1255083724} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 16 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1262246948 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1262246949} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1262246949 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1262246948} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 112 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1281926743 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1281926744} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1281926744 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1281926743} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 247 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1285361814 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1285361815} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1285361815 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1285361814} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 91 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1287026557 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1287026558} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1287026558 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1287026557} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 33 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1296243953 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1296243955} - - component: {fileID: 1296243954} - m_Layer: 0 - m_Name: Directional light2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1296243954 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1296243953} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 0.46631706, g: 0.50565493, b: 0.50735295, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - 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: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 1 - 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_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &1296243955 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1296243953} - m_LocalRotation: {x: 0.24736129, y: 0.8355281, z: -0.20738521, w: 0.44463092} - m_LocalPosition: {x: -0.00045657158, y: 0.972276, z: -0.10502744} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 34.508003, y: 129, z: 16.130001} ---- !u!1 &1303760382 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1303760383} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1303760383 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1303760382} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 47 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1315231413 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1315231414} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1315231414 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1315231413} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 188 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1316207526 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1316207527} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1316207527 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1316207526} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 246 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1327703664 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1327703665} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1327703665 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1327703664} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 274 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1330917384 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1330917385} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1330917385 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1330917384} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 217 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1342204098 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1342204099} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1342204099 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342204098} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 127 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1343246404 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1343246405} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1343246405 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1343246404} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 159 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1353845130 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1092480169724250, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_Name - value: MilkChurn - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_RootOrder - value: 13 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalPosition.x - value: -2.3012 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalPosition.z - value: 2.28396 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2118521ef9d975e4992d03cb9b8250c2, type: 3} ---- !u!4 &1353845131 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4717060779219244, guid: 2118521ef9d975e4992d03cb9b8250c2, - type: 3} - m_PrefabInstance: {fileID: 1353845130} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1364755825 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1364755826} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1364755826 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1364755825} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 87 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1374648183 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1374648184} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1374648184 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1374648183} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 276 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1375849536 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1375849537} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1375849537 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1375849536} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 98 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1393071621 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1393071622} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1393071622 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1393071621} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 152 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1399027813 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1399027814} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1399027814 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399027813} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 94 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1399056925 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1399056926} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1399056926 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1399056925} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 168 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1413683644 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1413683645} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1413683645 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1413683644} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 151 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1432651750 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1432651751} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1432651751 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1432651750} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 75 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1443999582 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1443999583} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1443999583 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1443999582} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 280 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1446789773 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1446789774} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1446789774 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1446789773} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 35 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1450493817 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1450493818} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1450493818 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1450493817} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 204 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1453320609 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1453320610} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1453320610 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1453320609} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 207 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1453473498 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1453473499} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1453473499 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1453473498} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 248 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1455168546 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1455168547} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1455168547 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455168546} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 118 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1463440219 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1463440220} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1463440220 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1463440219} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 139 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1463729192 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1463729193} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1463729193 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1463729192} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 195 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1472536949 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1472536950} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1472536950 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1472536949} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 146 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1481332582 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1481332583} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1481332583 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1481332582} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 140 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1485598278 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1485598279} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1485598279 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1485598278} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 279 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1509560741 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1509560742} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1509560742 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1509560741} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 37 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1528142274 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1528142275} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1528142275 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1528142274} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 30 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1529853555 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1529853556} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1529853556 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1529853555} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 63 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1532346586 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1532346587} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1532346587 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1532346586} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 219 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1536500930 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1536500931} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1536500931 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1536500930} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 211 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1538500703 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1538500704} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1538500704 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1538500703} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 190 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1540357006 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1540357007} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1540357007 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1540357006} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 42 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1540486172 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1540486173} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1540486173 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1540486172} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 179 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1541353715 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1541353716} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1541353716 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1541353715} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1547571336 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1547571337} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1547571337 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1547571336} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 122 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1547588833 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1547588834} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1547588834 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1547588833} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 191 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1555025368 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1555025369} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1555025369 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1555025368} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 205 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1560698267 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1560698268} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1560698268 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1560698267} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 80 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1571773994 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1571773995} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1571773995 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1571773994} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 36 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1594367048 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1594367049} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1594367049 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1594367048} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 273 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1595467185 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1595467186} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1595467186 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1595467185} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 22 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1607676161 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1607676162} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1607676162 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1607676161} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 31 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1615202307 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1615202308} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1615202308 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1615202307} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 214 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1619103166 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1619103167} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1619103167 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1619103166} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 84 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1622396287 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1622396288} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1622396288 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1622396287} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 271 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1622697298 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 100016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_Name - value: ScalesOlland - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_RootOrder - value: 14 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalPosition.x - value: 0.70438 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalPosition.y - value: 1.05 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalPosition.z - value: 3.24556 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 14500000, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.x - value: 0.70438 - objectReference: {fileID: 0} - - target: {fileID: 14500000, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.y - value: 1.15 - objectReference: {fileID: 0} - - target: {fileID: 14500000, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.z - value: 3.3910706 - objectReference: {fileID: 0} - - target: {fileID: 14500002, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.x - value: 0.70438 - objectReference: {fileID: 0} - - target: {fileID: 14500002, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.y - value: 1.15 - objectReference: {fileID: 0} - - target: {fileID: 14500002, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} - propertyPath: m_ConnectedAnchor.z - value: 3.1053193 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, type: 3} ---- !u!4 &1622697299 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 400016, guid: 2e443aa57f0ceaf4a8d85c3406b59f66, - type: 3} - m_PrefabInstance: {fileID: 1622697298} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1635561576 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1635561577} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1635561577 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1635561576} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 231 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1649761211 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1649761215} - - component: {fileID: 1649761214} - - component: {fileID: 1649761213} - - component: {fileID: 1649761212} - m_Layer: 0 - m_Name: Plane - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1649761212 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649761211} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - 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 ---- !u!64 &1649761213 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649761211} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!33 &1649761214 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649761211} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1649761215 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1649761211} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 100, y: 1, z: 100} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 299 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1662111034 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1662111035} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1662111035 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1662111034} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 227 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1671854660 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1671854661} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1671854661 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1671854660} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 199 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1673475909 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1673475910} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1673475910 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1673475909} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 129 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1681801651 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1681801652} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1681801652 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1681801651} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1695188641 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1695188642} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1695188642 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1695188641} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 177 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1704242926 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1704242927} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1704242927 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1704242926} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 21 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1706061877 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1706061878} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1706061878 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1706061877} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 171 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1713165495 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1713165496} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1713165496 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1713165495} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 55 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1719096067 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1719096068} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1719096068 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1719096067} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 243 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1723102506 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1723102507} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1723102507 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1723102506} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 105 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1728211902 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1728211903} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1728211903 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1728211902} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 209 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1730240210 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1730240211} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1730240211 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1730240210} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 268 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1739166934 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1739166936} - - component: {fileID: 1739166935} - m_Layer: 0 - m_Name: Directional light1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1739166935 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1739166934} - 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: 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: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 1 - 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_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &1739166936 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1739166934} - m_LocalRotation: {x: 0.29367465, y: -0.041613076, z: 0.13398299, w: 0.9455539} - m_LocalPosition: {x: -0.00045657158, y: 0.972276, z: -0.10502744} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 34.508003, y: 0, z: 16.130001} ---- !u!1 &1741489216 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1741489217} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1741489217 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741489216} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 170 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1745693210 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1745693211} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1745693211 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1745693210} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 157 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1746699716 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1746699717} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1746699717 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1746699716} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 178 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1753755036 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1753755037} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1753755037 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1753755036} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 147 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1767173162 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1767173163} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1767173163 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1767173162} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1773252625 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1773252626} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1773252626 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773252625} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 194 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1774323500 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1774323501} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1774323501 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1774323500} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 46 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1786048559 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1786048560} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1786048560 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1786048559} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 223 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1800355535 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1800355536} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1800355536 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1800355535} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 32 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1802530965 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1802530966} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1802530966 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1802530965} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 275 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1804294929 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1804294930} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1804294930 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1804294929} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 76 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1831882283 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1831882284} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1831882284 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1831882283} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 132 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1836508183 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1836508184} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1836508184 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1836508183} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 182 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1846849513 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1846849514} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1846849514 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1846849513} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 252 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1849486934 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1849486935} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1849486935 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1849486934} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 291 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1853285290 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1853285291} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1853285291 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1853285290} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 185 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1863850746 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1863850747} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1863850747 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1863850746} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 181 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1865600785 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1865600786} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1865600786 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1865600785} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 269 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1871223699 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1871223700} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1871223700 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1871223699} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 143 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1873409128 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1873409129} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1873409129 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1873409128} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 258 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1881844145 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1881844146} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1881844146 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1881844145} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 236 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1890395257 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1890395258} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1890395258 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1890395257} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 262 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1892781990 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1892781991} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1892781991 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1892781990} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 27 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1909720612 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1909720613} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1909720613 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1909720612} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 119 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1910985203 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 602664905} - m_Modifications: - - target: {fileID: 1637081267702634, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_Name - value: Sword2 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_RootOrder - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.x - value: -0.5905 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.y - value: 1.0779 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalPosition.z - value: 2.8769 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ec763216341646342a341b040becd945, type: 3} ---- !u!4 &1910985204 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4776878667147238, guid: ec763216341646342a341b040becd945, - type: 3} - m_PrefabInstance: {fileID: 1910985203} - m_PrefabAsset: {fileID: 0} ---- !u!1 &1912384575 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1912384576} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1912384576 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1912384575} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 82 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1930213601 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1930213602} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1930213602 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1930213601} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 161 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1937047235 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1937047236} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1937047236 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1937047235} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 114 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1937386654 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1937386655} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1937386655 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1937386654} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 53 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1939996666 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1939996667} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1939996667 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1939996666} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 288 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1947935561 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1947935562} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1947935562 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1947935561} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 103 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1969562347 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1969562348} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1969562348 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1969562347} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 88 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1975106237 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1975106238} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1975106238 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1975106237} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 72 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1978138578 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1978138579} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1978138579 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1978138578} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 83 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1979807149 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1979807150} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1979807150 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1979807149} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 115 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1997562004 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1997562005} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1997562005 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1997562004} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 294 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2000262710 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2000262711} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2000262711 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2000262710} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 285 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2005094257 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2005094258} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2005094258 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2005094257} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 162 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2008357329 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2008357330} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2008357330 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2008357329} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 225 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2009777496 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2009777497} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2009777497 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2009777496} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 222 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2017630727 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2017630728} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2017630728 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2017630727} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 106 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2040355730 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2040355731} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2040355731 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2040355730} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 200 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2045060697 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2045060698} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2045060698 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2045060697} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 203 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2051575333 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2051575334} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2051575334 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2051575333} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 283 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2055628812 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2055628813} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2055628813 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2055628812} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 251 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2059121618 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2059121619} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2059121619 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2059121618} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 128 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2060442131 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2060442132} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2060442132 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2060442131} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 86 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &2072285038 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 621814091} - m_Modifications: - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalPosition.x - value: 4.3097 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.06 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalPosition.z - value: 0.64457 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494427, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_Name - value: FrontDoor - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494429, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_ConnectedAnchor.x - value: 4.3097 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494429, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_ConnectedAnchor.y - value: 0.06 - objectReference: {fileID: 0} - - target: {fileID: 7892756138826494429, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - propertyPath: m_ConnectedAnchor.z - value: 0.64457 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 00e7dbb4900846445a1320cf4724948f, type: 3} ---- !u!4 &2072285039 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7892756138826494426, guid: 00e7dbb4900846445a1320cf4724948f, - type: 3} - m_PrefabInstance: {fileID: 2072285038} - m_PrefabAsset: {fileID: 0} ---- !u!1 &2079786716 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2079786717} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2079786717 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2079786716} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 232 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2102992098 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2102992099} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2102992099 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2102992098} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 141 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2112076011 -GameObject: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2112076012} - m_Layer: 0 - m_Name: New Game Object - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2112076012 -Transform: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2112076011} - 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_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 250 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &908083212462696405 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 621814091} - m_Modifications: - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalPosition.x - value: -4.1534 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalPosition.z - value: 1.76704 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4444063643693094224, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - propertyPath: m_Name - value: Dorpsstraat-20-1950 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: c28e2e07dbfa4fd41874f4c7b756005f, type: 3} ---- !u!4 &908083212462696406 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4444063643692796272, guid: c28e2e07dbfa4fd41874f4c7b756005f, - type: 3} - m_PrefabInstance: {fileID: 908083212462696405} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &8146172464776467084 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1003187176396958, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_Name - value: Humanoid - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_RootOrder - value: 300 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4968286101144654, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114262253121122728, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: leftInputEvents.Array.data[0].events.Array.data[1].functionCall.methodName - value: Passer.Humanoid.HumanoidControl/MoveForward - objectReference: {fileID: 0} - - target: {fileID: 114262253121122728, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: leftInputEvents.Array.data[1].events.Array.data[1].functionCall.methodName - value: Passer.Humanoid.HumanoidControl/MoveSideward - objectReference: {fileID: 0} - - target: {fileID: 114262253121122728, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: leftInputEvents.Array.data[0].events.Array.data[1].functionCall.parameters.Array.data[0].type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 114262253121122728, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: leftInputEvents.Array.data[1].events.Array.data[1].functionCall.parameters.Array.data[0].type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4073333712384793646, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.000067987516 - objectReference: {fileID: 0} - - target: {fileID: 4073333712384793646, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0014236951 - objectReference: {fileID: 0} - - target: {fileID: 5623307778277919503, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.026366247 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714689, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.01220917 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714689, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.026398597 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714689, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0061617093 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714691, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.012619705 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714691, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.026394976 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714691, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.0061722505 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714693, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9935403 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714693, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.029144853 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714693, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.0524617 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714693, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.096313044 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714695, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9930492 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714695, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.029418083 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714695, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.051698927 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714695, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.101563014 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714703, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.071681604 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937714703, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.25457054 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715073, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.79303527 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715073, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.50280887 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715073, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.28734133 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715075, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.31390628 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715075, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.2530616 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715075, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.017513085 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715077, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.91494036 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715077, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.3139064 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715077, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.25306168 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715077, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.017513096 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715083, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.4709235 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715083, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.66614544 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715083, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.44502097 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715083, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.36937475 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715085, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.47092366 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715085, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.6661453 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715085, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.44502097 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715085, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.36937472 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715089, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9999482 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715089, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.0031948965 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715089, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.0025556593 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715089, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.009327846 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715091, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9988444 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715091, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.033016365 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715091, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.034922764 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715091, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0006162258 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715093, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9988444 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715093, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.033016417 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715093, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.03492283 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715093, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.00061637687 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715095, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.13081086 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715095, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.16702989 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715095, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.18350157 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715097, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.95985246 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715097, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.13081129 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715097, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.16702971 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715097, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.18350168 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715099, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.97119826 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715099, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.22828923 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715099, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.0597425 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715099, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.032998316 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715101, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9711983 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715101, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.22828913 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715101, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.05974233 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715101, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.03299839 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715103, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.18897936 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715103, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.50280917 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715103, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.2873413 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715105, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.064101204 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715105, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.06521972 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715105, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.093621425 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715107, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9998435 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715107, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.009012128 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715107, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.010956736 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715107, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.010570688 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715109, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.0090119345 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715109, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.010956863 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715109, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.010570814 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715111, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9905023 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715111, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09962669 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715111, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.092343986 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715111, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.021266412 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715113, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.098495126 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715113, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09278555 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715113, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.020299215 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715115, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09883944 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715115, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.10677908 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715117, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9848853 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715117, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.09883978 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715117, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.093968034 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715117, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.10677895 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715119, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.003195123 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715119, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.0025556588 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715119, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0093279295 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715121, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.1970183 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715121, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.18125585 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715121, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.003238978 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715123, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.98202664 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715123, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14018664 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715123, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.123798355 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715123, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.025405558 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715125, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9820266 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715125, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14018676 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715125, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.123798236 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715125, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.025405407 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715127, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.023076976 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715127, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.021606864 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715127, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.002552488 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715129, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.023077065 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715129, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0025521463 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715131, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99948454 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715131, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.020781383 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715131, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.020584315 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715131, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.013231163 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715133, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.02078124 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715133, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.020584188 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715133, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.013230865 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715135, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.064100966 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715135, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.06521975 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715135, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.093621425 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715137, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: -3.2014216e-10 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715137, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.0000000996515 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715137, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.10486604 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715137, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.0025335108 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.00000026822096 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.26173556 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000022351745 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9977571 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.050253626 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.018209307 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715139, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.040296752 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.00000003725291 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.26173538 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.0000002430752 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99774146 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.050284322 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.018210385 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715141, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.040643316 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: -0.000000009895302 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000004470349 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.83066565 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.54636705 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09530484 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715143, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.048935972 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715145, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.000000013504179 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715145, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.38909957 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715145, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: -0.00000017508869 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715145, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.83066577 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715145, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09530475 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715147, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.08539838 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715147, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.09403607 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715147, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.1065514 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715149, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.98615974 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715149, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.085398324 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715149, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.09403612 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715149, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.10655177 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715151, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9634935 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715151, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.19701837 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715151, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.18125594 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715151, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0032390296 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715157, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.0703856 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715157, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.034804262 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715157, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.004002944 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715159, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.07038518 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715159, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.034804225 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715159, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0040033567 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715161, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9844225 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715161, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.018416805 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715161, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.0253934 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715161, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.17299843 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715163, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.9856091 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715163, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.017693836 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715163, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.02544407 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715163, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.16617541 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: 3.8857806e-16 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.23304659 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.z - value: 0.000000104308164 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.99913603 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.041506365 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715183, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -0.0016287729 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715185, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: -0.37093556 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715185, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.071681574 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715185, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.89020365 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715185, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.25457063 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715189, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -1.9979109e-10 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715189, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 6.551377e-10 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715191, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.14465636 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715191, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: -4.7479887e-10 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715191, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: 0.0000000040820285 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.x - value: 0.0000000041588475 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalPosition.y - value: 0.074555755 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.7059108 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: 0.7083007 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.y - value: 7.535176e-10 - objectReference: {fileID: 0} - - target: {fileID: 7769776041937715193, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -7.509705e-10 - objectReference: {fileID: 0} - - target: {fileID: 8467765973942035875, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.x - value: -0.0008007029 - objectReference: {fileID: 0} - - target: {fileID: 8467765973942035875, guid: 7f1913940d91094408ea28e4de119b2b, - type: 3} - propertyPath: m_LocalRotation.z - value: -0.055791438 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 7f1913940d91094408ea28e4de119b2b, type: 3} diff --git a/Samples~/GroceryStore/Scenes/Grocery Store.unity.meta b/Samples~/GroceryStore/Scenes/Grocery Store.unity.meta deleted file mode 100644 index a36cc64..0000000 --- a/Samples~/GroceryStore/Scenes/Grocery Store.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 79bb28729343f3944949b7df110432ae -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: