diff --git a/Basis/Packages/com.basis.framework/Avatar/BasisAvatarIKStageCalibration.cs b/Basis/Packages/com.basis.framework/Avatar/BasisAvatarIKStageCalibration.cs
index 8d8e4fbc9..978a40e0e 100644
--- a/Basis/Packages/com.basis.framework/Avatar/BasisAvatarIKStageCalibration.cs
+++ b/Basis/Packages/com.basis.framework/Avatar/BasisAvatarIKStageCalibration.cs
@@ -124,8 +124,6 @@ public static void FullBodyCalibration()
BasisDebug.LogError("Missing Tracker for index " + Index + " with ID " + mapping);
}
}
- //do the roles after to stop the animator switch issue
- BasisLocalPlayer.Instance.LocalBoneDriver.CalculateHeading();
BasisLocalPlayer.Instance.AvatarDriver.ResetAvatarAnimator();
BasisLocalPlayer.Instance.AvatarDriver.CalibrateRoles();//not needed but still doing just incase
@@ -261,4 +259,4 @@ public static float MaxDistanceBeforeMax(BasisBoneTrackedRole role)
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Basis/Packages/com.basis.framework/Avatar/TransformBinders/BoneControl/BasisBoneControl.cs b/Basis/Packages/com.basis.framework/Avatar/TransformBinders/BoneControl/BasisBoneControl.cs
index 3de1fcbac..f4b9e11db 100644
--- a/Basis/Packages/com.basis.framework/Avatar/TransformBinders/BoneControl/BasisBoneControl.cs
+++ b/Basis/Packages/com.basis.framework/Avatar/TransformBinders/BoneControl/BasisBoneControl.cs
@@ -17,11 +17,11 @@ public class BasisBoneControl
public float LerpAmountNormal;
public float LerpAmountFastMovement;
public float AngleBeforeSpeedup;
- public bool HasRotationalTarget;
+ public bool HasRotationalTarget = false;
public bool HasLineDraw;
public int LineDrawIndex;
- public bool HasTarget;
+ public bool HasTarget = false;
public float3 Offset;
public float LerpAmount;
@@ -61,15 +61,15 @@ public void ComputeMovement(float DeltaTime)
{
if (IsHintRoleIgnoreRotation == false)
{ // Update the position of the secondary transform to maintain the initial offset
- OutGoingData.position = math.lerp(OutGoingData.position, IncomingData.position + math.mul(IncomingData.rotation, InverseOffsetFromBone.position), trackersmooth);
+ OutGoingData.position = Vector3.Lerp(OutGoingData.position, IncomingData.position + math.mul(IncomingData.rotation, InverseOffsetFromBone.position), trackersmooth);
// Update the rotation of the secondary transform to maintain the initial offset
- OutGoingData.rotation = math.slerp(OutGoingData.rotation, math.mul(IncomingData.rotation, InverseOffsetFromBone.rotation), trackersmooth);
+ OutGoingData.rotation = Quaternion.Slerp(OutGoingData.rotation, math.mul(IncomingData.rotation, InverseOffsetFromBone.rotation), trackersmooth);
}
else
{
OutGoingData.rotation = Quaternion.identity;
// Update the position of the secondary transform to maintain the initial offset
- OutGoingData.position = math.lerp(OutGoingData.position, IncomingData.position + math.mul(IncomingData.rotation, InverseOffsetFromBone.position), trackersmooth);
+ OutGoingData.position = Vector3.Lerp(OutGoingData.position, IncomingData.position + math.mul(IncomingData.rotation, InverseOffsetFromBone.position), trackersmooth);
}
}
else
diff --git a/Basis/Packages/com.basis.framework/Drivers/BaseBoneDriver.cs b/Basis/Packages/com.basis.framework/Drivers/BaseBoneDriver.cs
index 45a595a68..56351397f 100644
--- a/Basis/Packages/com.basis.framework/Drivers/BaseBoneDriver.cs
+++ b/Basis/Packages/com.basis.framework/Drivers/BaseBoneDriver.cs
@@ -23,10 +23,6 @@ public abstract class BaseBoneDriver : MonoBehaviour
public event SimulationHandler OnSimulate;
public event SimulationHandler OnPostSimulate;
public OrderedDelegate ReadyToRead = new OrderedDelegate();
-
- public Quaternion QatCalibrationHeading;
- public Vector3 CalibrationHeading;
- public float CalibrationHeadingY;
///
/// call this after updating the bone data
///
@@ -79,18 +75,6 @@ public void SimulateAndApplyWithoutLerp()
SimulateWithoutLerp();
ApplyMovement();
}
- public void CalculateHeading()
- {
- if (FindBone(out BasisBoneControl Head, BasisBoneTrackedRole.Head))
- {
- CalibrationHeadingY = Head.BoneTransform.localRotation.eulerAngles.y;
- CalibrationHeading = new Vector3(0, CalibrationHeadingY, 0);
- QatCalibrationHeading = Quaternion.Euler(CalibrationHeading);
- Debug.DrawLine(Head.BoneTransform.position, Head.BoneTransform.position + (QatCalibrationHeading * new Vector3(0, 0, 1)), Color.black, 5f);
- // Head.BoneModelTransform.position = Head.BoneTransform.position;
- // Head.BoneModelTransform.rotation = Head.BoneTransform.rotation;
- }
- }
public void RemoveAllListeners()
{
for (int Index = 0; Index < ControlsLength; Index++)
diff --git a/Basis/Packages/com.basis.framework/Drivers/BasisLocalAvatarDriver.cs b/Basis/Packages/com.basis.framework/Drivers/BasisLocalAvatarDriver.cs
index 090009f1c..e62ccf440 100644
--- a/Basis/Packages/com.basis.framework/Drivers/BasisLocalAvatarDriver.cs
+++ b/Basis/Packages/com.basis.framework/Drivers/BasisLocalAvatarDriver.cs
@@ -105,7 +105,6 @@ public void InitialLocalCalibration(BasisLocalPlayer Player)
Builder.enabled = false;
Calibration(Player.BasisAvatar);
BasisLocalPlayer.Instance.LocalBoneDriver.RemoveAllListeners();
- BasisLocalPlayer.Instance.LocalBoneDriver.CalculateHeading();
BasisLocalEyeFollowDriver = BasisHelpers.GetOrAddComponent(Player.BasisAvatar.gameObject);
BasisLocalEyeFollowDriver.Initalize(this,Player);
HeadScaledDown = Vector3.zero;
@@ -603,4 +602,4 @@ public GameObject CreateRig(string Role, bool Enabled, out Rig Rig, out RigLayer
return RigGameobject;
}
}
-}
\ No newline at end of file
+}
diff --git a/Basis/Packages/com.basis.framework/Drivers/BasisLocalCameraDriver.cs b/Basis/Packages/com.basis.framework/Drivers/BasisLocalCameraDriver.cs
index cc99de936..40f217228 100644
--- a/Basis/Packages/com.basis.framework/Drivers/BasisLocalCameraDriver.cs
+++ b/Basis/Packages/com.basis.framework/Drivers/BasisLocalCameraDriver.cs
@@ -28,11 +28,12 @@ public class BasisLocalCameraDriver : MonoBehaviour
public BasisLockToInput BasisLockToInput;
public bool HasEvents = false;
public Canvas MicrophoneCanvas;
+ public Transform CanvasTransform;
public RawImage MicrophoneMutedIcon;
public RawImage MicrophoneUnMutedIcon;
public Transform MicrophoneUnMutedIconTransform;
- public Vector3 DesktopMicrophoneOffset = new Vector3(-0.001f, -0.0015f, 2f); // Adjust as needed for canvas position and depth
+ public Vector3 DesktopMicrophoneViewportPosition = new(0.2f, 0.15f, 1f); // Adjust as needed for canvas position and depth
public Vector3 VRMicrophoneOffset = new Vector3(-0.0004f, -0.0015f, 2f);
public AudioClip MuteSound;
@@ -255,7 +256,7 @@ public static void GetPositionAndRotation(out Vector3 Position,out Quaternion Ro
}
public void OnHeightChanged()
{
- this.gameObject.transform.localScale = Vector3.one * LocalPlayer.EyeRatioAvatarToAvatarDefaultScale;
+ this.transform.localScale = Vector3.one * LocalPlayer.EyeRatioAvatarToAvatarDefaultScale;
}
public void OnDisable()
{
@@ -283,11 +284,13 @@ public void BeginCameraRendering(ScriptableRenderContext context, Camera Camera)
if (CameraData.allowXRRendering)
{
Vector2 EyeTextureSize = new Vector2(XRSettings.eyeTextureWidth, XRSettings.eyeTextureHeight);
- MicrophoneCanvas.transform.localPosition = CalculatePosition(EyeTextureSize, VRMicrophoneOffset);
+ CanvasTransform.localPosition = CalculatePosition(EyeTextureSize, VRMicrophoneOffset);
}
else
{
- MicrophoneCanvas.transform.localPosition = Camera.ViewportToScreenPoint(DesktopMicrophoneOffset);
+ Vector3 worldPoint = Camera.ViewportToWorldPoint(DesktopMicrophoneViewportPosition);
+ Vector3 localPos = this.transform.InverseTransformPoint(worldPoint);//asume this transform is also camera position
+ CanvasTransform.localPosition = localPos;
}
}
else
diff --git a/Basis/Packages/com.basis.framework/Drivers/BasisVirtualSpineDriver.cs b/Basis/Packages/com.basis.framework/Drivers/BasisVirtualSpineDriver.cs
index e399b4007..0cfd77e43 100644
--- a/Basis/Packages/com.basis.framework/Drivers/BasisVirtualSpineDriver.cs
+++ b/Basis/Packages/com.basis.framework/Drivers/BasisVirtualSpineDriver.cs
@@ -178,5 +178,6 @@ private void ApplyPositionControl(BasisBoneControl boneControl)
float3 customDirection = math.mul(boneControl.Target.OutGoingData.rotation, boneControl.Offset);
boneControl.OutGoingData.position = boneControl.Target.OutGoingData.position + customDirection;
}
+
}
}
diff --git a/Basis/Packages/com.basis.framework/Networking/Recievers/BasisNetworkReceiver.cs b/Basis/Packages/com.basis.framework/Networking/Recievers/BasisNetworkReceiver.cs
index 52e59eb3c..369daa1c5 100644
--- a/Basis/Packages/com.basis.framework/Networking/Recievers/BasisNetworkReceiver.cs
+++ b/Basis/Packages/com.basis.framework/Networking/Recievers/BasisNetworkReceiver.cs
@@ -44,7 +44,7 @@ public partial class BasisNetworkReceiver : BasisNetworkPlayer
public double TimeInThePast;
public bool HasAvatarInitalized;
- public BasicOneEuroFilterParallelJob oneEuroFilterJob;
+ public BasisOneEuroFilterParallelJob oneEuroFilterJob;
public float MinCutoff = 0.001f;
public float Beta = 5f;
public float DerivativeCutoff = 1.0f;
@@ -319,7 +319,7 @@ public void ForceUpdateFilters()
derivativeFilters[i] = new float2(0,0);
}
- oneEuroFilterJob = new BasicOneEuroFilterParallelJob
+ oneEuroFilterJob = new BasisOneEuroFilterParallelJob
{
InputValues = musclesPreEuro,
OutputValues = EuroValuesOutput,
diff --git a/Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs.meta b/Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs.meta
deleted file mode 100644
index bf9b4100c..000000000
--- a/Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-fileFormatVersion: 2
-guid: ca9f375a2b0d746429ac248b3e601cee
\ No newline at end of file
diff --git a/Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs b/Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs
similarity index 97%
rename from Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs
rename to Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs
index 5df7696e0..96a444026 100644
--- a/Basis/Packages/com.basis.framework/Networking/Utils/BasicOneEuroFilterParallelJob.cs
+++ b/Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs
@@ -15,7 +15,7 @@
// A job struct for processing OneEuroFilter in parallel
[BurstCompile]
-public struct BasicOneEuroFilterParallelJob : IJobParallelFor
+public struct BasisOneEuroFilterParallelJob : IJobParallelFor
{
[ReadOnly]
public NativeArray InputValues;
diff --git a/Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs.meta b/Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs.meta
new file mode 100644
index 000000000..18b5018e1
--- /dev/null
+++ b/Basis/Packages/com.basis.framework/Networking/Utils/BasisOneEuroFilterParallelJob.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: dc229b05cd7c0a0428263c172cd72cc3
\ No newline at end of file
diff --git a/Basis/Packages/com.basis.sdk/Prefabs/Loadins/Main Camera.prefab b/Basis/Packages/com.basis.sdk/Prefabs/Loadins/Main Camera.prefab
index ab3de919a..0d7bc3ec4 100644
--- a/Basis/Packages/com.basis.sdk/Prefabs/Loadins/Main Camera.prefab
+++ b/Basis/Packages/com.basis.sdk/Prefabs/Loadins/Main Camera.prefab
@@ -398,10 +398,11 @@ MonoBehaviour:
BasisLockToInput: {fileID: 5985133177976618905}
HasEvents: 0
MicrophoneCanvas: {fileID: 3373432966423603715}
+ CanvasTransform: {fileID: 309437807573434354}
MicrophoneMutedIcon: {fileID: 7951072778522726859}
MicrophoneUnMutedIcon: {fileID: 1908197658278707850}
MicrophoneUnMutedIconTransform: {fileID: 1619504432556682231}
- DesktopMicrophoneOffset: {x: -0.0005, y: -0.0005, z: 1}
+ DesktopMicrophoneViewportPosition: {x: 0.2, y: 0.15, z: 1}
VRMicrophoneOffset: {x: -0.0001, y: -0.00025, z: 1}
MuteSound: {fileID: 8300000, guid: 5b9ed5013ea1941499840ac97ad2b8e9, type: 3}
UnMuteSound: {fileID: 8300000, guid: fbd61add38ba2d04baedb52b69c6e1b3, type: 3}