드리프트 보정과 동기화 타이밍

AutoScript Sync가 funscript 동기화 드리프트를 처리하는 방식은 기기 경로에 따라 다릅니다. Autoblow AI Ultra는 업로드된 스크립트를 자체 시계로 재생하므로, 앱은 1.5~5초마다 영상과 대조해 어긋나면 보정하거나 다시 시작합니다. Intiface 기기는 PC의 시계에 따라 점 하나하나씩 구동되며 드리프트 보정 루프가 없습니다. DeoVR에서는 헤드셋의 시계가 기준이 됩니다. 아래 내용은 모두 앱 코드에서 가져온 앱의 규칙입니다. 측정된 동기화 정확도가 아닙니다: 지연이나 드리프트 측정값은 공개된 적이 없습니다.

2026년 9월 21일에 앱의 코드와 대조해 확인했습니다.

모든 것이 따르는 시계

데스크톱에서는 영상이 앱 안에 내장된 VLC 플레이어로 재생됩니다. 약 33 ms마다(대략 초당 30회) 앱이 VLC의 재생 시간을 동기화 엔진에 전달하며, 그 시간이 각 기기 경로의 기준이 됩니다. DeoVR 세션에서는 아래 설명처럼 헤드셋이 보고하는 시간이 그 역할을 대신하도록 되어 있습니다.

경로별로 시간을 맞추는 방법
경로스크립트를 가진 쪽지연 허용치드리프트 보정
Autoblow AI Ultra(클라우드)기기(한 번 업로드한 뒤)시작할 때마다 측정된 왕복 지연의 절반예, 1.5–5초마다
Intiface / Buttplug, 주 기기PC, 점 하나하나씩 전송없음없음. 재생, 탐색, 설정 변경 시 다시 기준을 잡음
Meta Quest의 DeoVR기기 경로에 따라 다름해당 기기와 동일Autoblow의 경우, 약 1초에 한 번 들어오는 헤드셋 시계를 기준으로

실제 하드웨어로 테스트한 것은 Autoblow AI Ultra뿐입니다. Intiface 기기와 DeoVR 경로는 모의 서버나 가상 기기로 테스트했습니다.

Autoblow AI Ultra: 한 번 업로드한 뒤 보정

Ultra는 Autoblow 클라우드를 통해서만 제어되며, PC가 직접 연결하는 일은 없고, 재생하는 동안 둘 다 인터넷에 연결되어 있어야 합니다. 앱은 위치를 실시간으로 스트리밍하지 않습니다. 대신:

  1. 연결한 뒤 앱은 상태 요청 네 번의 왕복 지연을 평균 내어 API N ms로 표시합니다.
  2. Send Script to Device가 기기에 맞춘 스크립트를 한 번 업로드합니다. 그 후에는 Ultra가 스크립트 전체를 스스로 재생합니다.
  3. 재생하면 앱은 현재 영상 시간에 측정된 왕복 지연의 절반을 더한 지점에서 기기를 시작합니다. 일시정지하면 기기를 멈춥니다.
  4. 탐색하면 새 시간에 역시 왕복 지연의 절반을 더한 지점에서 기기를 다시 시작하고, 200 ms 동안 드리프트 검사를 보류합니다.
  5. 재생 중에는 아래와 같이 드리프트 루프가 기기 자체의 스크립트 시계를 영상과 비교합니다.

재생 중에 앱은 왕복 지연의 평활 평균과 지터 추정치를 유지하며, 시작하거나 다시 시작할 때마다 그 절반을 사용합니다.

드리프트 루프

드리프트는 Autoblow의 상태 엔드포인트에서 읽은 기기의 스크립트 시간에서 영상 시간을 뺀 값입니다. 첫 검사는 재생이나 탐색 후 약 1초 뒤에 이루어집니다. 그 후 루프는 3초 간격으로 시작하고, 보정이 있으면 1.5초로 줄이며, 문제없는 검사마다 0.5초씩 늘려 최대 5초까지 넓힙니다.

Autoblow drift tiers Drift from 0 to 80 ms is left alone. From 80 to 350 ms it is trimmed through the script offset, at most 40 ms per check and 250 ms in total. Above 350 ms the device is restarted at the video position plus half the round trip. Left alone Trimmed through the offset Restart 0 ms 80 ms 350 ms Drift between the device's script clock and the video Trim: 60% of the drift per check, ≤ 40 ms a step, ≤ 250 ms in total Restart at video time + ½ round trip
두 가지 드리프트 단계는 코드 상수이며, 기기에서 측정한 동작이 아닙니다.

루프가 물러나는 경우

  • API 여유가 적을 때. Autoblow의 응답에는 속도 제한 헤더가 들어 있습니다. 남은 호출이 5회 이하로 표시되면 드리프트 검사를 건너뜁니다. Autoblow는 구체적인 제한 수치를 문서화하지 않았습니다.
  • 기기 자체 패턴. Ultra가 내장 패턴, 오실레이트 모드, 또는 지정 위치 이동을 실행하는 동안에는 드리프트 검사가 멈춥니다. 앱이 이유를 알려 주며, 스크립트를 다시 보내면 동기화로 돌아갑니다.
  • 연결 끊김. 위치 이동, 동기화 시작, 오실레이트 설정이 실패하면 연결이 재연결 상태로 바뀌고 백그라운드 감시자가 5초마다 다시 시도합니다. 재생 도중 복구되면 앱이 스스로 기기를 영상에 다시 맞춥니다.
  • 아직 스크립트를 보내지 않았을 때. Send Script to Device를 사용하기 전에 재생하면, 앱은 초당 약 4회의 위치 명령으로 대체하고 Streaming positions (fallback mode)를 표시합니다. 이는 거칠며, 매끄러운 동기화에는 업로드가 필요합니다.

한 가지 상호작용은 테스트되지 않았습니다. 보정은 Offset 설정과 같은 기기 오프셋을 통해 이루어지는데, 드리프트 측정값은 그 오프셋을 고려하지 않습니다. 오프셋이 적용된 뒤 Ultra가 스크립트 시간을 어떻게 보고하느냐에 따라, 보정이 다음 측정값에 반영되는지, 또는 350 ms보다 큰 Offset 자체가 드리프트로 읽혀 재시작을 일으킬 수 있는지가 결정됩니다. 테스트 기기는 오프셋을 무시하므로 어느 경우도 확인되지 않았습니다. 기기 측 내용은 Autoblow AI Ultra 페이지를 참고하세요.

Intiface 기기: PC에서 타이밍 제어

Intiface와 Buttplug로 연결되는 기기는 로컬 WebSocket을 통해 PC에서 실시간으로 구동됩니다. 아무것도 업로드되지 않습니다. 스트로커의 경우 스크립트의 각 점이 하나의 LinearCmd가 되며, 그 지속 시간은 다음 점까지의 시간(최소 30 ms)이므로 기기가 점 사이를 스스로 매끄럽게 움직입니다. 위치 액추에이터가 있는 기기에는 대신 위치 값이 전달됩니다.

타이밍은 재생이나 탐색을 누른 순간부터 PC의 시계로 실행되며, Offset만큼 옮겨집니다. 재생, 탐색, 설정 변경 때만 영상에 다시 기준을 맞추고 그 외에는 맞추지 않습니다: 주 Intiface 기기에는 지연 측정도 드리프트 루프도 없습니다. 코드는 로컬 연결에서의 드리프트를 무시할 만한 수준으로 취급합니다. 그 결과, 재생 도중 영상이 멈추거나 버퍼링되면 다음에 재생, 탐색, 설정 변경을 할 때까지 주 기기가 다시 맞춰지지 않습니다.

다음 업데이트에서는 두 번째 기기가 주 기기와 함께 영상을 따라갈 수 있습니다. 영상과 함께 시작, 정지, 탐색하고, 2초마다 검사되며, 400 ms 넘게 어긋나면 재생 위치에서 다시 시작됩니다. 현재 출시된 앱에서는 두 번째 슬롯을 수동으로 조작합니다.

Intiface 경로는 모의 서버와 실제 엔진 위의 가상 기기로 테스트했으며, 실제 토이로는 테스트하지 않았습니다. The Handy, Kiiroo, Lovense, OSR2/SR6 기기는 아직 저희가 실제 하드웨어로 테스트하지 않았습니다.

DeoVR를 이용한 VR: 헤드셋의 시계가 기준

VR의 경우 앱은 Meta Quest용으로 작성된 DeoVR의 Remote Control과 함께 동작합니다. TCP 포트 23554로 DeoVR에 연결하고, 불러온 영상을 로컬 네트워크의 포트 8942로 헤드셋에 제공하며, DeoVR가 보고하는 재생 시간에 따라 기기를 구동합니다. 헤드셋에서의 재생, 일시정지, 탐색이 그대로 반영되며, 보고된 시간이 900 ms 넘게 건너뛰면 탐색으로 간주합니다. 먼저 기기가 연결되어 있어야 합니다.

DeoVR는 약 1초에 한 번 시계를 보고하며, 앱은 보고 사이를 채우지 않습니다. Autoblow 스크립트가 재생 중일 때 드리프트 검사는 그 시계를 기준으로 실행되므로, 350 ms 재시작 기준에 대해 최대 약 1초 전의 시간과 기기를 비교할 수 있습니다. 헤드셋 세션 중에도 데스크톱 플레이어의 타이머가 VLC의 시간을 동기화 엔진에 계속 전달하는데, 이것이 헤드셋의 시계와 간섭할 수 있는지는 확인하지 않았습니다. 헤드셋 경로는 실제 헤드셋이 아닌 모의 DeoVR로만 테스트했습니다.

Offset 설정

Offset은 직접 설정하는 유일한 타이밍 조절 항목입니다. 기기가 늦게 느껴지면 올리세요.

범위
−5000~+5000 ms, 50 ms 단위. 새로 설치하면 0.
영상별
영상마다 저장되며, 최대 200개 영상까지 가장 오래된 것부터 삭제되고, 그 영상을 열면 복원됩니다. 저장된 값이 없는 영상은 마지막으로 사용한 Offset을 그대로 씁니다.
적용 대상
Autoblow, Intiface, 두 번째 기기 경로 모두 동일합니다. 기기별 오프셋은 따로 없습니다.
Autoblow에서
Autoblow의 동기화 스크립트 오프셋 명령을 통해 드리프트 보정과 함께 기기에 적용됩니다. 앱에서는 양수 값이 기기를 더 이르게 만드는 것으로 표시됩니다.

측정되지 않은 것

실제 달성된 동기화의 측정 기록은 없습니다: 실제 세션에서의 Autoblow 왕복 지연, 드리프트, 시작 오프셋도 없고, Intiface나 DeoVR에 대한 기록도 없습니다. 이 페이지와 Autoblow 페이지의 기준값은 앱이 목표로 하는 것이지, 실제로 달성하는 것이 아닙니다. AutoScript Sync 스크린샷에서 보았을 수 있는 지연이나 드리프트 수치는 기기에서 읽은 값이 아니라 이미지에 입력된 것입니다. 무엇을 측정했고 무엇을 측정하지 않았는지는 벤치마크 페이지에 정리되어 있습니다.

질문

기기가 늦게 느껴집니다. 무엇을 바꿔야 하나요?

알맞게 느껴질 때까지 Offset을 50 ms씩 올리세요. 값은 그 영상에 저장되어 다음에 열 때 복원됩니다.

긴 영상에서 Intiface 기기가 점점 어긋납니다. 왜 그런가요?

주 Intiface 기기는 마지막 재생이나 탐색 시점부터 PC의 타이머로 실행되며 드리프트 루프가 없습니다. 일시정지 후 재생하거나 탐색하면 영상에 다시 맞춰집니다.

Offset을 바꾼 뒤 Autoblow에 스크립트를 다시 보내야 하나요?

아니요. Offset은 재생 중에 별도의 명령으로 전송됩니다. 스트로크 설정을 바꾸면 기기에 맞춘 스크립트가 달라지므로 다시 업로드해야 합니다.

동기화는 얼마나 정확한가요?

아직 모르며, 짐작하지 않겠습니다. 규칙은 이 페이지에 있지만, 어떤 기기에서도 실제 달성된 지연이나 드리프트를 측정한 기록은 없습니다.

다음 읽을거리

여러분의 영상으로 직접 사용해 보세요

체험판은 하루 동안 여러분의 PC에서 실행됩니다. 영상은 로컬에서 분석되며 절대 업로드되지 않습니다.