#include <ComposableCameraMixingCameraNode.h>
Inherits:
UComposableCameraCameraNodeBase
Node for mixing multiple cameras.
This node will instantiate new camera instances specified by parameter Cameras.
During runtime, you should pass in a UpdateWeight function that provides weights for these cameras. Make sure all weights are greater than zero.
If one camera instance is not valid, its weight will be set to zero, then a squared normalization will be applied to normalize all weights.
Public Attributes¶
| Return | Name | Description |
|---|---|---|
EComposableCameraMixingCameraMode |
MixMode |
|
EComposableCameraMixingCameraWeightNormalizationMethod |
WeightNormalizationMethod |
|
EComposableCameraMixingCameraRotationMethod |
MixRotationMethod |
|
float |
CircularInterpEpsilon |
|
TArray< FComposableCameraMixingCameraNodeCameraDefinition > |
Cameras |
|
FOnReceiveMixingCameraWeights |
OnReceiveMixingCameraWeights |
MixMode¶
EComposableCameraMixingCameraMode MixMode { }
WeightNormalizationMethod¶
EComposableCameraMixingCameraWeightNormalizationMethod WeightNormalizationMethod { }
MixRotationMethod¶
EComposableCameraMixingCameraRotationMethod MixRotationMethod { }
CircularInterpEpsilon¶
float CircularInterpEpsilon { 0.25f }
Cameras¶
TArray< FComposableCameraMixingCameraNodeCameraDefinition > Cameras
OnReceiveMixingCameraWeights¶
FOnReceiveMixingCameraWeights OnReceiveMixingCameraWeights
Public Methods¶
| Return | Name | Description |
|---|---|---|
void |
OnInitialize_Implementation virtual |
|
void |
OnTickNode_Implementation virtual |
|
void |
BeginDestroy virtual |
|
void |
GetPinDeclarations_Implementation virtual const |
|
void |
SetUpdateWeights |
OnInitialize_Implementation¶
virtual
virtual void OnInitialize_Implementation()
OnTickNode_Implementation¶
virtual
virtual void OnTickNode_Implementation(float DeltaTime, const FComposableCameraPose & CurrentCameraPose, FComposableCameraPose & OutCameraPose)
BeginDestroy¶
virtual
virtual void BeginDestroy()
GetPinDeclarations_Implementation¶
virtual const
virtual void GetPinDeclarations_Implementation(TArray< FComposableCameraNodePinDeclaration > & OutPins) const
SetUpdateWeights¶
void SetUpdateWeights(FOnReceiveMixingCameraWeights OnUpdateMixingCameraWeights)
Private Attributes¶
| Return | Name | Description |
|---|---|---|
TArray< TObjectPtr< AComposableCameraCameraBase > > |
CameraInstances |
|
FVector4 |
InitialEigenVector |
CameraInstances¶
TArray< TObjectPtr< AComposableCameraCameraBase > > CameraInstances
InitialEigenVector¶
FVector4 InitialEigenVector { 0, 0, 0, 1 }
Private Methods¶
| Return | Name | Description |
|---|---|---|
void |
NormalizeWeights |
|
void |
TickCameras |
|
FVector |
GetMixedPosition |
|
FRotator |
GetMixedRotation |
|
double |
GetMixedFieldOfView |
NormalizeWeights¶
void NormalizeWeights(TArray< float > & Array)
TickCameras¶
void TickCameras(TArray< FComposableCameraPose > & Poses, float DeltaTime)
GetMixedPosition¶
FVector GetMixedPosition(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)
GetMixedRotation¶
FRotator GetMixedRotation(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)
GetMixedFieldOfView¶
double GetMixedFieldOfView(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)