funscript란 무엇인가요?
funscript는 JSON으로 작성된 작은 텍스트 파일로, 시간에 따른 위치를 나열합니다: 영상의 몇 밀리초 지점에서 0에서 100 사이의 어느 위치에 있어야 하는지. 플레이어는 영상과 함께 이를 읽어 연결된 기기를 포인트에서 포인트로 움직이므로, 기기가 화면 속 움직임을 따라갑니다.
2026년 9월 21일에 앱의 코드와 대조해 확인했습니다.
파일 안에 들어 있는 것
funscript의 핵심은 actions라는 목록입니다. 각 액션은 한 쌍의 숫자입니다:
at- 포인트의 시간으로, 영상 시작부터의 밀리초 단위 정수입니다.
pos- 그 순간 기기가 있어야 할 위치로, 0에서 100까지의 정수입니다.
액션 주변에는 몇 가지 헤더 필드가 있습니다. version은 형식 버전으로, 보통 "1.0"입니다. inverted는 위치를 뒤집어 읽어야 하는지를 나타냅니다. range는 보통 100입니다. metadata는 어떤 프로그램이 만들었는지 등 스크립트에 대한 정보를 담는 자유 형식 객체입니다. 챕터나 메모 같은 다른 키가 들어 있는 파일도 많으며, 각 키는 필드별 형식 참고 자료에서 다룹니다.
관례상 액션은 시간순으로 정렬되며, 같은 at을 가진 액션은 없습니다. 고정된 빈도는 없습니다. 포인트는 움직임이 방향을 바꾸는 곳마다 놓이므로, 느린 장면에는 포인트가 적고 빠른 장면에는 많습니다.
아주 작은 예시
영상의 처음 1.5초 동안 두 번의 완전한 스트로크:
{
"version": "1.0",
"inverted": false,
"range": 100,
"metadata": {},
"actions": [
{"at": 0, "pos": 10},
{"at": 400, "pos": 90},
{"at": 800, "pos": 10},
{"at": 1200, "pos": 90},
{"at": 1600, "pos": 10}
]
}
이렇게 읽습니다: 10에서 시작해 0.4초에 90에 도달하고, 0.8초에 다시 10으로 돌아오는 식입니다. 그 사이 기기의 모든 움직임은 플레이어나 기기가 채웁니다.
플레이어와 기기의 사용 방식
일반적인 관례는 스크립트를 영상과 같은 폴더에 같은 기본 이름으로 두는 것입니다: scene.mp4와 scene.funscript. AutoScript Sync는 양방향으로 이 관례를 따릅니다. 영상을 열면 옆에 있는 같은 이름의 .funscript를 자동으로 불러오고, 생성이 끝난 스크립트도 그곳에 저장됩니다.
영상이 재생되는 동안 플레이어는 자체 시계를 읽고, 영상이 도달하는 시점에 맞춰 기기를 다음 포인트로 보냅니다. 그 방식은 기기에 따라 다릅니다. AutoScript Sync에는 두 가지 경로가 있습니다.
Autoblow AI Ultra: 기기가 스크립트를 직접 재생
Send Script to Device를 누르면 앱이 스크립트를 Ultra의 한계에 맞춘 뒤 Autoblow의 클라우드를 통해 한 번 업로드합니다. 그 후에는 시작, 정지, 오프셋 명령만 보내며, 1.5~5초마다 기기의 재생 시간을 영상과 비교해 드리프트를 보정합니다. PC와 Ultra 모두 인터넷이 필요합니다. 자세한 내용은 Autoblow AI Ultra 페이지에 있습니다. 저희가 실제 하드웨어에서 테스트한 유일한 기기입니다.
Intiface를 통한 스트로커: 포인트 단위로 스트리밍
Intiface로 연결된 스트로커의 경우, 앱은 각 포인트를 다음 포인트에 도달하도록 시간이 맞춰진 움직임으로 보내며, 재생이나 탐색을 누른 순간부터 PC의 시계를 기준으로 실행합니다. 아무것도 업로드되지 않으며, 이 경로에는 지연 측정이나 드리프트 보정이 없습니다. 릴리스된 앱에서 이 기기들은 다듬어지지 않은 스크립트를 받습니다. 여러분의 스트로크 설정과 기기의 속도 제한은 다음 업데이트부터 적용됩니다. Intiface 호환성 페이지에서 다룹니다. 이 경로는 모의 서버와 시뮬레이션 기기로 테스트했으며, 아직 실제 스트로커에서는 테스트하지 않았습니다.
어느 경우든, 기기가 영상과 어긋나게 느껴지면 Offset 설정 하나로 기기를 영상보다 앞당기거나 늦출 수 있습니다.
스크립트는 어디서 오는가
두 가지 출처가 있으며, funscript 만드는 방법 가이드에서 둘을 비교합니다.
- 수작업. OpenFunscripter 같은 funscript 편집기에서 영상을 조금씩 넘기며 움직임이 방향을 바꿀 때마다 포인트를 놓습니다. 느리며, 작업하는 사람의 정확도만큼 정확합니다.
- 영상에서 생성. AutoScript Sync 같은 소프트웨어가 영상을 분석해 포인트를 작성합니다. AutoScript Sync는 이 모든 작업을 여러분의 PC에서 합니다: 샘플링한 프레임에서 옵티컬 플로우로 움직임을 측정하고, 선택적으로 자세 모델과 깊이 모델을 더하며, 움직임이 반전될 때마다 포인트를 놓고, 결과를 영상 옆에 표준
.funscript로 저장합니다. 제공 내용은 funscript 생성기 페이지에서 설명합니다.
어느 방법으로 만든 스크립트든 같은 종류의 파일입니다. AutoScript Sync는 다른 도구로 만든 스크립트도 Load Funscript…, 드래그 앤 드롭으로 열 수 있고, 영상 옆에 있으면 자동으로 엽니다.
funscript가 아닌 것
- 영상이 아닙니다. 파일에는 이미지, 소리, 프레임이 없고 숫자와 몇 개의 텍스트 필드만 있습니다. 만들 때 사용한 영상 없이는 쓸모가 없으며, 정확히 그 편집본에만 맞습니다. 다시 편집하거나 잘라낸 사본에서는 모든 포인트가 어긋납니다.
- 특정 기기에 묶여 있지 않습니다. 위치는 0에서 100이며, 밀리미터나 모터 단계가 아닙니다. AutoScript Sync는 파일을 기기에 맞추지 않은 채 저장합니다. 릴리스된 앱에서는 Autoblow AI Ultra에 업로드할 때만 사본을 기기의 속도 제한에 맞추며, Intiface 기기는 저장된 스크립트를 그대로 재생하고, 같은 방식의 맞춤은 다음 업데이트에서 제공됩니다.
- 항상 익명인 것은 아닙니다.
metadata객체에는 어떤 프로그램이 파일을 만들었는지 등이 담길 수 있습니다. AutoScript Sync가 생성한 스크립트에는 2초 구간마다의 장면 유형 라벨을 포함한 분석 정보가 들어 있으므로, 공유하기 전에 메타데이터를 확인하세요. 앱은 기기에 업로드하는 파일에서는 이를 제거합니다.
질문
funscript를 텍스트 편집기에서 열 수 있나요?
네. 일반 JSON 텍스트입니다. 메모장으로도 볼 수 있으며, funscript 검사기는 업로드하지 않고 브라우저에서 올바른 형식인지 알려 주고 그래프로도 보여 줍니다.
AutoScript Sync에서 다운로드했거나 직접 만든 스크립트도 재생되나요?
네. Load Funscript…로 불러오거나, 창에 끌어다 놓거나, 영상 이름으로 바꿔 같은 폴더에 두세요. 그러면 생성한 스크립트처럼 Autoblow AI Ultra나 Intiface 기기에서 재생됩니다.
스크립트를 만들거나 재생할 때 앱이 영상을 업로드하나요?
아니요. 영상 분석은 여러분의 PC에서 실행되며 영상은 절대 인터넷으로 전송되지 않습니다. Autoblow AI Ultra를 사용하면 기기에 맞춘 스크립트가 분석 메타데이터를 뺀 채로 Autoblow의 클라우드에 업로드됩니다. 이 기기가 스크립트를 재생하는 방식이 그렇기 때문입니다. Intiface 기기에서는 아무것도 업로드되지 않습니다.
AutoScript Sync의 스크립트를 다른 플레이어에서 쓸 수 있나요?
저장된 파일은 표준 funscript JSON이므로, 이 형식을 읽는 어떤 프로그램에서든 열 수 있습니다. File → Export Script (as played)는 스트로크 범위, 강도, 반전, 스트로크 깊이 설정을 적용한 사본도 작성하므로, 다른 플레이어에서도 같은 느낌을 받을 수 있습니다.
다음 읽을거리
- funscript 만드는 방법편집기에서 직접 만들거나 영상에서 생성한 뒤, 확인하고 기기에서 시험해 봅니다.
- 형식의 모든 필드AutoScript Sync가 읽어 들인 파일을 어떻게 복구하는지를 포함한 전체 참고 자료.
- 스크립트가 제대로 재생되지 않을 때늦게 움직이는 기기, 연결 문제, 불러와지지 않는 파일.
- 모든 알아보기 페이지이 가이드들의 허브.
여러분의 영상으로 스크립트를 만들어 보세요
AutoScript Sync는 여러분의 PC에서 영상으로 funscript를 생성합니다. 체험판은 하루 동안 쓰는 전체 앱입니다.