End goal to have a way to record and stream light weight data for interfaces and actions. Using Bezier curves can give us ways to optimize resolution and give extra control to players after recording.
Goal to have an optimize way to record and control long automation with the possibility to tweak and optimize data size.
Fist step
Curve block in engine
Make a curve block from the engine that can have points like a spline.
Each point has:
UP value (v)
cursor (t) can be read normalized (0-1)
point index
Recorded length can be varied or cap
Interpolation style per point(bezier) and point controllers
The players block can be recorded or set modified by hand. if recorded, there is resolution option that adds more or less points.
Second step
That can take a stream input and a write or read event
Cursor has switch where can be running with time or set manual)
there is a button and a event to add new points
and knob to set values custom (t, v, interpolation)
bonus points if the values how ad can be move like a slider. t, left to right, v up and down
(this image is old, will modify soon)
R input will send the up value from the cursor
there is a switch to make time base or unit (0-1) base. time is set by default
write has a button and a jolt input that will read the value and set add or overwrite the value that is there.
Really nice to have
add a jolt input to set the index of extra curves inside the same block. so you can switch between different curves inside the same block. but if this is adding not much optimization and too much overhead, we can experiment with multiple blocks.
Goal, to test ways to record interfaces and figure out what is the best confirmation for different cases before going to next step of integrating curves
Thirds step.
select a subset of worlds from desktop and automate the actions from the player in desktop using new system instead of ghosts.