// Lot AP3 (Docs/Migration/20_Chaine_Animations.md) : repartition de la torsion entre os Bend et Twist. // // Le retargeter Unreal met toute la rotation d'un membre dans l'os Bend (les os Twist sont hors chaine) : // la peau de l'epaule, de l'avant-bras et de la cuisse se vrille. Pour chaque cle des clips convertis, la // rotation de l'os Bend depuis la pose T ajustee est decomposee autour de l'axe du segment (swing / twist) : // l'os Bend garde la flexion, l'os Twist recoit la rotation complete. Tous les autres os gardent exactement // leur transformation (controle a chaque cle) ; c'est la repartition de la formule (LPPoseMeasure::TransferPose). // Les paires viennent du profil du corps (roles upperarm / upperarm_twist / lowerarm, etc.). // // Usage : // UnrealEditor-Cmd.exe -run=LPAnimTwist [-ClipDir=/Game/Quaternius/UAL] [-RefClip=A_TPose] // [-Bodies=Bridget:B_,Michael:M_] [-Clips=Idle_Loop,Walk_Loop] [-DryRun] [-Out=] // [-BodyClipDir=] [-Templates=Bridget:,Michael:] // -BodyClipDir : dossier des clips convertis (defaut : ClipDir) ; les clips source restent dans ClipDir. // -Templates : clip qui fournit le squelette de chaque corps (defaut : /). // Rapport : /rapport_torsion.json. Code de sortie 0 si chaque clip est traite et conserve les autres os. #pragma once #include "CoreMinimal.h" #include "Commandlets/Commandlet.h" #include "LPAnimTwistCommandlet.generated.h" UCLASS() class ULPAnimTwistCommandlet : public UCommandlet { GENERATED_BODY() public: ULPAnimTwistCommandlet(); virtual int32 Main(const FString& Params) override; };