Blender Animation to Funscript

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.


Link : Blender Animation To Funscript by Funscriptor

14 Likes
  1. Normal (single funscript), Multi-axis (stroke + 2 extra axes), or both
  2. Axis suffixes of your choice: roll, pitch, twist, yaw, sway, surge

I don’t get why it’s possible to choose only 3 axis?

Personally, I don’t know exactly how to make axes beyond the basic three work on an adult toy. I own a Handy myself, so when it came to the multi-axis part, I just followed what I could read about it online. That’s why I limited myself to the X, Y, and Z axes; I honestly don’t know how a Blender add-on could automatically detect things like vibration or suction anyway. The goal here is simply to faithfully replicate what is happening on screen using X, Y, and Z coordinates

On the other hand, I’m pretty happy to see that if a hand is placed on the male character penis and massages in different rotational directions, for example, it reproduces perfectly in OFS. As for the multi-axis feature, I tested everything directly with OFS.

I have a FunOsr Pro so only 4 axis: stroke, pitch, roll and twist.
It doesn’t have sway or surge, but they are position unlike vibration and suction, so it should be possible to create axis of those, not that I’m interested on those.
But I would like the 4 that I said earlier, is it possible?

Someone is going to release a software for converting vmd (for mmd) into multi-axis script
Maybe you can check it to se if you can use some of their code (should be partially vibed?)

1 Like

Oh, okay, I see. Right now, there are only three funscripts running at the same time. I’ll look into how to get four running, especially by checking out the project you mentioned, but I can’t guarantee anything.

Oh wow thats amazing! Im currently working on a game in my spare time that im going to add funscript integration into once its done and this just makes it 10x easier. Ill be sure to drop you in the credits

1 Like

Oh, congratulations! I hope it comes out soon! Yes, that way you can quickly get funscripts based on the animations you create :)

1 Like