Trouble displaying a Variable

Announcements, support questions, and discussion for the Dialogue System.
User avatar
Tony Li
Posts: 21025
Joined: Thu Jul 18, 2013 1:27 pm

Trouble displaying a Variable

Post by Tony Li »

Hi,



I just replied to your email. Once we get the issues straightened out, I'll post the solution(s) here.
User avatar
Tony Li
Posts: 21025
Joined: Thu Jul 18, 2013 1:27 pm

Trouble displaying a Variable

Post by Tony Li »

I sent a reply in email. If it addresses the issues, please let me know; I'll post the answer here in that case for future readers.
User avatar
Tony Li
Posts: 21025
Joined: Thu Jul 18, 2013 1:27 pm

Trouble displaying a Variable

Post by Tony Li »

Here's a brief summary for other readers:



DS sequencer commands can't control animation:



AC's "NPC" script took frame-by-frame control of the animator. Two solutions:



(1) Instead of AnimatorPlay() or AnimatorPlayWait() [which waits for the animation to finish], use the AC() sequencer command to allow AC to handle animation, or



(2) Use DS's "Set Component Enabled On Dialogue Event" component to temporarily disable the "NPC" script during conversations.







Trouble playing action lists:



Put the action list in the scene itself, not a prefab, so it's visible in the Hierarchy view.



By default, the AC() command waits (so the conversation waits) until the action list is done. If the action list never finishes for some reason, the conversation will appear to hang. If you want the AC() command to kick off the action list and then continue the conversation, pass 'nowait' as the second parameter:



AC(Mood, nowait)







Additional control with sequencer commands:

To animate the camera from one point to another over time (e.g., from a wide shot to a closeup), provide a duration value in the Camera() sequencer command. The sequence below cuts to a wide shot, then zooms to a closeup over 2 seconds:





Camera(Wide, listener); Camera(Closeup, listener, 2)



You can also move the camera to the positions of GameObjects in the scene. Say you've added two empty GameObjects named 'TopOfBuilding' and 'BackOfAlley'. You can dolly the camera from one to the other like this:





Camera(TopOfBuilding); Camera(BackOfAlley, , 2)



If you need more elaborate control -- for example, to move the camera through a complex path -- you can use an interactive timeline editor such as uSequencer or Cinema Director. They let you build elaborate sequences and save them as prefabs.

uSequencer: http://www.pixelcrushers.com/dialogue_s ... encer.html

Cinema Director: http://www.pixelcrushers.com/dialogue_s ... ector.html



Or you can use AC() to run an action list, but for this you need a GameObject in the scene.

You can also write your own custom sequencer commands, which isn't complicated but requires a bit of scripting knowledge. http://www.pixelcrushers.com/dialogue_s ... CommandsIf you have another script, you can run a method on it by using the SendMessage() sequencer command:

SendMessage(ChangeCameraFilter, blue, MySpecialCamera)



SendMessage: http://www.pixelcrushers.com/dialogue_s ... endMessage



To switch to a different camera, use the SwitchCamera() command. The rules about how the camera is used at the beginning of a sequence are documented here:

http://www.pixelcrushers.com/dialogue_s ... era.htmlTo enable or disable components (such as post-processing filters like depth of field blur), use SetEnabled().









Post Reply