NPC Getting Assigned to Actor and Conversant on Conversation Start?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
Puppii
Posts: 20
Joined: Tue Jun 06, 2023 6:57 pm

NPC Getting Assigned to Actor and Conversant on Conversation Start?

Post 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.
User avatar
Tony Li
Posts: 22107
Joined: Thu Jul 18, 2013 1:27 pm

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

Post by Tony Li »

Hi,

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