Skip to content

Commit

Permalink
potential fix for eye tracking
Browse files Browse the repository at this point in the history
  • Loading branch information
dooly123 committed Feb 22, 2025
1 parent ad4b81d commit 2f0a359
Show file tree
Hide file tree
Showing 7 changed files with 418 additions and 1,227 deletions.
317 changes: 317 additions & 0 deletions Basis/Assets/AddressableAssetsData/link.xml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions Basis/Assets/AddressableAssetsData/link.xml.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,25 @@ MonoBehaviour:
- rid: 2858994164428701698
- rid: 2858994164428701699
- rid: 2858994164428701700
- rid: 6147443510823354487
- rid: 6147443694684864612
- rid: 2858994164428701702
- rid: 2858994164428701703
- rid: 6147443510823354488
- rid: 6147443510823354489
- rid: 6147443694684864613
- rid: 6147443694684864614
- rid: 2858994164428701706
- rid: 6147443510823354490
- rid: 6147443694684864615
- rid: 2858994164428701708
- rid: 6147443362521677920
- rid: 6147443510823354491
- rid: 6147443510823354492
- rid: 6282195191323426912
- rid: 6147443510823354493
- rid: 6147443510823354494
- rid: 6282195191323426915
- rid: 6147443694684864616
- rid: 6147443694684864617
- rid: 6147443694684864618
- rid: 6147443694684864619
- rid: 6147443694684864620
- rid: 6147443694684864621
- rid: 2858994164428701716
- rid: 2858994164428701717
- rid: 2858994164428701718
- rid: 6147443510823354495
- rid: 6147443694684864622
m_RuntimeSettings:
m_List:
- rid: 2858994164428701698
Expand Down Expand Up @@ -171,7 +171,7 @@ MonoBehaviour:
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
- rid: 6147443510823354487
- rid: 6147443694684864612
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
Expand All @@ -186,14 +186,14 @@ MonoBehaviour:
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
- rid: 6147443510823354488
- rid: 6147443694684864613
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_StripUnusedPostProcessingVariants: 1
m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1
- rid: 6147443510823354489
- rid: 6147443694684864614
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
Expand All @@ -202,7 +202,7 @@ MonoBehaviour:
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
- rid: 6147443510823354490
- rid: 6147443694684864615
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
Expand All @@ -214,13 +214,13 @@ MonoBehaviour:
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
- rid: 6147443510823354491
- rid: 6147443694684864616
type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3}
m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3}
m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3}
- rid: 6147443510823354492
- rid: 6147443694684864617
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
Expand All @@ -233,7 +233,12 @@ MonoBehaviour:
skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
- rid: 6147443510823354493
- rid: 6147443694684864618
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_ProbeVolumeDisableStreamingAssets: 1
- rid: 6147443694684864619
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
Expand All @@ -243,26 +248,21 @@ MonoBehaviour:
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
- rid: 6147443510823354494
- rid: 6147443694684864620
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_IncludeReferencedInScenes: 0
m_IncludeAssetsByLabel: 0
m_LabelToInclude:
- rid: 6147443510823354495
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}
- rid: 6282195191323426912
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_ProbeVolumeDisableStreamingAssets: 1
- rid: 6282195191323426915
- rid: 6147443694684864621
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
- rid: 6147443694684864622
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Basis.Scripts.BasisSdk;
Expand Down Expand Up @@ -332,4 +332,4 @@ private class ComputedActuatorTarget
public int[] BlendshapeIndices;
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Data;
using Basis.Scripts.BasisSdk;
using Basis.Scripts.BasisSdk.Players;
using Basis.Scripts.Eye_Follow;
Expand Down Expand Up @@ -30,8 +31,6 @@ public class EyeTrackingBoneActuation : MonoBehaviour, ICommsNetworkable

private bool _anyAddressUpdated;
private bool _isWearer;
private BasisLocalEyeFollowBase _eyeFollowDriverLateInit;

#region NetworkingFields
private int _guidIndex;
// Can be null due to:
Expand All @@ -40,7 +39,8 @@ public class EyeTrackingBoneActuation : MonoBehaviour, ICommsNetworkable
// Nullability is needed for local tests without initialization scene.
// - Becomes non-null after HVRAvatarComms.OnAvatarNetworkReady is successfully invoked
private FeatureInterpolator _featureInterpolator;

public BasisRemotePlayer _basisRemotePlayer;
public BasisLocalEyeFollowBase _eyeFollowDriverLateInit;
#endregion

private void Awake()
Expand All @@ -55,12 +55,11 @@ private void Awake()
avatar.OnAvatarNetworkReady -= OnAvatarNetworkReady;
avatar.OnAvatarNetworkReady += OnAvatarNetworkReady;
}

private void OnAvatarNetworkReady(bool IsOwner)
{
if (BasisNetworkManagement.AvatarToPlayer(avatar, out var player) && player is BasisRemotePlayer remote)
{
//here LD this is wrong _eyeFollowDriverLateInit = remote.RemoteAvatarDriver.BasisRemoteEyeFollowBase;
_basisRemotePlayer = remote;
}
}

Expand Down Expand Up @@ -137,7 +136,10 @@ private void LateUpdate()

private void ForceUpdate()
{
if (!_eyeFollowDriverLateInit) return;
if (_eyeFollowDriverLateInit == null && _basisRemotePlayer == null)
{
return;
}
if (_isWearer && !_anyAddressUpdated) return;

// FIXME: Temp fix, we'll need to hook to NetworkReady instead.
Expand All @@ -148,24 +150,45 @@ private void ForceUpdate()
SetEyeRotation(_fEyeLeftX, _fEyeY, EyeSide.Left);
SetEyeRotation(_fEyeRightX, _fEyeY, EyeSide.Right);
}

private void SetEyeRotation(float x, float y, EyeSide side)
{
if (!_eyeFollowDriverLateInit) return;

var xDeg = Mathf.Asin(x) * Mathf.Rad2Deg * multiplyX;
var yDeg = Mathf.Asin(-y) * Mathf.Rad2Deg * multiplyY;
var euler = Quaternion.Euler(yDeg, xDeg, 0);
switch (side)
if (_eyeFollowDriverLateInit != null)
{
// FIXME: This wrongly assumes that eye bone transforms are oriented the same.
// This needs to be fixed later by using the work-in-progress normalized muscle system instead.
case EyeSide.Left: _eyeFollowDriverLateInit.leftEyeTransform.localRotation = math.mul(_eyeFollowDriverLateInit.leftEyeInitialRotation , euler);
break;
case EyeSide.Right: _eyeFollowDriverLateInit.rightEyeTransform.localRotation = math.mul(_eyeFollowDriverLateInit.rightEyeInitialRotation , euler);
break;
default:
throw new ArgumentOutOfRangeException(nameof(side), side, null);
var xDeg = Mathf.Asin(x) * Mathf.Rad2Deg * multiplyX;
var yDeg = Mathf.Asin(-y) * Mathf.Rad2Deg * multiplyY;
var euler = Quaternion.Euler(yDeg, xDeg, 0);
switch (side)
{
// FIXME: This wrongly assumes that eye bone transforms are oriented the same.
// This needs to be fixed later by using the work-in-progress normalized muscle system instead.
case EyeSide.Left:
_eyeFollowDriverLateInit.leftEyeTransform.localRotation = math.mul(_eyeFollowDriverLateInit.leftEyeInitialRotation, euler);
break;
case EyeSide.Right:
_eyeFollowDriverLateInit.rightEyeTransform.localRotation = math.mul(_eyeFollowDriverLateInit.rightEyeInitialRotation, euler);
break;
default:
throw new ArgumentOutOfRangeException(nameof(side), side, null);
}
}
else
{
if(_basisRemotePlayer != null)
{
switch (side)
{
case EyeSide.Left:
_basisRemotePlayer.NetworkReceiver.Eyes[0] = y;
_basisRemotePlayer.NetworkReceiver.Eyes[1] = x;
break;
case EyeSide.Right:
_basisRemotePlayer.NetworkReceiver.Eyes[2] = y;
_basisRemotePlayer.NetworkReceiver.Eyes[3] = x;
break;
default:
throw new ArgumentOutOfRangeException(nameof(side), side, null);
}
}
}
}

Expand Down
Loading

0 comments on commit 2f0a359

Please sign in to comment.