Page 1 of 1

NPC Getting Assigned to Actor and Conversant on Conversation Start?

Posted: Sat Jun 17, 2023 5:50 pm
by Puppii
I can't figure this out, I have made sure that I have the correct actors assigned to the dialogue nodes in the conversation. However, when it comes time for the player to respond, I get the NPC portrait and name on the left over the top of the non-focused Player Character portrait.

I ran this conversation with the info mode turned on and this is what I'm seeing at the start of the conversation, and I can't figure out why, but I'm thinking it might have something to do with the Corgi Engine?
First, I see that the player character is getting registered as the correct actor from the dialogue database:

Code: Select all

Dialogue System: Registering transform Player01(Clone) as actor 'Protagonist'.
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.DialogueSystem.CharacterInfo:RegisterActorTransform (string,UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Shared/CharacterInfo.cs:182)
PixelCrushers.DialogueSystem.DialogueActor:OnEnable () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Actor/DialogueActor.cs:152)
UnityEngine.Object:Instantiate<MoreMountains.CorgiEngine.Character> (MoreMountains.CorgiEngine.Character,UnityEngine.Vector3,UnityEngine.Quaternion)
MoreMountains.CorgiEngine.LevelManager:InstantiatePlayableCharacters () (at Assets/CorgiEngine/Common/Scripts/Managers/LevelManager.cs:219)
MoreMountains.CorgiEngine.LevelManager:Start () (at Assets/CorgiEngine/Common/Scripts/Managers/LevelManager.cs:241)
Then, when I initiate conversation, by entering NPC_01's conversation zone, and pressing the interact button, I get this:

Code: Select all

Dialogue System: Dialogue System Trigger is firing OnUse.
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:Fire (UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:728)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart (UnityEngine.Transform,UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:717)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart (UnityEngine.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.ConversationZone/<>c:<ActivateZone>b__37_2 (PixelCrushers.DialogueSystem.DialogueSystemTrigger) (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
System.Collections.Generic.List`1<PixelCrushers.DialogueSystem.DialogueSystemTrigger>:ForEach (System.Action`1<PixelCrushers.DialogueSystem.DialogueSystemTrigger>)
PixelCrushers.DialogueSystem.CorgiEngineSupport.ConversationZone:ActivateZone () (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
MoreMountains.CorgiEngine.ButtonActivated:TriggerButtonAction (UnityEngine.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)
But then I can see that for some reason both the actor and the conversant are getting assigned as 'NPC_01', when the conversation in the database definitely says the actor should be 'Protagonist':

Code: Select all

Dialogue System: Starting conversation 'TestConvo_01', actor=NPC_01 (UnityEngine.Transform), conversant=NPC_01 (UnityEngine.Transform).
UnityEngine.Debug:Log (object,UnityEngine.Object)
PixelCrushers.DialogueSystem.DialogueSystemController:StartConversation (string,UnityEngine.Transform,UnityEngine.Transform,int) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueSystemController.cs:994)
PixelCrushers.DialogueSystem.DialogueManager:StartConversation (string,UnityEngine.Transform,UnityEngine.Transform,int) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueManager.cs:461)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:DoConversationAction (UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:1001)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:Fire (UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:735)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart (UnityEngine.Transform,UnityEngine.Transform) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Triggers/Triggers/DialogueSystemTrigger.cs:717)
PixelCrushers.DialogueSystem.DialogueSystemTrigger:TryStart (UnityEngine.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.ConversationZone/<>c:<ActivateZone>b__37_2 (PixelCrushers.DialogueSystem.DialogueSystemTrigger) (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
System.Collections.Generic.List`1<PixelCrushers.DialogueSystem.DialogueSystemTrigger>:ForEach (System.Action`1<PixelCrushers.DialogueSystem.DialogueSystemTrigger>)
PixelCrushers.DialogueSystem.CorgiEngineSupport.ConversationZone:ActivateZone () (at Assets/Pixel Crushers/Dialogue System/Third Party Support/Corgi Support/Scripts/ConversationZone.cs:167)
MoreMountains.CorgiEngine.ButtonActivated:TriggerButtonAction (UnityEngine.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)
Just a couple of things I've tried, to no avail:
  • I changed the target layer mask of the conversation zone to player
    I made sure the conversation zone doesn't have overrides for the Actor or the Conversant
    There is a Dialogue System Corgi Event Listener on my Dialogue Manager (should this component be on anything else in my scene? Characters? Conversation Zones?)
I'm not sure where else to look.

Re: NPC Getting Assigned to Actor and Conversant on Conversation Start?

Posted: Sat Jun 17, 2023 9:57 pm
by Tony Li
Hi,

I replied here in the other thread. Let me know if using the same settings resolves the issue.