Page 1 of 1

invisible Narrator?

Posted: Wed Sep 23, 2015 11:38 pm
by Arcanor
I've got some dialogue entries that are supposed to come from an omnicient/invisible "Narrator". How is this best done?

I'm kicking this off via code, calling DialogueSystemController.StartConversation("conversation name").

So far, I've just created a transparent PNG for the portrait, since otherwise there's a big white square where the portrait should be. But I'm getting warnings after every line of narration, such as these:

Code: Select all

Dialogue System: Sequencer: Camera subject '' wasn't found.
UnityEngine.Debug:LogWarning(Object)
PixelCrushers.DialogueSystem.Sequencer:TryHandleCameraInternally(String, String[])
PixelCrushers.DialogueSystem.Sequencer:HandleCommandInternally(String, String[], Single&)
PixelCrushers.DialogueSystem.Sequencer:ActivateCommand(String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlayCommand(String, Boolean, Single, String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String)
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationView:StartSubtitle(Subtitle, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationController:GotoState(ConversationState)
PixelCrushers.DialogueSystem.ConversationController:OnFinishedSubtitle(Object, EventArgs)
PixelCrushers.DialogueSystem.ConversationView:FinishSubtitle()
PixelCrushers.DialogueSystem.ConversationView:OnConversationContinue()
UnityEngine.Component:SendMessage(String, SendMessageOptions)
PixelCrushers.DialogueSystem.AbstractDialogueUI:OnContinue()
PixelCrushers.DialogueSystem.UnityUIDialogueUI:OnContinue() (at Assets/Dialogue System/Scripts/Supplemental/UI/Dialogue UI/UnityUIDialogueUI.cs:108)
PixelCrushers.DialogueSystem.UnityUIContinueButtonFastForward:OnFastForward() (at Assets/Dialogue System/Scripts/Supplemental/UI/Effects/UnityUIContinueButtonFastForward.cs:32)
UnityEngine.EventSystems.EventSystem:Update()
And these:

Code: Select all

Dialogue System: Sequencer: Camera subject 'listener' wasn't found.
UnityEngine.Debug:LogWarning(Object)
PixelCrushers.DialogueSystem.Sequencer:TryHandleCameraInternally(String, String[])
PixelCrushers.DialogueSystem.Sequencer:HandleCommandInternally(String, String[], Single&)
PixelCrushers.DialogueSystem.Sequencer:ActivateCommand(String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:CheckQueuedCommands()
PixelCrushers.DialogueSystem.Sequencer:Update()
Am I going to need to place an invisible object called "Narrator" into my scene? I'm not using the camera zooming at all for my game. Is this still needed?

Re: invisible Narrator?

Posted: Thu Sep 24, 2015 9:04 am
by Tony Li
Hi,

Does your Dialogue Manager's Default Sequence contain any Camera commands? If so, you can change it to Delay({{end}}) to delay before the next line or None() to immediately move on.

If you only want to do this for the Narrator, create an empty GameObject and add an Override Display Settings component to it. Set the Default Sequence on the component, and pass this GameObject as the conversant.

Re: invisible Narrator?

Posted: Thu Sep 24, 2015 11:40 am
by Arcanor
Thanks, setting it to "None()" worked well. Since I wasn't using camera sequences at all, I didn't realize I had to modify the default value in there.

Re: invisible Narrator?

Posted: Thu Sep 24, 2015 12:47 pm
by Tony Li
It seemed like a good idea at the time to make camera closeups the default, but it's just been an annoyance for many users. It's easy enough to add closeups back in when you do need them. :-)

Re: invisible Narrator?

Posted: Thu Sep 24, 2015 1:43 pm
by Arcanor
Yeah, I'm using John Stairs' MMO RPG Camera and Controller, and I'm concerned that it may conflict with the close-up sequences. Plus, my character models aren't all that pretty at this point. :) I'm happy without the zooming for now.

Re: invisible Narrator?

Posted: Thu Sep 24, 2015 3:36 pm
by Tony Li
Sounds good! Should you want to zoom in the future, you can use a Set Component Enabled On Dialogue Event component to automatically disable John's scripts during conversations.

You can also use a Default Camera Angle component to specify a different camera angle than 'Closeup' for any given character, should you want to use the Camera() command in the future.