Fix : 로코코 옵티 스크립트 시스템 업데이트

This commit is contained in:
qsxft258@gmail.com 2025-11-29 19:28:15 +09:00
parent fe8211693e
commit 63950e63d6
29 changed files with 76 additions and 1 deletions

View File

@ -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]) {

View File

@ -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);

Binary file not shown.

Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:816498d40aca6a7060d48313bd1946b20553894715095670b14192d4639bdce5
3 size 549783

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -0,0 +1 @@
^C:\USERS\USER\DOCUMENTS\STREAMINGLE_URP\OPTITRACK ROKOKO GLOVE\ROKOKOGLOVEDEVICE\EXAMPLEGLOVEDATA.CSV

View File

@ -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

View File

@ -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\|

Binary file not shown.

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ProjectOutputs>
<ProjectOutput>
<FullPath>c:\Users\user\Documents\Streamingle_URP\Optitrack Rokoko Glove\RokokoGloveDevice\x64\Release\RokokoGloveDevice.dll</FullPath>
</ProjectOutput>
</ProjectOutputs>
<ContentFiles />
<SatelliteDlls />
<NonRecipeFileRefs />
</Project>

Binary file not shown.

Binary file not shown.