Page 1 of 1
Problem using listener
Posted: Thu Nov 23, 2017 11:52 am
by dasjlm
I'm new to product and having a bit of trouble getting started.
I'm trying to do a simple dialogue but having trouble getting camera closeups to work using the speaker, listener keywords.
I just wanted to have the NPC to display text and have camera zoom in on the NPC.
That part seems to work fine with the speaker keyword, but when I add Camera(Closeup,listener,2) that step doesn't work.
If I use the char name it does work.
ie: The camera changes but no char is displayed. Seems like the listener is not picked up.
I call the conversation from Adventure Creator so perhaps that is causing confusion.
Re: Problem using listener
Posted: Thu Nov 23, 2017 12:01 pm
by dasjlm
The following doesn't work unless I put in char name instead of listener.
LookAt(listener,speaker); LookAt(speaker,listener); Camera(Medium); Camera(Closeup,speaker,1)@0.1; require Camera(Closeup,
listener)@2
Re: Problem using listener
Posted: Thu Nov 23, 2017 7:19 pm
by Tony Li
Hi,
The speaker will be the GameObject assigned to the
ThirdParty: Dialogue System Conversation action's
Actor field, or the default player if the Actor field is unassigned.
The listener will be the GameObject assign to the
Conversant field.
To verify that these are being set the way you want, temporarily set the Dialogue Manager's
Debug Level to
Info. This will log a lot of information to the Console window. Look for a line like:
Code: Select all
Dialogue System: Starting conversation 'title' with actor=AAA and conversant=BBB
Make sure that "AAA" and "BBB" are the characters you want to use as the speaker and listener.
BTW, you can use "LookAt()" as a shortcut for "LookAt(listener,speaker); LookAt(speaker,listener)". It saves some typing.
Re: Problem using listener
Posted: Thu Nov 23, 2017 10:59 pm
by dasjlm
It seems the actor and conversant are picked up ok.
Dialogue System: Starting conversation 'Police Station1', actor=SamField (UnityEngine.Transform), conversant=Desk_Sergeant (UnityEngine.Transform).
The NPC does first
Can I help you?
This sequence seems to work ok.
LookAt(listener,speaker); LookAt(speaker,listener); Camera(Medium); Camera(Closeup)@0.1; SALSA(Speech/wilcox456);
But the response sequence does not work unless I change the listener to SamField
Camera(Closeup,listener,0);SALSA(Speech/wilcox456,listener);
If I do use SamField instead the closeup works, plus the Salsa speech animation.
I did notice that I get following error with the listener keyword so it seems the listener must be disable during the response sequence???
Can not play a disabled audio source
UnityEngine.AudioSource:Play()
CrazyMinnow.SALSA.Salsa3D:Play()
Suspect I missing something silly as works perfect when I use SamField.
Re: Problem using listener
Posted: Thu Nov 23, 2017 11:14 pm
by dasjlm
Should mention how I call from AC.
I set the actor as SamField and the Conversant as the Desk_Sergeant when I start the conversation even though the conversation starts with the NPC as the speaker as it speaks first ie: Can I help you?
Perhaps I'm doing that wrong. I did try switching but seemed worse.
But that might be why I having trouble?
Re: Problem using listener
Posted: Thu Nov 23, 2017 11:23 pm
by dasjlm
Think I might have fixed problem.
I removed SamField from the AC conversation start request. Left it blank to default.
Now seems to work ok.
Re: Problem using listener
Posted: Fri Nov 24, 2017 8:44 am
by Tony Li
Thanks for letting me know. I'm glad it's working now. If you had assigned the player prefab from the Project view, that might have been the reason. If there's not an instance of the player in the scene, AC will instantiate a new copy of the player from the prefab. In this case, the correct thing to do is to leave the Actor field blank just as you did.