From 5f18aab285c43083fbde9140eaeab725c4ec2300 Mon Sep 17 00:00:00 2001 From: "tom.hempel" Date: Sat, 4 Oct 2025 21:11:35 +0200 Subject: [PATCH] added tracking of headset + controllers for logging --- .../Assets/Scripts/TrackWeights.cs | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/vrcharades-unity/vrcharades-master/Assets/Scripts/TrackWeights.cs b/vrcharades-unity/vrcharades-master/Assets/Scripts/TrackWeights.cs index 42a0e56..5c4e31b 100644 --- a/vrcharades-unity/vrcharades-master/Assets/Scripts/TrackWeights.cs +++ b/vrcharades-unity/vrcharades-master/Assets/Scripts/TrackWeights.cs @@ -30,6 +30,15 @@ public class TrackWeights : MonoBehaviour [SerializeField] private Transform[] bones; + [SerializeField] + private Transform centerEyeAnchor; + + [SerializeField] + private Transform leftHandAnchor; + + [SerializeField] + private Transform rightHandAnchor; + private ConcurrentQueue sendQueue = new ConcurrentQueue(); @@ -227,6 +236,93 @@ public class TrackWeights : MonoBehaviour sb.Append(';'); sb.Append(rightEye.localRotation.z.ToString("F4")); + // Center Eye Camera (Position + Rotation) + if (centerEyeAnchor != null) + { + sb.Append(';'); + sb.Append(centerEyeAnchor.position.x.ToString("F4")); + sb.Append(';'); + sb.Append(centerEyeAnchor.position.y.ToString("F4")); + sb.Append(';'); + sb.Append(centerEyeAnchor.position.z.ToString("F4")); + + sb.Append(';'); + sb.Append(centerEyeAnchor.rotation.w.ToString("F4")); + sb.Append(';'); + sb.Append(centerEyeAnchor.rotation.x.ToString("F4")); + sb.Append(';'); + sb.Append(centerEyeAnchor.rotation.y.ToString("F4")); + sb.Append(';'); + sb.Append(centerEyeAnchor.rotation.z.ToString("F4")); + } + else + { + // Send zeros if centerEyeAnchor is not set + for (int i = 0; i < 7; i++) + { + sb.Append(';'); + sb.Append("0.0000"); + } + } + + // Left Hand Controller (Position + Rotation) + if (leftHandAnchor != null) + { + sb.Append(';'); + sb.Append(leftHandAnchor.position.x.ToString("F4")); + sb.Append(';'); + sb.Append(leftHandAnchor.position.y.ToString("F4")); + sb.Append(';'); + sb.Append(leftHandAnchor.position.z.ToString("F4")); + + sb.Append(';'); + sb.Append(leftHandAnchor.rotation.w.ToString("F4")); + sb.Append(';'); + sb.Append(leftHandAnchor.rotation.x.ToString("F4")); + sb.Append(';'); + sb.Append(leftHandAnchor.rotation.y.ToString("F4")); + sb.Append(';'); + sb.Append(leftHandAnchor.rotation.z.ToString("F4")); + } + else + { + // Send zeros if leftHandAnchor is not set + for (int i = 0; i < 7; i++) + { + sb.Append(';'); + sb.Append("0.0000"); + } + } + + // Right Hand Controller (Position + Rotation) + if (rightHandAnchor != null) + { + sb.Append(';'); + sb.Append(rightHandAnchor.position.x.ToString("F4")); + sb.Append(';'); + sb.Append(rightHandAnchor.position.y.ToString("F4")); + sb.Append(';'); + sb.Append(rightHandAnchor.position.z.ToString("F4")); + + sb.Append(';'); + sb.Append(rightHandAnchor.rotation.w.ToString("F4")); + sb.Append(';'); + sb.Append(rightHandAnchor.rotation.x.ToString("F4")); + sb.Append(';'); + sb.Append(rightHandAnchor.rotation.y.ToString("F4")); + sb.Append(';'); + sb.Append(rightHandAnchor.rotation.z.ToString("F4")); + } + else + { + // Send zeros if rightHandAnchor is not set + for (int i = 0; i < 7; i++) + { + sb.Append(';'); + sb.Append("0.0000"); + } + } + // foreach (var bone in bones) // { // sb.Append(';');