You can think of the units as percent of the total stroke range. So 1 unit = total range divided by 100. You can think of it as a distance.
Duration is the time duration of the action. So it’s the time it takes to go from the first action to a second action. It is just a time and is measured in (milli-) seconds [ms].
The speed is just distance divided by time. So units/s. so if an action goes from 20 to 80 and takes 600 ms, the speed would be (80-20)/(600/1000) = 100 units/s.
Let’s make an extreme case:
The top example makes no sense. There is no new information for the stroker compared with the lower one. In this case the acceleration (change in speed) is actually zero. So just making the boundary actions is enough and the device and player will interpolate anything in between. The upper version means more work for the scripter, and a higher data rate which can overwhelm a device without any gains compared to the lower one. Also it’s more impractical to handle (bigger size, which I think is also a limit for theHandy, and is more for OFS to handle).
At the risk of over-complicating things, let’s give an example, where I used as little as possible but as many as necessary:
This is from a blowjob scene, where she stays low for a while (to a standstill at a point), then comes up and slows down around the tip and thrusts down again.
- The part where she is low and almost at a standstill, I have set the first point where direction reverses. The torque change there can be felt.
- The second point is set with a minimal speed for that low part and timed when she clearly starts moving upwards. This is to pre-tension the sleeve which feels better overall and this addition of torque at point 2 can be felt clearly as a “take-off”.
- Then when she slows down (some might even say stops moving up and just pitches her head) I set the third point. It is not at 100 % in this case to ease in the movement and put stress on the take-off, which happens at point 4 and 100%.
- Again at point 5 she arrives at the bottom and I ease in the movement for a more pronounced take-off at point 6. (If you look at point 1, I did the opposite, where I wanted the arrival to be more pronounced.)
Are there more speed changes in between these points? Yes, but those aren’t significant enough to be felt, so I leave them out. As you can see, there is a significant speed change at every action. And more importantly, the timing of the actions is not set to a grid of every x amount of frames, but only at the frames, where things change. This allows for a more realistic feel, without overwhelming the device or taking too much (unnecessary) time and bloating the script. Of course if you want to add more decorations like vibrations at the bottom for example, this is your prerogative. These would be additional significant speed changes and movements. But I decided against anything like that in this example.
Of course there is a lot of room for creativity in what you can do to suit your style, this is just how I do it and I believe that inserting unnecessary points is more technical than style.
Naturally this isn’t an extensive guide or anything. There are also OFS extensions to help with some things, like limiting the speed by vertically moving the actions, but I won’t open that box as well
Also you can find beginner “how to script” tutorials if you search on the forum, that are very helpful when starting out.
I hope this makes clear what I wanted to convey and feel free to ask, if something is unclear. Happy scripting!