#include <ComposableCameraCollisionPushNode.h>
Inherits:
UComposableCameraCameraNodeBase
Node for resolving collision using self-spherical collision and trace collision.
This node does two things for collision:
(1) Casts a trace (either line or sphere) from camera to the target point and resolves any occlusion in-between;
(2) Carries a sphere around the camera and only resolves occlusion when the sphere collides with objects.
The first we call it TraceCollision, and the second SelfCollision, both dealt with collision channels.
Public Attributes¶
| Return | Name | Description |
|---|---|---|
TObjectPtr< AActor > |
PivotActor |
|
TEnumAsByte< ETraceTypeQuery > |
TraceCollisionChannel |
|
bool |
bTraceUseSphere |
|
double |
TraceSphereRadius |
|
double |
TraceOcclusionExemptionTime |
|
TEnumAsByte< ETraceTypeQuery > |
SelfCollisionChannel |
|
double |
SelfSphereRadius |
|
double |
SelfSphereDistanceOffsetFromCenter |
|
TArray< TSoftClassPtr< AActor > > |
ActorTypesToIgnore |
|
double |
ExtraPushDistance |
|
TObjectPtr< UComposableCameraInterpolatorBase > |
PushInterpolator |
|
TObjectPtr< UComposableCameraInterpolatorBase > |
PullInterpolator |
|
double |
PivotZOffset |
|
bool |
bUseBoneForDetection |
|
FName |
BoneName |
PivotActor¶
TObjectPtr< AActor > PivotActor
TraceCollisionChannel¶
TEnumAsByte< ETraceTypeQuery > TraceCollisionChannel
bTraceUseSphere¶
bool bTraceUseSphere { true }
TraceSphereRadius¶
double TraceSphereRadius { 12. }
TraceOcclusionExemptionTime¶
double TraceOcclusionExemptionTime { 0. }
SelfCollisionChannel¶
TEnumAsByte< ETraceTypeQuery > SelfCollisionChannel
SelfSphereRadius¶
double SelfSphereRadius { 12. }
SelfSphereDistanceOffsetFromCenter¶
double SelfSphereDistanceOffsetFromCenter { 10. }
ActorTypesToIgnore¶
TArray< TSoftClassPtr< AActor > > ActorTypesToIgnore
ExtraPushDistance¶
double ExtraPushDistance { 5. }
PushInterpolator¶
TObjectPtr< UComposableCameraInterpolatorBase > PushInterpolator
PullInterpolator¶
TObjectPtr< UComposableCameraInterpolatorBase > PullInterpolator
PivotZOffset¶
double PivotZOffset { 50. }
bUseBoneForDetection¶
bool bUseBoneForDetection { false }
BoneName¶
FName BoneName
Public Methods¶
| Return | Name | Description |
|---|---|---|
void |
OnInitialize_Implementation virtual |
|
void |
OnTickNode_Implementation virtual |
|
void |
OnPreTick virtual |
|
void |
GetPinDeclarations_Implementation virtual const |
OnInitialize_Implementation¶
virtual
virtual void OnInitialize_Implementation()
OnTickNode_Implementation¶
virtual
virtual void OnTickNode_Implementation(float DeltaTime, const FComposableCameraPose & CurrentCameraPose, FComposableCameraPose & OutCameraPose)
OnPreTick¶
virtual
virtual void OnPreTick(float DeltaTime, const FComposableCameraPose & CurrentCameraPose, FComposableCameraPose & OutCameraPose)
GetPinDeclarations_Implementation¶
virtual const
virtual void GetPinDeclarations_Implementation(TArray< FComposableCameraNodePinDeclaration > & OutPins) const
Private Attributes¶
| Return | Name | Description |
|---|---|---|
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > |
PushInterpolator_T |
|
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > |
PullInterpolator_T |
|
USkeletalMeshComponent * |
SkeletalMeshComponentForPivotActor |
|
double |
ElapsedExemptionTime |
|
double |
CurrentDistanceFromCamera |
|
FVector |
OriginalCameraPosition |
PushInterpolator_T¶
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PushInterpolator_T
PullInterpolator_T¶
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PullInterpolator_T
SkeletalMeshComponentForPivotActor¶
USkeletalMeshComponent * SkeletalMeshComponentForPivotActor { nullptr }
ElapsedExemptionTime¶
double ElapsedExemptionTime { 0. }
CurrentDistanceFromCamera¶
double CurrentDistanceFromCamera { 0. }
OriginalCameraPosition¶
FVector OriginalCameraPosition
Private Methods¶
| Return | Name | Description |
|---|---|---|
FComposableCameraHitResult |
FindCollisionPoint |
|
FVector |
StartResolveCollision |
|
FVector |
ResumeFromCollision |
FindCollisionPoint¶
FComposableCameraHitResult FindCollisionPoint(double DeltaTime, const FVector & Start, const FVector & End, const FRotator & CameraRotation)
StartResolveCollision¶
FVector StartResolveCollision(double DeltaTime, const FVector & TargetLocation, const FVector & CameraPosition)
ResumeFromCollision¶
FVector ResumeFromCollision(double DeltaTime, const FVector & PivotPosition, const FVector & CameraPosition)