How do you make the player say something without it being a choice?
How do you make the player say something without it being a choice?
Hello! I haven't even fooled around with the Dialogue system yet, but I have watched half the tutorial videos. I've noticed that each time the player talks, it assumes that you are presented a choice. But what if you just want to have a linear back and forth conversation with someone? How do you get the player character to just say what he's saying without pausing to let the user click on it like a choice? e.g., like the majority of how a visual novel works. There's not much choice options in typical VNs.
Last edited by AoF on Wed May 22, 2019 5:23 pm, edited 1 time in total.
Re: How do you make the player say something without it being a choice?
Hi,
Just untick the Dialogue Manager's Input Settings > Always Force Response Menu and tick Subtitle Settings > Show PC Subtitles During Line.
You can also do this on a per-conversation basis by inspecting the conversation's properties.
And you can do it on a per-dialogue entry node basis by using the [f] and [auto] markup tags. The [f] tag forces it to show a menu, and [auto] forces it to automatically play without showing a menu.
Just untick the Dialogue Manager's Input Settings > Always Force Response Menu and tick Subtitle Settings > Show PC Subtitles During Line.
You can also do this on a per-conversation basis by inspecting the conversation's properties.
And you can do it on a per-dialogue entry node basis by using the [f] and [auto] markup tags. The [f] tag forces it to show a menu, and [auto] forces it to automatically play without showing a menu.
Re: How do you make the player say something without it being a choice?
Great, thank you!
Re: How do you make the player say something without it being a choice?
OK I got around to trying this, and now when I try my dialog it looks like this. This is me pressing space repeatedly:
https://gfycat.com/ FluidDopeyGreatargus
Here's how my conversation looks in the editor:
https://cdn.discordapp.com/attachments/ ... nknown.png
Perhaps it's going through the whole thing without waiting for any input?
Here are some more settings. Maybe I did something wrong? https://cdn.discordapp.com/attachments/ ... nknown.png
EDIT: I swapped in the VN framework (no other changes) and now it looks like this: https://cdn.discordapp.com/attachments/ ... 30/gif.gif
https://gfycat.com/ FluidDopeyGreatargus
Here's how my conversation looks in the editor:
https://cdn.discordapp.com/attachments/ ... nknown.png
Perhaps it's going through the whole thing without waiting for any input?
Here are some more settings. Maybe I did something wrong? https://cdn.discordapp.com/attachments/ ... nknown.png
EDIT: I swapped in the VN framework (no other changes) and now it looks like this: https://cdn.discordapp.com/attachments/ ... 30/gif.gif
Last edited by AoF on Wed May 22, 2019 5:24 pm, edited 1 time in total.
Re: How do you make the player say something without it being a choice?
It certainly looks like it's zipping through the conversation. To confirm, you can temporarily set the Dialogue Manager's Other Settings > Debug Level to Info. This will log the lines that it's playing.
Check the Dialogue Manager's Camera & Cutscene Settings > Default Sequence. Try setting it to:
Or, if you want to require the player to click a continue button to advance, change Subtitle Settings > Continue Button to Always.
Check the Dialogue Manager's Camera & Cutscene Settings > Default Sequence. Try setting it to:
Code: Select all
Delay({{end}})
Re: How do you make the player say something without it being a choice?
https://cdn.discordapp.com/attachments/ ... nknown.png
That warning seems like it's the issue. Any idea on how that could happen? The code compiles fine. Perhaps it's important to know that I installed both Dialogue and Quest system, but I haven't done the step to integrate them yet? I don't know if that's relevant, but I haven't used any of Quest system yet.
I also created my own asmdefs in your code. A root asmdef at plugins, and an asmdef in every Editor directory.
It seemed to have already had that.Check the Dialogue Manager's Camera & Cutscene Settings > Default Sequence. Try setting it to:
Code: Select all
Delay({{end}})
Hm, what I'd like is "click anywhere to continue." Can I achieve that by making the button span the whole screen and not use any sprite renderers, or is there a better way to do that?Or, if you want to require the player to click a continue button to advance, change Subtitle Settings > Continue Button to Always.
UPDATE: I integrated to the two libraries together and still get this warning.
Re: How do you make the player say something without it being a choice?
I think I see the problem here:
That code seems to be assuming that if I'm using asmdefs, they'll be named a certain way.
Code: Select all
private System.Type FindSequencerCommandType(string commandName)
{
if (m_cachedComponentTypes.ContainsKey(commandName))
{
return m_cachedComponentTypes[commandName];
}
else
{
var componentType = FindSequencerCommandType(commandName, "DialogueSystem");
if (componentType == null)
{
componentType = FindSequencerCommandType(commandName, "Assembly-CSharp");
if (componentType == null)
{
componentType = FindSequencerCommandType(commandName, "Assembly-CSharp-firstpass");
}
}
if (componentType != null)
{
m_cachedComponentTypes.Add(commandName, componentType);
}
return componentType;
}
}
private System.Type FindSequencerCommandType(string commandName, string assemblyName)
{
System.Type componentType = FindSequencerCommandType("PixelCrushers.DialogueSystem.SequencerCommands.", commandName, assemblyName);
if (componentType != null) return componentType;
componentType = FindSequencerCommandType("PixelCrushers.DialogueSystem.", commandName, assemblyName);
if (componentType != null) return componentType;
componentType = FindSequencerCommandType(string.Empty, commandName, assemblyName);
return componentType;
}
Re: How do you make the player say something without it being a choice?
Yes. This is to prevent it from trying to search every single assembly, which could have a performance impact on slower devices.
Please use the asmdefs provided with the Dialogue System. Since some people don't want to use asmdefs, they're provided in two unitypackages that you can import:
Plugins / Pixel Crushers / Common / Scripts / CommonAssemblyDefinitions.unitypackage
Plugins / Pixel Crushers / Dialogue System / Scripts / DialogueSystemAssemblyDefinitions.unitypackage
Please use the asmdefs provided with the Dialogue System. Since some people don't want to use asmdefs, they're provided in two unitypackages that you can import:
Plugins / Pixel Crushers / Common / Scripts / CommonAssemblyDefinitions.unitypackage
Plugins / Pixel Crushers / Dialogue System / Scripts / DialogueSystemAssemblyDefinitions.unitypackage
Re: How do you make the player say something without it being a choice?
Hah, I just created my own by hand and then noticed your reply. OK i'll use those instead.
After doing this, there's a delay before it goes to the next part of the dialog. How do I make it wait for a click?
After doing this, there's a delay before it goes to the next part of the dialog. How do I make it wait for a click?
Re: How do you make the player say something without it being a choice?
Found the answer here: viewtopic.php?t=1728