Battle Talent  V11
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
CrossLink.HandPoseControl Class Reference

Inherits MonoBehaviour.

Public Member Functions

Rigidbody GetFingerGrabRB ()
 
Collider GetFingerGrabCol ()
 
Collider CheckFingerGrabBoardPhase (System.Func< Collider, bool > fliter=null)
 
bool DoFingerGrab ()
 
bool UpdateFingerGrabPose (Rigidbody rb)
 
void SetFingerFollowSpeed (float weightPerSec)
 
void SubmitFingerTarget (int index, float weight, bool ignoreFreeze=false)
 set specific finger to the weight position, then the system will lerp to that position for you More...
 
bool IsFreeze ()
 
void SetFingerFreeze (bool f)
 lock finger pose, so that other system can not change the finger even they call SubmitFingerTarget you should call SubmitFingerTarget first, then set it to freeze, system will still update the animation for a while More...
 
void TickUpdate ()
 should not be called outside More...
 
void SetHandPose (HandPosePreset preset, float weight, bool ignoreFreeze=false)
 
void AddFingerTipsRunTime (float tipOffset=0.01f, float tipSize=0.01f)
 
void AutoConfigFingersRunTime (int fingerNodeDepth=3)
 
void SubmitHandPose (List< float > fingerWeights, float weight=1, bool ignoreFreeze=false)
 this is used with SetHandPose(HandPosePreset preset...) More...
 
void SubmitHandPose (float weight=1, bool ignoreFreeze=false)
 set specific finger pose to the weight position, then the system will lerp to that position for you you can lock the finger pose by using SetFreeze and you can still bypass the freeze using ignoreFreeze == true More...
 
void StartHandTracking (bool isLeft)
 
void StopHandTracking (bool isLeft)
 
float GetFingerWeight (bool isLeft, int finger)
 

Public Attributes

int numOfFinger = 5
 
HandFinger[] fingers
 
RootMotion.FinalIK.HandPoser handPoser
 
bool usingHandTracking = false
 

Static Public Attributes

const float BoardPhaseRadius = 0.2f
 
const int ThumbFinger = 0
 
const int IndexFinger = 1
 
const int MiddleFinger = 2
 
const int RingFinger = 3
 
const int PinkieFinger = 4
 
static float FingerSizeMlp = 1f
 
const float FastWeightSpeed = 12f
 
const float NormalWeightSpeed = 5f
 
const float SlowWeightSpeed = 2f
 

Member Function Documentation

◆ SetFingerFreeze()

void CrossLink.HandPoseControl.SetFingerFreeze ( bool  f)

lock finger pose, so that other system can not change the finger even they call SubmitFingerTarget you should call SubmitFingerTarget first, then set it to freeze, system will still update the animation for a while

Parameters
f

◆ SubmitFingerTarget()

void CrossLink.HandPoseControl.SubmitFingerTarget ( int  index,
float  weight,
bool  ignoreFreeze = false 
)

set specific finger to the weight position, then the system will lerp to that position for you

Parameters
index
weight
ignoreFreeze

◆ SubmitHandPose() [1/2]

void CrossLink.HandPoseControl.SubmitHandPose ( float  weight = 1,
bool  ignoreFreeze = false 
)

set specific finger pose to the weight position, then the system will lerp to that position for you you can lock the finger pose by using SetFreeze and you can still bypass the freeze using ignoreFreeze == true

Parameters
fingerWeights
weight
ignoreFreeze

◆ SubmitHandPose() [2/2]

void CrossLink.HandPoseControl.SubmitHandPose ( List< float >  fingerWeights,
float  weight = 1,
bool  ignoreFreeze = false 
)

this is used with SetHandPose(HandPosePreset preset...)

Parameters
fingerWeights
weight
ignoreFreeze

◆ TickUpdate()

void CrossLink.HandPoseControl.TickUpdate ( )

should not be called outside