diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveAdapterSingleton.cpp b/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveAdapterSingleton.cpp index 051b90b7..4b6f7d95 100644 --- a/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveAdapterSingleton.cpp +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveAdapterSingleton.cpp @@ -1178,7 +1178,23 @@ void OptiTrackPluginDevices::ExampleDevice::ExampleGloveAdapterSingleton::Calcul sFingerNode wristRotation; GetWristRotation(body, handSide, wristRotation); // body 파라미터 사용 sFingerNode parentRotation = wristRotation; // 첫 번째 손가락 관절의 부모는 손목 - + + // 🧪 테스트 O: 엄지손가락인 경우, 손목에 X축 -20도 오프셋 적용 + bool isThumb = (startIndex == 0); + if (isThumb) { + // X축 기준 -20도 오프셋 + // cos(10°) = 0.985, sin(-10°) = -0.174 + sFingerNode thumbWristOffset; + thumbWristOffset.quat_w = 0.985f; // cos(20°/2) = cos(10°) + thumbWristOffset.quat_x = -0.174f; // X축 기준 -20도 + thumbWristOffset.quat_y = 0.0f; + thumbWristOffset.quat_z = 0.0f; + + sFingerNode adjustedWrist; + MultiplyQuaternions(wristRotation, thumbWristOffset, adjustedWrist); + parentRotation = adjustedWrist; + } + // 각 관절별로 부모 기준 로컬 로테이션 계산 for (int i = 0; i < 3 && (startIndex + i) < outputNodes.size(); i++) { if (i < fingerJoints.size() && fingerJoints[i]) { diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveDevice.cpp b/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveDevice.cpp index dbb24ec1..b4ce6721 100644 --- a/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveDevice.cpp +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/ExampleGloveDevice.cpp @@ -234,6 +234,14 @@ unsigned long OptiTrackPluginDevices::ExampleDevice::ExampleGloveDevice::DoColle GetProperty(kEnabledPropName, isDeviceEnabled); if (!isDeviceEnabled) continue; + // 🎬 Playback 모드일 때는 라이브 데이터 수집 건너뛰기 + // Motive가 녹화된 프레임 데이터를 직접 사용함 + AppRunMode runMode = DeviceManager()->HostRunMode(); + if (runMode == AppRunMode::RunMode_Playback) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + continue; + } + // Poll latest glove data from the adapter sGloveDeviceData t_data; bool isGloveDataAvailable = gGloveAdapter->GetLatestData(mDeviceInfo.gloveId, t_data); diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveAdapterSingleton.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveAdapterSingleton.obj new file mode 100644 index 00000000..4849eda9 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveAdapterSingleton.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc7506226c06f6efe6b98d3c61f285b001c37aa7596c3f9652ae97829a541480 +size 4488778 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveData.csv b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveData.csv new file mode 100644 index 00000000..21e484c7 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveData.csv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:816498d40aca6a7060d48313bd1946b20553894715095670b14192d4639bdce5 +size 549783 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveDevice.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveDevice.obj new file mode 100644 index 00000000..0ef4e9c0 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/ExampleGloveDevice.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d4257fbde3a29991ffb0a9183f91a7fa5ac410823fc00f2f65be4f5f5f8816c +size 3535988 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/GloveDeviceBase.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/GloveDeviceBase.obj new file mode 100644 index 00000000..34035758 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/GloveDeviceBase.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56344bbde0ae7877d517f832771eef718e67ee63fe289db33bb3ac0a7fc649d8 +size 728390 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/LZ4Wrapper.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/LZ4Wrapper.obj new file mode 100644 index 00000000..2f9645fb --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/LZ4Wrapper.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea3d5290719d8d658f41da8518c86d5b0706c577b2bbd546e6e4bfc50fbc519d +size 408510 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataConverter.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataConverter.obj new file mode 100644 index 00000000..dacea0e4 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataConverter.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153a003e2dcf17f91d8df50f60c3187c700b986b9d948a204fa14206d30687aa +size 1218193 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataParser.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataParser.obj new file mode 100644 index 00000000..71af07a9 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoDataParser.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d66795bd5fcca346d3eaba2d01f1d2fc829425b0a4efab8294d9d749478d087d +size 3619110 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.command.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.command.1.tlog new file mode 100644 index 00000000..3000d441 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.command.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.read.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.read.1.tlog new file mode 100644 index 00000000..e0e555ab Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.read.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.write.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.write.1.tlog new file mode 100644 index 00000000..955b687a Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CL.write.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.command.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.command.1.tlog new file mode 100644 index 00000000..ea3b8d64 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.command.1.tlog @@ -0,0 +1,2 @@ +^C:\USERS\USER\DOCUMENTS\STREAMINGLE_URP\OPTITRACK ROKOKO GLOVE\ROKOKOGLOVEDEVICE\EXAMPLEGLOVEDATA.CSV +c:\Users\user\Documents\Streamingle_URP\Optitrack Rokoko Glove\RokokoGloveDevice\x64\Release\ExampleGloveData.csv diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.read.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.read.1.tlog new file mode 100644 index 00000000..91d479f4 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.read.1.tlog @@ -0,0 +1 @@ +^C:\USERS\USER\DOCUMENTS\STREAMINGLE_URP\OPTITRACK ROKOKO GLOVE\ROKOKOGLOVEDEVICE\EXAMPLEGLOVEDATA.CSV diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.write.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.write.1.tlog new file mode 100644 index 00000000..1754a0be --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/CopyFile.write.1.tlog @@ -0,0 +1,2 @@ +^C:\USERS\USER\DOCUMENTS\STREAMINGLE_URP\OPTITRACK ROKOKO GLOVE\ROKOKOGLOVEDEVICE\EXAMPLEGLOVEDATA.CSV +C:\USERS\USER\DOCUMENTS\STREAMINGLE_URP\OPTITRACK ROKOKO GLOVE\ROKOKOGLOVEDEVICE\X64\RELEASE\EXAMPLEGLOVEDATA.CSV diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.lastbuildstate b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.lastbuildstate new file mode 100644 index 00000000..2b40880a --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=8.1: +Release|x64|c:\Users\user\Documents\Streamingle_URP\Optitrack Rokoko Glove\RokokoGloveDevice\| diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.write.1u.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.write.1u.tlog new file mode 100644 index 00000000..1613ab7c Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/RokokoGloveDevice.write.1u.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.command.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.command.1.tlog new file mode 100644 index 00000000..53c0fd3f Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.command.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.read.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.read.1.tlog new file mode 100644 index 00000000..4e4f5ae1 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.read.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.write.1.tlog b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.write.1.tlog new file mode 100644 index 00000000..f4fcb4f3 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGl.513E58BC.tlog/link.write.1.tlog differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll new file mode 100644 index 00000000..ef3fc10b --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cfc804e4c051a295886946130e0f235332a45acfb57521e9911fe41ed577312 +size 216576 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll.recipe b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll.recipe new file mode 100644 index 00000000..63e123cc --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.dll.recipe @@ -0,0 +1,11 @@ + + + + + c:\Users\user\Documents\Streamingle_URP\Optitrack Rokoko Glove\RokokoGloveDevice\x64\Release\RokokoGloveDevice.dll + + + + + + \ No newline at end of file diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.exp b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.exp new file mode 100644 index 00000000..8852835e Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.exp differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.iobj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.iobj new file mode 100644 index 00000000..d1e2b4d2 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.iobj differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.ipdb b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.ipdb new file mode 100644 index 00000000..55023ec2 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.ipdb differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.lib b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.lib new file mode 100644 index 00000000..df059f36 Binary files /dev/null and b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.lib differ diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.vcxproj.FileListAbsolute.txt b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.vcxproj.FileListAbsolute.txt new file mode 100644 index 00000000..c0cbb86c --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoGloveDevice.vcxproj.FileListAbsolute.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3c9797811f8510767b976c98db8b9113d092d74b5fa52ca53d7342d923f5455 +size 116 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoUDPReceiver.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoUDPReceiver.obj new file mode 100644 index 00000000..e6b26543 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/RokokoUDPReceiver.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b281f07d4230d358243cccdf99e508c3e25b9baf29498a3714842972cbf78a2e +size 1371865 diff --git a/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/dllmain.obj b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/dllmain.obj new file mode 100644 index 00000000..0cfa8389 --- /dev/null +++ b/Optitrack Rokoko Glove/RokokoGloveDevice/x64/Release/dllmain.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61859a1450fb5230a4af29cb45570543a03695be4055641c886e83e401fda505 +size 3490993