---@meta

---@class FAnimNode_IKRig : FAnimNode_CustomProperty
---@field Source FPoseLink
---@field RigDefinitionAsset UIKRigDefinition
---@field Goals TArray<FIKRigGoal>
---@field bStartFromRefPose boolean
---@field AlphaInputType EAnimAlphaInputType
---@field bAlphaBoolEnabled boolean
---@field Alpha float
---@field AlphaScaleBias FInputScaleBias
---@field AlphaBoolBlend FInputAlphaBoolBlend
---@field AlphaCurveName FName
---@field AlphaScaleBiasClamp FInputScaleBiasClamp
---@field GoalCreators TArray<UActorComponent>
local FAnimNode_IKRig = {}



---@class FAnimNode_RetargetPoseFromMesh : FAnimNode_Base
---@field Source FPoseLink
---@field RetargetFrom ERetargetSourceMode
---@field SourceMeshComponent TWeakObjectPtr<USkeletalMeshComponent>
---@field IKRetargeterAsset UIKRetargeter
---@field CustomRetargetProfile FRetargetProfile
---@field LODThreshold int32
---@field LODThresholdForIK int32
---@field bSuppressWarnings boolean
---@field bUseAttachedParent boolean
local FAnimNode_RetargetPoseFromMesh = {}



---@class FBoneChain
---@field ChainName FName
---@field StartBone FBoneReference
---@field EndBone FBoneReference
---@field IKGoalName FName
local FBoneChain = {}



---@class FCurveRemapPair
---@field SourceCurve FName
---@field TargetCurve FName
local FCurveRemapPair = {}



---@class FGoalBone
local FGoalBone = {}


---@class FIKRetargetAdditivePoseOp : FIKRetargetOpBase
---@field Settings FIKRetargetAdditivePoseOpSettings
local FIKRetargetAdditivePoseOp = {}



---@class FIKRetargetAdditivePoseOpSettings : FIKRetargetOpSettingsBase
---@field PoseToApply FName
---@field Alpha float
local FIKRetargetAdditivePoseOpSettings = {}



---@class FIKRetargetAlignPoleVectorOp : FIKRetargetOpBase
---@field Settings FIKRetargetAlignPoleVectorOpSettings
---@field ChainMapping FRetargetChainMapping
local FIKRetargetAlignPoleVectorOp = {}



---@class FIKRetargetAlignPoleVectorOpSettings : FIKRetargetOpSettingsBase
---@field IKRigAsset UIKRigDefinition
---@field ChainsToAlign TArray<FRetargetPoleVectorSettings>
local FIKRetargetAlignPoleVectorOpSettings = {}



---@class FIKRetargetCopyBasePoseOp : FIKRetargetOpBase
---@field Settings FIKRetargetCopyBasePoseOpSettings
local FIKRetargetCopyBasePoseOp = {}



---@class FIKRetargetCopyBasePoseOpSettings : FIKRetargetOpSettingsBase
---@field bCopyBasePose boolean
---@field CopyBasePoseRoot FName
local FIKRetargetCopyBasePoseOpSettings = {}



---@class FIKRetargetCurveRemapOp : FIKRetargetOpBase
---@field Settings FIKRetargetCurveRemapOpSettings
local FIKRetargetCurveRemapOp = {}



---@class FIKRetargetCurveRemapOpSettings : FIKRetargetOpSettingsBase
---@field bCopyAllSourceCurves boolean
---@field bRemapCurves boolean
---@field CurvesToRemap TArray<FCurveRemapPair>
local FIKRetargetCurveRemapOpSettings = {}



---@class FIKRetargetFKChainsOp : FIKRetargetOpBase
---@field Settings FIKRetargetFKChainsOpSettings
---@field ChainMapping FRetargetChainMapping
local FIKRetargetFKChainsOp = {}



---@class FIKRetargetFKChainsOpSettings : FIKRetargetOpSettingsBase
---@field IKRigAsset UIKRigDefinition
---@field ChainsToRetarget TArray<FRetargetFKChainSettings>
---@field bDrawChainLines boolean
---@field bDrawSingleBoneChains boolean
---@field ChainDrawThickness double
---@field ChainDrawSize double
local FIKRetargetFKChainsOpSettings = {}



---@class FIKRetargetIKChainsOp : FIKRetargetOpBase
---@field Settings FIKRetargetIKChainsOpSettings
local FIKRetargetIKChainsOp = {}



---@class FIKRetargetIKChainsOpSettings : FIKRetargetOpSettingsBase
---@field ChainsToRetarget TArray<FRetargetIKChainSettings>
---@field bDrawFinalGoals boolean
---@field bDrawSourceLocations boolean
---@field GoalDrawSize double
---@field GoalDrawThickness double
local FIKRetargetIKChainsOpSettings = {}



---@class FIKRetargetOpBase
---@field bIsEnabled boolean
---@field Name FName
---@field ParentOpName FName
local FIKRetargetOpBase = {}



---@class FIKRetargetOpSettingsBase
local FIKRetargetOpSettingsBase = {}


---@class FIKRetargetPelvisMotionOp : FIKRetargetOpBase
---@field Settings FIKRetargetPelvisMotionOpSettings
local FIKRetargetPelvisMotionOp = {}



---@class FIKRetargetPelvisMotionOpSettings : FIKRetargetOpSettingsBase
---@field SourcePelvisBone FBoneReference
---@field TargetPelvisBone FBoneReference
---@field RotationAlpha double
---@field RotationOffset FRotator
---@field TranslationAlpha double
---@field TranslationOffset FVector
---@field BlendToSourceTranslation double
---@field BlendToSourceTranslationWeights FVector
---@field ScaleHorizontal double
---@field ScaleVertical double
---@field AffectIKHorizontal double
---@field AffectIKVertical double
---@field bEnableDebugDraw boolean
---@field DebugDrawSize double
---@field DebugDrawThickness double
local FIKRetargetPelvisMotionOpSettings = {}



---@class FIKRetargetPinBoneOp : FIKRetargetOpBase
---@field Settings FIKRetargetPinBoneOpSettings
local FIKRetargetPinBoneOp = {}



---@class FIKRetargetPinBoneOpSettings : FIKRetargetOpSettingsBase
---@field BonesToPin TArray<FPinBoneData>
---@field SkeletonToCopyFrom ERetargetSourceOrTarget
---@field bCopyTranslation boolean
---@field TranslationMode EPinBoneTranslationMode
---@field bCopyRotation boolean
---@field RotationMode EPinBoneRotationMode
---@field bCopyScale boolean
---@field bPropagateToChildren boolean
---@field GlobalOffset FTransform
---@field LocalOffset FTransform
local FIKRetargetPinBoneOpSettings = {}



---@class FIKRetargetPose
---@field RootTranslationOffset FVector
---@field BoneRotationOffsets TMap<FName, FQuat>
local FIKRetargetPose = {}



---@class FIKRetargetRootMotionOp : FIKRetargetOpBase
---@field Settings FIKRetargetRootMotionOpSettings
local FIKRetargetRootMotionOp = {}



---@class FIKRetargetRootMotionOpSettings : FIKRetargetOpSettingsBase
---@field SourceRoot FBoneReference
---@field TargetRoot FBoneReference
---@field RootMotionSource ERootMotionSource
---@field TargetPelvis FBoneReference
---@field bRotateWithPelvis boolean
---@field RootHeightSource ERootMotionHeightSource
---@field GlobalOffset FTransform
---@field bMaintainOffsetFromPelvis boolean
---@field bPropagateToNonRetargetedChildren boolean
local FIKRetargetRootMotionOpSettings = {}



---@class FIKRetargetRunIKRigOp : FIKRetargetOpBase
---@field Settings FIKRetargetRunIKRigOpSettings
---@field ChainMapping FRetargetChainMapping
local FIKRetargetRunIKRigOp = {}



---@class FIKRetargetRunIKRigOpSettings : FIKRetargetOpSettingsBase
---@field IKRigAsset UIKRigDefinition
---@field ExcludedGoals TArray<FName>
---@field bDrawGoals boolean
---@field bDrawGoalBoneLocations boolean
---@field GoalDrawSize double
---@field GoalDrawThickness double
local FIKRetargetRunIKRigOpSettings = {}



---@class FIKRetargetScaleSourceOp : FIKRetargetOpBase
---@field Settings FIKRetargetScaleSourceOpSettings
local FIKRetargetScaleSourceOp = {}



---@class FIKRetargetScaleSourceOpSettings : FIKRetargetOpSettingsBase
---@field SourceScaleFactor double
local FIKRetargetScaleSourceOpSettings = {}



---@class FIKRetargetSpeedPlantingOp : FIKRetargetOpBase
---@field Settings FIKRetargetSpeedPlantingOpSettings
local FIKRetargetSpeedPlantingOp = {}



---@class FIKRetargetSpeedPlantingOpSettings : FIKRetargetOpSettingsBase
---@field ChainsToSpeedPlant TArray<FRetargetSpeedPlantingSettings>
---@field SpeedThreshold double
---@field Stiffness double
---@field CriticalDamping double
local FIKRetargetSpeedPlantingOpSettings = {}



---@class FIKRetargetStrideWarpingOp : FIKRetargetOpBase
---@field Settings FIKRetargetStrideWarpingOpSettings
local FIKRetargetStrideWarpingOp = {}



---@class FIKRetargetStrideWarpingOpSettings : FIKRetargetOpSettingsBase
---@field ChainSettings TArray<FRetargetStrideWarpChainSettings>
---@field DirectionSource EWarpingDirectionSource
---@field ForwardDirection EBasicAxis
---@field DirectionChain FName
---@field WarpForwards double
---@field SidewaysOffset double
---@field WarpSplay double
---@field bEnableDebugDraw boolean
---@field DebugDrawSize double
---@field DebugDrawThickness double
local FIKRetargetStrideWarpingOpSettings = {}



---@class FIKRigBodyMoverGoalSettings : FIKRigGoalSettingsBase
---@field BoneName FName
---@field InfluenceMultiplier float
local FIKRigBodyMoverGoalSettings = {}



---@class FIKRigBodyMoverSettings : FIKRigSolverSettingsBase
---@field StartBone FName
---@field PositionAlpha float
---@field PositionPositiveX float
---@field PositionNegativeX float
---@field PositionPositiveY float
---@field PositionNegativeY float
---@field PositionPositiveZ float
---@field PositionNegativeZ float
---@field RotationAlpha float
---@field RotateXAlpha float
---@field RotateYAlpha float
---@field RotateZAlpha float
local FIKRigBodyMoverSettings = {}



---@class FIKRigBodyMoverSolver : FIKRigSolverBase
---@field Settings FIKRigBodyMoverSettings
---@field AllGoalSettings TArray<FIKRigBodyMoverGoalSettings>
local FIKRigBodyMoverSolver = {}



---@class FIKRigBoneSettingsBase : FIKRigSettingsBase
---@field bone FName
local FIKRigBoneSettingsBase = {}



---@class FIKRigFBIKBoneSettings : FIKRigBoneSettingsBase
---@field RotationStiffness float
---@field PositionStiffness float
---@field X EPBIKLimitType
---@field MinX float
---@field MaxX float
---@field Y EPBIKLimitType
---@field MinY float
---@field MaxY float
---@field Z EPBIKLimitType
---@field MinZ float
---@field MaxZ float
---@field bUsePreferredAngles boolean
---@field PreferredAngles FVector
local FIKRigFBIKBoneSettings = {}



---@class FIKRigFBIKGoalSettings : FIKRigGoalSettingsBase
---@field BoneName FName
---@field ChainDepth int32
---@field StrengthAlpha float
---@field PullChainAlpha float
---@field PinRotation float
---@field IndexInSolver int32
local FIKRigFBIKGoalSettings = {}



---@class FIKRigFBIKSettings : FIKRigSolverSettingsBase
---@field RootBone FName
---@field Iterations int32
---@field SubIterations int32
---@field MassMultiplier float
---@field bAllowStretch boolean
---@field RootBehavior EPBIKRootBehavior
---@field PrePullRootSettings FRootPrePullSettings
---@field GlobalPullChainAlpha float
---@field MaxAngle float
---@field OverRelaxation float
local FIKRigFBIKSettings = {}



---@class FIKRigFullBodyIKSolver : FIKRigSolverBase
---@field Settings FIKRigFBIKSettings
---@field AllGoalSettings TArray<FIKRigFBIKGoalSettings>
---@field AllBoneSettings TArray<FIKRigFBIKBoneSettings>
local FIKRigFullBodyIKSolver = {}



---@class FIKRigGoal
---@field Name FName
---@field BoneName FName
---@field TransformSource EIKRigGoalTransformSource
---@field SourceBone FBoneReference
---@field Position FVector
---@field Rotation FRotator
---@field PositionAlpha float
---@field RotationAlpha float
---@field PositionSpace EIKRigGoalSpace
---@field RotationSpace EIKRigGoalSpace
---@field FinalBlendedPosition FVector
---@field FinalBlendedRotation FQuat
---@field bEnabled boolean
local FIKRigGoal = {}



---@class FIKRigGoalContainer
local FIKRigGoalContainer = {}


---@class FIKRigGoalSettingsBase : FIKRigSettingsBase
---@field Goal FName
local FIKRigGoalSettingsBase = {}



---@class FIKRigInputSkeleton
local FIKRigInputSkeleton = {}


---@class FIKRigLimbSolver : FIKRigSolverBase
---@field Settings FIKRigLimbSolverSettings
local FIKRigLimbSolver = {}



---@class FIKRigLimbSolverSettings : FLimbSolverSettings
---@field StartBone FName
---@field GoalName FName
---@field EndBone FName
local FIKRigLimbSolverSettings = {}



---@class FIKRigPoleSolver : FIKRigSolverBase
---@field Settings FIKRigPoleSolverSettings
local FIKRigPoleSolver = {}



---@class FIKRigPoleSolverSettings : FIKRigSolverSettingsBase
---@field StartBone FName
---@field EndBone FName
---@field AimAtGoal FName
---@field Alpha float
local FIKRigPoleSolverSettings = {}



---@class FIKRigSetTransform : FIKRigSolverBase
---@field Settings FIKRigSetTransformSettings
local FIKRigSetTransform = {}



---@class FIKRigSetTransformSettings : FIKRigSolverSettingsBase
---@field Goal FName
---@field BoneToAffect FName
---@field PositionAlpha float
---@field RotationAlpha float
---@field Alpha float
---@field bPropagateToChildren boolean
local FIKRigSetTransformSettings = {}



---@class FIKRigSettingsBase
local FIKRigSettingsBase = {}


---@class FIKRigSkeleton
---@field BoneNames TArray<FName>
---@field ParentIndices TArray<int32>
---@field ExcludedBones TArray<FName>
---@field CurrentPoseGlobal TArray<FTransform>
---@field CurrentPoseLocal TArray<FTransform>
---@field RefPoseGlobal TArray<FTransform>
local FIKRigSkeleton = {}



---@class FIKRigSolverBase
---@field bIsEnabled boolean
local FIKRigSolverBase = {}



---@class FIKRigSolverSettingsBase : FIKRigSettingsBase
local FIKRigSolverSettingsBase = {}


---@class FLimbLink
local FLimbLink = {}


---@class FLimbSolver
local FLimbSolver = {}


---@class FLimbSolverSettings : FIKRigSolverSettingsBase
---@field ReachPrecision float
---@field HingeRotationAxis EAxis::Type
---@field MaxIterations int32
---@field bEnableLimit boolean
---@field MinRotationAngle float
---@field bAveragePull boolean
---@field PullDistribution float
---@field ReachStepAlpha float
---@field bEnableTwistCorrection boolean
---@field EndBoneForwardAxis EAxis::Type
local FLimbSolverSettings = {}



---@class FPinBoneData
---@field BoneToCopyFrom FBoneReference
---@field BoneToCopyTo FBoneReference
---@field BoneToPin FName
---@field BoneToPinTo FName
local FPinBoneData = {}



---@class FRetargetChainMapping
---@field ChainMap TArray<FRetargetChainPair>
---@field SourceIKRig UIKRigDefinition
---@field TargetIKRig UIKRigDefinition
local FRetargetChainMapping = {}



---@class FRetargetChainPair
---@field TargetChainName FName
---@field SourceChainName FName
local FRetargetChainPair = {}



---@class FRetargetDefinition
---@field RootBone FName
---@field BoneChains TArray<FBoneChain>
local FRetargetDefinition = {}



---@class FRetargetFKChainSettings
---@field TargetChainName FName
---@field EnableFK boolean
---@field RotationMode EFKChainRotationMode
---@field RotationAlpha double
---@field TranslationMode EFKChainTranslationMode
---@field TranslationAlpha double
local FRetargetFKChainSettings = {}



---@class FRetargetGlobalSettings
---@field bEnableRoot boolean
---@field bEnableFK boolean
---@field bEnableIK boolean
---@field bEnablePost boolean
---@field bCopyBasePose boolean
---@field CopyBasePoseRoot FName
---@field SourceScaleFactor float
---@field bWarping boolean
---@field DirectionSource EWarpingDirectionSource
---@field ForwardDirection EBasicAxis
---@field DirectionChain FName
---@field WarpForwards float
---@field SidewaysOffset float
---@field WarpSplay float
local FRetargetGlobalSettings = {}



---@class FRetargetIKChainSettings
---@field TargetChainName FName
---@field EnableIK boolean
---@field BlendToSource double
---@field BlendToSourceTranslation double
---@field BlendToSourceRotation double
---@field BlendToSourceWeights FVector
---@field StaticOffset FVector
---@field StaticLocalOffset FVector
---@field StaticRotationOffset FRotator
---@field ScaleVertical double
---@field Extension double
local FRetargetIKChainSettings = {}



---@class FRetargetOpProfile
---@field OpToApplySettingsTo FName
---@field SettingsToApply FInstancedStruct
local FRetargetOpProfile = {}



---@class FRetargetPoleVectorSettings
---@field TargetChainName FName
---@field bEnabled boolean
---@field AlignAlpha double
---@field StaticAngularOffset double
---@field MaintainOffset boolean
local FRetargetPoleVectorSettings = {}



---@class FRetargetProfile
---@field RetargetOpProfiles TArray<FRetargetOpProfile>
---@field bApplyTargetRetargetPose boolean
---@field TargetRetargetPoseName FName
---@field bApplySourceRetargetPose boolean
---@field SourceRetargetPoseName FName
---@field bForceAllIKOff boolean
---@field bApplyChainSettings boolean
---@field ChainSettings TMap<FName, FTargetChainSettings>
---@field bApplyRootSettings boolean
---@field RootSettings FTargetRootSettings
---@field bApplyGlobalSettings boolean
---@field GlobalSettings FRetargetGlobalSettings
local FRetargetProfile = {}



---@class FRetargetSpeedPlantingSettings
---@field TargetChainName FName
---@field SpeedCurveName FName
local FRetargetSpeedPlantingSettings = {}



---@class FRetargetStrideWarpChainSettings
---@field TargetChainName FName
---@field EnableStrideWarping boolean
local FRetargetStrideWarpChainSettings = {}



---@class FTargetChainFKSettings
---@field EnableFK boolean
---@field RotationMode ERetargetRotationMode
---@field RotationAlpha float
---@field TranslationMode ERetargetTranslationMode
---@field TranslationAlpha float
---@field PoleVectorMatching float
---@field PoleVectorMaintainOffset boolean
---@field PoleVectorOffset float
local FTargetChainFKSettings = {}



---@class FTargetChainIKSettings
---@field EnableIK boolean
---@field BlendToSource float
---@field BlendToSourceTranslation float
---@field BlendToSourceRotation float
---@field BlendToSourceWeights FVector
---@field StaticOffset FVector
---@field StaticLocalOffset FVector
---@field StaticRotationOffset FRotator
---@field ScaleVertical float
---@field Extension float
---@field bAffectedByIKWarping boolean
local FTargetChainIKSettings = {}



---@class FTargetChainSettings
---@field FK FTargetChainFKSettings
---@field IK FTargetChainIKSettings
---@field SpeedPlanting FTargetChainSpeedPlantSettings
local FTargetChainSettings = {}



---@class FTargetChainSpeedPlantSettings
---@field EnableSpeedPlanting boolean
---@field SpeedCurveName FName
---@field SpeedThreshold float
---@field UnplantStiffness float
---@field UnplantCriticalDamping float
local FTargetChainSpeedPlantSettings = {}



---@class FTargetRootSettings
---@field RotationAlpha float
---@field TranslationAlpha float
---@field BlendToSource float
---@field BlendToSourceWeights FVector
---@field ScaleHorizontal float
---@field ScaleVertical float
---@field TranslationOffset FVector
---@field RotationOffset FRotator
---@field AffectIKHorizontal float
---@field AffectIKVertical float
local FTargetRootSettings = {}



---@class IIKGoalCreatorInterface : IInterface
local IIKGoalCreatorInterface = {}

---@param OutGoals TMap<FName, FIKRigGoal>
function IIKGoalCreatorInterface:AddIKGoals(OutGoals) end


---@class UCurveRemapOp : URetargetOpBase
---@field CurvesToRemap TArray<FCurveRemapPair>
---@field bCopyAllSourceCurves boolean
local UCurveRemapOp = {}



---@class UIKRetargetAdditivePoseController : UIKRetargetOpControllerBase
local UIKRetargetAdditivePoseController = {}

---@param InSettings FIKRetargetAdditivePoseOpSettings
function UIKRetargetAdditivePoseController:SetSettings(InSettings) end
---@return FIKRetargetAdditivePoseOpSettings
function UIKRetargetAdditivePoseController:GetSettings() end


---@class UIKRetargetAlignPoleVectorController : UIKRetargetOpControllerBase
local UIKRetargetAlignPoleVectorController = {}

---@param InSettings FIKRetargetAlignPoleVectorOpSettings
function UIKRetargetAlignPoleVectorController:SetSettings(InSettings) end
---@return FIKRetargetAlignPoleVectorOpSettings
function UIKRetargetAlignPoleVectorController:GetSettings() end


---@class UIKRetargetCopyBasePoseController : UIKRetargetOpControllerBase
local UIKRetargetCopyBasePoseController = {}

---@param InSettings FIKRetargetCopyBasePoseOpSettings
function UIKRetargetCopyBasePoseController:SetSettings(InSettings) end
---@return FIKRetargetCopyBasePoseOpSettings
function UIKRetargetCopyBasePoseController:GetSettings() end


---@class UIKRetargetCurveRemapController : UIKRetargetOpControllerBase
local UIKRetargetCurveRemapController = {}

---@param InSettings FIKRetargetCurveRemapOpSettings
function UIKRetargetCurveRemapController:SetSettings(InSettings) end
---@return FIKRetargetCurveRemapOpSettings
function UIKRetargetCurveRemapController:GetSettings() end


---@class UIKRetargetFKChainsController : UIKRetargetOpControllerBase
local UIKRetargetFKChainsController = {}

---@param InSettings FIKRetargetFKChainsOpSettings
function UIKRetargetFKChainsController:SetSettings(InSettings) end
---@return FIKRetargetFKChainsOpSettings
function UIKRetargetFKChainsController:GetSettings() end


---@class UIKRetargetGlobalSettings : UObject
---@field Settings FRetargetGlobalSettings
local UIKRetargetGlobalSettings = {}



---@class UIKRetargetIKChainsController : UIKRetargetOpControllerBase
local UIKRetargetIKChainsController = {}

---@param InSettings FIKRetargetIKChainsOpSettings
function UIKRetargetIKChainsController:SetSettings(InSettings) end
---@return FIKRetargetIKChainsOpSettings
function UIKRetargetIKChainsController:GetSettings() end


---@class UIKRetargetOpControllerBase : UObject
local UIKRetargetOpControllerBase = {}


---@class UIKRetargetPelvisMotionController : UIKRetargetOpControllerBase
local UIKRetargetPelvisMotionController = {}

---@param InTargetPelvisBone FName
function UIKRetargetPelvisMotionController:SetTargetPelvisBone(InTargetPelvisBone) end
---@param InSourcePelvisBone FName
function UIKRetargetPelvisMotionController:SetSourcePelvisBone(InSourcePelvisBone) end
---@param InSettings FIKRetargetPelvisMotionOpSettings
function UIKRetargetPelvisMotionController:SetSettings(InSettings) end
---@return FName
function UIKRetargetPelvisMotionController:GetTargetPelvisBone() end
---@return FName
function UIKRetargetPelvisMotionController:GetSourcePelvisBone() end
---@return FIKRetargetPelvisMotionOpSettings
function UIKRetargetPelvisMotionController:GetSettings() end


---@class UIKRetargetPinBoneController : UIKRetargetOpControllerBase
local UIKRetargetPinBoneController = {}

---@param InSettings FIKRetargetPinBoneOpSettings
function UIKRetargetPinBoneController:SetSettings(InSettings) end
---@param InBoneToCopyFrom FName
---@param InBoneToCopyTo FName
function UIKRetargetPinBoneController:SetBonePair(InBoneToCopyFrom, InBoneToCopyTo) end
---@return FIKRetargetPinBoneOpSettings
function UIKRetargetPinBoneController:GetSettings() end
---@return TMap<FName, FName>
function UIKRetargetPinBoneController:GetAllBonePairs() end
function UIKRetargetPinBoneController:ClearAllBonePairs() end


---@class UIKRetargetProcessor : UObject
local UIKRetargetProcessor = {}


---@class UIKRetargetRootMotionController : UIKRetargetOpControllerBase
local UIKRetargetRootMotionController = {}

---@param InTargetRootBone FName
function UIKRetargetRootMotionController:SetTargetRootBone(InTargetRootBone) end
---@param InTargetPelvisBone FName
function UIKRetargetRootMotionController:SetTargetPelvisBone(InTargetPelvisBone) end
---@param InSourceRootBone FName
function UIKRetargetRootMotionController:SetSourceRootBone(InSourceRootBone) end
---@param InSettings FIKRetargetRootMotionOpSettings
function UIKRetargetRootMotionController:SetSettings(InSettings) end
---@return FName
function UIKRetargetRootMotionController:GetTargetRootBone() end
---@return FName
function UIKRetargetRootMotionController:GetTargetPelvisBone() end
---@return FName
function UIKRetargetRootMotionController:GetSourceRootBone() end
---@return FIKRetargetRootMotionOpSettings
function UIKRetargetRootMotionController:GetSettings() end


---@class UIKRetargetRunIKRigController : UIKRetargetOpControllerBase
local UIKRetargetRunIKRigController = {}

---@param InSettings FIKRetargetRunIKRigOpSettings
function UIKRetargetRunIKRigController:SetSettings(InSettings) end
---@return FIKRetargetRunIKRigOpSettings
function UIKRetargetRunIKRigController:GetSettings() end


---@class UIKRetargetScaleSourceController : UIKRetargetOpControllerBase
local UIKRetargetScaleSourceController = {}

---@param InSettings FIKRetargetScaleSourceOpSettings
function UIKRetargetScaleSourceController:SetSettings(InSettings) end
---@return FIKRetargetScaleSourceOpSettings
function UIKRetargetScaleSourceController:GetSettings() end


---@class UIKRetargetSpeedPlantingController : UIKRetargetOpControllerBase
local UIKRetargetSpeedPlantingController = {}

---@param InSettings FIKRetargetSpeedPlantingOpSettings
function UIKRetargetSpeedPlantingController:SetSettings(InSettings) end
---@return FIKRetargetSpeedPlantingOpSettings
function UIKRetargetSpeedPlantingController:GetSettings() end


---@class UIKRetargetStrideWarpingController : UIKRetargetOpControllerBase
local UIKRetargetStrideWarpingController = {}

---@param InSettings FIKRetargetStrideWarpingOpSettings
function UIKRetargetStrideWarpingController:SetSettings(InSettings) end
---@return FIKRetargetStrideWarpingOpSettings
function UIKRetargetStrideWarpingController:GetSettings() end


---@class UIKRetargeter : UObject
---@field Version int32
---@field SourceIKRigAsset UIKRigDefinition
---@field TargetIKRigAsset UIKRigDefinition
---@field RetargetOps TArray<FInstancedStruct>
---@field Profiles TMap<FName, FRetargetProfile>
---@field CurrentProfile FName
---@field SourceRetargetPoses TMap<FName, FIKRetargetPose>
---@field TargetRetargetPoses TMap<FName, FIKRetargetPose>
---@field CurrentSourceRetargetPose FName
---@field CurrentTargetRetargetPose FName
---@field bRetargetRoot boolean
---@field bRetargetFK boolean
---@field bRetargetIK boolean
---@field TargetActorOffset float
---@field TargetActorScale float
---@field RetargetPoses TMap<FName, FIKRetargetPose>
---@field CurrentRetargetPose FName
---@field ChainMap FRetargetChainMapping
---@field ChainSettings TArray<URetargetChainSettings>
---@field RootSettings URetargetRootSettings
---@field GlobalSettings UIKRetargetGlobalSettings
---@field OpStack URetargetOpStack
local UIKRetargeter = {}

---@param RetargetProfile FRetargetProfile
---@param RootSettings FTargetRootSettings
function UIKRetargeter:SetRootSettingsInRetargetProfile(RetargetProfile, RootSettings) end
---@param RetargetProfile FRetargetProfile
---@param GlobalSettings FRetargetGlobalSettings
function UIKRetargeter:SetGlobalSettingsInRetargetProfile(RetargetProfile, GlobalSettings) end
---@param RetargetProfile FRetargetProfile
---@param SpeedPlantSettings FTargetChainSpeedPlantSettings
---@param TargetChainName FName
function UIKRetargeter:SetChainSpeedPlantSettingsInRetargetProfile(RetargetProfile, SpeedPlantSettings, TargetChainName) end
---@param RetargetProfile FRetargetProfile
---@param ChainSettings FTargetChainSettings
---@param TargetChainName FName
function UIKRetargeter:SetChainSettingsInRetargetProfile(RetargetProfile, ChainSettings, TargetChainName) end
---@param RetargetProfile FRetargetProfile
---@param IKSettings FTargetChainIKSettings
---@param TargetChainName FName
function UIKRetargeter:SetChainIKSettingsInRetargetProfile(RetargetProfile, IKSettings, TargetChainName) end
---@param RetargetProfile FRetargetProfile
---@param FKSettings FTargetChainFKSettings
---@param TargetChainName FName
function UIKRetargeter:SetChainFKSettingsInRetargetProfile(RetargetProfile, FKSettings, TargetChainName) end
---@return boolean
function UIKRetargeter:HasTargetIKRig() end
---@return boolean
function UIKRetargeter:HasSourceIKRig() end
---@param RetargetProfile FRetargetProfile
---@return FTargetRootSettings
function UIKRetargeter:GetRootSettingsFromRetargetProfile(RetargetProfile) end
---@param RetargetAsset UIKRetargeter
---@param OptionalProfileName FName
---@param OutSettings FTargetRootSettings
function UIKRetargeter:GetRootSettingsFromRetargetAsset(RetargetAsset, OptionalProfileName, OutSettings) end
---@param RetargetProfile FRetargetProfile
---@return FRetargetGlobalSettings
function UIKRetargeter:GetGlobalSettingsFromRetargetProfile(RetargetProfile) end
---@param RetargetAsset UIKRetargeter
---@param OptionalProfileName FName
---@param OutSettings FRetargetGlobalSettings
function UIKRetargeter:GetGlobalSettingsFromRetargetAsset(RetargetAsset, OptionalProfileName, OutSettings) end
---@param RetargetAsset UIKRetargeter
---@param IKGoalName FName
---@return FTargetChainSettings
function UIKRetargeter:GetChainUsingGoalFromRetargetAsset(RetargetAsset, IKGoalName) end
---@param RetargetProfile FRetargetProfile
---@param TargetChainName FName
---@return FTargetChainSettings
function UIKRetargeter:GetChainSettingsFromRetargetProfile(RetargetProfile, TargetChainName) end
---@param RetargetAsset UIKRetargeter
---@param TargetChainName FName
---@param OptionalProfileName FName
---@return FTargetChainSettings
function UIKRetargeter:GetChainSettingsFromRetargetAsset(RetargetAsset, TargetChainName, OptionalProfileName) end


---@class UIKRigBodyMoverController : UIKRigSolverControllerBase
local UIKRigBodyMoverController = {}

---@param InSettings FIKRigBodyMoverSettings
function UIKRigBodyMoverController:SetSolverSettings(InSettings) end
---@param InGoalName FName
---@param InSettings FIKRigBodyMoverGoalSettings
function UIKRigBodyMoverController:SetGoalSettings(InGoalName, InSettings) end
---@return FIKRigBodyMoverSettings
function UIKRigBodyMoverController:GetSolverSettings() end
---@param InGoalName FName
---@return FIKRigBodyMoverGoalSettings
function UIKRigBodyMoverController:GetGoalSettings(InGoalName) end


---@class UIKRigComponent : UActorComponent
local UIKRigComponent = {}

---@param GoalName FName
---@param Transform FTransform
---@param PositionAlpha float
---@param RotationAlpha float
function UIKRigComponent:SetIKRigGoalTransform(GoalName, Transform, PositionAlpha, RotationAlpha) end
---@param GoalName FName
---@param Position FVector
---@param Rotation FQuat
---@param PositionAlpha float
---@param RotationAlpha float
function UIKRigComponent:SetIKRigGoalPositionAndRotation(GoalName, Position, Rotation, PositionAlpha, RotationAlpha) end
---@param Goal FIKRigGoal
function UIKRigComponent:SetIKRigGoal(Goal) end
function UIKRigComponent:ClearAllGoals() end


---@class UIKRigDefinition : UObject
---@field PreviewSkeletalMesh TSoftObjectPtr<USkeletalMesh>
---@field Skeleton FIKRigSkeleton
---@field Goals TArray<UIKRigEffectorGoal>
---@field SolverStack TArray<FInstancedStruct>
---@field RetargetDefinition FRetargetDefinition
---@field Solvers TArray<UIKRigSolver>
local UIKRigDefinition = {}



---@class UIKRigEffectorGoal : UObject
---@field GoalName FName
---@field BoneName FName
---@field PositionAlpha float
---@field RotationAlpha float
---@field CurrentTransform FTransform
---@field InitialTransform FTransform
local UIKRigEffectorGoal = {}



---@class UIKRigFBIKController : UIKRigSolverControllerBase
local UIKRigFBIKController = {}

---@param InSettings FIKRigFBIKSettings
function UIKRigFBIKController:SetSolverSettings(InSettings) end
---@param InGoalName FName
---@param InSettings FIKRigFBIKGoalSettings
function UIKRigFBIKController:SetGoalSettings(InGoalName, InSettings) end
---@param InBoneName FName
---@param InSettings FIKRigFBIKBoneSettings
function UIKRigFBIKController:SetBoneSettings(InBoneName, InSettings) end
---@return FIKRigFBIKSettings
function UIKRigFBIKController:GetSolverSettings() end
---@param InGoalName FName
---@return FIKRigFBIKGoalSettings
function UIKRigFBIKController:GetGoalSettings(InGoalName) end
---@param InBoneName FName
---@return FIKRigFBIKBoneSettings
function UIKRigFBIKController:GetBoneSettings(InBoneName) end


---@class UIKRigFBIKSolver : UIKRigSolver
---@field RootBone FName
---@field Iterations int32
---@field SubIterations int32
---@field MassMultiplier float
---@field bAllowStretch boolean
---@field RootBehavior EPBIKRootBehavior
---@field PrePullRootSettings FRootPrePullSettings
---@field PullChainAlpha float
---@field MaxAngle float
---@field OverRelaxation float
---@field Effectors TArray<UIKRig_FBIKEffector>
---@field BoneSettings TArray<UIKRig_FBIKBoneSettings>
local UIKRigFBIKSolver = {}

---@return TArray<UIKRig_FBIKEffector>
function UIKRigFBIKSolver:GetEffectors() end
---@return TArray<UIKRig_FBIKBoneSettings>
function UIKRigFBIKSolver:GetBoneSettings() end


---@class UIKRigLimbSolverController : UIKRigSolverControllerBase
local UIKRigLimbSolverController = {}

---@param InSettings FIKRigLimbSolverSettings
function UIKRigLimbSolverController:SetSolverSettings(InSettings) end
---@return FIKRigLimbSolverSettings
function UIKRigLimbSolverController:GetSolverSettings() end


---@class UIKRigPoleSolverController : UIKRigSolverControllerBase
local UIKRigPoleSolverController = {}

---@param InSettings FIKRigPoleSolverSettings
function UIKRigPoleSolverController:SetSolverSettings(InSettings) end
---@return FIKRigPoleSolverSettings
function UIKRigPoleSolverController:GetSolverSettings() end


---@class UIKRigProcessor : UObject
local UIKRigProcessor = {}


---@class UIKRigSetTransformController : UIKRigSolverControllerBase
local UIKRigSetTransformController = {}

---@param InSettings FIKRigSetTransformSettings
function UIKRigSetTransformController:SetSolverSettings(InSettings) end
---@return FIKRigSetTransformSettings
function UIKRigSetTransformController:GetSolverSettings() end


---@class UIKRigSolver : UObject
---@field bIsEnabled boolean
local UIKRigSolver = {}



---@class UIKRigSolverControllerBase : UObject
local UIKRigSolverControllerBase = {}

---@param bIsEnabled boolean
function UIKRigSolverControllerBase:SetEnabled(bIsEnabled) end
---@return boolean
function UIKRigSolverControllerBase:GetEnabled() end


---@class UIKRig_BodyMover : UIKRigSolver
---@field RootBone FName
---@field PositionAlpha float
---@field PositionPositiveX float
---@field PositionNegativeX float
---@field PositionPositiveY float
---@field PositionNegativeY float
---@field PositionPositiveZ float
---@field PositionNegativeZ float
---@field RotationAlpha float
---@field RotateXAlpha float
---@field RotateYAlpha float
---@field RotateZAlpha float
---@field Effectors TArray<UIKRig_BodyMoverEffector>
local UIKRig_BodyMover = {}



---@class UIKRig_BodyMoverEffector : UObject
---@field GoalName FName
---@field BoneName FName
---@field InfluenceMultiplier float
local UIKRig_BodyMoverEffector = {}



---@class UIKRig_FBIKBoneSettings : UObject
---@field bone FName
---@field RotationStiffness float
---@field PositionStiffness float
---@field X EPBIKLimitType
---@field MinX float
---@field MaxX float
---@field Y EPBIKLimitType
---@field MinY float
---@field MaxY float
---@field Z EPBIKLimitType
---@field MinZ float
---@field MaxZ float
---@field bUsePreferredAngles boolean
---@field PreferredAngles FVector
local UIKRig_FBIKBoneSettings = {}



---@class UIKRig_FBIKEffector : UObject
---@field GoalName FName
---@field BoneName FName
---@field ChainDepth int32
---@field StrengthAlpha float
---@field PullChainAlpha float
---@field PinRotation float
local UIKRig_FBIKEffector = {}



---@class UIKRig_LimbEffector : UObject
---@field GoalName FName
---@field BoneName FName
local UIKRig_LimbEffector = {}



---@class UIKRig_LimbSolver : UIKRigSolver
---@field RootName FName
---@field ReachPrecision float
---@field HingeRotationAxis EAxis::Type
---@field MaxIterations int32
---@field bEnableLimit boolean
---@field MinRotationAngle float
---@field bAveragePull boolean
---@field PullDistribution float
---@field ReachStepAlpha float
---@field bEnableTwistCorrection boolean
---@field EndBoneForwardAxis EAxis::Type
---@field Effector UIKRig_LimbEffector
local UIKRig_LimbSolver = {}



---@class UIKRig_PoleSolver : UIKRigSolver
---@field RootName FName
---@field EndName FName
---@field Effector UIKRig_PoleSolverEffector
local UIKRig_PoleSolver = {}



---@class UIKRig_PoleSolverEffector : UObject
---@field GoalName FName
---@field BoneName FName
---@field Alpha float
local UIKRig_PoleSolverEffector = {}



---@class UIKRig_SetTransform : UIKRigSolver
---@field Goal FName
---@field RootBone FName
---@field Effector UIKRig_SetTransformEffector
local UIKRig_SetTransform = {}



---@class UIKRig_SetTransformEffector : UObject
---@field bEnablePosition boolean
---@field bEnableRotation boolean
---@field Alpha float
local UIKRig_SetTransformEffector = {}



---@class UPinBoneOp : URetargetOpBase
---@field BonesToPin TArray<FPinBoneData>
---@field PinTo ERetargetSourceOrTarget
---@field bCopyTranslation boolean
---@field bCopyRotation boolean
---@field bCopyScale boolean
---@field TranslationMode EPinBoneTranslationMode
---@field RotationMode EPinBoneRotationMode
---@field GlobalOffset FTransform
---@field LocalOffset FTransform
---@field bMaintainOffset boolean
---@field PinType EPinBoneType
local UPinBoneOp = {}



---@class URetargetChainSettings : UObject
---@field SourceChain FName
---@field TargetChain FName
---@field Settings FTargetChainSettings
---@field CopyPoseUsingFK boolean
---@field RotationMode ERetargetRotationMode
---@field RotationAlpha float
---@field TranslationMode ERetargetTranslationMode
---@field TranslationAlpha float
---@field DriveIKGoal boolean
---@field BlendToSource float
---@field BlendToSourceWeights FVector
---@field StaticOffset FVector
---@field StaticLocalOffset FVector
---@field StaticRotationOffset FRotator
---@field Extension float
---@field UseSpeedCurveToPlantIK boolean
---@field SpeedCurveName FName
---@field VelocityThreshold float
---@field UnplantStiffness float
---@field UnplantCriticalDamping float
local URetargetChainSettings = {}



---@class URetargetOpBase : UObject
---@field bIsEnabled boolean
local URetargetOpBase = {}



---@class URetargetOpStack : UObject
---@field RetargetOps TArray<URetargetOpBase>
local URetargetOpStack = {}



---@class URetargetProfileLibrary : UBlueprintFunctionLibrary
local URetargetProfileLibrary = {}

---@param InRetargetProfile FRetargetProfile
---@param InRetargetOpName FName
---@return UIKRetargetOpControllerBase
function URetargetProfileLibrary:GetOpControllerFromRetargetProfile(InRetargetProfile, InRetargetOpName) end
---@param InRetargetAsset UIKRetargeter
---@return FRetargetProfile
function URetargetProfileLibrary:CopyRetargetProfileFromRetargetAsset(InRetargetAsset) end


---@class URetargetRootSettings : UObject
---@field Settings FTargetRootSettings
---@field RetargetRootTranslation boolean
---@field GlobalScaleHorizontal float
---@field GlobalScaleVertical float
---@field BlendToSource FVector
---@field StaticOffset FVector
---@field StaticRotationOffset FRotator
local URetargetRootSettings = {}



---@class URootMotionGeneratorOp : URetargetOpBase
---@field SourceRootBone FName
---@field TargetRootBone FName
---@field TargetPelvisBone FName
---@field RootMotionSource ERootMotionSource
---@field RootHeightSource ERootMotionHeightSource
---@field bPropagateToNonRetargetedChildren boolean
---@field bMaintainOffsetFromPelvis boolean
---@field bRotateWithPelvis boolean
---@field GlobalOffset FTransform
local URootMotionGeneratorOp = {}



