Original Discord Post by nazbee | 2024-07-03 04:40:07
I’ve been testing the sample NPC2NPC beta project and noticed that pressing the key to interrupt the npcs before the first speaker fully completes its initial speech will always crash unreal.
After the speaker finishes and the listerner becomes the next speaker then its ok and doesnt ever crash.
Also, ive been trying to implement in my own project, but changing the interrupt key to the user’s normal talk key for a more natural conversation flow causes weird issues like both npcs responding over eachother instead of one at a time and sometimes breaking the npc2npc manager the next time it runs.
Another issue is sometimes the npc will respond in text but the voice and talk animation is missing.
Hi <@191760948002947073>, thank you for sharing feedback on the NPC2NPC beta system, let’s address each issue:
Could you provide the crash log for the crash.
Using the user’s normal talk key will automatically interrupt the characters conversation, so no need to interrupt again, It’s strange though that the two characters would continue talking afterwards, this shouldn’t happen.
This is usually a rare issue, where the lipsync data might not come from the server and affects the voice, if this is happening regularly please let us know
Here is the message log error. Ill DM you the crash log. I believe it should reproduce easily on your machine.
H key interrupt:
Infinite loop detected. Blueprint: ConvaiNPC2NPC_MGR Function: Delay Call Stack: Show
Blueprint Runtime Error: “Accessed None trying to read property CallFunc_GetCurrentTalker_CurrentTalker”. Node: Invoke Speech Graph: EventGraph Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
T key interrupt:
Infinite loop detected. Blueprint: ConvaiNPC2NPC_ChatbotHandler Function: Delay Call Stack: Show
Ah yes I see. I think the reason is because i created a custom event to fire the interrupt nodes and stuck it into the T for talk network, so both are being called. My mistake. I see that interrupt is only for using as a trigger as player approaches to interrupt the 2 NPCs conversation.
What I want to do is have all 3 characters (NPC1, NPC2, Player) be able to have an ongoing conversation. The way interrupt or speak works now is NPC1 and NP2 will be having a conversation, and Player will interrupt, then have a conversation with only NPC1 or NPC2. But the NPC2NPC conversation is then broken and it becomes a Player+1xNPC conversation.
How can we set up the nodes so that all 3 can have a conversation together?
3. I think this may have been caused by the way i injected the interrupt nodes into the talk nodes. Ill fix that and then do some more testing to see if its resolved.
3 continued)
I tested this some more and the audio issues appear to only be caused when using 2 x Japanese voices.
The sample NPC2NPC project works fine when letting the default characters engage in an english conversation for an arbitrarily long time. I didn’t encounter any issues.
However, when I tested the sample project with replacing the charIDs inside the sample project with my 2 x japanese voice characters, then it quickly started breaking.
The conversation will work for a few rounds back and forth, then one of the Japanese characters will reply with text but no voice. The other character will then reply and conversation will continue correctly for a few rounds. After the missing voice happens a few more times, eventually the conversation will get stuck and not continue after one of them finishes speaking.
After the conversation becomes stuck, I try speaking to one of them and it works at first, but then the whole thing breaks with various errors in the log such as:
PIE: Error: Blueprint Runtime Error: “Attempted to access ConvaiNPC2NPC_ChatbotHandler_C_2 via property InitiatorHandler, but ConvaiNPC2NPC_ChatbotHandler_C_2 is not valid (pending kill or garbage)”. Node: Branch Graph: IsValid Function: Execute Ubergraph Convai NPC2NPC MGR Blueprint: ConvaiNPC2NPC_MGR
as for issue 3, I have a feeling this is happening due to an issue with lipsync, if possible could you try removing the lipsync FaceSync component from both characters and try to see if the voice stops?
Seems to happen occasionally when the user interrupts NPC2NPC, talks, or when restarts NPC2NPC conversation via keypress. Not sure as it doesnt seem to happen all the time.
Blueprint Runtime Error: “Attempted to access ConvaiNPC2NPC_ChatbotHandler_C_1 via property ReceiverHandler, but ConvaiNPC2NPC_ChatbotHandler_C_1 is not valid (pending kill or garbage)”. Node: Branch Graph: IsValid Function: Execute Ubergraph Convai NPC2NPC MGR Blueprint: ConvaiNPC2NPC_MGR
Blueprint Runtime Error: “Accessed None”. Node: Branch Graph: IsValid Function: Execute Ubergraph Convai NPC2NPC MGR Blueprint: ConvaiNPC2NPC_MGR
Blueprint Runtime Error: “Attempted to access ConvaiNPC2NPC_ChatbotHandler_C_1 via property ReceiverHandler, but ConvaiNPC2NPC_ChatbotHandler_C_1 is not valid (pending kill or garbage)”. Node: Interrupt Graph: EventGraph Function: Execute Ubergraph Convai NPC2NPC MGR Blueprint: ConvaiNPC2NPC_MGR
Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Set Main Character Graph: Set Player as the main character_2 Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Set Main Character Graph: Set Player as the main character_2 Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Unbind and Interrupt Graph: EventGraph Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Invoke Speech Graph: EventGraph Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
LogScript: Warning: Accessed None trying to read property NPC2NPC
BP_FirstPersonCharacter_C /Game/FirstPerson/Maps/UEDPIE_0_FirstPersonMap.FirstPersonMap:PersistentLevel.BP_FirstPersonCharacter_C_0
Function /Game/FirstPerson/Blueprints/BP_FirstPersonCharacter.BP_FirstPersonCharacter_C:ExecuteUbergraph_BP_FirstPersonCharacter:039D
PIE: Error: Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Set Main Character Graph: Set Player as the main character_2 Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
LogScript: Warning: Accessed None trying to read property NPC2NPC
BP_FirstPersonCharacter_C /Game/FirstPerson/Maps/UEDPIE_0_FirstPersonMap.FirstPersonMap:PersistentLevel.BP_FirstPersonCharacter_C_0
Function /Game/FirstPerson/Blueprints/BP_FirstPersonCharacter.BP_FirstPersonCharacter_C:ExecuteUbergraph_BP_FirstPersonCharacter:0017
PIE: Error: Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Unbind and Interrupt Graph: EventGraph Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter
LogScript: Warning: Accessed None trying to read property NPC2NPC
BP_FirstPersonCharacter_C /Game/FirstPerson/Maps/UEDPIE_0_FirstPersonMap.FirstPersonMap:PersistentLevel.BP_FirstPersonCharacter_C_0
Function /Game/FirstPerson/Blueprints/BP_FirstPersonCharacter.BP_FirstPersonCharacter_C:ExecuteUbergraph_BP_FirstPersonCharacter:003C
PIE: Error: Blueprint Runtime Error: “Accessed None trying to read property NPC2NPC”. Node: Invoke Speech Graph: EventGraph Function: Execute Ubergraph BP First Person Character Blueprint: BP_FirstPersonCharacter