top of page

Екземпляр VR Hand Animation

Клас екземпляра ручної анімації VR, який можна використовувати як батьківський клас анімаційного плану.

Назва класу:

включають:

тип:

Рядки коду:

UVR_HandAnimationInstance

#include "VR/VR_Player/VR_HandAnimationInstance.h"

Екземпляр анімації

479

Загальна інформація

опис

Клас екземпляра анімації VR є дочірнім класом екземпляра анімації . З нього можна успадкувати креслення анімації. Цей клас потрібно використовувати для анімації VR Hand і застосовувати до компонентів FakeHandMesh і RealHandMesh у схемі, успадкованій VR Hand (Інакше він призведе до збою) (Див. клас VR Hand) .



Змінні
  • FFingerCurls CurrentFingerCurls - поточні завитки кожного пальця з контролера руху.

  • FFingerCurls FingerCurls - Локони кожного пальця з плавним переходом.

  • float GripThumb, GripIndex, GripMiddle, GripRing, GripPinky - значення захоплення для IK (значення від 0 до 1).

  • float IndexPushInst - значення натискання кнопки тригера (від 0 до 1).

  • float HammerPushInst - значення натискання кнопки великого пальця (від 0 до 1). Цей параметр можна використовувати в пістолетах/револьверах для витягування курка.

  • float HandOrientationZ - це змінна, яка містить значення орієнтації (від 0 до 1). Якщо рука спрямована в напрямку X, Y або Z, значення буде 1.

  • FVector OriginThumb, OriginIndex, OriginMiddle, OriginRing, OriginPinky – це змінні, які містять вихідні місця для IK на основі розташування (додатковий метод IK) .

  • FVector TargetThumb, TargetIndex, TargetMiddle, TargetRing, TargetPinky – це змінні, які містять розташування цілей для IK на основі розташування (додатковий метод IK) .

  • bool ProceduralSkeletonEnabled – це змінна, яка вказує, чи ввімкнено процедурний скелет (застаріле та буде видалено в майбутньому) .

  • bool bHasWeapon - це змінна, яка вказує, чи є в руці зброя.

  • bool bA_Pressed - це змінна, яка вказує, чи була натиснута кнопка на контролері.

  • bool bB_Pressed - це змінна, яка вказує, чи була натиснута кнопка B на контролері.

  • bool bTrackpad_Touch – це змінна, яка вказує, чи торкався Traskpad на контролері чи ні.

  • bool bWantsToGrab - це змінна, яка вказує, чи хоче рука щось схопити.

  • EAnimationType AnimType – це змінна, яка вказує тип анімації руки (див. Змінні VR) .

  • EPickUpAnimations PickUpAnimation – це змінна, яка вказує на анімацію захоплення рукою (див. Змінні VR) .

  • bool bIsGrabbed – це змінна, яка вказує, чи рука захоплює об’єкт.

  • UAnimSequence * GrabAnimation – це змінна, яка містить анімацію захоплення із захопленого об’єкта.

  • UAnimSequence* TriggerPressedAnimation – це змінна, яка містить анімацію натиснутого тригера від захопленого об’єкта.

  • UAnimSequence* APressedAnimation – це змінна, яка містить натиснуту анімацію від захопленого об’єкта.

  • UAnimSequence* BPressedAnimation – це змінна, яка містить натиснуту B анімацію від захопленого об’єкта.

  • EControllerHand Hand - це змінна, яка вказує руку.

  • EGrip_Code CurrentGripState - це змінна, яка вказує стан рукоятки.


Приклад плану анімації

Огляд алгоритму

Приклад креслення анімації руки містить кінцевий автомат , розділ базової анімації , розділ IK на основі анімації , розділ Idle Pose та базовий IK позиції (додатковий метод IK) .



Базові анімації

Основна анімація містить 3 кешовані пози ( відкрита , розтягнута та закрита ). Вони використовуються в інших розділах.


Поза простою

У розділі Idle Pose поєднується орієнтація руки ( HandOrientationZ ) із витягнутою позою. Потім виведіть змішування із закритою кеш-пам’яткою рук за допомогою скручування пальців (переконайтеся, що є правильні назви кісток відповідно до скелета) .


IK на основі анімації

IK на основі анімації містить суміш для кожної кістки для кожного пальця (переконайтеся, що є правильні назви кісток відповідно до скелета) . Blend використовує змінні Grip ( GripThumb, GripIndex, GripMiddle, GripRing, GripPinky ). Вихідні дані переходять до кешованої позиції.


IK на основі позиції (необов’язково)

IK на основі анімації містить два вузли IK кісток (переконайтеся, що є правильні назви кісток відповідно до скелета) для кожного пальця.

Державна машина

Кінцевий автомат містить 3 стани: Idle , Grip IK і Animation Grip .



Стан простою

Стан очікування містить суміші, якщо гравець хоче взятися. Якщо гравець натисне кнопку захоплення та наблизить руку до об’єкта, він передбачить позу (трохи поверніть пальці).


Хват І.К

Grip IK містить кеш IK на основі анімації .


Ручка анімації

Animation Grip має автомат стану анімації, у якому є дві умови: унікальний елемент і зброя чи обладнання . В Prop Unique це змінна анімації. У розділі «Зброя» чи «Обладнання» є суміші та змінні анімації для захоплення, натискання кнопки тригера, натискання кнопки A/B тощо.


Довідник API Blueprint

Публічні функції члена

 

void 	SetGripState (EGrip_Code GripState)
 
 

bool 	SetSkeletalState (EControllerHand EHand)
 
 

void 	SetEAnimationType (EAnimationType NewAnimType)
 
 

void 	SetGripThumb (float NewGrip)
 
 

void 	SetGripIndex (float NewGrip)
 
 

void 	SetGripMiddle (float NewGrip)
 
 

void 	SetGripRing (float NewGrip)
 
 

void 	SetGripPinky (float NewGrip)
 
 

void 	SetHandType (EControllerHand Hand)
 
 

void 	SetHasWeapon (bool HasWeapon)
 
 

void 	Set_IsGrabbed (bool IsGrabbed)
 
 

void 	SetA_Pressed (bool Pressed)
 
 

void 	SetIndexPushInst (float Inst)
 
 

void 	SetW_HammerInst (float Inst)
 
 

void 	SetTrackpad_Touch (bool Touched)
 
 

void 	SetFingerCurls (FFingerCurls NewFingerCurls)
 
 

bool 	GetTrackpad_Touch ()
 
 

float 	GetIndexPushInst ()
 
 

float 	GetGripThumb ()
 
 

float 	GetGripIndex ()
 
 

float 	GetGripMiddle ()
 
 

float 	GetGripRing ()
 
 

float 	GetGripPinky ()
 
 

bool 	GetProceduralSkeletonEnabled ()
 
 

bool 	GetHasWeapon ()
 
 

bool 	GetA_Pressed ()
 
 

bool 	Get_IsGrabbed ()
 
 

float 	GetW_HammerInst ()
 
 

FORCEINLINE FFingerCurls 	GetFingerCurls () const
 
 

FORCEINLINE EControllerHand 	GetHandType () const
 
 

EPickUpAnimations 	GetPickUpAnimation ()

 

Захищені атрибути

 

FFingerCurls 	CurrentFingerCurls
 
 

FFingerCurls 	FingerCurls
 
 

float 	GripThumb
 
 

float 	GripIndex
 
 

float 	GripMiddle
 
 

float 	GripRing
 
 

float 	GripPinky
 
 

float 	IndexPushInst
 
 

float 	HammerPushInst
 
 

float 	HandOrientationZ
 
 

FVector 	OriginThumb
 
 

FVector 	OriginIndex
 
 

FVector 	OriginMiddle
 
 

FVector 	OriginRing
 
 

FVector 	OriginPinky
 
 

FVector 	TargetThumb
 
 

FVector 	TargetIndex
 
 

FVector 	TargetMiddle
 
 

FVector 	TargetRing
 
 

FVector 	TargetPinky
 
 

bool 	ProceduralSkeletonEnabled
 
 

bool 	bHasWeapon
 
 

bool 	bA_Pressed
 
 

bool 	bB_Pressed
 
 

bool 	bTrackpad_Touch
 
 

bool 	bWantsToGrab
 
 

EAnimationType 	AnimType
 
 

EPickUpAnimations 	PickUpAnimation
 
 

bool 	bIsGrabbed
 
 

UAnimSequence * 	GrabAnimation
 
 

UAnimSequence * 	TriggerPressedAnimation
 
 

UAnimSequence * 	APressedAnimation
 
 

UAnimSequence * 	BPressedAnimation
 
 

EControllerHand 	Hand
 
 

EGrip_Code 	CurrentGripState
 

bottom of page