I’m working on a webgl cartoon project that requires dozens of character animations and sounds to play in succession. Previously, I did this in Blend4Web (see here). If anyone is familiar, it had a logic node that allowed you to play the entire NLA timeline, which made it easy to animate character interactions and time events.
Does anyone know if Armory has similar functionality? Let me know if you have other workflow ideas.
Hi, I don’t think that Armory has a node specifically for this, but you can achieve the same using the
Play Action From node. It has a
Done output that’s activated when the animation finishes, so you can either connect it to another action node or combine it with some other logic to get the next entry from an array of action names and play that. Behind the scenes, action sockets just hold string values so you should be able to use a string array, even though it’s a rather ugly workaround.
Untested (!) example, the variable
CurrentActionIndex is initialized to 0:
I didn’t implement any logic to check whether the end of the array is reached, it’s just about the general principle. For sounds, you can use the
Done output of the
Play Sound node.
If you want to suggest a different node for the functionality you need, feel free to open a feature request on GitHub
Thanks @timodriaan. I think this is an elegant solution compared to having a long line of Play Action Nodes. The short comings may be that if you wanted to blend two animations together such as a walking and a talking animation you would need custom logic for that one bit. I suppose after that you could start another array.
Another issue might be previewing the animations from a certain point. With a timeline you can easily scrub through to check all is in sync, but logic nodes would require you to preview from the beginning and tweak timer nodes to get the timing just right.
I’ll probably have to just give it a go and see how the workflow takes shape. I’ll also put it in the feature request. I’m still open to other ideas or feedback.
If/when you find a solution that works for you, write down some of the details of how you did it, so that @Armory_3D_Community can make (or host) a tutorial for it. This sounds like something that could benefit a lot of people.
I’m still ‘R and D-ing’ this. One idea we’ve been tossing around is to use action markers as triggers for other actions. I haven’t had a chance to try this out yet. I’ll post an update if I get anywhere.
I’ve also posted a feature request here if anyone is interested in discussing Non Linear Animation support.