Camera always going back to original position - any way to turn this off?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Camera always going back to original position - any way to turn this off?

Post by Raidenthequick »

Hi Tony,

We noticed that the camera always returns to its original pre-conversation position after any conversation ends.

Is there any way to not have this happen? Thanks.
User avatar
Tony Li
Posts: 21080
Joined: Thu Jul 18, 2013 1:27 pm

Re: Camera always going back to original position - any way to turn this off?

Post by Tony Li »

Hi,

That's by design, so conversations don't mess up non-conversation gameplay camera positions. If you want to move the camera and have it stay there, use the MoveTo() sequencer command instead of the Camera() sequencer command.
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Re: Camera always going back to original position - any way to turn this off?

Post by Raidenthequick »

Hey, thanks for the quick response but not sure I fully follow. Let me be more specific as to what's happening now:

1) Conversation starts with camera at point A.
2) We apply a Zoom2D in, then back out to point A(not sure if that matters).
3) We pan to point B using something that directly transforms the camera's position (similar to MoveTo).
4) End conversation, which auto-jumps back to point A (we don't want this, need it to stay at point B).

We are not actually using Camera(), but instead our own custom command called PanTo. All it does is directly transform the camera's position, I would imagine it's similar to what MoveTo is doing, it just also does a nice smooth acceleration curve and such. Is there anything special MoveTo is doing to "keep" it there? Thanks.
User avatar
Tony Li
Posts: 21080
Joined: Thu Jul 18, 2013 1:27 pm

Re: Camera always going back to original position - any way to turn this off?

Post by Tony Li »

No, MoveTo doesn't do anything special.

Zoom2D is the 2D equivalent to the Camera command. Both commands put the conversation into a mode where it records the camera's position at the start of the conversation and restores it at the end.

In addition, if you've assigned a camera GameObject or camera prefab to the Dialogue Manager's Camera & Cutscene Settings > Sequencer Camera field, the conversation will use an instance of it for all Zoom2D commands. When the conversation ends, it will deactivate the instance. Also, if no camera is tagged MainCamera when the conversation starts, the conversation will create a temporary MainCamera in case it encounters Zoom2D commands.

Here are two suggestions:

1. Assign a different camera or prefab to the Dialogue Manager's Sequencer Camera field. At the end of the conversation, move this camera and the scene's main camera to the same final position. When the conversation deactivates the sequencer camera, the main camera will be in the same position so it will look like nothing changed.

2. Or make a replacement for Zoom2D by copying SequencerCommandZoom2D.cs. Comment out:

Code: Select all

sequencer.TakeCameraControl();
and any lines that reference sequencer.sequencerCamera. Replace them with code to move your own camera instead. Then use this replacement command instead of Zoom2D.
Raidenthequick
Posts: 34
Joined: Mon Jul 02, 2018 5:00 pm

Re: Camera always going back to original position - any way to turn this off?

Post by Raidenthequick »

Hey Tony,

We have discussed and decided that using a segregated sequencer camera from the main is probably a wise thing to do, for other reasons than just this too. Thanks! Will proceed with that going forward.
User avatar
Tony Li
Posts: 21080
Joined: Thu Jul 18, 2013 1:27 pm

Re: Camera always going back to original position - any way to turn this off?

Post by Tony Li »

Sounds good. Give it a quick test to make sure it meets your needs before going into it 100%. I think it will be a good approach though.
Post Reply