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 |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 371 of file VRGestureComponent.h.
◆ bGestureChanged
| bool UVRGestureComponent::bGestureChanged |
◆ bGetGestureInWorldSpace
| bool UVRGestureComponent::bGetGestureInWorldSpace |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 379 of file VRGestureComponent.h.
◆ bRecordingFlattenGesture
| bool UVRGestureComponent::bRecordingFlattenGesture |
◆ CurrentState
◆ GestureLog
◆ GesturesDB
|
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 337 of file VRGestureComponent.h.
◆ maxSlope
| int UVRGestureComponent::maxSlope |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 426 of file VRGestureComponent.h.
◆ MirroringHand
|
|
BlueprintReadWriteEditAnywhere |
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 |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 345 of file VRGestureComponent.h.
◆ SplineMaterial
| UMaterialInterface* UVRGestureComponent::SplineMaterial |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 403 of file VRGestureComponent.h.
◆ SplineMesh
| UStaticMesh* UVRGestureComponent::SplineMesh |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 387 of file VRGestureComponent.h.
◆ SplineMeshScaler
| FVector2D UVRGestureComponent::SplineMeshScaler |
|
BlueprintReadWriteEditAnywhere |
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "VRGestures")
Definition at line 395 of file VRGestureComponent.h.
◆ StartVector
| FVector UVRGestureComponent::StartVector |
◆ TargetCharacter
|
|
BlueprintReadWriteEditAnywhere |
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