Cutscene questions: Getting objects by name, using empty nodes, changing portraits
Posted: Fri Dec 01, 2023 11:56 pm
Hi there!
I'm getting around to setting up some cutscenes, and after setting up my first one I've got a few questions:
1) Strings in SequencerCommands
Relying on object names in SequencerCommands wigs me out a little bit. I'm scared of changing object names later on and forgetting they're being used by dialogue and then not realizing things are broken. I get that this is a writing tool so it makes sense that things are gonna be hooked up in text rather than through references, but it is very new to me!
Maybe it's just a mindset change but do you have any recommendations on best practices since object naming is important now? Or are there other ways of sequencing cutscenes that rely on object references rather than object names?
I see that you can invoke scene events in a node, but for an action like MoveTo, where I'd want to wait to proceed until that action is done (for example: MoveTo(target, mover, 1)->Message(Next); Continue()@Message(Next);), is there a way I can do that with referenced objects instead of object names?
2) Using Empty Nodes
I want to run a cutscene sequence where a character moves from one point to another, but I don't want to show any text during it. To do that I'm running a sequence in an empty node. Is that the correct way to do that? Also, I run SetContinueMode(false); at the start of the empty node to prevent skipping while there's no text. Is there a way to default to that behavior for all empty nodes, so that I can't skip the moments where there's no text? Also I have SetContinueMode(true); as the default sequence in the DialogueSystemController.
3) Changing actor portraits and also Spine
I want to set a different portrait for one of my actors on certain lines. I've added a few more portrait sprites to his actor's definition in the database. But it looks like the SetPortrait() sequencer command expects a textureName, when I'd expect to just be able to use the desired index of the sprite.
Also - in the same way you can list multiple portrait sprites in an actor's portrait list, does integrating the Spine integration allow you to do the same thing but with Spine animations?
I'm getting around to setting up some cutscenes, and after setting up my first one I've got a few questions:
1) Strings in SequencerCommands
Relying on object names in SequencerCommands wigs me out a little bit. I'm scared of changing object names later on and forgetting they're being used by dialogue and then not realizing things are broken. I get that this is a writing tool so it makes sense that things are gonna be hooked up in text rather than through references, but it is very new to me!
Maybe it's just a mindset change but do you have any recommendations on best practices since object naming is important now? Or are there other ways of sequencing cutscenes that rely on object references rather than object names?
I see that you can invoke scene events in a node, but for an action like MoveTo, where I'd want to wait to proceed until that action is done (for example: MoveTo(target, mover, 1)->Message(Next); Continue()@Message(Next);), is there a way I can do that with referenced objects instead of object names?
2) Using Empty Nodes
I want to run a cutscene sequence where a character moves from one point to another, but I don't want to show any text during it. To do that I'm running a sequence in an empty node. Is that the correct way to do that? Also, I run SetContinueMode(false); at the start of the empty node to prevent skipping while there's no text. Is there a way to default to that behavior for all empty nodes, so that I can't skip the moments where there's no text? Also I have SetContinueMode(true); as the default sequence in the DialogueSystemController.
3) Changing actor portraits and also Spine
I want to set a different portrait for one of my actors on certain lines. I've added a few more portrait sprites to his actor's definition in the database. But it looks like the SetPortrait() sequencer command expects a textureName, when I'd expect to just be able to use the desired index of the sprite.
Also - in the same way you can list multiple portrait sprites in an actor's portrait list, does integrating the Spine integration allow you to do the same thing but with Spine animations?