Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented basic dialog camera #357

Closed
wants to merge 83 commits into from
Closed

Implemented basic dialog camera #357

wants to merge 83 commits into from

Conversation

HunterwolfAT
Copy link
Contributor

@HunterwolfAT HunterwolfAT commented Jul 20, 2018

Defined camera transformations (shot types) and a state machine to decide between them during dialogs with NPCs.

There are 4 shot types:

  • Full shot
  • Over the shoulder shot
  • Neutral shot
  • Close up shot

In order to keep shot progression feeling natural, Full and Over the shoulder shots
should be used a couple times before opening up the chance to move on to Neutral and Close Up
shots. Furthermore, the camera should only push further in and not back out once it progressed
to at least a Neutral shot.

Dialog shot progression therefore respects the following rules:

  • Always start with either a Full or Over the shoulder shot
  • Close up and Neutral shot can only be used after Full or Over the shoulder have been used at least as often as m_CameraSettings.dialogueCameraSettings.dialogueShotLimit specifies
  • After a Neutral shot, the only possible next shot can be a Close up
  • A Close up can only be followed by a Close up

Regarding the PC_Hero the following extra rules apply:

  • PC_Hero will only ever be shown via a Full or Over the shoulder shot
  • There is a chance that the camera does not cut to PC_Hero and stays on the target NPC

On a more personal note: Unfortunately I had to bail from working on this wonderful project and can't tell when I might able to return. So I thought I should just create this pull request, since it works well despite being quite basic still.
I would have liked to figure out how to keep the camera from clipping through walls (even though that is a rare event anyway) and to emulate the original behaviour more closely (like, talking to Lord Hagen flips the camera depending on which side of his you are standing on when speaking to him).


Feedback is still massively appreciated! I will read it all and still try to fix bugs and make reasonable improvements. Thank you for your time 😃

HunterwolfAT and others added 30 commits March 15, 2018 09:31
Add chapterintroduce function as external
@HunterwolfAT
Copy link
Contributor Author

I will rebase the branch on master and then create another PR

@HunterwolfAT
Copy link
Contributor Author

I can't seem to make rebasing work. Well.

The files I affected were CameraController.cpp, CameraController.h, Dialogmanager.cpp and PlayerController.cpp around line 1010.

I will try again with rebasing tomorrow, otherwise feel free to look at the feature and the code!

@HunterwolfAT HunterwolfAT reopened this Jul 20, 2018
@frabert
Copy link
Contributor

frabert commented Jul 20, 2018

Looks good to me!

@HunterwolfAT
Copy link
Contributor Author

Now I created a clean branch with just the changes, which can be found at #359

@ataulien ataulien deleted the dialog-camera branch September 15, 2018 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants