/Engine/Source/Runtime/Engine/Public/AnimationRuntime.h
This optionally blends rotation and/or scale in mesh space. Translation is always in local space.
I had multiple debates about having PerBoneBlendWeights array(for memory reasons), but it so much simplifies multiple purpose for this function instead of searching bonenames or having multiple bone names with multiple weights, and filtering through which one is correct one I assume all those things should be determined before coming here and this only cares about weights
static void BlendPosesPerBoneFilter ( [FCompactPose](API\Runtime\Engine\FCompactPose) & BasePose, const [TArray](API\Runtime\Core\Containers\TArray)< [FCompactPose](API\Runtime\Engine\FCompactPose) > & BlendPoses, [FBlendedCurve](API\Runtime\Engine\Animation\FBlendedCurve) & BaseCurve, const [TArray](API\Runtime\Core\Containers\TArray)< [FBlendedCurve](API\Runtime\Engine\Animation\FBlendedCurve) > & BlendCurves, [FCompactPose](API\Runtime\Engine\FCompactPose) & OutPose, [FBlendedCurve](API\Runtime\Engine\Animation\FBlendedCurve) & OutCurve, [TArray](API\Runtime\Core\Containers\TArray)< [FPerBoneBlendWeight](API\Runtime\Engine\Animation\FPerBoneBlendWeight) > & BoneBlendWeights, [EBlendPosesPerBoneFilterFlags](API\Runtime\Engine\FAnimationRuntime\EBlendPosesPerBoneFilterFlags) blendFlags, enum [ECurveBlendOption::Type](API\Runtime\Engine\Animation\ECurveBlendOption__Type) CurveBlendOption )