Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ADigitalHumanDriverLite::SetValues(const ValuesArray& Data)
- {
- for ( auto i = 0; i < Data.size(); ++i )
- {
- auto value = Data[i];
- if (GetSkeletalMeshComponent()->GetAnimInstance())
- {
- value += GetSkeletalMeshComponent()->GetAnimInstance()->GetCurveValue(FName(VALUE_NAMES[i].c_str())) * Weight;
- }
- GetSkeletalMeshComponent()->SetMorphTarget(FName(VALUE_NAMES[i].c_str()), value, false);
- }
- }
- void ADigitalHumanDriverLite::BlendMorphTargets()
- {
- float weight = Counter / BlendTime;
- for (auto i = 0; i < Frame.frame.values.size(); ++i )
- {
- auto value = (Frame.frame.values)[i] * weight;
- if (GetSkeletalMeshComponent()->GetAnimInstance())
- {
- value += GetSkeletalMeshComponent()->GetAnimInstance()->GetCurveValue(FName(VALUE_NAMES[i].c_str())) * (1.0 - weight);
- }
- GetSkeletalMeshComponent()->SetMorphTarget(FName(VALUE_NAMES[i].c_str()), value, false);
- }
- Counter--;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement