UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = (VRExpansionPlugin))
More...
#include <VRGestureComponent.h>
|
| UVRGestureComponent (const FObjectInitializer &ObjectInitializer) |
|
void | BeginDestroy () override |
|
void | BeginRecording (bool bRunDetection, bool bFlattenGesture=true, bool bDrawGesture=true, bool bDrawAsSpline=false, int SamplingHTZ=30, int SampleBufferSize=60, float ClampingTolerance=0.01f) |
| UFUNCTION(BlueprintCallable, Category = "VRGestures")
|
|
void | CaptureGestureFrame () |
|
void | ClearRecording () |
| UFUNCTION(BlueprintCallable, Category = "VRGestures")
|
|
void | DrawDebugGesture (UObject *WorldContextObject, UPARAM(ref) FTransform &StartTransform, FVRGesture GestureToDraw, FColor const &Color, bool bPersistentLines=false, uint8 DepthPriority=0, float LifeTime=-1.f, float Thickness=0.f) |
| UFUNCTION(BlueprintCallable, Category = "VRGestures", meta = (WorldContext = "WorldContextObject"))
|
|
float | dtw (FVRGesture seq1, FVRGesture seq2, bool bMirrorGesture=false, float Scaler=1.f) |
|
FVRGesture | EndRecording () |
| UFUNCTION(BlueprintCallable, Category = "VRGestures")
|
|
float | GetGestureDistance (FVector Seq1, FVector Seq2, bool bMirrorGesture=false) |
|
void | OnGestureDetected (uint8 GestureType, FString &DetectedGestureName, int &DetectedGestureIndex, UGesturesDatabase *GestureDatabase) |
| UFUNCTION(BlueprintImplementableEvent, Category = "BaseVRCharacter")
|
|
void | RecalculateGestureSize (UPARAM(ref) FVRGesture &InputGesture, UGesturesDatabase *GestureDB) |
| UFUNCTION(BlueprintCallable, Category = "VRGestures")
|
|
void | RecognizeGesture (FVRGesture inputGesture) |
|
void | SaveRecording (UPARAM(ref) FVRGesture &Recording, FString RecordingName, bool bScaleRecordingToDatabase=true) |
| UFUNCTION(BlueprintCallable, Category = "VRGestures")
|
|
void | TickGesture () |
|
|
bool | bDrawRecordingGesture |
|
bool | bDrawRecordingGestureAsSpline |
|
bool | bDrawSplinesCurved |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
bool | bGestureChanged |
|
bool | bGetGestureInWorldSpace |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
bool | bRecordingFlattenGesture |
|
EVRGestureState | CurrentState |
| UPROPERTY(BlueprintReadOnly, Category = "VRGestures")
|
|
FVRGesture | GestureLog |
| UPROPERTY(BlueprintReadOnly, Category = "VRGestures")
|
|
UGesturesDatabase * | GesturesDB |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
int | maxSlope |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
EVRGestureMirrorMode | MirroringHand |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
FVRGestureDetectedSignature | OnGestureDetected_Bind |
| UPROPERTY(BlueprintAssignable, Category = "VRGestures")
|
|
FTransform | OriginatingTransform |
|
int | RecordingBufferSize |
|
float | RecordingClampingTolerance |
|
float | RecordingDelta |
|
FVRGestureSplineDraw | RecordingGestureDraw |
|
float | SameSampleTolerance |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
UMaterialInterface * | SplineMaterial |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
UStaticMesh * | SplineMesh |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
FVector2D | SplineMeshScaler |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
FVector | StartVector |
|
AVRBaseCharacter * | TargetCharacter |
| UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
|
|
FTimerHandle | TickGestureTimer_Handle |
|
UCLASS(Blueprintable, meta = (BlueprintSpawnableComponent), ClassGroup = (VRExpansionPlugin))
A scene component that can sample its positions to record / track VR gestures Core code is from https://social.msdn.microsoft.com/Forums/en-US/4a428391-82df-445a-a867-557f284bd4b1/dynamic-time-warping-to-recognize-gestures?forum=kinectsdk I would also like to acknowledge RuneBerg as he appears to have used the same core codebase and I discovered that halfway through implementing this If this algorithm should not prove stable enough I will likely look into using a more complex and faster one in the future, I have several modifications to the base DTW algorithm noted from a few research papers. I only implemented this one first as it was a single header file and the quickest to implement.
Definition at line 305 of file VRGestureComponent.h.
◆ UVRGestureComponent()
UVRGestureComponent::UVRGestureComponent |
( |
const FObjectInitializer & | ObjectInitializer | ) |
|
◆ BeginDestroy()
void UVRGestureComponent::BeginDestroy |
( |
| ) |
|
|
override |
◆ BeginRecording()
void UVRGestureComponent::BeginRecording |
( |
bool | bRunDetection, |
|
|
bool | bFlattenGesture = true, |
|
|
bool | bDrawGesture = true, |
|
|
bool | bDrawAsSpline = false, |
|
|
int | SamplingHTZ = 30, |
|
|
int | SampleBufferSize = 60, |
|
|
float | ClampingTolerance = 0.01f ) |
|
BlueprintCallable |
◆ CaptureGestureFrame()
void UVRGestureComponent::CaptureGestureFrame |
( |
| ) |
|
◆ ClearRecording()
void UVRGestureComponent::ClearRecording |
( |
| ) |
|
|
BlueprintCallable |
◆ DrawDebugGesture()
void UVRGestureComponent::DrawDebugGesture |
( |
UObject * | WorldContextObject, |
|
|
UPARAM(ref) FTransform & | StartTransform, |
|
|
FVRGesture | GestureToDraw, |
|
|
FColor const & | Color, |
|
|
bool | bPersistentLines = false, |
|
|
uint8 | DepthPriority = 0, |
|
|
float | LifeTime = -1.f, |
|
|
float | Thickness = 0.f ) |
|
BlueprintCallable |
UFUNCTION(BlueprintCallable, Category = "VRGestures", meta = (WorldContext = "WorldContextObject"))
Definition at line 473 of file VRGestureComponent.cpp.
◆ dtw()
◆ EndRecording()
◆ GENERATED_BODY()
UVRGestureComponent::GENERATED_BODY |
( |
| ) |
|
|
private |
◆ GetGestureDistance()
float UVRGestureComponent::GetGestureDistance |
( |
FVector | Seq1, |
|
|
FVector | Seq2, |
|
|
bool | bMirrorGesture = false ) |
|
inline |
◆ OnGestureDetected()
void UVRGestureComponent::OnGestureDetected |
( |
uint8 | GestureType, |
|
|
FString & | DetectedGestureName, |
|
|
int & | DetectedGestureIndex, |
|
|
UGesturesDatabase * | GestureDatabase ) |
|
BlueprintImplementableEvent |
UFUNCTION(BlueprintImplementableEvent, Category = "BaseVRCharacter")
◆ RecalculateGestureSize()
◆ RecognizeGesture()
void UVRGestureComponent::RecognizeGesture |
( |
FVRGesture | inputGesture | ) |
|
◆ SaveRecording()
void UVRGestureComponent::SaveRecording |
( |
UPARAM(ref) FVRGesture & | Recording, |
|
|
FString | RecordingName, |
|
|
bool | bScaleRecordingToDatabase = true ) |
|
BlueprintCallable |
◆ TickGesture()
void UVRGestureComponent::TickGesture |
( |
| ) |
|
◆ bDrawRecordingGesture
bool UVRGestureComponent::bDrawRecordingGesture |
◆ bDrawRecordingGestureAsSpline
bool UVRGestureComponent::bDrawRecordingGestureAsSpline |
◆ bDrawSplinesCurved
bool UVRGestureComponent::bDrawSplinesCurved |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 371 of file VRGestureComponent.h.
◆ bGestureChanged
bool UVRGestureComponent::bGestureChanged |
◆ bGetGestureInWorldSpace
bool UVRGestureComponent::bGetGestureInWorldSpace |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 379 of file VRGestureComponent.h.
◆ bRecordingFlattenGesture
bool UVRGestureComponent::bRecordingFlattenGesture |
◆ CurrentState
◆ GestureLog
◆ GesturesDB
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 337 of file VRGestureComponent.h.
◆ maxSlope
int UVRGestureComponent::maxSlope |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 426 of file VRGestureComponent.h.
◆ MirroringHand
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 353 of file VRGestureComponent.h.
◆ OnGestureDetected_Bind
FVRGestureDetectedSignature UVRGestureComponent::OnGestureDetected_Bind |
|
BlueprintAssignable |
◆ OriginatingTransform
FTransform UVRGestureComponent::OriginatingTransform |
◆ RecordingBufferSize
int UVRGestureComponent::RecordingBufferSize |
◆ RecordingClampingTolerance
float UVRGestureComponent::RecordingClampingTolerance |
◆ RecordingDelta
float UVRGestureComponent::RecordingDelta |
◆ RecordingGestureDraw
◆ SameSampleTolerance
float UVRGestureComponent::SameSampleTolerance |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 345 of file VRGestureComponent.h.
◆ SplineMaterial
UMaterialInterface* UVRGestureComponent::SplineMaterial |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 403 of file VRGestureComponent.h.
◆ SplineMesh
UStaticMesh* UVRGestureComponent::SplineMesh |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 387 of file VRGestureComponent.h.
◆ SplineMeshScaler
FVector2D UVRGestureComponent::SplineMeshScaler |
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 395 of file VRGestureComponent.h.
◆ StartVector
FVector UVRGestureComponent::StartVector |
◆ TargetCharacter
|
EditAnywhereBlueprintReadWrite |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 361 of file VRGestureComponent.h.
◆ TickGestureTimer_Handle
FTimerHandle UVRGestureComponent::TickGestureTimer_Handle |
The documentation for this class was generated from the following files:
- SDKDemo/Plugins/UnrealEngineSDK/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRGestureComponent.h
- SDKDemo/Plugins/UnrealEngineSDK/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp