Motion Tracking Funscript Generator v0.5.x

Python Funscript Editor

Introduction

Simple Funscript Editor written in Python with an motion tracking add-on to partially automate the generation of funscripts for static video scenes like VR Videos.

Getting Started

OpenFunscripter (OFS) from @gagax123 is currently the best tool to create funscripts. Therefore i create a lua script to integrate the Motion Tracking Funscript Generator (MTFG) Add-On into OFS. If you are new to scripting, i recommend to fist check out @Husky’s video series How to script in OpenFunScripter.

Once you are familiar with the basic functions of OFS you are ready to install the MTFG Add-On. To get started using the Add-On, I recommend reading the following articles:

MTFG Installation

Contribute

The code is on GitHub. If you want to contribute to the project and make it better, your help is very welcome. This also includes instructions and howtos to help other users.

Changelog

v0.0.x
  • v0.0.1 - 2021.06.20 - First release
  • v0.0.2 - 2021.06.23 - Adjustments for Windows
  • v0.0.3 - 2021.06.24 - OFS Integration for Windows version
  • v0.0.4 - 2021.06.26 - Adjustments and extensions
  • v0.0.5 - 2021.06.27 - Use new projection method for VR Videos
  • v0.0.6 - 2021.07.03 - Reimplement preview scaling
  • v0.0.7 - 2021.07.04 - Improve change point detection
  • v0.0.8 - 2021.08.01 - Add Settings Dialog
  • v0.0.9 - 2021.09.10 - Add supervised Tracking
v0.1.x
  • v0.1.0 - 2021.10.30 - Add OFS Extension Installer
  • v0.1.1 - 2021.10.30 - Fix v0.1.0 for Windows.
  • v0.1.2 - 2021.11.03 - Fix Logging
  • v0.1.3 - 2021.11.03 - Remove delayed tracking lost
  • v0.1.4 - 2021.11.03 - Fix tracking lost cause freeze
  • v0.1.5 - 2021.11.04 - Unlock all Video Projections
  • v0.1.6 - 2021.11.13 - Improve processing speed
  • v0.1.7 - 2021.11.24 - Persistent Settings Dialog
v0.2.x
  • v0.2.0 - 2022.02.06 - Add supervised ignore tracking
  • v0.2.1 - 2022.02.17 - Fix Projection names with brackets
  • v0.2.2 - 2022.02.25 - Add low resolution VR-Videos Support
  • v0.2.3 - 2022.03.07 - Fix “to many open files” in OFS lua extension
  • v0.2.4 - 2022.03.19 - Increase default FFmpeg timeout
  • v0.2.5 - 2022.04.20 - Improve prediction for fast actions
v0.3.x
  • v0.3.0 - 2022.06.08 - Add Multiaxis output
  • v0.3.1 - 2022.06.09 - Fix error in distance minimization algorithm
  • v0.3.2 - 2022.06.27 - Improve roll prediction
  • v0.3.3 - 2022.07.16 - Code Freeze for OFS 1.4.4
v0.4.x
  • v0.4.0 - 2022.07.16 - First Release for OFS 2
  • v0.4.1 - 2022.08.15 - Improve MTFG Lua wrapper script
  • v0.4.2 - 2022.12.23 - Add OFS3 support to the installer
v0.5.x
  • v0.5.0 - 2023.01.13 - Interactive Post Processing Menu
  • v0.5.1 - 2023.01.22 - Option to re-import with different post processing parameter
  • v0.5.2 - 2023.06.11 - Add distance metric to multi-axis menu
  • v0.5.3 - 2024.01.28 - Open post processing window maximized
  • v0.5.4 - 2024.02.04 - Persistent Post Progressing UI Parameter
279 Likes
How to script in OpenFunScripter - video tutorial
Better results with the motion tracking tool
JoyFunScripter 0.13.1 - Make your own scripts!
Alternate script creation methods/software?
Any advice to pitch roll scripting?
OFS Need Help With MTFG
SexLikeReal AI scripting tool
Ai Software to creates Scripts based by beat sounds?
What is your Script Editor of choice to make scripts?
Automated python funscript generator
Best AI tool for scripting?
Attempting My First Script
How to make script with Motion Tracking Funscript Generator
AI - whats the state for non commercial scripting?
What devices/sleeves/apps do you use? I need all popular options for a poll
The Definite Poll [2025] [new users read results] - Devices, Sleeves, Apps, everything
Convert to CFR before scripting, if you please?
What devices/sleeves/apps do you use? I need all popular options for a poll
:robot: FunGen - AI-Powered Funscript Generation - VR & 2D POV - Join the Discord
PythonDancer - A port of FunscriptDancer to Python
About AI projects
Scripting Timelapse - Harusame VR
MultiFunPlayer v1.33.10 - Multi-axis funscript player with SLR & FapTap support
Multi Axis AI? Tips, Tricks, Secrets?
What devices/sleeves/apps do you use? I need all popular options for a poll
Scripts for Thejerkoffgames?
OpenFunscripter - another scripting tool - 2.0.0 release
Anyone know of a Script Maker App for Mac OSX?
How to script in OpenFunScripter - video tutorial
Need help finding a piece of software
Question for openfunscripter and JFS
What are some tools or tips that you would have for fellow scripters?
OpenFunscripter - another scripting tool - 2.0.0 release
OpenFunscripter - a scripting tool - 3.2.0 release
[OFS] [MTFG] Most efficient way to rebase a portion of script?
Adult time are killing it!
OpenFunscripter 3.2.0 For MacOS
I wanna know, scripters
Any user friendly AI script generators?
I have a question for the Scripters out there (I need your help)
Gifs of pose estimation on vr video
Computer viison/AI to create funscript
[Guide] What Is the OSR2 / SR6 / SSR1 and How Do I Get One?

Looking good, thanks :+1:

I am no programmer, but I am always happy to see development in this area - especially funscript generation.

1 Like

Oh no! Got an Error. Looking forward to Testing this out.

Python3.9.4 (tags/v3.9.4:1f2e308, Apr 6 2021, 13:40:21) [MSC v.1928 64 bit (AMD64)]
\NVIDIA was unexpected at this time.

1 Like

@ZarackB assume it is about the Windows release version: I think it has something to do with setting the PATH variable. To test this theory it would be helpful if you could post your PATH variable here. I suspect that e.g. quotation marks are included.

Just open a cmd window and type echo %PATH% + Enter and post the output.

If you have some PC experience you can have a look at the file App/Scripts/start_script.cmd where the error should occur. e.g. you could replace the whole script with this:

@echo off
SET "PATH=%PYTHONPATH%\Scripts;%PATH%"
SET "PATH=%CD%\App\mpv;%PATH%"
cd Code && python -B main.py

Unfortunately I can’t test this properly from my side because I use linux as my main system and have windows only in a KVM.

1 Like

Wow, this could be a game changer! I hope this topic gets more traction. I know there are a lot of good devs on this board.

I have Conda installed on my machine (which I believe foolproof sets the Python PATH for you) and the GUI launched fine on my Windows machine.

Took me a sec to realize that it was Ctrl + G to launch the wizard function to select a male and female box but once I get that up it legit tracked both incredibly well. I don’t have my device to test the quality but this could at the very least produce insanely easy rough drafts.

Incredible!

EDIT: How do I get the media play bar (with the play button, seek bar, duration, etc.) to pop up like in your demo vid?

This is awesome News! Great! Do You think You could extend the Algorythm to make a separate Script for x-Movement? that way You could make a Base Script for one of the other Axis for OSR also.

Wow I just had a look to the demo video it’s crazy. I’m actually switching from launch to OSR2+. I’m not an expert in python but I will probably be able to have a look at this and add it to the actual app if no one tried it first. I’m sure that this tool to track static camera scene + manual scripting for more complexe parts will able to create good script really fast. Great job @mchyxnaaiorxfwrivv

1 Like

Same question

If this works, you will be the biggest scripting hero since the creators of JFS and OFS. Are you open to suggestions?

EDIT: I can get it to run, but there is no seek bar UI so I can’t move to different points in the video. This is my commnad line output, if it helps:

Python3.9.4 (tags/v3.9.4:1f2e308, Apr 6 2021, 13:40:21) [MSC v.1928 64 bit (AMD64)]
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
‘doskey’ is not recognized as an internal or external command,
operable program or batch file.
qt.qpa.fonts: Unable to open default EUDC font: “C:\WINDOWS\FONTS\EUDC.TTE”

Could that font not opening have something to do with the lack of a seek bar?

@jackb8911 Unfortunately the mouse events are not forwarded to the embedded mpv video player at Windows. I don’t have a good solution for this at the moment. For now, I’ve added a simple workaround to the repository to pass the mouse events from the parent Qt window to the embedded video player, but they don’t work reliably and have dropouts (see github). Therefore the workaround is disabled by default. The easiest solution would be to simply use a Linux operating system.

If you have some programming experience you can also try the OFS integration. This eliminates the need for the player. But for this you have to set up the project in a Python environment, because in the current Windows release version cannot pass command line parameters.

I have a python environment set up on my windows machine, I have no idea how to set this app project up in a python environment, but I’m pretty determined to find out how to do it!

Zero programming skills, no idea how to run this at all, but I’m mighty intrigued. Hoping a more user-friendly version is ready some day!

2 Likes

As what I see if the UI improve a bit to manipulate video and points (for windows in my case) it will be usable really fast. The tracking is already really good. It’s just the video manipulation and script editing that have to improve. Or an easy integration in OFS

1 Like

Second this. I’ve tested it out without the seek bar and it does great work but is near impossible to use this way. I haven’t been able to figure out how to use the OFS integration/python installation as it stands.

If this project gets an easy integration with OFS, everything about scripting changes from that point onward. It’ll be a whole new world!

Okey I’m working on an hybride script half this tool half frame by frame and I will try to use this tool on this video who have a lot of scene matching with tracking

https://www.porntrex.com/video/673520/czechvrcrazyfetish-e146

working well but I can’t try it actually I have to get an OSR xD

How are you moving through the video without video controls? Tips would be appreciated!

I’m making fo example first part of BJ frame by frame with OFS then export funscript, make a copie of the projet and open it with the tracking tool (this part have to be improved I dont know why but OFS wont open teh script sometimes) then move with the shortcut to the last point on the script (use the tracking until the next position then close and reopen with OFS (this part is strange I have to open the video as a new project each time) make some adjustment on transition between scenes then continue.

Also I have to select all the point generated and move the top points upper and the bottom point lower because they are locked between 80 and 20.