Feature suggestion (pretty epic IMHO) ^_^
Posted: Wed Mar 21, 2018 8:06 am
Hi there Tony,
It's been a while since I'm using your awesome plugin. It's so powerful that it's almost indecent.
Nevertheless, it just occurred to me that I'm missing one thing above others that regularly pass through my mind...: Sequence commands alias.
Elaborating on what that would be, let me explain how I do things in my game...
Here you have a typical dialogue node for the main character. I'm using PlayMaker throughout the game to make things happen (I'm no coder), so in this case the speaking animation is played by the two first lines (first one starts the angry talking cycle, and the second one stops it). The third and the fourth make the character adopt a given expression when she stops talking.
And this is just for one speaking combination. I could have a lot of things happening in there, like starting another animation at the same time (I have Spine, so I can mix them) or focusing the camera (which is also a non-standard one) on one spot.
Anyway, what I'm doing is copying+pasting node templates to build my events-conversations. There is a problem with that, however...: if at some point, you realize your sequence commands are not correct, or as good as they could be, and want to modify them... well, you'd need to go through EACH of those pasted nodes and replace the appropriate commands by hand. That's awful, of course. But I think I may have an idea to eliminate that inconvenience and make our convo scripting much more flexible and even faster.
Let's imagine we could replace those commands with this...:
...or this...:
If that Alias command could be interpreted like "Search for a node with this title and execute its sequence commands like if you were doing it in this node instead"... that would eliminate the need to manage and debug hundreds of nodes!
The key here would be just parsing the contents of that "remote" Sequence field, so @time/message modifiers could be still understood like if they're local to the calling node, not the "remote" one. That is, @{{end}} commands in that node should be executed when "Go away!" stops playing.
Now, I can foresee this *may* cause some performance problems if those alias titles should be searched for in the entire DB, every time they're needed. Thing is, the ideal case would be referring to them just by their titles AND being able to put all of those alias nodes in one "conversation" specially added for this purpose. But if you think a better approach would be to refer to them by Conversation ID/Node ID, that could also work. Problem with that is that we'd lose the ability to recognize what those aliases do at a glance, and that would be a real hassle.
Maybe a better approach would be to add a specific place/tab to add those alias as if they were multiline text variables.
So what do you think of this? I'm pretty positive it would be a great enhancement, but you're the boss.
Thank for reading!
Ps.: I have another question, somewhat related to this...: could it be possible to add a PlayMaker action to wait for a Sequencer message?
It's been a while since I'm using your awesome plugin. It's so powerful that it's almost indecent.
Nevertheless, it just occurred to me that I'm missing one thing above others that regularly pass through my mind...: Sequence commands alias.
Elaborating on what that would be, let me explain how I do things in my game...
Here you have a typical dialogue node for the main character. I'm using PlayMaker throughout the game to make things happen (I'm no coder), so in this case the speaking animation is played by the two first lines (first one starts the angry talking cycle, and the second one stops it). The third and the fourth make the character adopt a given expression when she stops talking.
And this is just for one speaking combination. I could have a lot of things happening in there, like starting another animation at the same time (I have Spine, so I can mix them) or focusing the camera (which is also a non-standard one) on one spot.
Anyway, what I'm doing is copying+pasting node templates to build my events-conversations. There is a problem with that, however...: if at some point, you realize your sequence commands are not correct, or as good as they could be, and want to modify them... well, you'd need to go through EACH of those pasted nodes and replace the appropriate commands by hand. That's awful, of course. But I think I may have an idea to eliminate that inconvenience and make our convo scripting much more flexible and even faster.
Let's imagine we could replace those commands with this...:
...or this...:
If that Alias command could be interpreted like "Search for a node with this title and execute its sequence commands like if you were doing it in this node instead"... that would eliminate the need to manage and debug hundreds of nodes!
The key here would be just parsing the contents of that "remote" Sequence field, so @time/message modifiers could be still understood like if they're local to the calling node, not the "remote" one. That is, @{{end}} commands in that node should be executed when "Go away!" stops playing.
Now, I can foresee this *may* cause some performance problems if those alias titles should be searched for in the entire DB, every time they're needed. Thing is, the ideal case would be referring to them just by their titles AND being able to put all of those alias nodes in one "conversation" specially added for this purpose. But if you think a better approach would be to refer to them by Conversation ID/Node ID, that could also work. Problem with that is that we'd lose the ability to recognize what those aliases do at a glance, and that would be a real hassle.
Maybe a better approach would be to add a specific place/tab to add those alias as if they were multiline text variables.
So what do you think of this? I'm pretty positive it would be a great enhancement, but you're the boss.
Thank for reading!
Ps.: I have another question, somewhat related to this...: could it be possible to add a PlayMaker action to wait for a Sequencer message?