Page 1 of 1

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

Posted: Mon May 13, 2019 10:21 pm
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.

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

Posted: Mon May 13, 2019 10:50 pm
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.

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

Posted: Mon May 13, 2019 11:45 pm
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.

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

Posted: Tue May 14, 2019 8:27 am
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.

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

Posted: Tue May 14, 2019 1:57 pm
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.

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

Posted: Tue May 14, 2019 2:04 pm
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.