summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
committertylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
commiteb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch)
treeefd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra
downloadunityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip
move to self host
Diffstat (limited to '')
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra.meta8
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs8
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs.meta11
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs83
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs.meta11
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs41
-rw-r--r--VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs.meta3
7 files changed, 165 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra.meta b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra.meta
new file mode 100644
index 00000000..89e7b71a
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bb62ec31ea8d451aba8a723b5f51b222
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs
new file mode 100644
index 00000000..9ece2b70
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs
@@ -0,0 +1,8 @@
+namespace GestureManager.Scripts.Extra
+{
+ public enum GestureHand
+ {
+ Left,
+ Right
+ }
+} \ No newline at end of file
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs.meta b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs.meta
new file mode 100644
index 00000000..bef78a32
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/GestureHand.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a64c1dae578847e7ac5944f19a1089d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs
new file mode 100644
index 00000000..bb4aa59f
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs
@@ -0,0 +1,83 @@
+using System.Collections.Generic;
+using GmgAvatarDescriptor =
+#if VRC_SDK_VRCSDK2 || VRC_SDK_VRCSDK3
+ VRC.SDKBase.VRC_AvatarDescriptor;
+#else
+ UnityEngine.Component;
+#endif
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace GestureManager.Scripts.Extra
+{
+ public abstract class ModuleBase
+ {
+ private readonly GmgAvatarDescriptor _avatarDescriptor;
+
+ private List<string> _errorList = new List<string>();
+ private List<string> _warningList = new List<string>();
+
+ public readonly GameObject Avatar;
+ public readonly Animator AvatarAnimator;
+ public readonly GestureManager Manager;
+
+ protected int Right, Left;
+ protected bool GestureDrag;
+
+ protected ModuleBase(GestureManager manager, GmgAvatarDescriptor avatarDescriptor)
+ {
+ _avatarDescriptor = avatarDescriptor;
+
+ Manager = manager;
+ Avatar = avatarDescriptor.gameObject;
+ AvatarAnimator = Avatar.GetComponent<Animator>();
+ }
+
+ public abstract void Update();
+ public abstract void LateUpdate();
+ public abstract void InitForAvatar();
+ public abstract void Unlink();
+ public abstract void EditorHeader();
+ public abstract void EditorContent(object editor, VisualElement element);
+ protected abstract void OnNewLeft(int left);
+ protected abstract void OnNewRight(int right);
+ public abstract AnimationClip GetFinalGestureByIndex(int gestureIndex);
+ public abstract Animator OnCustomAnimationPlay(AnimationClip clip);
+ public abstract bool HasGestureBeenOverridden(int gesture);
+ public abstract void AddGestureToOverrideController(int gestureIndex, AnimationClip newAnimation);
+
+ public virtual bool IsInvalid() => !Avatar || !AvatarAnimator || !_avatarDescriptor;
+
+ protected virtual List<string> CheckWarnings() => new List<string>();
+
+ protected virtual List<string> CheckErrors()
+ {
+ var errors = new List<string>();
+ if (GestureManager.ControlledAvatars.ContainsKey(Avatar)) errors.Add("- The avatar is already controlled by another Gesture Manager!");
+ if (!Avatar) errors.Add("- The GameObject has been deleted!");
+ else if (!Avatar.activeInHierarchy) errors.Add("- The GameObject is disabled!");
+ if (!AvatarAnimator) errors.Add("- The model doesn't have any animator!");
+ if (!_avatarDescriptor) errors.Add("- The VRC_AvatarDescriptor has been deleted!");
+ return errors;
+ }
+
+ public bool IsValidDesc()
+ {
+ _errorList = CheckErrors();
+ _warningList = CheckWarnings();
+ return _errorList.Count == 0;
+ }
+
+ public void OnNewHand(GestureHand hand, int i)
+ {
+ if (hand == GestureHand.Left) OnNewLeft(i);
+ else OnNewRight(i);
+ }
+
+ public bool IsPerfectDesc() => IsValidDesc() && _warningList.Count == 0;
+
+ public IEnumerable<string> GetErrors() => _errorList;
+
+ public IEnumerable<string> GetWarnings() => _warningList;
+ }
+} \ No newline at end of file
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs.meta b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs.meta
new file mode 100644
index 00000000..c4f28840
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/ModuleBase.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aa66d7c17f2245a1b5b7a0f73b113582
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
new file mode 100644
index 00000000..58d59bb8
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace GestureManager.Scripts.Extra
+{
+ public class TransformData
+ {
+ private readonly Vector3 _position;
+ private readonly Quaternion _rotation;
+ private readonly Vector3 _localScale;
+
+ private TransformData(Vector3 p, Quaternion r, Vector3 s)
+ {
+ _position = p;
+ _rotation = r;
+ _localScale = s;
+ }
+
+ public TransformData(Transform t) : this(t.position, t.rotation, t.localScale)
+ {
+ }
+
+ public void AddTo(Transform t)
+ {
+ t.position += _position;
+ t.rotation = _rotation * t.rotation;
+ t.localScale += _localScale;
+ }
+
+ public TransformData Difference(Transform t) => new TransformData(t.position - _position, t.rotation * Quaternion.Inverse(_rotation), t.localScale - _localScale);
+ }
+
+ public static class Extensions
+ {
+ public static void ApplyTo(this Transform s, Transform t)
+ {
+ t.position = s.position;
+ t.rotation = s.rotation;
+ t.localScale = s.lossyScale;
+ }
+ }
+} \ No newline at end of file
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs.meta b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs.meta
new file mode 100644
index 00000000..64a62110
--- /dev/null
+++ b/VRCSDK3AvatarsQuest/Assets/Resources/GestureManager/Scripts/Extra/TransformData.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 290bf9bf376c43a38989c6eacea15bcd
+timeCreated: 1653852193 \ No newline at end of file