So I’m just now getting into scripting videos. Mostly animations with simple/uniform movements. The two I’ve done so far seem basically synced up, but I was wondering:
When scripting strokes, is it better to put a point at the first frame where they reach the top or bottom, or do you put it at the last frame before they start moving up or down? Like in some videos, the top/down positions stay the same for 2-4 frames before movement. Would you have a point at the 1st or 4th?
Not authoritative on this but I’d guess you could just keep the movement pegged at the spot where they stop moving, re-add the point in the same spot if it’s enough frames (4 would probably be enough) so it functions more as a pause and then resume like normal
are you working from an i-frame’d version? That is so important if you want your scripts to line up to the video.
It’s best to put the point at the frame where they reach the top or bottom/where the direction of movement changes.
If there is a short “pause” at the top or bottom, I’d recommend NOT putting in a pause, but to make a slight script movement until the motion resumes.
For example. If there is a insertion thrust, pause, then a pullout, I’d script it something like 90-0-10-90.
90 - at the start of the thrust
0 - at the bottom of the thrust where the pause starts
10 - pause ends, and where the pull-out starts
90 - pull-out completes
Allowing the toy to stay “still” is a no-no, and feels really weird unless it is a very long intentional pause.
So if I’m understanding correctly, instead of the stroke being 90-0-90, you’d do 90-0-10-90? That kinda leads into another question I had. When does it make sense to include middle points instead of just two for each stroke?
are you working from an i-frame’d version? That is so important if you want your scripts to line up to the video.
What is an “i-framed version” in this context?
Also, if you don’t mind answering, how do you usually go about adding vibrations? I’ve been doing alternating strokes of 0-10-0 or 0-20-0, but I’m not sure if there’s a better way to go about it. And it’s a lot harder to judge how accurate a vibration is vs. a stroke.
Yes, that will emulate the pause without feeling as awkward as a real pause. Think of real sex, there is so much organic “noise” going on that there isn’t ever really a true pause.
If the stroke dramatically changes velocity, then you’ll want to add a middle point to reflect. Typically just a top and bottom point will take care of most strokes. Remember that the device doesn’t magically/instantly move to each point, you’re just giving it instructions that it’s trying to follow. In other words, toys either by mechanical or software means, will smooth out your instructions, so you don’t need to be ultra detailed. The placement and timing of the points is much more important than trying to script the EXACT movement.
i-framed version is the #1 most important thing to accurately script. Normal videos are encoded/compressed by the usage of b and p frames. This allows the encoder to store CHANGES between these frames and reduce the size of the video. It’s the reason that we’re able to get high quality video at lower file sizes. This is baaaad for trying to increment through a file 1 frame at a time though as you’ll get inconsistent frame-by-frame seeking since the player needs to jump between b and p frames. Converting a video to ALL i-frames allows you to easily go frame-by-frame and script more accurately. The Funexpander tool has a simple one-click utility to convert a video into i-frames. It’s at the bottom right of the interface and is SUPER important to use.
I’d also like to add that scripting HFR/interpolated videos is also extremely beneficial. It helps you place points more accurately AND increases your accuracy by 2x. For example, if you place a point 1 frame off in a 30 fps video, that would be 33 milliseconds incorrect. If you place a point 1 frame off in a 60fps video, that would be only 16.5 milliseconds incorrect. It isn’t a step that many scripters take, but I always work from HFR’ed videos.
I’m not a huge fan of vibrations personally. Partly because every toy’s capabilities differ. Scripting vibrations that feel good on your toy may be completely skipped/muted by other toys OR play more “honestly/accurately” and be ultra jarring and overly-intense on others. If you’re just scripting for yourself, then you’ll have to experiment with the spacing AND the delta of your points to determine what your specific toy is actually capable of replicating.