Blender Animation To Funscript is a Blender add-on that reads the movement of your animated characters and converts it into ready-to-use .funscript files. It is built for creators who make erotic CGI scenes in Blender and want accurate, synchronized scripts for linear or 3-axis connected devices, without hand-scripting each stroke.
Link : Blender Animation To Funscript by Funscriptor
You animate your scene as usual. The add-on measures how one body part moves along another, then generates the script.
What it does
Choose a target (the part being measured, e.g. a body part or an object) and a coverer (the part that moves along it, e.g. a hand, mouth or pelvis). The add-on tracks the coverer’s position along axes placed on the target and exports a funscript that follows the motion frame by frame.
Works with two characters, or many more: foreplay, positions, any interaction between any body parts.
Note: VRMBatchImport.py: an add-on included in the project that imports multiple VRM characters at once (provided the standard VRM importer is installed in Blender), correctly separating each character within the hierarchy—unlike the basic VRM importer.
Features
Flexible selection: pick exactly what you want
- Bones, vertex groups, individual faces (Edit mode), whole objects, or entire characters
- Child bones can be included in one click (hand with all its fingers, for example)
- Live 3D highlight of the selected zones, so you can check what is measured
Made for VRM characters
- One-click presets for hands, feet, pelvis, chest, buttocks, head, mouth/jaw
- Each preset can add the zone alone, with related bones, with faces, or both
- Also works with any other rig through bones, vertex groups and faces
Segments (fragments) for multi-scene animations
- Split your animation into segments, each with its own frame range, target, coverer and axes
- Different behavior per scene, but one single funscript at the end
- Color-coded highlights directly in the timeline, duplicate and reorder fragments, choose what happens between them (return to rest or hold the last value)
3D axes you control
- Axes are real Blender objects: move, rotate and scale them with G / R / S
- Arrows show where 0 and 100 are; swap them or auto-fit them to the target
- The axis can follow the target (movement, rotation, scale) through the whole animation
- Optional base mode to measure a part relative to the one it is attached to
Multi-axis export
-
Normal (single funscript), Multi-axis (stroke + 2 extra axes), or both
-
File naming follows the usual video-matching convention, compatible with OpenFunscripter (OFS)
-
Optional rotation-to-pitch/roll for hand twisting movements
Clean, device-safe output
- Adjustable maximum speed (500 units/s by default)
- Ramer-Douglas-Peucker simplification like in OFS, or keep full detail
- Timing control: centered, early or late transitions
- No more than 2 identical consecutive points, optional straight start/end
- A generation report tells you the point count and measured max speed, and flags any rule that was broken
Preview before you export
- 2D simulator in the 3D viewport corner, synced with the timeline
- 3D simulator in the scene: a flexible rod and a sleeve showing stroke, roll and pitch
- An animated curve is created so you can inspect the result in the Graph Editor
Easy to use
- Step-by-step guided workflow with an on-screen guide in the viewport
- Built-in tutorial and contextual help
- Progress bar, Esc to cancel, and the original frame is restored afterwards
- Interface in English and French
Requirements
- Blender 4.2 or newer (works with recent versions, including Blender 5.2)
- Characters animated in Blender (VRM characters recommended for the quick presets)
- A funscript-compatible player or device setup (not included)
Good to know
- You are in control of the animation quality; the script follows what you animate.
- Fully editable: everything is a normal Blender object or setting, and the result can be refined further in OFS.




