I’ve completed an initial test integration of reactional into my game, and have identified one area where it does not work so well for my use case.
In my use case, I imported a piece of classical music, divided into a parts A, B, C, and D. I set the engine to play Part A, and expected it to progress through B, C, and D before looping back to A. But Reactional treats each Part in a Theme as a self contained track, and will loop the current Part endlessly.
I was able to solve this in the short term by creating a “Whole” Part that encompasses the entire piece. However, in the future I want to be able to tell the system to progress to, say, Part C after the current part completes, If I did this currently in code, I think I would need to be careful with the timing, to make sure that the transition did not happen before the current part concludes, and Part C would begin to loop instead of progressing to Part D.
I haven’t yet experimented with the Progress block, but from what I understand, I don’t think it fits my use case, or would require me to create a lot of Progress macros and an external logic system to switch them on and off.
The Requested Feature:
The smallest viable version of the feature would be this: Allow me to create a playlist of Parts in Reactional Composer, and create API methods to let me start the Theme playlist in unity and queue up a jump to a specific place in the playlist (after the current Part finishes playing).
Long term, I encourage the team to think about building a visual state machine editor for Reactional projects to allow for logically controlled flow through sequences of parts. Something similar to the animation state graphs used by game engines. The Rive Engine is a great example a state graph feature adds reactivity to a temporal media management system. I suspect that Rive might become a dominant 2D animation tool in the game’s industry, largely do to its inclusion of its state graph feature.
I recognize that a state machine editor would be a large project, but I wanted to throw it out there since I think it would put the software significantly ahead of any competing software that lacked this feature.