I believe the most elegant solution would be to add Spine support right into Rhubarb. I'm prepared to do that, but I'd like some feedback first. Here are my thoughts:
Typically, people have an existing character in Spine and want to add dialog animations to it. So rather than generating a new Spine file from scratch, the user should specify an existing Spine JSON file. This file should contain a rigged skeleton with a slot for the mouth. This slot contains multiple image attachments for the various mouth shapes.
The user would now call Rhubarb with a WAVE file and the existing Spine JSON file. Rhubarb would then generate a new Spine JSON file that's a copy of the original. In addition, it contains a new animation that's named after the WAVE file, with a prefix like "say_". So If you call Rhubarb with a recording named "hi_there.wav", you'd get a new animation called "say_hi_there".
I think this would be pretty straightforward to implement. But I'm new to Spine, so I'm not sure if it's the best solution from a user perspective. Please comment:
Is the behavior I describe above what you're looking for? Is there a better approach?