4#include "CoreMinimal.h"
6#include "Navigation/PathFollowingComponent.h"
11#include "GameFramework/Character.h"
12#include "GameFramework/Controller.h"
13#include "Components/CapsuleComponent.h"
14#include "VRBaseCharacter.generated.h"
39 bool bJustTeleportedGrips;
45 FVector_NetQuantize100 PausedTrackingLoc;
48 float PausedTrackingRot;
53 bool NetSerialize(FArchive& Ar, class UPackageMap* Map,
bool& bOutSuccess)
58 uint8 Flags = (bSimulatedPhysicSleep << 0) | (bRepPhysics << 1) | (bJustTeleported << 2) | (bJustTeleportedGrips << 3) | (bPausedTracking << 4);
59 Ar.SerializeBits(&Flags, 5);
60 bSimulatedPhysicSleep = (Flags & (1 << 0)) ? 1 : 0;
61 bRepPhysics = (Flags & (1 << 1)) ? 1 : 0;
62 bJustTeleported = (Flags & (1 << 2)) ? 1 : 0;
63 bJustTeleportedGrips = (Flags & (1 << 3)) ? 1 : 0;
64 bPausedTracking = (Flags & (1 << 4)) ? 1 : 0;
70 bOutSuccess &= PausedTrackingLoc.NetSerialize(Ar, Map, bOutSuccess);
75 Yaw = FRotator::CompressAxisToShort(PausedTrackingRot);
81 PausedTrackingRot = Yaw;
87 bOutSuccess &= SerializeQuantizedVector(Ar, Location, BaseSettings.LocationQuantizationLevel);
89 switch (BaseSettings.RotationQuantizationLevel)
91 case ERotatorQuantization::ByteComponents:
93 Rotation.SerializeCompressed(Ar);
97 case ERotatorQuantization::ShortComponents:
99 Rotation.SerializeCompressedShort(Ar);
104 bOutSuccess &= SerializeQuantizedVector(Ar, LinearVelocity, BaseSettings.VelocityQuantizationLevel);
109 bOutSuccess &= SerializeQuantizedVector(Ar, AngularVelocity, BaseSettings.VelocityQuantizationLevel);
121 WithNetSerializer =
true,
122 WithNetSharedSerialization =
true,
126USTRUCT(Blueprintable)
129 GENERATED_USTRUCT_BODY()
131 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
133 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
135 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
137 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
139 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
141 UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
144 UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category = "CharacterSeatInfo", meta = (ClampMin = "1.000", UIMin = "1.000", ClampMax = "256.000", UIMax = "256.000"))
146 UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category = "CharacterSeatInfo", meta = (ClampMin = "1.000", UIMin = "1.000", ClampMax = "256.000", UIMax = "256.000"))
147 float AllowedRadiusThreshold;
148 UPROPERTY(BlueprintReadOnly, NotReplicated, Category = "CharacterSeatInfo")
149 float CurrentThresholdScaler;
150 UPROPERTY(BlueprintReadOnly, NotReplicated, Category = "CharacterSeatInfo")
151 bool bIsOverThreshold;
154 bool bOriginalControlRotation;
165 bIsOverThreshold =
false;
166 bWasOverLimit =
false;
168 StoredTargetTransform = FTransform::Identity;
169 InitialRelCameraTransform = FTransform::Identity;
171 bOriginalControlRotation =
false;
172 AllowedRadius = 40.0f;
173 AllowedRadiusThreshold = 20.0f;
174 CurrentThresholdScaler = 0.0f;
175 SeatParent =
nullptr;
181 bWasOverLimit =
false;
183 bOriginalControlRotation =
false;
184 CurrentThresholdScaler = 0.0f;
190 bool NetSerialize(FArchive& Ar,
class UPackageMap* Map,
bool& bOutSuccess)
194 Ar.SerializeBits(&bSitting, 1);
195 Ar.SerializeBits(&bZeroToHead, 1);
199 InitialRelCameraTransform.NetSerialize(Ar, Map, bOutSuccess);
205 bOutSuccess &= WriteFixedCompressedFloat<256, 16>(AllowedRadius, Ar);
206 bOutSuccess &= WriteFixedCompressedFloat<256, 16>(AllowedRadiusThreshold, Ar);
210 bOutSuccess &= ReadFixedCompressedFloat<256, 16>(AllowedRadius, Ar);
211 bOutSuccess &= ReadFixedCompressedFloat<256, 16>(AllowedRadiusThreshold, Ar);
215 StoredTargetTransform.NetSerialize(Ar, Map, bOutSuccess);
217 Ar << PostSeatedMovementMode;
226 WithNetSerializer =
true
233 GENERATED_USTRUCT_BODY()
243 bool NetSerialize(FArchive& Ar,
class UPackageMap* Map,
bool& bOutSuccess)
250 bOutSuccess &= WriteFixedCompressedFloat<1024, 18>(CapsuleHeight, Ar);
254 bOutSuccess &= ReadFixedCompressedFloat<1024, 18>(CapsuleHeight, Ar);
265 WithNetSerializer =
true
275 AVRBaseCharacter(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
278 UPROPERTY(Transient, DuplicateTransient)
282 virtual
void PostInitializeComponents() override;
284 virtual
void PossessedBy(AController* NewController);
285 virtual
void OnRep_Controller() override;
286 virtual
void OnRep_PlayerState() override;
289 UPROPERTY(ReplicatedUsing = OnRep_ReplicatedMovement)
292 bool bFlagTeleported;
293 bool bFlagTeleportedGrips;
294 bool bTrackingPaused;
295 FVector PausedTrackingLoc;
296 float PausedTrackingRot;
299 virtual
void OnRep_ReplicatedMovement() override;
300 virtual
void GatherCurrentMovement() override;
303 UPROPERTY(BlueprintAssignable, Category = "VRMovement")
304 FVRPlayerTeleportedSignature OnCharacterTeleported_Bind;
307 UPROPERTY(BlueprintAssignable, Category = "VRMovement")
308 FVRPlayerNetworkCorrectedSignature OnCharacterNetworkCorrected_Bind;
311 UPROPERTY(BlueprintAssignable, Category = "VRMovement")
312 FVRPlayerStateReplicatedSignature OnPlayerStateReplicated_Bind;
317 UFUNCTION(Unreliable, Server, WithValidation)
320 UFUNCTION(Unreliable, Server, WithValidation)
323 UFUNCTION(Unreliable, Server, WithValidation)
326 virtual
void PreReplication(IRepChangedPropertyTracker & ChangedPropertyTracker) override;
329 UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRBaseCharacter")
330 bool VRReplicateCapsuleHeight;
333 UPROPERTY(Replicated, ReplicatedUsing = OnRep_CapsuleHeight)
337 void OnRep_CapsuleHeight()
339 if (!VRReplicateCapsuleHeight)
344 if (ReplicatedCapsuleHeight.CapsuleHeight > 0.0f && !FMath::IsNearlyEqual(ReplicatedCapsuleHeight.CapsuleHeight, Capsule->GetUnscaledCapsuleHalfHeight()))
346 SetCharacterHalfHeightVR(ReplicatedCapsuleHeight.CapsuleHeight,
false);
361 UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category =
"VRMovement")
362 void OnClimbingSteppedUp();
363 virtual
void OnClimbingSteppedUp_Implementation();
369 UFUNCTION(BlueprintNativeEvent, meta = (
DisplayName = "UpdateLowGravMovement", ScriptName = "UpdateLowGravMovement"))
370 void UpdateLowGravMovement(
float DeltaTime);
371 virtual
void UpdateLowGravMovement_Implementation(
float DeltaTime) {}
377 UFUNCTION(BlueprintNativeEvent, meta = (
DisplayName =
"UpdateClimbingMovement", ScriptName =
"UpdateClimbingMovement"))
378 void UpdateClimbingMovement(
float DeltaTime);
379 virtual
void UpdateClimbingMovement_Implementation(
float DeltaTime){}
382 UPROPERTY(BlueprintReadOnly, Transient, Category =
"VRExpansionLibrary")
383 FTransform OffsetComponentToWorld;
386 UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
387 FVector GetVRForwardVector()
const
389 return OffsetComponentToWorld.GetRotation().GetForwardVector();
393 UFUNCTION(BlueprintPure, Category =
"BaseVRCharacter|VRLocations")
394 FVector GetVRRightVector()
const
396 return OffsetComponentToWorld.GetRotation().GetRightVector();
400 UFUNCTION(BlueprintPure, Category =
"BaseVRCharacter|VRLocations")
401 FVector GetVRUpVector()
const
403 return OffsetComponentToWorld.GetRotation().GetUpVector();
407 UFUNCTION(BlueprintPure, Category =
"BaseVRCharacter|VRLocations")
408 FVector GetVRLocation()
const
410 return OffsetComponentToWorld.GetLocation();
413 inline FVector GetVRLocation_Inline()
const
415 return OffsetComponentToWorld.GetLocation();
419 UFUNCTION(BlueprintPure, Category =
"BaseVRCharacter|VRLocations")
420 FRotator GetVRRotation()
const
422 return OffsetComponentToWorld.GetRotation().Rotator();
425 UFUNCTION(BlueprintPure, Category =
"BaseVRCharacter|VRLocations", meta = (
DisplayName =
"GetVRHeadLocation", ScriptName =
"GetVRHeadLocation", Keywords =
"position"))
426 FVector K2_GetVRHeadLocation()
const
428 return GetVRHeadLocation();
431 inline FVector GetVRHeadLocation()
const
433 return VRReplicatedCamera !=
nullptr ? VRReplicatedCamera->GetComponentLocation() : OffsetComponentToWorld.GetLocation();
437 virtual FVector GetTargetLocation(
AActor* RequestedBy)
const override
439 return GetVRLocation_Inline();
443 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"VRBaseCharacter")
444 bool bUseExperimentalUnseatModeFix;
446 UPROPERTY(BlueprintReadOnly, Replicated, EditAnywhere, Category = "Seating", ReplicatedUsing = OnRep_SeatedCharInfo)
450 UFUNCTION(BlueprintNativeEvent, Category = "Seating")
451 void OnSeatedModeChanged(
bool bNewSeatedMode,
bool bWasAlreadySeated);
452 virtual
void OnSeatedModeChanged_Implementation(
bool bNewSeatedMode,
bool bWasAlreadySeated) {}
456 UFUNCTION(BlueprintNativeEvent, Category =
"Seating")
457 void OnSeatThreshholdChanged(
bool bIsWithinThreshold,
float ToThresholdScaler);
458 virtual
void OnSeatThreshholdChanged_Implementation(
bool bIsWithinThreshold,
float ToThresholdScaler) {}
461 UPROPERTY(BlueprintAssignable, Category =
"Seating")
462 FVRSeatThresholdChangedSignature OnSeatThreshholdChanged_Bind;
464 void ZeroToSeatInformation()
466 SetSeatRelativeLocationAndRotationVR(FVector::ZeroVector);
473 void TickSeatInformation(
float DeltaTime);
476 virtual
void OnRep_SeatedCharInfo();
478 void InitSeatedModeTransition();
481 UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = "BaseVRCharacter", meta = (
DisplayName = "ReZeroSeating"))
490 UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = "BaseVRCharacter", meta = (
DisplayName = "SetSeatedMode"))
498 void SetSeatRelativeLocationAndRotationVR(FVector LocDelta);
501 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
502 FVector AddActorWorldRotationVR(FRotator DeltaRot,
bool bUseYawOnly = true);
506 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
507 FVector SetActorRotationVR(FRotator NewRot,
bool bUseYawOnly = true,
bool bAccountForHMDRotation = true);
510 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
511 FVector SetActorLocationAndRotationVR(FVector NewLoc, FRotator NewRot,
bool bUseYawOnly = true,
bool bAccountForHMDRotation = true,
bool bTeleport = false);
514 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
515 FVector SetActorLocationVR(FVector NewLoc,
bool bTeleport);
518 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
519 virtual
void RegenerateOffsetComponentToWorld(
bool bUpdateBounds,
bool bCalculatePureYaw)
523 UFUNCTION(BlueprintCallable, Category =
"BaseVRCharacter")
524 virtual
void SetCharacterSizeVR(
float NewRadius,
float NewHalfHeight,
bool bUpdateOverlaps = true);
527 UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter")
528 virtual
void SetCharacterHalfHeightVR(
float HalfHeight,
bool bUpdateOverlaps = true);
534 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
539 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
542 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, Transient, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
545 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
548 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
551 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
554 UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
558 static FName LeftMotionControllerComponentName;
561 static FName RightMotionControllerComponentName;
564 static FName ReplicatedCameraComponentName;
567 static FName ParentRelativeAttachmentComponentName;
570 static FName SmoothingSceneParentComponentName;
573 static FName VRProxyComponentName;
579 UFUNCTION(BlueprintPure, Category = "
VRGrip")
580 virtual FVector GetTeleportLocation(FVector OriginalLocation);
585 UFUNCTION(BlueprintCallable, Category = "
VRGrip")
586 virtual
void NotifyOfTeleport(
bool bRegisterAsTeleport = true);
590 UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
591 void OnCustomMoveActionPerformed(
EVRMoveAction MoveActionType, FVector MoveActionVector, FRotator MoveActionRotator, uint8 MoveActionFlags);
592 virtual
void OnCustomMoveActionPerformed_Implementation(
EVRMoveAction MoveActionType, FVector MoveActionVector, FRotator MoveActionRotator, uint8 MoveActionFlags);
597 UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
598 void OnBeginWallPushback(FHitResult HitResultOfImpact,
bool bHadLocomotionInput, FVector HmdInput);
599 virtual
void OnBeginWallPushback_Implementation(FHitResult HitResultOfImpact,
bool bHadLocomotionInput, FVector HmdInput);
602 UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
603 void OnEndWallPushback();
604 virtual
void OnEndWallPushback_Implementation();
607 UFUNCTION(BlueprintImplementableEvent, Category = "VRBaseCharacter|Navigation")
608 void ReceiveNavigationMoveCompleted(EPathFollowingResult::Type PathingResult);
610 virtual
void NavigationMoveCompleted(FAIRequestID RequestID, const FPathFollowingResult& Result)
613 ReceiveNavigationMoveCompleted(Result.Code);
616 UFUNCTION(BlueprintCallable, Category =
"VRBaseCharacter|Navigation")
617 EPathFollowingStatus::Type GetMoveStatus()
const
620 return EPathFollowingStatus::Idle;
624 pathComp->GetStatus();
627 return EPathFollowingStatus::Idle;
631 UFUNCTION(BlueprintCallable, Category =
"VRBaseCharacter|Navigation")
632 bool HasPartialPath()
const
639 return pathComp->HasPartialPath();
646 UFUNCTION(BlueprintCallable, Category =
"VRBaseCharacter|Navigation")
647 void StopNavigationMovement()
656 pathComp->AbortMove(*
this, FPathFollowingResultFlags::MovementStop | FPathFollowingResultFlags::ForcedScript);
660 UPROPERTY(BlueprintReadWrite, Category = AI)
661 TSubclassOf<UNavigationQueryFilter> DefaultNavigationFilterClass;
664 UFUNCTION(BlueprintCallable, Category =
"VRBaseCharacter|Navigation", Meta = (AdvancedDisplay =
"bStopOnOverlap,bCanStrafe,bAllowPartialPath"))
665 virtual
void ExtendedSimpleMoveToLocation(const FVector& GoalLocation,
float AcceptanceRadius = -1,
bool bStopOnOverlap = false,
666 bool bUsePathfinding = true,
bool bProjectDestinationToNavigation = true,
bool bCanStrafe = false,
667 TSubclassOf<UNavigationQueryFilter> FilterClass = NULL,
bool bAllowPartialPath = true);
671 UFUNCTION(BlueprintCallable, Category = "VRBaseCharacter|Navigation")
672 bool GetCurrentNavigationPathPoints(TArray<FVector>& NavigationPointList);
EVRMoveAction
UENUM(Blueprintable)
EVRConjoinedMovementModes
UENUM(BlueprintType)
DECLARE_LOG_CATEGORY_EXTERN(LogBaseVRCharacter, Log, All)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FVRSeatThresholdChangedSignature, bool, bIsWithinThreshold, float, ToThresholdScaler)
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FVRPlayerTeleportedSignature)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FVRPlayerStateReplicatedSignature, const APlayerState *, NewPlayerState)
FVRSeatedCharacterInfo SeatInformation
UPROPERTY(BlueprintReadOnly, Replicated, EditAnywhere, Category = "Seating", ReplicatedUsing = OnRep_...
virtual FVector GetTargetLocation(AActor *RequestedBy) const override
void StopNavigationMovement()
UFUNCTION(BlueprintCallable, Category = "VRBaseCharacter|Navigation")
USceneComponent * VRProxyComponent
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
FVRReplicatedCapsuleHeight ReplicatedCapsuleHeight
UPROPERTY(Replicated, ReplicatedUsing = OnRep_CapsuleHeight)
FVRSeatThresholdChangedSignature OnSeatThreshholdChanged_Bind
UPROPERTY(BlueprintAssignable, Category = "Seating")
static FName ReplicatedCameraComponentName
FVRPlayerNetworkCorrectedSignature OnCharacterNetworkCorrected_Bind
UPROPERTY(BlueprintAssignable, Category = "VRMovement")
void OnSeatedModeChanged(bool bNewSeatedMode, bool bWasAlreadySeated)
UFUNCTION(BlueprintNativeEvent, Category = "Seating")
FRotator GetVRRotation() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
void OnEndWallPushback()
UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
USceneComponent * NetSmoother
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
virtual void UpdateLowGravMovement_Implementation(float DeltaTime)
UGripMotionControllerComponent * RightMotionController
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
FVector GetVRForwardVector() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
void OnCustomMoveActionPerformed(EVRMoveAction MoveActionType, FVector MoveActionVector, FRotator MoveActionRotator, uint8 MoveActionFlags)
UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
FVRPlayerTeleportedSignature OnCharacterTeleported_Bind
UPROPERTY(BlueprintAssignable, Category = "VRMovement")
static FName LeftMotionControllerComponentName
void ZeroToSeatInformation()
virtual void OnSeatedModeChanged_Implementation(bool bNewSeatedMode, bool bWasAlreadySeated)
bool HasPartialPath() const
UFUNCTION(BlueprintCallable, Category = "VRBaseCharacter|Navigation")
void ReceiveNavigationMoveCompleted(EPathFollowingResult::Type PathingResult)
UFUNCTION(BlueprintImplementableEvent, Category = "VRBaseCharacter|Navigation")
bool bFlagTeleportedGrips
virtual void OnSeatThreshholdChanged_Implementation(bool bIsWithinThreshold, float ToThresholdScaler)
void Server_SendTransformRightController(FBPVRComponentPosRep NewTransform)
UFUNCTION(Unreliable, Server, WithValidation)
FVector GetVRLocation() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
FVector PausedTrackingLoc
void OnRep_CapsuleHeight()
UFUNCTION()
virtual void UpdateClimbingMovement_Implementation(float DeltaTime)
FVector K2_GetVRHeadLocation() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations", meta = (DisplayName = "GetVRHeadLo...
static FName VRProxyComponentName
static FName SmoothingSceneParentComponentName
FTransform OffsetComponentToWorld
UPROPERTY(BlueprintReadOnly, Transient, Category = "VRExpansionLibrary")
static FName RightMotionControllerComponentName
FVector GetVRRightVector() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
virtual void NavigationMoveCompleted(FAIRequestID RequestID, const FPathFollowingResult &Result)
void OnBeginWallPushback(FHitResult HitResultOfImpact, bool bHadLocomotionInput, FVector HmdInput)
UFUNCTION(BlueprintNativeEvent, Category = "VRMovement")
void Server_ReZeroSeating(FTransform_NetQuantize NewTargetTransform, FTransform_NetQuantize NewInitialRelCameraTransform, bool bZeroToHead=true)
UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = "BaseVRCharacter",...
void UpdateClimbingMovement(float DeltaTime)
UFUNCTION(BlueprintNativeEvent, meta = (DisplayName = "UpdateClimbingMovement", ScriptName = "UpdateC...
FVRPlayerStateReplicatedSignature OnPlayerStateReplicated_Bind
UPROPERTY(BlueprintAssignable, Category = "VRMovement")
bool VRReplicateCapsuleHeight
UPROPERTY(EditAnywhere, Replicated, BlueprintReadWrite, Category = "VRBaseCharacter")
static FName ParentRelativeAttachmentComponentName
FVector GetVRUpVector() const
UFUNCTION(BlueprintPure, Category = "BaseVRCharacter|VRLocations")
UVRBaseCharacterMovementComponent * VRMovementReference
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, Transient, BlueprintReadOnly,...
UReplicatedVRCameraComponent * VRReplicatedCamera
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
TSubclassOf< UNavigationQueryFilter > DefaultNavigationFilterClass
UPROPERTY(BlueprintReadWrite, Category = AI)
virtual void RegenerateOffsetComponentToWorld(bool bUpdateBounds, bool bCalculatePureYaw)
UFUNCTION(BlueprintCallable, Category = "BaseVRCharacter|VRLocations")
void UpdateLowGravMovement(float DeltaTime)
UFUNCTION(BlueprintNativeEvent, meta = (DisplayName = "UpdateLowGravMovement", ScriptName = "UpdateLo...
UGripMotionControllerComponent * LeftMotionController
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
void OnSeatThreshholdChanged(bool bIsWithinThreshold, float ToThresholdScaler)
UFUNCTION(BlueprintNativeEvent, Category = "Seating")
EPathFollowingStatus::Type GetMoveStatus() const
UFUNCTION(BlueprintCallable, Category = "VRBaseCharacter|Navigation")
void OnClimbingSteppedUp()
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "VRMovement")
bool bUseExperimentalUnseatModeFix
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "VRBaseCharacter")
void Server_SetSeatedMode(USceneComponent *SeatParent, bool bSetSeatedMode, FTransform_NetQuantize TargetTransform, FTransform_NetQuantize InitialRelCameraTransform, float AllowedRadius=40.0f, float AllowedRadiusThreshold=20.0f, bool bZeroToHead=true, EVRConjoinedMovementModes PostSeatedMovementMode=EVRConjoinedMovementModes::C_MOVE_Walking)
UFUNCTION(BlueprintCallable, Server, Reliable, WithValidation, Category = "BaseVRCharacter",...
UParentRelativeAttachmentComponent * ParentRelativeAttachment
UPROPERTY(Category = VRBaseCharacter, VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess ...
void Server_SendTransformLeftController(FBPVRComponentPosRep NewTransform)
UFUNCTION(Unreliable, Server, WithValidation)
AVRPlayerController * OwningVRPlayerController
UPROPERTY(Transient, DuplicateTransient)
FVector GetVRLocation_Inline() const
FVector GetVRHeadLocation() const
void Server_SendTransformCamera(FBPVRComponentPosRep NewTransform)
UFUNCTION(Unreliable, Server, WithValidation)
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = MotionController)
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = VRExpansionLibrary)
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = VRExpansionLibrary)
bool bJustTeleported
UPROPERTY(Transient)
bool bJustTeleportedGrips
UPROPERTY(Transient)
bool NetSerialize(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess)
AActor * Owner
UPROPERTY(Transient)
FVector_NetQuantize100 PausedTrackingLoc
UPROPERTY(Transient)
bool bPausedTracking
UPROPERTY(Transient)
float PausedTrackingRot
UPROPERTY(Transient)
bool NetSerialize(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess)
FVRReplicatedCapsuleHeight()
float CapsuleHeight
UPROPERTY()
FTransform_NetQuantize StoredTargetTransform
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
float AllowedRadius
UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category = "CharacterSeatInfo",...
bool NetSerialize(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess)
bool bIsOverThreshold
UPROPERTY(BlueprintReadOnly, NotReplicated, Category = "CharacterSeatInfo")
bool bOriginalControlRotation
EVRConjoinedMovementModes PostSeatedMovementMode
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
FTransform_NetQuantize InitialRelCameraTransform
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
float CurrentThresholdScaler
UPROPERTY(BlueprintReadOnly, NotReplicated, Category = "CharacterSeatInfo")
USceneComponent * SeatParent
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
bool bZeroToHead
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
bool bSitting
UPROPERTY(BlueprintReadOnly, Category = "CharacterSeatInfo")
float AllowedRadiusThreshold
UPROPERTY(EditAnywhere, BlueprintReadWrite, NotReplicated, Category = "CharacterSeatInfo",...