From a0bfdf70d7bf89f6e0878f78b194c05a2905bbe0 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 17 Oct 2022 00:36:46 +0900 Subject: [PATCH 001/331] =?UTF-8?q?/VMC/Ext/Hmd/Pos=E3=82=92[HMD]=E3=81=A8?= =?UTF-8?q?=E3=81=97=E3=81=A6=E8=AA=8D=E8=AD=98=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExternalSender/ExternalReceiverForVMC.cs | 41 +++++++++++++++++-- .../Tracking/VMCProtocolTrackerManager.cs | 7 ++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/ExternalSender/ExternalReceiverForVMC.cs b/Assets/Scripts/ExternalSender/ExternalReceiverForVMC.cs index 7cbb597b..6f61e822 100644 --- a/Assets/Scripts/ExternalSender/ExternalReceiverForVMC.cs +++ b/Assets/Scripts/ExternalSender/ExternalReceiverForVMC.cs @@ -19,9 +19,11 @@ public class ExternalReceiverForVMC : MonoBehaviour public MidiCCWrapper MIDICCWrapper; //仮想コントローラソート済み辞書 + public SortedDictionary virtualHmd = new SortedDictionary(); public SortedDictionary virtualController = new SortedDictionary(); public SortedDictionary virtualTracker = new SortedDictionary(); + public SortedDictionary virtualHmdFiltered = new SortedDictionary(); public SortedDictionary virtualControllerFiltered = new SortedDictionary(); public SortedDictionary virtualTrackerFiltered = new SortedDictionary(); @@ -121,8 +123,36 @@ void OnDataReceived(uOSC.Message message) packets = 0; } + //仮想Hmd V2.3 + if (message.address == "/VMC/Ext/Hmd/Pos" + && (message.values[0] is string) + && (message.values[1] is float) + && (message.values[2] is float) + && (message.values[3] is float) + && (message.values[4] is float) + && (message.values[5] is float) + && (message.values[6] is float) + && (message.values[7] is float) + ) + { + string serial = (string)message.values[0]; + var rigidTransform = SetTransform(ref pos, ref rot, ref message); + + lock (LockObject) + { + if (virtualHmd.ContainsKey(serial)) + { + virtualHmd[serial] = rigidTransform; + } + else + { + virtualHmd.Add(serial, rigidTransform); + virtualHmdFiltered.Add(serial, rigidTransform); + } + } + } //仮想コントローラー V2.3 - if (message.address == "/VMC/Ext/Con/Pos" + else if (message.address == "/VMC/Ext/Con/Pos" && (message.values[0] is string) && (message.values[1] is float) && (message.values[2] is float) @@ -150,8 +180,7 @@ void OnDataReceived(uOSC.Message message) } } //仮想トラッカー V2.3 - else if ((message.address == "/VMC/Ext/Hmd/Pos" - || message.address == "/VMC/Ext/Tra/Pos") + else if (message.address == "/VMC/Ext/Tra/Pos" && (message.values[0] is string) && (message.values[1] is float) && (message.values[2] is float) @@ -469,6 +498,12 @@ private void Update() { lock (LockObject) { + foreach (var pair in virtualHmd) + { + var newpos = Vector3.Lerp(virtualHmdFiltered[pair.Key].pos, pair.Value.pos, filterStrength * Time.deltaTime); + var newrot = Quaternion.Lerp(virtualHmdFiltered[pair.Key].rot, pair.Value.rot, filterStrength * Time.deltaTime); + virtualHmdFiltered[pair.Key] = new SteamVR_Utils.RigidTransform(newpos, newrot); + } foreach (var pair in virtualController) { var newpos = Vector3.Lerp(virtualControllerFiltered[pair.Key].pos, pair.Value.pos, filterStrength * Time.deltaTime); diff --git a/Assets/Scripts/Tracking/VMCProtocolTrackerManager.cs b/Assets/Scripts/Tracking/VMCProtocolTrackerManager.cs index 8ab26592..fbfce815 100644 --- a/Assets/Scripts/Tracking/VMCProtocolTrackerManager.cs +++ b/Assets/Scripts/Tracking/VMCProtocolTrackerManager.cs @@ -18,13 +18,14 @@ private void Update() { foreach (var externalReceiver in externalReceivers) { + foreach (var c in externalReceiver.virtualHmdFiltered) + { + UpdateDeviceInfo(c.Key, c.Value, ETrackedDeviceClass.HMD); + } foreach (var c in externalReceiver.virtualControllerFiltered) { UpdateDeviceInfo(c.Key, c.Value, ETrackedDeviceClass.Controller); } - } - foreach (var externalReceiver in externalReceivers) - { foreach (var t in externalReceiver.virtualTrackerFiltered) { UpdateDeviceInfo(t.Key, t.Value, ETrackedDeviceClass.GenericTracker); From 5c81bb4a92df1ebb84a4c27538d00c5b26c313f7 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 17 Oct 2022 00:38:24 +0900 Subject: [PATCH 002/331] =?UTF-8?q?=E9=A0=AD=E3=81=8CHMD=E3=81=AE=E5=A0=B4?= =?UTF-8?q?=E5=90=88=E3=81=AF=E7=9B=AE=E3=81=AE=E9=AB=98=E3=81=95=E3=81=8B?= =?UTF-8?q?=E3=82=89=E8=BA=AB=E9=95=B7=E3=82=92=E7=AE=97=E5=87=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index 727fb10a..1cb8445e 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -143,15 +143,28 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo rightHandTargetTransform = rightWrist; } + float realHeight = 1.7f; - //手の高さから身長を算出する - // B21 橈骨茎突高 797.7 - // B1 身長 1654.7 - // ratio = B1 / B21 = 2.0743387238310141657264635828006 - // 補正値 0.93694267481427684002272492175445 - var handHeight = (leftHandTargetTransform.position.y + rightHandTargetTransform.position.y) / 2f; - var realHeight = handHeight * 2.07434f * 0.93694f; - + //頭がHMDの場合 + if (headTarget.DeviceClass == ETrackedDeviceClass.HMD) + { + //目の高さから身長を算出する + // A30 頭頂・内眼角距離 124.6 + // B1 身長 1654.7 + // realHeight = (HMDHeight / (B1 - A30)) * A30 + HMDHeight + var hmdHeight = headTarget.TargetTransform.position.y; + realHeight = (hmdHeight / (1.6547f - 0.1246f)) * 0.1246f + hmdHeight; + } + else + { + //手の高さから身長を算出する + // B21 橈骨茎突高 797.7 + // B1 身長 1654.7 + // ratio = B1 / B21 = 2.0743387238310141657264635828006 + // 補正値 0.93694267481427684002272492175445 + var handHeight = (leftHandTargetTransform.position.y + rightHandTargetTransform.position.y) / 2f; + realHeight = handHeight * 2.07434f * 0.93694f; + } Debug.Log($"UserHeight:{realHeight}"); // トラッカー全体のスケールを手の位置に合わせる From aba203407680d322dd20cffcb8f0f23495f4b07e Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 17 Oct 2022 00:38:42 +0900 Subject: [PATCH 003/331] =?UTF-8?q?=E8=85=B0=E3=81=AE=E5=9B=9E=E8=BB=A2?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E3=81=AE=E5=88=9D=E6=9C=9F=E5=9B=9E=E8=BB=A2?= =?UTF-8?q?=E3=82=92=E3=82=BC=E3=83=AD=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index 1cb8445e..e9dc4a06 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -230,7 +230,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo var pelvisRotatePoint = new GameObject("PelvisRotatePoint").transform; pelvisRotatePoint.SetParent(pelvisTargetTransform); pelvisRotatePoint.position = scaledPelvisPosition; - pelvisRotatePoint.localRotation = Quaternion.identity; + pelvisRotatePoint.rotation = Quaternion.identity; pelvisTargetTransform = pelvisRotatePoint; } From b60aa15072436afdc8af4a49a723573b8a363782 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:21:59 +0900 Subject: [PATCH 004/331] =?UTF-8?q?=E6=89=8B=E3=81=AE=E3=82=B9=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index e9dc4a06..ce5bbff4 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -175,6 +175,8 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo var rightUpperArm = vrik.references.rightUpperArm; var modelHandDistance = Vector3.Distance(leftHand.position, leftUpperArm.position) + Vector3.Distance(leftUpperArm.position, rightUpperArm.position) + Vector3.Distance(rightUpperArm.position, rightHand.position); + Debug.Log($"modelHandDistance:{modelHandDistance}"); + //身長比 (realHeight / B1) var realHeightRatio = realHeight / 1.6547f; //C7 上腕長 301.2 @@ -183,9 +185,13 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo var realLowerArmLength = realHeightRatio * 0.2405f; //D7 肩峰幅 378.8 var realShoulderWidth = realHeightRatio * 0.3788f; - //補正値 0.90461508349542846218505245206182 - var realHandDistance = (realShoulderWidth + realUpperArmLength * 2 + realLowerArmLength * 2) * 0.90461f; - var wscale = modelHandDistance / realHandDistance; + + var realHandDistance = (realShoulderWidth + realUpperArmLength * 2 + realLowerArmLength * 2); + + Debug.Log($"realHandDistance:{realHandDistance} realUpperArmLength:{realUpperArmLength} realLowerArmLength:{realLowerArmLength} realShoulderWidth:{realShoulderWidth}"); + + //補正値 1.1844624376512112799968270419935f + var wscale = modelHandDistance / realHandDistance * 1.18446f; handTrackerRoot.localScale = new Vector3(wscale, wscale, wscale); footTrackerRoot.localScale = new Vector3(wscale, wscale, wscale); From ee0006a353b824733b4a98d7b2fd3e51eeac0c2d Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:22:41 +0900 Subject: [PATCH 005/331] =?UTF-8?q?=E8=85=B0=E3=81=AE=E5=89=8D=E5=BE=8C?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index ce5bbff4..cb5d0c14 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -209,7 +209,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo // リアル手と手の中心から少し後ろに下げた位置 - var scaledCenterPosition = Vector3.Lerp(leftHandTargetTransform.position, rightHandTargetTransform.position, 0.5f) + hmdForwardAngle.normalized * (realHeight * wscale * 0.0043f); + var scaledCenterPosition = Vector3.Lerp(leftHandTargetTransform.position, rightHandTargetTransform.position, 0.5f) - hmdForwardAngle.normalized * (realHeight * wscale * 0.072f); //身長から腰の位置を算出する // B12 臍高 965.7 From e99d4e539ed0c483cf89d22e5d0869feb43eb7c1 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:23:06 +0900 Subject: [PATCH 006/331] =?UTF-8?q?=E9=A0=AD=E3=81=8CHMD=E3=81=AE=E5=A0=B4?= =?UTF-8?q?=E5=90=88=E8=85=B0=E4=BD=8D=E7=BD=AE=E7=AE=97=E5=87=BA=E3=81=AB?= =?UTF-8?q?HMD=E3=82=92=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index cb5d0c14..538fad55 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -211,6 +211,11 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo // リアル手と手の中心から少し後ろに下げた位置 var scaledCenterPosition = Vector3.Lerp(leftHandTargetTransform.position, rightHandTargetTransform.position, 0.5f) - hmdForwardAngle.normalized * (realHeight * wscale * 0.072f); + //頭がHMDの場合 + if (headTarget.DeviceClass == ETrackedDeviceClass.HMD) + { + scaledCenterPosition = headTarget.TargetTransform.position - hmdForwardAngle.normalized * (realHeight * wscale * 0.063f); + } //身長から腰の位置を算出する // B12 臍高 965.7 // B1 身長 1654.7 From 146307db6b78036cc0ec41627fa47e1c5aff65e3 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:23:25 +0900 Subject: [PATCH 007/331] =?UTF-8?q?=E8=85=B0=E3=81=AE=E9=AB=98=E3=81=95?= =?UTF-8?q?=E8=A8=88=E7=AE=97=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index 538fad55..06d12857 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -216,12 +216,14 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo { scaledCenterPosition = headTarget.TargetTransform.position - hmdForwardAngle.normalized * (realHeight * wscale * 0.063f); } + //身長から腰の位置を算出する - // B12 臍高 965.7 + // B13 上前腸骨棘高 891.9 + // B14 恥骨結合上縁高 809.2 // B1 身長 1654.7 - // ratio = B13 / B1 = 0.58361032211276968634797848552608 - //腰補正値 1.031572735f - var realPelvisHeight = realHeight * 0.58361f * 1.031572735f; + // ratio = (B13 + (B14 - B13) * 0.?) / B1 = 0.51402066839910557805040188553816 + //腰補正値 1 + var realPelvisHeight = realHeight * (809.2f + (891.9f - 809.2f) * 0.67f) / 1654.7f; Debug.Log($"realPelvisHeight:{realPelvisHeight}"); From 31cd100274b021600536eba09e91c15fc0f02023 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:23:41 +0900 Subject: [PATCH 008/331] =?UTF-8?q?=E5=89=8D=E5=B1=88=E6=99=82=E3=81=AE?= =?UTF-8?q?=E8=85=B0=E3=81=AE=E3=82=A6=E3=82=A7=E3=82=A4=E3=83=88=E8=AA=BF?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/PelvisWeightAdjuster.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs b/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs index 3ce60f14..52cf658e 100644 --- a/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs +++ b/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs @@ -34,7 +34,7 @@ private void Update() } else { //前に曲がった時 - PelvisWeight = Mathf.Lerp(1.0f, 0.7f, (signedAngle) / 120f); + PelvisWeight = Mathf.Lerp(1.0f, 0.9f, (signedAngle) / 120f); } vrik.solver.spine.pelvisPositionWeight = PelvisWeight; From 7d152baa53fb52a751efe2a0368d9d8aa16c95e0 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:23:57 +0900 Subject: [PATCH 009/331] =?UTF-8?q?=E8=85=B0=E3=81=AE=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E5=8B=95=E3=81=AE=E8=A3=9C=E6=AD=A3=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/TransformAdjustFollower.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Avatar/TransformAdjustFollower.cs b/Assets/Scripts/Avatar/TransformAdjustFollower.cs index 9d29abd8..7989d99c 100644 --- a/Assets/Scripts/Avatar/TransformAdjustFollower.cs +++ b/Assets/Scripts/Avatar/TransformAdjustFollower.cs @@ -7,8 +7,8 @@ namespace VMC { public class TransformAdjustFollower : MonoBehaviour { - private const float AdjustLimit = 0.032f; - private const float LerpDistance = 0.023f; + private const float AdjustLimit = 0.018f; + private const float LerpDistance = 0.009f; private Transform adjustTargetPoint; private float defaultHeight; From 73918166ff52edbdf1e0cf030e28be2900b4edb7 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:24:14 +0900 Subject: [PATCH 010/331] =?UTF-8?q?=E8=83=8C=E9=AA=A8=E8=AA=BF=E6=95=B4?= =?UTF-8?q?=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/VRIKSpineOffset.cs | 32 ++++++++++++++++++++++++++++++++ Assets/VRIKSpineOffset.cs.meta | 11 +++++++++++ 2 files changed, 43 insertions(+) create mode 100644 Assets/VRIKSpineOffset.cs create mode 100644 Assets/VRIKSpineOffset.cs.meta diff --git a/Assets/VRIKSpineOffset.cs b/Assets/VRIKSpineOffset.cs new file mode 100644 index 00000000..73a235e6 --- /dev/null +++ b/Assets/VRIKSpineOffset.cs @@ -0,0 +1,32 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using RootMotion.FinalIK; + +public class VRIKSpineOffset : MonoBehaviour +{ + public VRIK ik; + public Vector3 spineFix; + + private void OnEnable() + { + ik.solver.OnPostUpdate += AfterVRIK; + } + + private void OnDisable() + { + ik.solver.OnPostUpdate -= AfterVRIK; + } + + private void AfterVRIK() + { + Vector3 headPos = ik.references.head.position; + Quaternion headRot = ik.references.head.rotation; + + ik.references.spine.localRotation *= Quaternion.Euler(spineFix); + ik.references.chest.localRotation *= Quaternion.Euler(-spineFix); + + ik.references.chest.rotation = Quaternion.FromToRotation(ik.references.head.position - ik.references.chest.position, headPos - ik.references.chest.position) * ik.references.chest.rotation; + ik.references.head.rotation = headRot; + } +} diff --git a/Assets/VRIKSpineOffset.cs.meta b/Assets/VRIKSpineOffset.cs.meta new file mode 100644 index 00000000..b744462f --- /dev/null +++ b/Assets/VRIKSpineOffset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a300bb2fa6b87b4a995095bf24d5682 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 2b47fed07b385856548542fb2d3fc610bd83345f Mon Sep 17 00:00:00 2001 From: sh_akira Date: Fri, 11 Nov 2022 09:24:55 +0900 Subject: [PATCH 011/331] =?UTF-8?q?=E3=83=9C=E3=83=BC=E3=83=B3=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=83=87=E3=83=90=E3=83=83=E3=82=B0=E7=94=A8=E3=81=AB?= =?UTF-8?q?animation.rigging=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Packages/manifest.json | 1 + Packages/packages-lock.json | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/Packages/manifest.json b/Packages/manifest.json index 5a721800..c94e9259 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -4,6 +4,7 @@ "com.unity.2d.tilemap": "1.0.0", "com.unity.ads": "3.7.5", "com.unity.analytics": "3.6.11", + "com.unity.animation.rigging": "0.2.7-preview", "com.unity.collab-proxy": "1.10.2", "com.unity.ide.rider": "1.2.1", "com.unity.ide.visualstudio": "2.0.15", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 77824c0e..dda091bd 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -30,6 +30,25 @@ }, "url": "https://packages.unity.com" }, + "com.unity.animation.rigging": { + "version": "0.2.7-preview", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.1.1", + "com.unity.test-framework": "1.0.7" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.1.1", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.1.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.collab-proxy": { "version": "1.10.2", "depth": 0, @@ -69,6 +88,13 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.mathematics": { + "version": "1.1.0", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.multiplayer-hlapi": { "version": "1.0.8", "depth": 0, From 3056b92b382bb0a73e664885df5c1b0b87506fe3 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 01:12:20 +0900 Subject: [PATCH 012/331] =?UTF-8?q?3=E7=82=B9=E3=83=88=E3=83=A9=E3=83=83?= =?UTF-8?q?=E3=82=AD=E3=83=B3=E3=82=B0=E6=99=82=E3=81=AE=E8=B6=B3=E3=81=AE?= =?UTF-8?q?=E9=96=8B=E3=81=8D=E5=85=B7=E5=90=88=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/ControlWPFWindow.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/ControlWPFWindow.cs b/Assets/Scripts/ControlWPFWindow.cs index 76e845af..69da6d37 100644 --- a/Assets/Scripts/ControlWPFWindow.cs +++ b/Assets/Scripts/ControlWPFWindow.cs @@ -1855,13 +1855,14 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) if (rootController != null) GameObject.Destroy(rootController); } - vrik.solver.locomotion.footDistance = 0.06f; - vrik.solver.locomotion.stepThreshold = 0.2f; - vrik.solver.locomotion.angleThreshold = 45f; + vrik.solver.locomotion.footDistance = 0.08f; + vrik.solver.locomotion.stepThreshold = 0.05f; + vrik.solver.locomotion.angleThreshold = 10f; vrik.solver.locomotion.maxVelocity = 0.04f; vrik.solver.locomotion.velocityFactor = 0.04f; vrik.solver.locomotion.rootSpeed = 40; vrik.solver.locomotion.stepSpeed = 2; + vrik.solver.locomotion.offset = new Vector3(0, 0, 0.03f); Settings.Current.headTracker = StoreTransform.Create(headTracker?.TargetTransform); Settings.Current.bodyTracker = StoreTransform.Create(bodyTracker?.TargetTransform); From 96e868568c18645f02433bdaa1cc6c99d1815846 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 01:20:01 +0900 Subject: [PATCH 013/331] =?UTF-8?q?=E8=85=B0=E3=81=AE=E8=A3=9C=E6=AD=A3?= =?UTF-8?q?=E5=80=A4=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index 06d12857..f475f492 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -190,12 +190,13 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo Debug.Log($"realHandDistance:{realHandDistance} realUpperArmLength:{realUpperArmLength} realLowerArmLength:{realLowerArmLength} realShoulderWidth:{realShoulderWidth}"); - //補正値 1.1844624376512112799968270419935f - var wscale = modelHandDistance / realHandDistance * 1.18446f; - handTrackerRoot.localScale = new Vector3(wscale, wscale, wscale); - footTrackerRoot.localScale = new Vector3(wscale, wscale, wscale); + //補正値 1.0540999304427300866426637117315 + var realScale = modelHandDistance / realHandDistance; + var offsetScale = realScale * 1.08f; + handTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); + footTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); - Debug.Log($"wscale:{wscale}"); + Debug.Log($"wscale:{offsetScale}"); //モデルの体の中心を取っておく var handcenterposition = Vector3.Lerp(vrik.references.leftHand.position, vrik.references.rightHand.position, 0.5f); @@ -209,12 +210,12 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo // リアル手と手の中心から少し後ろに下げた位置 - var scaledCenterPosition = Vector3.Lerp(leftHandTargetTransform.position, rightHandTargetTransform.position, 0.5f) - hmdForwardAngle.normalized * (realHeight * wscale * 0.072f); + var scaledCenterPosition = Vector3.Lerp(leftHandTargetTransform.position, rightHandTargetTransform.position, 0.5f) - hmdForwardAngle.normalized * (realHeight * offsetScale * 0.052f); //頭がHMDの場合 if (headTarget.DeviceClass == ETrackedDeviceClass.HMD) { - scaledCenterPosition = headTarget.TargetTransform.position - hmdForwardAngle.normalized * (realHeight * wscale * 0.063f); + scaledCenterPosition = headTarget.TargetTransform.position - hmdForwardAngle.normalized * (realHeight * offsetScale * 0.043f); } //身長から腰の位置を算出する @@ -222,12 +223,12 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo // B14 恥骨結合上縁高 809.2 // B1 身長 1654.7 // ratio = (B13 + (B14 - B13) * 0.?) / B1 = 0.51402066839910557805040188553816 - //腰補正値 1 - var realPelvisHeight = realHeight * (809.2f + (891.9f - 809.2f) * 0.67f) / 1654.7f; + //腰補正値 0.95 + var realPelvisHeight = realHeight * (809.2f + (891.9f - 809.2f) * 0.67f) / 1654.7f * 0.95f; Debug.Log($"realPelvisHeight:{realPelvisHeight}"); - var scaledPelvisPosition = new Vector3(scaledCenterPosition.x, realPelvisHeight * wscale, scaledCenterPosition.z); + var scaledPelvisPosition = new Vector3(scaledCenterPosition.x, realPelvisHeight * offsetScale, scaledCenterPosition.z); Debug.Log($"scaledPelvisHeight:{scaledPelvisPosition.y}"); @@ -273,7 +274,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo // Head //頭の位置は1cm前後後ろに下げる - var headOffsetPosition = new Vector3(vrik.references.head.position.x, vrik.references.head.position.y, vrik.references.head.position.z - (realHeight * 0.01f * wscale)); + var headOffsetPosition = new Vector3(vrik.references.head.position.x, vrik.references.head.position.y, vrik.references.head.position.z - (realHeight * 0.01f * offsetScale)); var headOffset = CreateTransform("HeadIKTarget", true, headTarget.TargetTransform, headOffsetPosition, vrik.references.head.rotation); vrik.solver.spine.headTarget = headOffset; vrik.solver.spine.positionWeight = 1f; From c2391ee40b84bb91cac9b4682837e0ba7efb3021 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 01:24:10 +0900 Subject: [PATCH 014/331] =?UTF-8?q?=E9=A0=AD=E3=81=AE=E3=82=AA=E3=83=95?= =?UTF-8?q?=E3=82=BB=E3=83=83=E3=83=88=E3=82=92=E7=B6=BA=E9=BA=97=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E8=AA=BF=E6=95=B4?= =?UTF-8?q?=E3=81=99=E3=82=8B=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index f475f492..dc873857 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -332,11 +332,12 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo vrik.solver.plantFeet = false; vrik.solver.spine.neckStiffness = 0f; vrik.solver.spine.maxRootAngle = 180f; + vrik.solver.spine.minHeadHeight = -100f; //頭が腰に近づいたときに猫背になりすぎないように (Final IK v2.1~) vrik.solver.spine.useAnimatedHeadHeightWeight = 1.0f; - vrik.solver.spine.useAnimatedHeadHeightRange = 0.001f; - vrik.solver.spine.animatedHeadHeightBlend = 0.28f; + vrik.solver.spine.useAnimatedHeadHeightRange = 0.005f; + vrik.solver.spine.animatedHeadHeightBlend = 0.08f; } // 腰のトラッキングを調整 @@ -436,11 +437,24 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo //wristRotationFix = currentModel.AddComponent(); //wristRotationFix.SetVRIK(vrik); - vrik.enabled = true; vrik.solver.IKPositionWeight = 1.0f; + //頭の位置をかかとの影響がない程度まで上に上げる + vrik.UpdateSolverExternal(); + var baseFootHeight = vrik.references.leftFoot.position.y; + var headTargetPosition = headOffset.position; + var defaultHeadTargetPosition = headTargetPosition; + var headStep = new Vector3(0, 0.005f, 0); + while (vrik.references.leftFoot.position.y - baseFootHeight < 0.005f && headTargetPosition.y - defaultHeadTargetPosition.y < 0.4f ) + { + headTargetPosition += headStep; + headOffset.position = headTargetPosition; + vrik.UpdateSolverExternal(); + } + headOffset.position -= headStep; + vrik.UpdateSolverExternal(); //DebugSphere(leftHandTargetTransform); From e1a6f38dcca3fc701764be4b199a9526c135d4bc Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 02:13:47 +0900 Subject: [PATCH 015/331] =?UTF-8?q?=E5=89=8D=E5=B1=88=E6=99=82=E3=81=AE?= =?UTF-8?q?=E8=85=B0=E8=A3=9C=E6=AD=A3=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/PelvisWeightAdjuster.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs b/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs index 52cf658e..81ce0853 100644 --- a/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs +++ b/Assets/Scripts/Avatar/PelvisWeightAdjuster.cs @@ -34,7 +34,7 @@ private void Update() } else { //前に曲がった時 - PelvisWeight = Mathf.Lerp(1.0f, 0.9f, (signedAngle) / 120f); + PelvisWeight = Mathf.Lerp(1.0f, 0.70f, (signedAngle) / 120f); } vrik.solver.spine.pelvisPositionWeight = PelvisWeight; From 504a584abf28902eba76ff5049400ff6f98d13a8 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 02:14:08 +0900 Subject: [PATCH 016/331] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=AA=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E3=82=B9?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=83=AB=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index dc873857..cc112f02 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -192,7 +192,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo //補正値 1.0540999304427300866426637117315 var realScale = modelHandDistance / realHandDistance; - var offsetScale = realScale * 1.08f; + var offsetScale = realScale * 1.0541f; handTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); footTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); From a0c48f9b8fb52cc41483bb47e27e18dffe267ee6 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Mon, 14 Nov 2022 02:32:57 +0900 Subject: [PATCH 017/331] v0.52b17 --- Assets/Scenes/VirtualMotionCapture.unity | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scenes/VirtualMotionCapture.unity b/Assets/Scenes/VirtualMotionCapture.unity index 1f7cc330..94abba35 100644 --- a/Assets/Scenes/VirtualMotionCapture.unity +++ b/Assets/Scenes/VirtualMotionCapture.unity @@ -2382,7 +2382,7 @@ MonoBehaviour: m_EditorClassIdentifier: IsBeta: 0 IsPreRelease: 0 - VersionString: v0.52f1r1b16 + VersionString: v0.52f1r1b17 LeftWristTransform: {fileID: 0} RightWristTransform: {fileID: 0} CalibrationCamera: {fileID: 1312323656} From e61ce7dad2872ab90c496e10d00e0ae1f81b11c3 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 00:35:03 +0900 Subject: [PATCH 018/331] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=AA=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E6=99=82=E3=81=AB?= =?UTF-8?q?=E7=94=9F=E6=88=90=E3=81=97=E3=81=9F=E3=82=AA=E3=83=96=E3=82=B8?= =?UTF-8?q?=E3=82=A7=E3=82=AF=E3=83=88=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/VirtualMotionCapture.unity | 31 ++++++++++++++++++++++ Assets/Scripts/Avatar/FinalIKCalibrator.cs | 9 +++++-- Assets/Scripts/ControlWPFWindow.cs | 9 ++++++- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/Assets/Scenes/VirtualMotionCapture.unity b/Assets/Scenes/VirtualMotionCapture.unity index 94abba35..9ad72b23 100644 --- a/Assets/Scenes/VirtualMotionCapture.unity +++ b/Assets/Scenes/VirtualMotionCapture.unity @@ -2405,6 +2405,7 @@ MonoBehaviour: LipTracking_ViveComponent: {fileID: 0} SRanipal_Lip_FrameworkComponent: {fileID: 0} midiCCBlendShape: {fileID: 1440382163} + generatedObject: {fileID: 1670762494} calibrationState: 0 lastCalibrateType: 0 lastLoadedConfigPath: @@ -3308,6 +3309,36 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1670762493 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1670762494} + m_Layer: 0 + m_Name: GeneratedObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1670762494 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670762493} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1770264194 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index cc112f02..d9fa29bc 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -43,7 +43,7 @@ public class FinalIKCalibrator /// /// 通常モード、Iポーズキャリブレーション /// - public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform footTrackerRoot, VRIK vrik, VRIKCalibrator.Settings settings, TrackingPoint HMDTrackingPoint, TrackingPoint PelvisTrackingPoint = null, TrackingPoint LeftHandTrackingPoint = null, TrackingPoint RightHandTrackingPoint = null, TrackingPoint LeftFootTrackingPoint = null, TrackingPoint RightFootTrackingPoint = null, TrackingPoint LeftElbowTrackingPoint = null, TrackingPoint RightElbowTrackingPoint = null, TrackingPoint LeftKneeTrackingPoint = null, TrackingPoint RightKneeTrackingPoint = null) + public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform footTrackerRoot, VRIK vrik, VRIKCalibrator.Settings settings, TrackingPoint HMDTrackingPoint, TrackingPoint PelvisTrackingPoint = null, TrackingPoint LeftHandTrackingPoint = null, TrackingPoint RightHandTrackingPoint = null, TrackingPoint LeftFootTrackingPoint = null, TrackingPoint RightFootTrackingPoint = null, TrackingPoint LeftElbowTrackingPoint = null, TrackingPoint RightElbowTrackingPoint = null, TrackingPoint LeftKneeTrackingPoint = null, TrackingPoint RightKneeTrackingPoint = null, Transform generatedObject = null) { var currentModel = vrik.transform; @@ -321,6 +321,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo var PelvisAdjustFollower = new GameObject("PelvisAdjustFollower"); PelvisAdjustFollower.AddComponent().Initialize(pelvisTargetTransform, true, true); pelvisTargetTransform = PelvisAdjustFollower.transform; + pelvisTargetTransform.SetParent(generatedObject); //pelvisTargetTransformは腰の回転軸位置(UpperLeg)に居るので、子のIKターゲットはHip位置にオフセットして指定 var pelvisOffset = CreateTransform("PelvisIKTarget", true, pelvisTargetTransform, pelvisTargetTransform.position + UpperLegOffset, vrik.references.pelvis.rotation); @@ -380,6 +381,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo { // アバターの足の位置についていくオブジェクト(FinalIKの処理順に影響を受けない) var leftFootFollow = CreateTransform("LeftFootFollowObject", true, null, vrik.references.leftFoot); + leftFootFollow.SetParent(generatedObject); var follower = leftFootFollow.gameObject.AddComponent(); follower.Target = vrik.references.leftFoot; @@ -409,6 +411,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo { // アバターの足の位置についていくオブジェクト(FinalIKの処理順に影響を受けない) var rightFootFollow = CreateTransform("RightFootFollowObject", true, null, vrik.references.rightFoot); + rightFootFollow.SetParent(generatedObject); var follower = rightFootFollow.gameObject.AddComponent(); follower.Target = vrik.references.rightFoot; @@ -476,7 +479,7 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo /// /// 通常モード、Tポーズキャリブレーション /// - public static IEnumerator CalibrateTpose(Transform handTrackerRoot, Transform footTrackerRoot, VRIK vrik, VRIKCalibrator.Settings settings, TrackingPoint HMDTrackingPoint, TrackingPoint PelvisTrackingPoint = null, TrackingPoint LeftHandTrackingPoint = null, TrackingPoint RightHandTrackingPoint = null, TrackingPoint LeftFootTrackingPoint = null, TrackingPoint RightFootTrackingPoint = null, TrackingPoint LeftElbowTrackingPoint = null, TrackingPoint RightElbowTrackingPoint = null, TrackingPoint LeftKneeTrackingPoint = null, TrackingPoint RightKneeTrackingPoint = null) + public static IEnumerator CalibrateTpose(Transform handTrackerRoot, Transform footTrackerRoot, VRIK vrik, VRIKCalibrator.Settings settings, TrackingPoint HMDTrackingPoint, TrackingPoint PelvisTrackingPoint = null, TrackingPoint LeftHandTrackingPoint = null, TrackingPoint RightHandTrackingPoint = null, TrackingPoint LeftFootTrackingPoint = null, TrackingPoint RightFootTrackingPoint = null, TrackingPoint LeftElbowTrackingPoint = null, TrackingPoint RightElbowTrackingPoint = null, TrackingPoint LeftKneeTrackingPoint = null, TrackingPoint RightKneeTrackingPoint = null, Transform generatedObject = null) { var currentModel = vrik.transform; @@ -768,6 +771,7 @@ public static IEnumerator CalibrateTpose(Transform handTrackerRoot, Transform fo { // アバターの足の位置についていくオブジェクト(FinalIKの処理順に影響を受けない) var leftFootFollow = CreateTransform("LeftFootFollowObject", true, null, vrik.references.leftFoot); + leftFootFollow.SetParent(generatedObject); var follower = leftFootFollow.gameObject.AddComponent(); follower.Target = vrik.references.leftFoot; @@ -797,6 +801,7 @@ public static IEnumerator CalibrateTpose(Transform handTrackerRoot, Transform fo { // アバターの足の位置についていくオブジェクト(FinalIKの処理順に影響を受けない) var rightFootFollow = CreateTransform("RightFootFollowObject", true, null, vrik.references.rightFoot); + rightFootFollow.SetParent(generatedObject); var follower = rightFootFollow.gameObject.AddComponent(); follower.Target = vrik.references.rightFoot; diff --git a/Assets/Scripts/ControlWPFWindow.cs b/Assets/Scripts/ControlWPFWindow.cs index 69da6d37..6a125d79 100644 --- a/Assets/Scripts/ControlWPFWindow.cs +++ b/Assets/Scripts/ControlWPFWindow.cs @@ -93,6 +93,8 @@ public class ControlWPFWindow : MonoBehaviour public MIDICCBlendShape midiCCBlendShape; + public Transform generatedObject; + public enum CalibrationState { Uncalibrated = 0, @@ -1833,9 +1835,14 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) TrackingPointManager.Instance.ClearTrackingWatcher(); + foreach (Transform child in generatedObject) + { + DestroyImmediate(child.gameObject); + } + if (calibrateType == PipeCommands.CalibrateType.Default) { - yield return FinalIKCalibrator.CalibrateIpose(HandTrackerRoot, PelvisTrackerRoot, vrik, settings, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker, leftElbowTracker, rightElbowTracker, leftKneeTracker, rightKneeTracker); + yield return FinalIKCalibrator.CalibrateIpose(HandTrackerRoot, PelvisTrackerRoot, vrik, settings, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker, leftElbowTracker, rightElbowTracker, leftKneeTracker, rightKneeTracker, generatedObject); } else if (calibrateType == PipeCommands.CalibrateType.FixedHand) { From f6bbdee4ec20eb6aec420d2107c85a5c88270d79 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 00:45:16 +0900 Subject: [PATCH 019/331] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=AA=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E3=82=B9?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=83=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index d9fa29bc..af879c2d 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -190,9 +190,9 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo Debug.Log($"realHandDistance:{realHandDistance} realUpperArmLength:{realUpperArmLength} realLowerArmLength:{realLowerArmLength} realShoulderWidth:{realShoulderWidth}"); - //補正値 1.0540999304427300866426637117315 + //補正値 1.15 var realScale = modelHandDistance / realHandDistance; - var offsetScale = realScale * 1.0541f; + var offsetScale = realScale * 1.15f; handTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); footTrackerRoot.localScale = new Vector3(offsetScale, offsetScale, offsetScale); From f905879972eba12c2213b50de00ed394cb44148e Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 00:59:39 +0900 Subject: [PATCH 020/331] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=AA=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AB=E5=A4=B1?= =?UTF-8?q?=E6=95=97=E3=81=97=E3=81=A6=E3=82=82=E3=82=84=E3=82=8A=E7=9B=B4?= =?UTF-8?q?=E3=81=9B=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 6 +-- Assets/Scripts/ControlWPFWindow.cs | 57 ++++++++++++---------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index af879c2d..ce2a1a79 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -67,11 +67,11 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo //それぞれのトラッカーを正しいルートに移動 if (HMDTrackingPoint != null) HMDTrackingPoint.TargetTransform.parent = footTrackerRoot; - else throw new Exception("Head tracker not found"); + else { Debug.LogError("Head tracker not found"); yield break; } if (LeftHandTrackingPoint != null) LeftHandTrackingPoint.TargetTransform.parent = handTrackerRoot; - else throw new Exception("Left hand tracker not found"); + else { Debug.LogError("Left hand tracker not found"); yield break; } if (RightHandTrackingPoint != null) RightHandTrackingPoint.TargetTransform.parent = handTrackerRoot; - else throw new Exception("Right hand tracker not found"); + else { Debug.LogError("Right hand tracker not found"); yield break; } if (PelvisTrackingPoint != null) PelvisTrackingPoint.TargetTransform.parent = footTrackerRoot; if (LeftFootTrackingPoint != null) LeftFootTrackingPoint.TargetTransform.parent = footTrackerRoot; if (RightFootTrackingPoint != null) RightFootTrackingPoint.TargetTransform.parent = footTrackerRoot; diff --git a/Assets/Scripts/ControlWPFWindow.cs b/Assets/Scripts/ControlWPFWindow.cs index 6a125d79..8777e34b 100644 --- a/Assets/Scripts/ControlWPFWindow.cs +++ b/Assets/Scripts/ControlWPFWindow.cs @@ -1883,33 +1883,36 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) Settings.Current.rightKneeTracker = StoreTransform.Create(rightKneeTracker?.TargetTransform); - var calibratedLeftHandTransform = leftHandTracker.TargetTransform?.GetChild(0); - var calibratedRightHandTransform = rightHandTracker.TargetTransform?.GetChild(0); - - leftHandFreeOffsetRotation = new GameObject(nameof(leftHandFreeOffsetRotation)).transform; - rightHandFreeOffsetRotation = new GameObject(nameof(rightHandFreeOffsetRotation)).transform; - leftHandFreeOffsetRotation.SetParent(leftHandTracker?.TargetTransform); - rightHandFreeOffsetRotation.SetParent(rightHandTracker?.TargetTransform); - leftHandFreeOffsetRotation.localPosition = Vector3.zero; - leftHandFreeOffsetRotation.localRotation = Quaternion.identity; - leftHandFreeOffsetRotation.localScale = Vector3.one; - rightHandFreeOffsetRotation.localPosition = Vector3.zero; - rightHandFreeOffsetRotation.localRotation = Quaternion.identity; - rightHandFreeOffsetRotation.localScale = Vector3.one; - - leftHandFreeOffsetPosition = new GameObject(nameof(leftHandFreeOffsetPosition)).transform; - rightHandFreeOffsetPosition = new GameObject(nameof(rightHandFreeOffsetPosition)).transform; - leftHandFreeOffsetPosition.SetParent(leftHandFreeOffsetRotation); - rightHandFreeOffsetPosition.SetParent(rightHandFreeOffsetRotation); - leftHandFreeOffsetPosition.localPosition = Vector3.zero; - leftHandFreeOffsetPosition.localRotation = Quaternion.identity; - leftHandFreeOffsetPosition.localScale = Vector3.one; - rightHandFreeOffsetPosition.localPosition = Vector3.zero; - rightHandFreeOffsetPosition.localRotation = Quaternion.identity; - rightHandFreeOffsetPosition.localScale = Vector3.one; - - calibratedLeftHandTransform.parent = leftHandFreeOffsetPosition; - calibratedRightHandTransform.parent = rightHandFreeOffsetPosition; + var calibratedLeftHandTransform = leftHandTracker.TargetTransform?.OfType().FirstOrDefault(); + var calibratedRightHandTransform = rightHandTracker.TargetTransform?.OfType().FirstOrDefault(); + + if (calibratedLeftHandTransform != null && calibratedRightHandTransform != null) + { + leftHandFreeOffsetRotation = new GameObject(nameof(leftHandFreeOffsetRotation)).transform; + rightHandFreeOffsetRotation = new GameObject(nameof(rightHandFreeOffsetRotation)).transform; + leftHandFreeOffsetRotation.SetParent(leftHandTracker?.TargetTransform); + rightHandFreeOffsetRotation.SetParent(rightHandTracker?.TargetTransform); + leftHandFreeOffsetRotation.localPosition = Vector3.zero; + leftHandFreeOffsetRotation.localRotation = Quaternion.identity; + leftHandFreeOffsetRotation.localScale = Vector3.one; + rightHandFreeOffsetRotation.localPosition = Vector3.zero; + rightHandFreeOffsetRotation.localRotation = Quaternion.identity; + rightHandFreeOffsetRotation.localScale = Vector3.one; + + leftHandFreeOffsetPosition = new GameObject(nameof(leftHandFreeOffsetPosition)).transform; + rightHandFreeOffsetPosition = new GameObject(nameof(rightHandFreeOffsetPosition)).transform; + leftHandFreeOffsetPosition.SetParent(leftHandFreeOffsetRotation); + rightHandFreeOffsetPosition.SetParent(rightHandFreeOffsetRotation); + leftHandFreeOffsetPosition.localPosition = Vector3.zero; + leftHandFreeOffsetPosition.localRotation = Quaternion.identity; + leftHandFreeOffsetPosition.localScale = Vector3.one; + rightHandFreeOffsetPosition.localPosition = Vector3.zero; + rightHandFreeOffsetPosition.localRotation = Quaternion.identity; + rightHandFreeOffsetPosition.localScale = Vector3.one; + + calibratedLeftHandTransform.parent = leftHandFreeOffsetPosition; + calibratedRightHandTransform.parent = rightHandFreeOffsetPosition; + } SetHandFreeOffset(); From 0691d5ef88b5e5d1ee29753b4d47a34ef2bf06ca Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 01:14:54 +0900 Subject: [PATCH 021/331] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=AA=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E6=99=82=E3=81=AB?= =?UTF-8?q?TrackerPositions.json=E3=82=92=E5=87=BA=E5=8A=9B=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Avatar/FinalIKCalibrator.cs | 38 ++++++++++++---------- Assets/Scripts/ControlWPFWindow.cs | 23 +++++++++++++ 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/Avatar/FinalIKCalibrator.cs b/Assets/Scripts/Avatar/FinalIKCalibrator.cs index ce2a1a79..3b22c26a 100644 --- a/Assets/Scripts/Avatar/FinalIKCalibrator.cs +++ b/Assets/Scripts/Avatar/FinalIKCalibrator.cs @@ -10,19 +10,20 @@ namespace VMC { -#if UNITY_EDITOR [Serializable] public class TrackerPosition { public Vector3 Position; public Quaternion Rotation; + public ETrackedDeviceClass DeviceClass; public TrackerPosition() { } - public TrackerPosition(Transform source) + public TrackerPosition(TrackingPoint source) { if (source == null) return; - Position = source.position; - Rotation = source.rotation; + Position = source.TargetTransform.position; + Rotation = source.TargetTransform.rotation; + DeviceClass = source.DeviceClass; } } @@ -34,8 +35,11 @@ public class TrackerPositions public TrackerPosition Pelvis; public TrackerPosition LeftFoot; public TrackerPosition RightFoot; + public TrackerPosition LeftElbow; + public TrackerPosition RightElbow; + public TrackerPosition LeftKnee; + public TrackerPosition RightKnee; } -#endif public class FinalIKCalibrator { @@ -50,12 +54,12 @@ public static IEnumerator CalibrateIpose(Transform handTrackerRoot, Transform fo #if UNITY_EDITOR var trackerPositions = new TrackerPositions { - Head = new TrackerPosition(HMDTrackingPoint?.TargetTransform), - LeftHand = new TrackerPosition(LeftHandTrackingPoint?.TargetTransform), - RightHand = new TrackerPosition(RightHandTrackingPoint?.TargetTransform), - Pelvis = new TrackerPosition(PelvisTrackingPoint?.TargetTransform), - LeftFoot = new TrackerPosition(LeftFootTrackingPoint?.TargetTransform), - RightFoot = new TrackerPosition(RightFootTrackingPoint?.TargetTransform), + Head = new TrackerPosition(HMDTrackingPoint), + LeftHand = new TrackerPosition(LeftHandTrackingPoint), + RightHand = new TrackerPosition(RightHandTrackingPoint), + Pelvis = new TrackerPosition(PelvisTrackingPoint), + LeftFoot = new TrackerPosition(LeftFootTrackingPoint), + RightFoot = new TrackerPosition(RightFootTrackingPoint), }; var trackerPositionsJson = JsonUtility.ToJson(trackerPositions); @@ -486,12 +490,12 @@ public static IEnumerator CalibrateTpose(Transform handTrackerRoot, Transform fo #if UNITY_EDITOR var trackerPositions = new TrackerPositions { - Head = new TrackerPosition(HMDTrackingPoint?.TargetTransform), - LeftHand = new TrackerPosition(LeftHandTrackingPoint?.TargetTransform), - RightHand = new TrackerPosition(RightHandTrackingPoint?.TargetTransform), - Pelvis = new TrackerPosition(PelvisTrackingPoint?.TargetTransform), - LeftFoot = new TrackerPosition(LeftFootTrackingPoint?.TargetTransform), - RightFoot = new TrackerPosition(RightFootTrackingPoint?.TargetTransform), + Head = new TrackerPosition(HMDTrackingPoint), + LeftHand = new TrackerPosition(LeftHandTrackingPoint), + RightHand = new TrackerPosition(RightHandTrackingPoint), + Pelvis = new TrackerPosition(PelvisTrackingPoint), + LeftFoot = new TrackerPosition(LeftFootTrackingPoint), + RightFoot = new TrackerPosition(RightFootTrackingPoint), }; var trackerPositionsJson = JsonUtility.ToJson(trackerPositions); diff --git a/Assets/Scripts/ControlWPFWindow.cs b/Assets/Scripts/ControlWPFWindow.cs index 8777e34b..9727ad79 100644 --- a/Assets/Scripts/ControlWPFWindow.cs +++ b/Assets/Scripts/ControlWPFWindow.cs @@ -1882,6 +1882,29 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) Settings.Current.leftKneeTracker = StoreTransform.Create(leftKneeTracker?.TargetTransform); Settings.Current.rightKneeTracker = StoreTransform.Create(rightKneeTracker?.TargetTransform); + var trackerPositions = new TrackerPositions + { + Head = new TrackerPosition(headTracker), + LeftHand = new TrackerPosition(leftHandTracker), + RightHand = new TrackerPosition(rightHandTracker), + Pelvis = new TrackerPosition(bodyTracker), + LeftFoot = new TrackerPosition(leftFootTracker), + RightFoot = new TrackerPosition(rightFootTracker), + LeftElbow = new TrackerPosition(leftElbowTracker), + RightElbow = new TrackerPosition(rightElbowTracker), + LeftKnee = new TrackerPosition(leftKneeTracker), + RightKnee = new TrackerPosition(rightKneeTracker), + }; + + try + { + var trackerPositionsJson = JsonUtility.ToJson(trackerPositions); + string path = Path.GetFullPath(Application.dataPath + "/../TrackerPositions.json"); + var directoryName = Path.GetDirectoryName(path); + if (Directory.Exists(directoryName) == false) Directory.CreateDirectory(directoryName); + File.WriteAllText(path, Json.Serializer.ToReadable(trackerPositionsJson)); + } + catch { } var calibratedLeftHandTransform = leftHandTracker.TargetTransform?.OfType().FirstOrDefault(); var calibratedRightHandTransform = rightHandTracker.TargetTransform?.OfType().FirstOrDefault(); From 8709f60b4db2a02f1ca294be51b44b8f62b0d507 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 01:18:02 +0900 Subject: [PATCH 022/331] v0.52b18 --- Assets/Scenes/VirtualMotionCapture.unity | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scenes/VirtualMotionCapture.unity b/Assets/Scenes/VirtualMotionCapture.unity index 9ad72b23..70a34fba 100644 --- a/Assets/Scenes/VirtualMotionCapture.unity +++ b/Assets/Scenes/VirtualMotionCapture.unity @@ -2382,7 +2382,7 @@ MonoBehaviour: m_EditorClassIdentifier: IsBeta: 0 IsPreRelease: 0 - VersionString: v0.52f1r1b17 + VersionString: v0.52f1r1b18 LeftWristTransform: {fileID: 0} RightWristTransform: {fileID: 0} CalibrationCamera: {fileID: 1312323656} From 3bcf395ed7d22ce5f091d7b11fddfeedcf4d1f76 Mon Sep 17 00:00:00 2001 From: sh_akira Date: Tue, 15 Nov 2022 21:27:05 +0900 Subject: [PATCH 023/331] =?UTF-8?q?=E3=83=88=E3=83=A9=E3=83=83=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E4=BD=8D=E7=BD=AE=E3=81=AF=E3=82=AD=E3=83=A3=E3=83=AA?= =?UTF-8?q?=E3=83=96=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E5=89=8D?= =?UTF-8?q?=E3=81=AB=E5=87=BA=E5=8A=9B=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/ControlWPFWindow.cs | 48 +++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Assets/Scripts/ControlWPFWindow.cs b/Assets/Scripts/ControlWPFWindow.cs index 9727ad79..f2f317a9 100644 --- a/Assets/Scripts/ControlWPFWindow.cs +++ b/Assets/Scripts/ControlWPFWindow.cs @@ -1840,6 +1840,30 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) DestroyImmediate(child.gameObject); } + var trackerPositions = new TrackerPositions + { + Head = new TrackerPosition(headTracker), + LeftHand = new TrackerPosition(leftHandTracker), + RightHand = new TrackerPosition(rightHandTracker), + Pelvis = new TrackerPosition(bodyTracker), + LeftFoot = new TrackerPosition(leftFootTracker), + RightFoot = new TrackerPosition(rightFootTracker), + LeftElbow = new TrackerPosition(leftElbowTracker), + RightElbow = new TrackerPosition(rightElbowTracker), + LeftKnee = new TrackerPosition(leftKneeTracker), + RightKnee = new TrackerPosition(rightKneeTracker), + }; + + try + { + var trackerPositionsJson = JsonUtility.ToJson(trackerPositions); + string path = Path.GetFullPath(Application.dataPath + "/../TrackerPositions.json"); + var directoryName = Path.GetDirectoryName(path); + if (Directory.Exists(directoryName) == false) Directory.CreateDirectory(directoryName); + File.WriteAllText(path, Json.Serializer.ToReadable(trackerPositionsJson)); + } + catch { } + if (calibrateType == PipeCommands.CalibrateType.Default) { yield return FinalIKCalibrator.CalibrateIpose(HandTrackerRoot, PelvisTrackerRoot, vrik, settings, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker, leftElbowTracker, rightElbowTracker, leftKneeTracker, rightKneeTracker, generatedObject); @@ -1882,30 +1906,6 @@ public IEnumerator Calibrate(PipeCommands.CalibrateType calibrateType) Settings.Current.leftKneeTracker = StoreTransform.Create(leftKneeTracker?.TargetTransform); Settings.Current.rightKneeTracker = StoreTransform.Create(rightKneeTracker?.TargetTransform); - var trackerPositions = new TrackerPositions - { - Head = new TrackerPosition(headTracker), - LeftHand = new TrackerPosition(leftHandTracker), - RightHand = new TrackerPosition(rightHandTracker), - Pelvis = new TrackerPosition(bodyTracker), - LeftFoot = new TrackerPosition(leftFootTracker), - RightFoot = new TrackerPosition(rightFootTracker), - LeftElbow = new TrackerPosition(leftElbowTracker), - RightElbow = new TrackerPosition(rightElbowTracker), - LeftKnee = new TrackerPosition(leftKneeTracker), - RightKnee = new TrackerPosition(rightKneeTracker), - }; - - try - { - var trackerPositionsJson = JsonUtility.ToJson(trackerPositions); - string path = Path.GetFullPath(Application.dataPath + "/../TrackerPositions.json"); - var directoryName = Path.GetDirectoryName(path); - if (Directory.Exists(directoryName) == false) Directory.CreateDirectory(directoryName); - File.WriteAllText(path, Json.Serializer.ToReadable(trackerPositionsJson)); - } - catch { } - var calibratedLeftHandTransform = leftHandTracker.TargetTransform?.OfType().FirstOrDefault(); var calibratedRightHandTransform = rightHandTracker.TargetTransform?.OfType().FirstOrDefault(); From 691806ede446033b9493c718e617eca1d3cd0b1c Mon Sep 17 00:00:00 2001 From: sh_akira Date: Sun, 20 Nov 2022 01:10:43 +0900 Subject: [PATCH 024/331] Support VIVE Focus 3 Eye Tracker / Facial Tracker --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index febb111a..bf26bac5 100644 --- a/README.md +++ b/README.md @@ -501,7 +501,7 @@ Ver 0.02 以上のようなフォルダになるように各アセットをインポートしてください。 アイトラッキングが不要な場合Assets\Scripts\EyeTrackingフォルダとLipTrackingフォルダを削除します アイトラッキング対応する場合は - ・ViveSR([Vive-SRanipal-Unity-Plugin.unitypackage](https://hub.vive.com/en-US/profile/material-download)) SDK_v1.3.1.1.zip内 + ・ViveSR([Vive-SRanipal-Unity-Plugin.unitypackage](https://developer.vive.com/resources/vive-sense/eye-and-facial-tracking-sdk/download/latest/)) SDK-v1.3.6.6.zip内  ・Tobii([tobii-unity-sdk-4.0.6.unitypackage](https://developer.tobii.com/pc-gaming/unity-sdk/getting-started/)) tobii/developer zoneからインポート(インポートしたままフォルダは移動しないでください) 以上の二つをインポート ※face2vmcなどを使って外部からのモーションを受信する場合にアイトラッキング対応をすると、モーションが競合して目のアニメーションが正常に動作しない場合があります。外部からのモーション受信をする場合はアイトラッキング対応をしないことを推奨します。 From 5f254a977599a2484c3c48a625e0bb4be256ebde Mon Sep 17 00:00:00 2001 From: sh_akira Date: Sun, 20 Nov 2022 01:10:56 +0900 Subject: [PATCH 025/331] Update UI --- .../EyeTracking_ViveProEyeSettingWindow.xaml | 4 ++-- ControlWindowWPF/ControlWindowWPF/SettingWindow.xaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ControlWindowWPF/ControlWindowWPF/EyeTracking_ViveProEyeSettingWindow.xaml b/ControlWindowWPF/ControlWindowWPF/EyeTracking_ViveProEyeSettingWindow.xaml index f46b82eb..f63c7219 100644 --- a/ControlWindowWPF/ControlWindowWPF/EyeTracking_ViveProEyeSettingWindow.xaml +++ b/ControlWindowWPF/ControlWindowWPF/EyeTracking_ViveProEyeSettingWindow.xaml @@ -5,9 +5,9 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:VirtualMotionCaptureControlPanel" mc:Ignorable="d" - Title="EyeTracking VIVE Pro Eye/Droolon F1" Width="400" SizeToContent="Height" Loaded="Window_Loaded"> + Title="EyeTracking VIVE Pro Eye/Focus 3/Droolon F1" Width="400" SizeToContent="Height" Loaded="Window_Loaded"> - + diff --git a/ControlWindowWPF/ControlWindowWPF/SettingWindow.xaml b/ControlWindowWPF/ControlWindowWPF/SettingWindow.xaml index 124eb4ee..41fec6c7 100644 --- a/ControlWindowWPF/ControlWindowWPF/SettingWindow.xaml +++ b/ControlWindowWPF/ControlWindowWPF/SettingWindow.xaml @@ -101,12 +101,12 @@ - +