mirror of
https://github.com/hanetzer/sdraw_mods_cvr.git
synced 2025-09-03 18:39:23 +00:00
Update to game build 2024r174ex3
Bones oriented fingers tracking
This commit is contained in:
parent
60259c94c4
commit
b547512b69
12 changed files with 1677 additions and 1395 deletions
|
@ -84,26 +84,56 @@ namespace ml_pmc
|
|||
ref readonly float[] l_curls = ref m_puppetParser.GetFingerCurls();
|
||||
ref readonly float[] l_spreads = ref m_puppetParser.GetFingerSpreads();
|
||||
|
||||
CVRInputManager.Instance.fingerCurlLeftThumb = l_curls[l_mirror ? 5 : 0];
|
||||
CVRInputManager.Instance.fingerCurlLeftIndex = l_curls[l_mirror ? 6 : 1];
|
||||
CVRInputManager.Instance.fingerCurlLeftMiddle = l_curls[l_mirror ? 7 : 2];
|
||||
CVRInputManager.Instance.fingerCurlLeftRing = l_curls[l_mirror ? 8 : 3];
|
||||
CVRInputManager.Instance.fingerCurlLeftPinky = l_curls[l_mirror ? 9 : 4];
|
||||
CVRInputManager.Instance.fingerCurlRightThumb = l_curls[l_mirror ? 0 : 5];
|
||||
CVRInputManager.Instance.fingerCurlRightIndex = l_curls[l_mirror ? 1 : 6];
|
||||
CVRInputManager.Instance.fingerCurlRightMiddle = l_curls[l_mirror ? 2 : 7];
|
||||
CVRInputManager.Instance.fingerCurlRightRing = l_curls[l_mirror ? 3 : 8];
|
||||
CVRInputManager.Instance.fingerCurlRightPinky = l_curls[l_mirror ? 4 : 9];
|
||||
|
||||
// Left hand
|
||||
CVRInputManager.Instance.finger1StretchedLeftThumb = l_curls[l_mirror ? 15 : 0];
|
||||
CVRInputManager.Instance.finger2StretchedLeftThumb = l_curls[l_mirror ? 16 : 1];
|
||||
CVRInputManager.Instance.finger3StretchedLeftThumb = l_curls[l_mirror ? 17 : 2];
|
||||
CVRInputManager.Instance.fingerSpreadLeftThumb = l_spreads[l_mirror ? 5 : 0];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftIndex = l_curls[l_mirror ? 18 : 3];
|
||||
CVRInputManager.Instance.finger2StretchedLeftIndex = l_curls[l_mirror ? 19 : 4];
|
||||
CVRInputManager.Instance.finger3StretchedLeftIndex = l_curls[l_mirror ? 20 : 5];
|
||||
CVRInputManager.Instance.fingerSpreadLeftIndex = l_spreads[l_mirror ? 6 : 1];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftMiddle = l_curls[l_mirror ? 21 : 6];
|
||||
CVRInputManager.Instance.finger2StretchedLeftMiddle = l_curls[l_mirror ? 22 : 7];
|
||||
CVRInputManager.Instance.finger3StretchedLeftMiddle = l_curls[l_mirror ? 23 : 8];
|
||||
CVRInputManager.Instance.fingerSpreadLeftMiddle = l_spreads[l_mirror ? 7 : 2];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftRing = l_curls[l_mirror ? 24 : 9];
|
||||
CVRInputManager.Instance.finger2StretchedLeftRing = l_curls[l_mirror ? 25 : 10];
|
||||
CVRInputManager.Instance.finger3StretchedLeftRing = l_curls[l_mirror ? 26 : 11];
|
||||
CVRInputManager.Instance.fingerSpreadLeftRing = l_spreads[l_mirror ? 8 : 3];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftPinky = l_curls[l_mirror ? 27 : 12];
|
||||
CVRInputManager.Instance.finger2StretchedLeftPinky = l_curls[l_mirror ? 28 : 13];
|
||||
CVRInputManager.Instance.finger3StretchedLeftPinky = l_curls[l_mirror ? 29 : 14];
|
||||
CVRInputManager.Instance.fingerSpreadLeftPinky = l_spreads[l_mirror ? 9 : 4];
|
||||
|
||||
// Right hand
|
||||
CVRInputManager.Instance.finger1StretchedRightThumb = l_curls[l_mirror ? 0 : 15];
|
||||
CVRInputManager.Instance.finger2StretchedRightThumb = l_curls[l_mirror ? 1 : 16];
|
||||
CVRInputManager.Instance.finger3StretchedRightThumb = l_curls[l_mirror ? 2 : 17];
|
||||
CVRInputManager.Instance.fingerSpreadRightThumb = l_spreads[l_mirror ? 0 : 5];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightIndex = l_curls[l_mirror ? 3 : 18];
|
||||
CVRInputManager.Instance.finger2StretchedRightIndex = l_curls[l_mirror ? 4 : 19];
|
||||
CVRInputManager.Instance.finger3StretchedRightIndex = l_curls[l_mirror ? 5 : 20];
|
||||
CVRInputManager.Instance.fingerSpreadRightIndex = l_spreads[l_mirror ? 1 : 6];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightMiddle = l_curls[l_mirror ? 6 : 21];
|
||||
CVRInputManager.Instance.finger2StretchedRightMiddle = l_curls[l_mirror ? 7 : 22];
|
||||
CVRInputManager.Instance.finger3StretchedRightMiddle = l_curls[l_mirror ? 8 : 23];
|
||||
CVRInputManager.Instance.fingerSpreadRightMiddle = l_spreads[l_mirror ? 2 : 7];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightRing = l_curls[l_mirror ? 9 : 24];
|
||||
CVRInputManager.Instance.finger2StretchedRightRing = l_curls[l_mirror ? 10 : 25];
|
||||
CVRInputManager.Instance.finger3StretchedRightRing = l_curls[l_mirror ? 11 : 26];
|
||||
CVRInputManager.Instance.fingerSpreadRightRing = l_spreads[l_mirror ? 3 : 8];
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightPinky = l_curls[l_mirror ? 12 : 27];
|
||||
CVRInputManager.Instance.finger2StretchedRightPinky = l_curls[l_mirror ? 13 : 28];
|
||||
CVRInputManager.Instance.finger3StretchedRightPinky = l_curls[l_mirror ? 14 : 29];
|
||||
CVRInputManager.Instance.fingerSpreadRightPinky = l_spreads[l_mirror ? 4 : 9];
|
||||
}
|
||||
else
|
||||
|
@ -341,27 +371,69 @@ namespace ml_pmc
|
|||
|
||||
if(!CVRInputManager.Instance.individualFingerTracking)
|
||||
{
|
||||
CVRInputManager.Instance.fingerCurlLeftThumb = 0f;
|
||||
CVRInputManager.Instance.fingerCurlLeftIndex = 0f;
|
||||
CVRInputManager.Instance.fingerCurlLeftMiddle = 0f;
|
||||
CVRInputManager.Instance.fingerCurlLeftRing = 0f;
|
||||
CVRInputManager.Instance.fingerCurlLeftPinky = 0f;
|
||||
CVRInputManager.Instance.fingerCurlRightThumb = 0f;
|
||||
CVRInputManager.Instance.fingerCurlRightIndex = 0f;
|
||||
CVRInputManager.Instance.fingerCurlRightMiddle = 0f;
|
||||
CVRInputManager.Instance.fingerCurlRightRing = 0f;
|
||||
CVRInputManager.Instance.fingerCurlRightPinky = 0f;
|
||||
// Left hand
|
||||
CVRInputManager.Instance.finger1StretchedLeftThumb = -0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedLeftThumb = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedLeftThumb = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftThumb = 0f;
|
||||
|
||||
CVRInputManager.Instance.fingerSpreadLeftThumb = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftIndex = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftMiddle = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftRing = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftPinky = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadRightThumb = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadRightIndex = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadRightMiddle = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadRightRing = 0.5f;
|
||||
CVRInputManager.Instance.fingerSpreadRightPinky = 0.5f;
|
||||
CVRInputManager.Instance.finger1StretchedLeftIndex = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedLeftIndex = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedLeftIndex = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftIndex = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftMiddle = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedLeftMiddle = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedLeftMiddle = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftMiddle = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftRing = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedLeftRing = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedLeftRing = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftRing = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedLeftPinky = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedLeftPinky = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedLeftPinky = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadLeftPinky = 0f;
|
||||
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedLeftThumb = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedLeftIndex = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedLeftMiddle = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedLeftRing = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedLeftPinky = 0f;
|
||||
|
||||
// Right hand
|
||||
CVRInputManager.Instance.finger1StretchedRightThumb = -0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedRightThumb = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedRightThumb = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadRightThumb = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightIndex = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedRightIndex = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedRightIndex = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadRightIndex = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightMiddle = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedRightMiddle = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedRightMiddle = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadRightMiddle = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightRing = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedRightRing = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedRightRing = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadRightRing = 0f;
|
||||
|
||||
CVRInputManager.Instance.finger1StretchedRightPinky = 0.5f;
|
||||
CVRInputManager.Instance.finger2StretchedRightPinky = 0.7f;
|
||||
CVRInputManager.Instance.finger3StretchedRightPinky = 0.7f;
|
||||
CVRInputManager.Instance.fingerSpreadRightPinky = 0f;
|
||||
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedRightThumb = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedRightIndex = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedRightMiddle = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedRightRing = 0f;
|
||||
CVRInputManager.Instance.fingerFullCurlNormalizedRightPinky = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,108 +1,136 @@
|
|||
using ABI_RC.Core.Player;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ml_pmc
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
class PuppetParser : MonoBehaviour
|
||||
{
|
||||
internal PuppetMaster m_puppetMaster = null;
|
||||
Animator m_animator = null;
|
||||
AnimatorCullingMode m_cullMode;
|
||||
|
||||
HumanPoseHandler m_poseHandler = null;
|
||||
HumanPose m_pose;
|
||||
|
||||
Matrix4x4 m_matrix = Matrix4x4.identity;
|
||||
Matrix4x4 m_offset = Matrix4x4.identity;
|
||||
|
||||
bool m_sitting = false;
|
||||
float m_leftGesture = 0f;
|
||||
float m_rightGesture = 0f;
|
||||
bool m_fingerTracking = false;
|
||||
readonly float[] m_fingerCurls = null;
|
||||
readonly float[] m_fingerSpreads = null;
|
||||
|
||||
internal PuppetParser()
|
||||
{
|
||||
m_fingerCurls = new float[10];
|
||||
m_fingerSpreads = new float[10];
|
||||
}
|
||||
|
||||
// Unity events
|
||||
void Start()
|
||||
{
|
||||
m_animator = this.GetComponent<Animator>();
|
||||
m_cullMode = m_animator.cullingMode;
|
||||
m_animator.cullingMode = AnimatorCullingMode.AlwaysAnimate;
|
||||
m_poseHandler = new HumanPoseHandler(m_animator.avatar, m_animator.transform);
|
||||
m_poseHandler.GetHumanPose(ref m_pose);
|
||||
m_matrix = this.transform.GetMatrix();
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
m_puppetMaster = null;
|
||||
if(m_animator != null)
|
||||
m_animator.cullingMode = m_cullMode;
|
||||
m_animator = null;
|
||||
|
||||
m_poseHandler?.Dispose();
|
||||
m_poseHandler = null;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if(m_puppetMaster != null)
|
||||
{
|
||||
m_sitting = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorSitting;
|
||||
m_leftGesture = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureLeft;
|
||||
m_rightGesture = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureRight;
|
||||
m_fingerTracking = m_puppetMaster.PlayerAvatarMovementDataInput.IndexUseIndividualFingers;
|
||||
if(m_fingerTracking)
|
||||
{
|
||||
m_fingerCurls[0] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumbCurl;
|
||||
m_fingerCurls[1] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndexCurl;
|
||||
m_fingerCurls[2] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddleCurl;
|
||||
m_fingerCurls[3] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRingCurl;
|
||||
m_fingerCurls[4] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinkyCurl;
|
||||
m_fingerCurls[5] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumbCurl;
|
||||
m_fingerCurls[6] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndexCurl;
|
||||
m_fingerCurls[7] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddleCurl;
|
||||
m_fingerCurls[8] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRingCurl;
|
||||
m_fingerCurls[9] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinkyCurl;
|
||||
|
||||
m_fingerSpreads[0] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumbSpread;
|
||||
m_fingerSpreads[1] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndexSpread;
|
||||
m_fingerSpreads[2] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddleSpread;
|
||||
m_fingerSpreads[3] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRingSpread;
|
||||
m_fingerSpreads[4] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinkySpread;
|
||||
m_fingerSpreads[5] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumbSpread;
|
||||
m_fingerSpreads[6] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndexSpread;
|
||||
m_fingerSpreads[7] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddleSpread;
|
||||
m_fingerSpreads[8] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRingSpread;
|
||||
m_fingerSpreads[9] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinkySpread;
|
||||
}
|
||||
|
||||
Matrix4x4 l_current = this.transform.GetMatrix();
|
||||
m_offset = m_matrix.inverse * l_current;
|
||||
m_matrix = l_current;
|
||||
}
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if((m_animator != null) && (m_poseHandler != null))
|
||||
m_poseHandler.GetHumanPose(ref m_pose);
|
||||
}
|
||||
|
||||
public ref HumanPose GetPose() => ref m_pose;
|
||||
public ref Matrix4x4 GetLastOffset() => ref m_offset;
|
||||
public bool IsSitting() => m_sitting;
|
||||
public float GetLeftGesture() => m_leftGesture;
|
||||
public float GetRightGesture() => m_rightGesture;
|
||||
public bool HasFingerTracking() => m_fingerTracking;
|
||||
public ref readonly float[] GetFingerCurls() => ref m_fingerCurls;
|
||||
public ref readonly float[] GetFingerSpreads() => ref m_fingerSpreads;
|
||||
}
|
||||
}
|
||||
using ABI_RC.Core.Player;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ml_pmc
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
class PuppetParser : MonoBehaviour
|
||||
{
|
||||
internal PuppetMaster m_puppetMaster = null;
|
||||
Animator m_animator = null;
|
||||
AnimatorCullingMode m_cullMode;
|
||||
|
||||
HumanPoseHandler m_poseHandler = null;
|
||||
HumanPose m_pose;
|
||||
|
||||
Matrix4x4 m_matrix = Matrix4x4.identity;
|
||||
Matrix4x4 m_offset = Matrix4x4.identity;
|
||||
|
||||
bool m_sitting = false;
|
||||
float m_leftGesture = 0f;
|
||||
float m_rightGesture = 0f;
|
||||
bool m_fingerTracking = false;
|
||||
readonly float[] m_fingerCurls = null;
|
||||
readonly float[] m_fingerSpreads = null;
|
||||
|
||||
internal PuppetParser()
|
||||
{
|
||||
m_fingerCurls = new float[30];
|
||||
m_fingerSpreads = new float[10];
|
||||
}
|
||||
|
||||
// Unity events
|
||||
void Start()
|
||||
{
|
||||
m_animator = this.GetComponent<Animator>();
|
||||
m_cullMode = m_animator.cullingMode;
|
||||
m_animator.cullingMode = AnimatorCullingMode.AlwaysAnimate;
|
||||
m_poseHandler = new HumanPoseHandler(m_animator.avatar, m_animator.transform);
|
||||
m_poseHandler.GetHumanPose(ref m_pose);
|
||||
m_matrix = this.transform.GetMatrix();
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
m_puppetMaster = null;
|
||||
if(m_animator != null)
|
||||
m_animator.cullingMode = m_cullMode;
|
||||
m_animator = null;
|
||||
|
||||
m_poseHandler?.Dispose();
|
||||
m_poseHandler = null;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if(m_puppetMaster != null)
|
||||
{
|
||||
m_sitting = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorSitting;
|
||||
m_leftGesture = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureLeft;
|
||||
m_rightGesture = m_puppetMaster.PlayerAvatarMovementDataInput.AnimatorGestureRight;
|
||||
m_fingerTracking = m_puppetMaster.PlayerAvatarMovementDataInput.UseIndividualFingers;
|
||||
if(m_fingerTracking)
|
||||
{
|
||||
m_fingerCurls[0] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumb1Stretched;
|
||||
m_fingerCurls[1] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumb2Stretched;
|
||||
m_fingerCurls[2] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumb3Stretched;
|
||||
m_fingerSpreads[0] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftThumbSpread;
|
||||
|
||||
m_fingerCurls[3] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndex1Stretched;
|
||||
m_fingerCurls[4] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndex2Stretched;
|
||||
m_fingerCurls[5] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndex3Stretched;
|
||||
m_fingerSpreads[1] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftIndexSpread;
|
||||
|
||||
m_fingerCurls[6] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddle1Stretched;
|
||||
m_fingerCurls[7] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddle2Stretched;
|
||||
m_fingerCurls[8] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddle3Stretched;
|
||||
m_fingerSpreads[2] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftMiddleSpread;
|
||||
|
||||
m_fingerCurls[9] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRing1Stretched;
|
||||
m_fingerCurls[10] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRing2Stretched;
|
||||
m_fingerCurls[11] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRing3Stretched;
|
||||
m_fingerSpreads[3] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftRingSpread;
|
||||
|
||||
m_fingerCurls[12] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinky1Stretched;
|
||||
m_fingerCurls[13] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinky2Stretched;
|
||||
m_fingerCurls[14] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinky3Stretched;
|
||||
m_fingerSpreads[4] = m_puppetMaster.PlayerAvatarMovementDataInput.LeftPinkySpread;
|
||||
|
||||
m_fingerCurls[15] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumb1Stretched;
|
||||
m_fingerCurls[16] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumb2Stretched;
|
||||
m_fingerCurls[17] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumb3Stretched;
|
||||
m_fingerSpreads[5] = m_puppetMaster.PlayerAvatarMovementDataInput.RightThumbSpread;
|
||||
|
||||
m_fingerCurls[18] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndex1Stretched;
|
||||
m_fingerCurls[19] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndex2Stretched;
|
||||
m_fingerCurls[20] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndex3Stretched;
|
||||
m_fingerSpreads[6] = m_puppetMaster.PlayerAvatarMovementDataInput.RightIndexSpread;
|
||||
|
||||
m_fingerCurls[21] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddle1Stretched;
|
||||
m_fingerCurls[22] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddle2Stretched;
|
||||
m_fingerCurls[23] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddle3Stretched;
|
||||
m_fingerSpreads[7] = m_puppetMaster.PlayerAvatarMovementDataInput.RightMiddleSpread;
|
||||
|
||||
m_fingerCurls[24] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRing1Stretched;
|
||||
m_fingerCurls[25] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRing2Stretched;
|
||||
m_fingerCurls[26] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRing3Stretched;
|
||||
m_fingerSpreads[8] = m_puppetMaster.PlayerAvatarMovementDataInput.RightRingSpread;
|
||||
|
||||
m_fingerCurls[27] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinky1Stretched;
|
||||
m_fingerCurls[28] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinky2Stretched;
|
||||
m_fingerCurls[29] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinky3Stretched;
|
||||
m_fingerSpreads[9] = m_puppetMaster.PlayerAvatarMovementDataInput.RightPinkySpread;
|
||||
}
|
||||
|
||||
Matrix4x4 l_current = this.transform.GetMatrix();
|
||||
m_offset = m_matrix.inverse * l_current;
|
||||
m_matrix = l_current;
|
||||
}
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if((m_animator != null) && (m_poseHandler != null))
|
||||
m_poseHandler.GetHumanPose(ref m_pose);
|
||||
}
|
||||
|
||||
public ref HumanPose GetPose() => ref m_pose;
|
||||
public ref Matrix4x4 GetLastOffset() => ref m_offset;
|
||||
public bool IsSitting() => m_sitting;
|
||||
public float GetLeftGesture() => m_leftGesture;
|
||||
public float GetRightGesture() => m_rightGesture;
|
||||
public bool HasFingerTracking() => m_fingerTracking;
|
||||
public ref readonly float[] GetFingerCurls() => ref m_fingerCurls;
|
||||
public ref readonly float[] GetFingerSpreads() => ref m_fingerSpreads;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue