Hello all, I am back with another problems I'd like some help on as I haven't seen a solution in the forum yet.
My conversation menu does not function correctly when attached to hotspots.
Given what I know, I think it is an issue in the order of which things load in a given scene since onStart works fine, but I'll see if somebody who knows more than me can figure out what's up. Thanks!
Menu in Question
I am using the GK conversation UI as a unity prefab that is manually called on and off for conversations.
I have not added any custom coding for the UI, just adjusted the image size / locations to my needs.
The GK script is attached to the conversations and NPCs are assigned.
Issue
Despite being called the same way every time, (start conversation + turn on GK menu) the menu reacts differently depending on what the actual trigger is.
'onStart' cutscene
Adding it to a conversation triggered by giving an item to an NPC hotspot
Adding it to a conversation attached to a non-NPC hotspot
It looks like you're new here. If you want to get involved, click one of these buttons!
Comments
There should be no difference in how an ActionList is started when it comes to the effect it has.
Are you involving multiple Conversations, each with their own copy of the GKConversation script?
If you were to have the Interaction run your OnStart cutscen via the ActionList: Run Action, does it work?
What is the exact message, stacktrace inculded?
@ChrisIceBox Interesting. Thank you, so I tried what you suggested, and this is what happened, I do think that is the right direction, although I still can't grasp a solution.
Are you involving multiple Conversations, each with their own copy of the GKConversation script?
Each scene so far only has one conversation and each of those conversations is calling the same GKConversation script, as in, I have added the GKConversation script to the inspector for each conversation and adjusted the NPCs accordingly.
The script is also supposed to lock the Subtitle menu and the InGame menu. It unlocks the menus when shut off because I can interact with hotspots and words pop up afterwards. However, like I said when I interact with conversation hotspots it claims the subtitles are still locked even if I can interact with a normal hotspot in the same room.
If you were to have the Interaction run your OnStart cutscen via the ActionList: Run Action, does it work?
If I use ActionList:Run to call the conversation in the OnStart cutscene, instead of just using dialogue: start conversation, it messes up phenomenally. Normally, OnStart works perfectly.
By calling the 'dialogue option' with the action list instead, both the subtitles AND the UI subtitles run at the same time. Also, the player image overwrites the NPC image when they talk, and the NPC also overwrites the player's image when they talk.
As far as I can work out, the Actionlist skips over the actual 'conversation' because you cannot select a 'conversation' through ActionList, you can only select a 'dialogue option', which would explain why the menus do not lock, but the UI appears, since the menu is turned on during the conversation.
But what I don't understand is why I am getting an 'actionlist' style result when using a 'conversation start' dialogue call only when I am interacting with hotspots and not when I'm calling it OnStart. Because I shouldn't have the skip over conversation menu settings issue that I have with Actionlist since I'm calling the conversation not the dialogue option.
And I have no idea what's up with the portraits, I can't explain that reasonably.
Am I simply calling something incorrectly somehow, despite using the same call conventions for an OnStart or hotspot conversation? How does ActionList play into this?
What is the exact message, stacktrace inculded?
It just says the subtitles are locked, that's it. And when I manually unlock them, this goes away and subtitles appear on the screen, but still no UI despite the menu being called.
https://imgur.com/rv9eRjW
Thanks for the details, but I'm afraid I'm having trouble following the situation.
Are you able to provide steps - starting from the provided example scene - recreate the issue?
@ChrisIceBox Yes. Thank you. I hope this breaks down the situation better, and you can see where exactly the issue is.
This is what I did step by step in a blank sample scene
vs
Assumption of Situation and relation to Hotspot Problem
When using ActionList:Run, I cannot run the actual conversation. I can only run a dialogue option.
By running a dialogue option instead of the conversation, the program skips over the 'subtitle lock' that is located on the script of the conversation.
When interacting with conversations tied to hotspot triggers, I get alerts that the subtitle is locked. I also get the issue of player portraits overwriting NPC portraits.
Because I get the same issues when calling an 'actionlist:run for the conversation option' that I get when I use 'dialogue start conversation' for hotspots only it leads me to believe that the issue lies in skipping over the actual conversation.
However, I don't see why the program would use 'dialogue start conversation' correctly only in OnStart cutscenes and supply an 'actionlist:run' when interacting with hotspots despite using 'dialogue start conversation' in the actionlist editor.
The addon script works by auto-detecting the presence of a Dialogue: Start conversation Action in a given ActionList. It may need some amendment to work with your needs.
To be clear: in AC terms, a "Conversation" is just the act of displaying dialogue options for the Player to choose from. There's a separation between this and the actual dialogue between characters, which may or may not occur as the result of an option being chosen. Running conversation_option directly bypasses the use of AC's Conversation system.
Given your checking of Auto-play lone option?, are you looking to display this UI without actually having any options appear on-screen? I could amend the script to have it turn on automatically when e.g. a pre-assigned ActionList is run.
@ChrisIceBox Ah, okay, that makes sense. Thank you.
I was just using the GK script for the sake of the visual novel aspect that I wanted in my game, and since it requires a conversation to tie to, I just put the dialogue I wanted to run inside of a conversation dialogue option. So, I'm using the conversation system only to be able to use the script, not for the options.
So, yes, I am looking to display the UI without any options.
Or, at least in the situations that have occurred in my game so far there hasn't been a need for options as they are introductions that happen when entering a room or are the results of using an item, in which case what item you used more or less functions as an option, but that's neither here nor there.
Thanks for clarifying.
I will look into a means to provide manual control over when the UI is displayed.
I've updated the GK package, to make the use of a Conversation object optional.
When you use the GK script in isolation, you can use the Object: Call event Action to trigger its BeginDialogueMode function to turn it on manually.
@ChrisIceBox Thank you.
Apologies for the delay, I took a break from working on the game.
I have downloaded the new GK Package and am afraid I don't fully understand the change. So, if you could clarify how this should be implemented that would be great.
Trying to follow your instructions, I have tried using the Object: Call Event with the conversation that has the GK script attached and cannot find a 'BeginDialogueMode' function.
For reference I am putting this action on the action list that is associated to the inventory interaction on an NPC. Interaction source is set to In Scene.
Since I couldn't find it, but still wanted to see if I could fudge something together, I ran the scene with Object: Call Event,and set the GK Conversation function to 'enabled' and by enabling it in the call before turning the menu on, it did successfully disable the inventory and subtitle menus and unlock the GK Conversation UI which I was having to do manually before. On the other hand, no dialogue appears on screen and enabling dialogue in a separate call doesn't fix it.
Hopefully figuring out what the BeginDialogueMode function is will allow this situation to be simplified. lol.
Thanks for your help thus far!
Looks like the package didn't update correctly on the website - the workflow is correct, downloads it again and give it a try now.
@ChrisIceBox Ah, okay ~!
Tried that, but it looks like no file is attached to the GK conversation download now on the downloads page. couldn't download - no file
Sorry, try now.
@ChrisIceBox Thank you! It works perfectly now!