OpenFunscripter - a scripting tool - 3.2.0 release

1 of the debugging tools i would prefer is that when you update the script, and detects 2 points on the same timestamp, what timestamp that actualy was. That way you can look at the script to see what can potentialy cause the error in the script. Now you realy need to guess the potential causes.

I also wanted something like this, or like a way to find points that are close within a certain time threshold (like less than 30ms or 20ms).
Ideally, there could be a button to just average the points here as well.
Example:
image

could become:
image

I find that Iā€™m not the only one that makes this mistake or like adding an extra point that shouldnā€™t be there, in between the beginning and end of a stroke.

example:
image

1 Like

Clears all nodes that are placed within 15ms (0.015s) of each other. I havent made it so you can dynamicly adjust, or only applies that to the selected part of the script. But thats because its not realy needed.

If needed you can just edit the code (there is only 1 line where the edit is needed).

Note, it always removes the point afterward (as that keeps the timing of the movement the same)

1 Like

Canā€™t seem to get it to work.
It seems like the points have to literally be on each other, but 2 points literally on each other are cancelled out already with OFS.
I made two points that are both at the same vertical level, but 3ms apart from each other horizontally, and it wonā€™t delete them.

Apparently i made it already that it only considers the selected area. Had been a while since i used it, and since it was just a once purpose script didnt pay too much attention to it.

This is very useful.

Just edit this line in the script if you want to change the distance,
if action.pos == action_prev.pos and action.at - action_prev.at < 0.015 then

Before:

After:

Note though, if your script looks like that, you might want to use OFSā€™s built in simplifyer instead. Thats just way too many nodes to begin with. In this case the handy will very likely mimic a vibrating motion rather than a smooth one.

My script was more ment for some limited situations where most of the script is fine, but some nodes were erroneous and you quickly want to get rid of those. But that example looks like a live recording, and my plugin isnt going to make that usable by simply removing duplicates.

Hey, check out my newly released OFS v3 extension enabling way more detailed statistics for the GUI!

4 Likes

Iā€™ve tried to update from (working) version 2 to version 3.2.0, and it wonā€™t run.
Iā€™m using the non avx build.
Iā€™ve uninstalled, rebooted, updated Nvidia drivers, tried the installer and the zip file, nada.
Just a spinning circle for 5 seconds, then nothing.
Earlier, someone mentions that thereā€™s possibly an issue with MPV-2.dll, and suggests replacing with a renamed MPV-1.dll, but that doesnā€™t help.
I did see on github, thereā€™s discussion that mpv-2 uses the AVX processor extensions. I donā€™t know if thatā€™s the issue.

The log file is empty, and thatā€™s the only file in the ā€˜OFS3_dataā€™ folder.

Has anyone found the issue or a workaround?

Edit - additional information:
Intel Core i5-3450S, step E1.
HWiNFO64 says that AVX is supported. Base level, not FMA. No AVX-2 or -512
SIMD 4.1 and 4.2 supported
GPU GTX960, and OpenGL is supported
OS is Windows 7 (ultimate 64 bit)

Hello I had a question please forgive me I know nothing about programming so if this is asking the world tell me to heck off but I had a genuine question.
So I figured out that when mapping cock heroes itā€™s easier to just watch the video once and hit zero every time a beat passes and then go back through and put a dot in the middle of the two beats is there a way that this program could automate that second half
Basically having a feature where you put down two dots and then the computer figures out what the middle of the two dots is and places the peak
image
you put the points down on the beats/notes and the program figures the mid point between them
I also apologize if this is not the proper way to ask/recommend things / itā€™s probably already in the program and Iā€™m just a dingus and havenā€™t figured it out yet lol

So, also not a programmer here but avid Linux user. Would love to try and get this working on Linux (Gentoo) but I donā€™t know how you even compile it. I can see it uses CMake but I donā€™t know the commands needed or what dir you should be in to do the CMake. Anyone have any pointers for me?

Sorry for the newbie questionā€¦

hi i cant get 3.2.0 to work. if i download the exe files at the install it says v1.0.0 and wont start up after install and the zip files dont do anything at all for me. v2.0.0 works fine tho.

is this a problem in the files or just something that i dont get?

Its a plugin :slight_smile:

Got it figured out (kinda):
From the GitHub page:

  1. Clone the repository
  2. cd "OpenFunscripter"
  3. git submodule update --init
  4. Run CMake and compile

With step 4, go in to the src directory then do ā€œcmake ..ā€ (thatā€™s two periods after cmake) and it will start to build.

The build is failing with localization errors but at least I have something to work with now :wink:

What software did you install to do that? I assume you installed CMake and maybe Clang?

GCC and cmake.

I missed Step 5 - run ā€œmakeā€ after the cmake portion has finished.

If you are able to try it, please let me know if it fails for you also around the 85% mark with localization errors. I donā€™t know how to fix it, though.

@LeGrosFromage It turned out to be much easier than I initially thought.

I decided to install Visual Studio 2022 Community edition and made sure to select C++ desktop development and also made sure that CMake was selected to be installed in the optional modules for C++.

After that I simply connected to git, cloned the repo and then Iā€™m a bit unsure what I did. I doubled clicked on showing Folder View in the Solution Explorer and suddenly CMake was running, downloading and possibly building stuff. Once that was done I simply did an ordinary Build All in Visual Studio and voila, OFS was built and it was possible to run OpenFunscripter.exe from the OFS/bin folder. My first C++ build in over a decade btw :slight_smile:

However, I guess this doesnā€™t help you since you want to build it for Linux. There is an option in the Visual Studio installer called Linux Development with C++, but that feature is dependent on either a remote Linux machine or the Windows subsystem for Linux. The build will be done in Linux, which must be configured with gcc, gdp, rsync, zip and ninja-build according to the documentaiton.

@sentinel Yeah Iā€™m using Gentoo so Iā€™m building code all the time (everything in Gentoo is done from source). The ā€œmakeā€ portion runs fine until I get to this:

[ 82%] Building CXX object localization/CMakeFiles/gen_localization.dir/gen_localization.cpp.o
/home/phil/Downloads/OFS/localization/gen_localization.cpp:10:6: error: ā€˜ColIdxā€™ has not been declared
   10 | enum ColIdx :: uint32_t
      |      ^~~~~~
/home/phil/Downloads/OFS/localization/gen_localization.cpp:11:1: error: expected unqualified-id before ā€˜{ā€™ token
   11 | {
      | ^
/home/phil/Downloads/OFS/localization/gen_localization.cpp: In function ā€˜void write_src_file(FILE*, rapidcsv::Document&)ā€™:
/home/phil/Downloads/OFS/localization/gen_localization.cpp:62:16: error: ā€˜ColIdxā€™ has not been declared
   62 |     fwrite(row[ColIdx::Default].data(), 1, row[ColIdx::Default].size(), src);

I donā€™t know how to fix that and based on other experiences with other programs in the past, Iā€™m reluctant to ask for help on Github as the answer usually is ā€œthereā€™s a Windows binary, just use thatā€

So near but yet, so far.

That double colon :: in the enum declaration on line 10 should not be there. It should be a single :

It only has a single colon on github, so I guess another one must have magically appeared in your source tree?

Ha, that was my attempt at a bug fix. With the one colon, as in the source code, it also produces this error:

[ 82%] Building CXX object localization/CMakeFiles/gen_localization.dir/gen_localization.cpp.o
/home/phil/Downloads/OFS/localization/gen_localization.cpp:10:13: error: found ā€˜:ā€™ in nested-name-specifier, expected ā€˜::ā€™
   10 | enum ColIdx : uint32_t
      |             ^
      |             ::
/home/phil/Downloads/OFS/localization/gen_localization.cpp:10:6: error: ā€˜ColIdxā€™ has not been declared
   10 | enum ColIdx : uint32_t

Note now the expected ā€˜::ā€™