Camera Cuts
Making Cameras Available To Dialogue
Any Participant that implements ISudsProCameraShotProvider can
implement "Get Dialogue Camera Shot" to map a camera name to a camera instance.
Suds Pro Runner implements this interface for you, and provides a simple way to link your cameras by name via an instance of it in your level:

You can of course implement your own version of this if you wish, but using the provided runner is simplest.
Framing Camera Shots
When you create a camera in the scene to act as a dialogue camera, you'll want to frame it so that everything looks the way you want, including where the characters are. But players and NPCs can move around, so how do you manage this?
Character Marks can provide both a location that you can move characters to, and also a placeholder mesh you can use to frame the shot. You can use those to make sure characters are in the right place to be framed nicely, and have them display a version of the character in that spot at edit time that helps you judge how to set your cameras up.
Place a "BP_DialogueCharacterMark" instance in your scene and set the skeleton & default animation, and use that as a sighting guide for framing. See Character Marks for more details.
Hard Cuts
To perform a hard cut to another camera, use the CameraCut event:
Note the use of backticks (`) around `ShotName`, which is the quoting required in SUDS for a Name value
Where `ShotName` is the name of the camera shot you want to cut to.
Default Camera Shots
It's extremely common to want to flip back & forth between cameras when each
character in the dialogue is speaking. Instead of manually specifying a CameraCut
for every line, you can set a DefaultCameraShot variable for speakers in the dialogue,
and unless otherwise specified, the camera will cut to that shot when that character
speaks.
For example:
[set DefaultCameraShot.Player `OverTheShoulderAtPlayer`]
[set DefaultCameraShot.NPC `OverTheShoulderAtNPC`]
In this case, whenever Player has a line in the dialogue, the camera will cut to
them before playing it, and the same for NPC. The general form is:
A good place to do this is in the header of your script.
Overriding Default Camera Shots
If there is an explicit CameraCut or CameraTransition before a speaker line,
then the default camera shot will not be cut to for that line.
Alternatively, you can explicitly disable default camera shot cuts for a time
by setting the CameraDefaultShotCutsDisabled variable.
After that line, no default camera shot cuts will occur, until
CameraDefaultShotCutsDisabled is reset back to false.
Smooth Transitions
To smoothly transition from the current camera to another shot, use the CameraTransition
event:
Once again, ShotName is the name of the camera you want to transition to.
Optionally, you can specify how long the transition should take, and using what easing curve. Here's an example with the default values, specified explicitly:
Note the use of backticks (`) around `ShotName` and `EaseInOut`, which is the quoting required in SUDS for a Name value
| Argument | Default | Description |
|---|---|---|
| Shot Name | None | The name of the camera shot to transition to |
| Duration | 0.5 | The time it should take for the transition to happen |
| Ease Curve | `EaseInOut` | The easing curve to apply to the transition. Valid values are `Linear`, `Cubic`, `EaseIn`, `EaseOut`, `EaseInOut` |
| Ease Exponent | 3 | If using `EaseIn`, `EaseOut` or `EaseInOut`, the exponent controls the amount of easing |
Note: Any line after a
CameraTransitionwon't occur until after the transition is complete. This is in contrast to other animated camera effects, which run in parallel by default. The reason forCameraTransitionto block later lines until done is that this is pretty much always what you want; for the speaker to continue once the camera transition is done.
Transition Into and Out of Dialogue
There's a special case around dialogue cameras, and that's what happens when you enter
and exit the dialogue from a regular player camera. By default, SUDS Pro
does a hard cut between them (assuming you have a DefaultCameraShot for the first speaker).
You can override on entry using a manual CameraTransition event before the first line,
but this doesn't cover the case of returning to the player at the end.
A better way of controlling the transition from / to player cameras is via Project Settings > Plugins > SUDS Pro:

Here you can set the default way that SUDS Pro will transition cameras when entering and exiting dialogue.
You can override this per-script as well. For entering the dialogue:
# Makes the transition from the player camera to the first dialogue DefaultCameraShot a smooth transition
[set CameraEnterSmoothTransition true]
# Alternatively you could do this before your first line of dialogue
# Although it does hard-code the shot, instead of it being inferred from the DefaultCameraShot
[event CameraTransition `FirstCameraShot`]
And when exiting dialogue back to the player camera:
# Makes the camera transition at the end of dialogue back to player camera a smooth transition
[set CameraExitSmoothTransition true]
Alternative: Keep Dialogue Camera On Exit
Although by default SUDS Pro will try to restore the camera back to the player camera when the dialogue ends, you can optionally keep the last dialogue camera as the active one, if you want. Set this in your script some time before the end: