Merging //UE4/Dev-Main @ 4397329 to Dev-Core (//UE4/Dev-Core)

#rb none

[CL 4397828 by Robert Manuszewski in Dev-Core branch]
This commit is contained in:
Robert Manuszewski
2018-09-26 08:22:54 -04:00
parent d7d45cd257
commit 02ba9f72df
2178 changed files with 131340 additions and 43291 deletions

View File

@@ -58,19 +58,9 @@ void FAnimNode_Constraint::EvaluateSkeletalControl_AnyThread(FComponentSpacePose
if (ConstraintData.Num() > 0)
{
FTransform SourceTransform = Output.Pose.GetComponentSpaceTransform(BoneToModify.CachedCompactPoseIndex);
FTransform ParentTransform;
FCompactPoseBoneIndex ParentIndex = BoneContainer.GetParentBoneIndex(BoneToModify.CachedCompactPoseIndex);
if (ParentIndex != INDEX_NONE)
{
ParentTransform = Output.Pose.GetComponentSpaceTransform(ParentIndex);
}
else
{
ParentTransform = FTransform::Identity;
}
FTransform ConstrainedTransform = AnimationCore::SolveConstraints(SourceTransform, ParentTransform, ConstraintData);
OutBoneTransforms.Add(FBoneTransform(BoneToModify.GetCompactPoseIndex(BoneContainer), ConstrainedTransform));
// for constraint anim node, we always use identity as base
FTransform ConstrainedTransform = AnimationCore::SolveConstraints(SourceTransform, FTransform::Identity, ConstraintData);
OutBoneTransforms.Add(FBoneTransform(BoneToModify.CachedCompactPoseIndex, ConstrainedTransform));
#if WITH_EDITOR
CachedOriginalTransform = SourceTransform;
@@ -108,17 +98,7 @@ void FAnimNode_Constraint::InitializeBoneReferences(const FBoneContainer& Requir
if (BoneToModify.IsValidToEvaluate(RequiredBones))
{
FTransform SourceTransform = FAnimationRuntime::GetComponentSpaceRefPose(BoneToModify.CachedCompactPoseIndex, RequiredBones);
FTransform ParentTransform;
FCompactPoseBoneIndex ParentIndex = RequiredBones.GetParentBoneIndex(BoneToModify.CachedCompactPoseIndex);
if (ParentIndex != INDEX_NONE)
{
ParentTransform = FAnimationRuntime::GetComponentSpaceRefPose(ParentIndex, RequiredBones);
}
else
{
ParentTransform = FTransform::Identity;
}
for (int32 ConstraintIndex = 0; ConstraintIndex < ConstraintNum; ++ConstraintIndex)
{
FConstraint& Constraint = ConstraintSetup[ConstraintIndex];
@@ -131,8 +111,9 @@ void FAnimNode_Constraint::InitializeBoneReferences(const FBoneContainer& Requir
NewConstraintData.Constraint.ConstraintDescription->AxesFilterOption = Constraint.PerAxis;
FTransform TargetTransform = (NewConstraintData.bMaintainOffset) ? FAnimationRuntime::GetComponentSpaceRefPose(Constraint.TargetBone.CachedCompactPoseIndex, RequiredBones) : FTransform::Identity;
NewConstraintData.SaveInverseOffset(SourceTransform, TargetTransform, ParentTransform);
// for constraint anim node, we always use identity as base
NewConstraintData.SaveInverseOffset(SourceTransform, TargetTransform, FTransform::Identity);
Constraint.ConstraintDataIndex = ConstraintData.Add(NewConstraintData);
}