How to change Dialogue UI using Corgi Integration?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
Harmøny
Posts: 2
Joined: Thu Mar 16, 2023 3:26 am

How to change Dialogue UI using Corgi Integration?

Post by Harmøny »

Heya,

I am super new to game development. Recently started on my passion project that will be a vn + platformer mixture. I've been watching tutorials and documents to figure out how conversations work between an npc and player. Added couple conditions and responses to their conversation and a continue button so far.

I couldn't figure out how to change standart dialogue UI of corgi engine to dialogue system vn template, though. In dialogue manager dialogue UI is set to "basic standard dialogue UI". If I change it to vn template prefab the UI don't change and I receive this warning: "Coroutine couldn't be started because the game object 'VN Template Standard dialogue UI' is inactive!"

Much love,
User avatar
Tony Li
Posts: 22131
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Tony Li »

Hi,

Thanks for using the Dialogue System! Your scene should have a Dialogue Manager GameObject. If you assign the "VN Template Standard Dialogue UI" prefab to the Dialogue Manager GameObject's Display Settings > Dialogue UI field, it will ask if you want to Add Instance or Use Prefab. Either is fine. If you click Add Instance, it will add an editable copy of the dialogue UI as a child of the Dialogue Manager GameObject's Canvas. If you click Use Prefab, the Dialogue UI field will continue to point to the prefab, which it will instantiate at runtime. (This means that at runtime it will add a copy of the prefab to the scene as a child of the Dialogue Manager's Canvas.)

The Corgi Integration instructions include a step to add a ConversationZone prefab to your NPC. This prefab has a Dialogue Actor component. The Dialogue Actor component is configured to use an overhead bubble subtitle panel, which is in a child GameObject named CorgiStandardDialogueControls. In your case, you'll want the NPC to use the Dialogue Manager's regular VN Template Standard Dialogue UI instead. To do this, inspect the ConversationZone's Dialogue Actor component. Change the Dialogue UI Settings > Subtitle Panel Number and Menu Panel Number dropdowns to Default. You can also deactivate the child CorgiStandardDialogueControls GameObject if you want,

If that doesn't get your scene to where you want it to be, let me know and I'll put together an example scene.
Harmøny
Posts: 2
Joined: Thu Mar 16, 2023 3:26 am

Re: How to change Dialogue UI using Corgi Integration?

Post by Harmøny »

It worked! Thank you so much for the enlightening explanation. It is so encouraging to have support at this level.

Sidenote: After selecting the "vn template" as a game object in Dialogue Manager > Dialogue UI. It got deactivated as a prefab or an instance for some reason. I had to enable it on the top right, then the dialogue UI appeared/started working. (Just putting this in if someone else needs it in the future.)

Much love,
User avatar
Tony Li
Posts: 22131
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Tony Li »

Glad to help! Thanks for sharing the tip about the reactivating the UI prefab.
Puppii
Posts: 20
Joined: Tue Jun 06, 2023 6:57 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Puppii »

This was super helpful because this is exactly what I was trying to achieve (use the VN template with the Corgi Engine).
Making the changes to the NPC's Conversation Zone did the trick. However, I am still getting this error when I interact with that NPC:

Code: Select all

NullReferenceException: Object reference not set to an instance of an object
PixelCrushers.DialogueSystem.CorgiEngineSupport.ConversationZone.OnConversationStart (UnityEngine.Transform actor) (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:182)
UnityEngine.Component:BroadcastMessage(String, Object, SendMessageOptions)
PixelCrushers.DialogueSystem.ConversationModel:InformParticipants(String, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:214)
PixelCrushers.DialogueSystem.ConversationController:Initialize(ConversationModel, ConversationView, Boolean, EndConversationDelegate) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:150)
PixelCrushers.DialogueSystem.DialogueSystemController:StartConversation(String, Transform, Transform, Int32) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueSystemController.cs:1046)
PixelCrushers.DialogueSystem.DialogueManager:StartConversation(String, Transform, Transform, Int32) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueManager.cs:461)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:DoConversationAction(Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:1001)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:Fire(Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:735)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart(Transform, Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:717)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart(Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:703)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:OnUse() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:550)
PixelCrushers.DialogueSystem.CorgiEngineSupport.<>c:<ActivateZone>b__37_2(DialogueSystemTrigger) (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
System.Collections.Generic.List`1:ForEach(Action`1)
PixelCrushers.DialogueSystem.CorgiEngineSupport.ConversationZone:ActivateZone() (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
MoreMountains.CorgiEngine.ButtonActivated:TriggerButtonAction(GameObject) (at Assets/CorgiEngine/Common/Scripts/GUI/ButtonActivated.cs:283)
MoreMountains.CorgiEngine.CharacterButtonActivation:ButtonActivation() (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterButtonActivation.cs:117)
MoreMountains.CorgiEngine.CharacterButtonActivation:HandleInput() (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterButtonActivation.cs:88)
MoreMountains.CorgiEngine.CharacterAbility:InternalHandleInput() (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterAbility.cs:201)
MoreMountains.CorgiEngine.CharacterAbility:EarlyProcessAbility() (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterAbility.cs:226)
MoreMountains.CorgiEngine.Character:EarlyProcessAbilities() (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:566)
MoreMountains.CorgiEngine.Character:EveryFrame() (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:526)
MoreMountains.CorgiEngine.Character:Update() (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:515)
Any assistance would be appreciated, but if you need more info about how I set things up, let me know.
User avatar
Tony Li
Posts: 22131
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Tony Li »

Hi,

Would you please try importing the updated Corgi integration package (direct download) from the Dialogue System Extras page? It was updated after DS 2.2.37 came out.
Puppii
Posts: 20
Joined: Tue Jun 06, 2023 6:57 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Puppii »

Tony,

Thank you so much. That seems to have done the trick.
Now I know to double check the updates :D . Love this asset. Thanks for the wonderful support too.
User avatar
Tony Li
Posts: 22131
Joined: Thu Jul 18, 2013 1:27 pm

Re: How to change Dialogue UI using Corgi Integration?

Post by Tony Li »

Glad to help!
Post Reply