Dynamic Pose Recognition Documentation



Recording Dynamic Gestures

Detecting Dynamic Gestures

Deleting and Editing Dynamic Gestures


To start setting up the Dynamic Pose Recognition System, A data asset must be created.

The data asset must be of type DynamicGestureDataAsset. Any other data asset type will not be accepted by the system. The dynamic gestures which will be recorded and detected will be saved in the data structure. There is no need to add elements to the data asset since the system will add gesture through recording.

The dynamic pose recognition is an actor component that can be added to a character or a pawn. To start setting up a pose recognition character add the actor components to an actor, pawn or character.

In the dynamic pose recognition component, under Dynamic Pose Recognition Data Asset, the right data asset must be assigned to the corresponding data asset slot.

Important: The body area which will be used must have its own data asset. Not assigning a data asset to a body part will disable recording for the body part.

Important: A pose recognition character or pawn must contain a skeletal mesh component.

In the dynamic pose recognition component, under Skeleton Setup, the bone name must be assigned to the corresponding array element.

Important: the dynamic pose recognition does not contain any bones for fingers. This means that any pose recognition involving hands will be done though static single poses or sequences of poses.

Lastly, in the EventBegin event, the InitMesh function must be called with the Skeletal Mesh as a parameter.

Recording Dynamic Gestures

To record a dynamic gesture, one of the record dynamic gesture functions must be called. The dynamic gesture system includes recording and saving functions pose recording for full body, upper body and lower body. The recording and saving functions should be connected to different button interactions or different input actions. When the action for recording is performed a timer will start. The system will record will record the movement until the action for saving is performed.

Important: As there are no finger bones to assign in the setup of the dynamic gesture system, dynamic gestures can only be recorded and detected for full body, upper body and lower body.

The dynamic gesture record functions include a dynamic gesture name, a dynamic pose type and a sample rate. The dynamic gesture name must be unique for every pose recorded. If a dynamic gesture name already exists, the new gesture will not be recorded. The dynamic pose type will differentiate between the poses. The pose type also allows multiple poses to have the same type. The sample rate determines how many samples are recorded. The default sample rate is 30 samples a second.

Detecting Dynamic Gestures

The first step in detecting a dynamic gesture is binding events. There are three events per body area when detecting sequences: gesture started, gesture completed and gesture failed. The gesture started event will return a string with the current gesture name.

Different events can be made to be bound to the dispatcher. The system gives access to the current body area gesture type.

After binding to events, the StartDetect_BodyArea_DynamicGestures function must be called once (E.g., in Event BeginPlay or performing an input action). The Sample Rate should match the Sample Rate used for recording.

In the dynamic pose recognition details panel, under dynamic pose recognition detecting variables, a threshold and a timer variable can be set. The long timer is not relevant to single pose detection. The time variables are in seconds. The threshold should have a value between 0 and 1. The long timer refers to the time it takes for the gesture to fail if the samples are not completed in time.

Deleting and Editing Dynamic Gestures

Deleting and editing can be done within the data asset. The gesture name and type can be edited. The samples cannot be edited.