141{
143 SCOPE_CYCLE_COUNTER(STATGROUP_ALS_Camera_Manager);
144
146 {
147 return false;
148 }
149
150
154
155 float TPFOV = 90.0f;
156 float FPFOV = 90.0f;
157 bool bRightShoulder = false;
160
161
162 const FRotator& InterpResult = FMath::RInterpTo(GetCameraRotation(),
163 GetOwningPlayerController()->GetControlRotation(), DeltaTime,
165
168
169
170
174
177 DeltaTime);
178
182
183
184
193
194
200 +
204
205
206
207
208 FVector TraceOrigin;
209 float TraceRadius;
210 ECollisionChannel TraceChannel =
ControlledCharacter->GetThirdPersonTraceParams(TraceOrigin, TraceRadius);
211
212 UWorld* World = GetWorld();
213 check(World);
214
215 FCollisionQueryParams Params;
216 Params.AddIgnoredActor(this);
218
219 FHitResult HitResult;
220 const FCollisionShape SphereCollisionShape = FCollisionShape::MakeSphere(TraceRadius);
221 const bool bHit = World->SweepSingleByChannel(HitResult, TraceOrigin,
TargetCameraLocation, FQuat::Identity,
222 TraceChannel, SphereCollisionShape, Params);
223
225 {
227 TraceOrigin,
229 SphereCollisionShape,
230 EDrawDebugTrace::Type::ForOneFrame,
231 bHit,
232 HitResult,
233 FLinearColor::Red,
234 FLinearColor::Green,
235 5.0f);
236 }
237
238 if (HitResult.IsValidBlockingHit())
239 {
241 }
242
243
245
247
249
250
251 const FTransform& ADSTransform = UKismetMathLibrary::TLerp(FPTargetCameraTransform, ADSTargetCameraTransform,
254
255
256 const FTransform& MixedTransform = UKismetMathLibrary::TLerp(TargetCameraTransform, ADSTransform,
259
260 const FTransform& TargetTransform = UKismetMathLibrary::TLerp(MixedTransform,
262 FVector::OneVector),
265
266 Location = TargetTransform.GetLocation();
267 Rotation = TargetTransform.Rotator();
269
271
272 return true;
273}
const FName NAME_PivotLagSpeed_X(TEXT("PivotLagSpeed_X"))
const FName NAME_PivotOffset_X(TEXT("PivotOffset_X"))
const FName NAME_Override_Debug(TEXT("Override_Debug"))
const FName NAME_PivotOffset_Y(TEXT("PivotOffset_Y"))
const FName NAME_Weight_FirstPerson(TEXT("Weight_FirstPerson"))
const FName NAME_PivotLagSpeed_Z(TEXT("PivotLagSpeed_Z"))
const FName NAME_CameraOffset_Z(TEXT("CameraOffset_Z"))
const FName NAME_RotationLagSpeed(TEXT("RotationLagSpeed"))
const FName NAME_Weight_ADS(TEXT("Weight_ADS"))
const FName NAME_PivotOffset_Z(TEXT("PivotOffset_Z"))
const FName NAME_CameraOffset_Y(TEXT("CameraOffset_Y"))
const FName NAME_PivotLagSpeed_Y(TEXT("PivotLagSpeed_Y"))
const FName NAME_CameraOffset_X(TEXT("CameraOffset_X"))
TObjectPtr< UALSDebugComponent > ALSDebugComponent
Definition ALSPlayerCameraManager.h:76
FRotator DebugViewRotation
Definition ALSPlayerCameraManager.h:69
FVector TargetCameraLocation
Definition ALSPlayerCameraManager.h:63
FRotator TargetCameraRotation
Definition ALSPlayerCameraManager.h:66
FVector PivotLocation
Definition ALSPlayerCameraManager.h:60
TObjectPtr< AALSBaseCharacter > ControlledCharacter
Definition ALSPlayerCameraManager.h:47
float GetCameraBehaviorParam(FName CurveName) const
Definition ALSPlayerCameraManager.cpp:74
bool CustomCameraBehavior(float DeltaTime, FVector &Location, FRotator &Rotation, float &FOV)
Definition ALSPlayerCameraManager.cpp:140
FTransform SmoothedPivotTarget
Definition ALSPlayerCameraManager.h:57
FVector DebugViewOffset
Definition ALSPlayerCameraManager.h:72
static void DrawDebugSphereTraceSingle(const UWorld *World, const FVector &Start, const FVector &End, const FCollisionShape &CollisionShape, EDrawDebugTrace::Type DrawDebugType, bool bHit, const FHitResult &OutHit, FLinearColor TraceColor, FLinearColor TraceHitColor, float DrawTime)
Definition ALSDebugComponent.cpp:337