EpicGamesExt / BlenderTools

Blender addons that improve the game development workflow between Blender and Unreal.
https://epicgamesext.github.io/BlenderTools/
MIT License
2.75k stars 47 forks source link

Send to Unreal - Animation Bugs W/ Rigify Rig when Exporting, same bugs not present when manual exporting the FBX #203

Closed McSeanMcCann closed 3 years ago

McSeanMcCann commented 3 years ago

Addon: Send to Unreal

Repro Steps:

Create a Basic Human Meta Rig in Blender Rigify it Parent it to an object Creaet a basic animation Use pipeline to export to unreal Observe you get an error, "Imported bone transform is different from original. Please check Output Log to see detail of error"

See attached video for how the animation looks

This does not happen if I manually do an FBX import, or if I try to export a rig that is not done using the Rigify add on. Pictures here:

image

https://user-images.githubusercontent.com/7158502/103251072-ffdc9680-492b-11eb-830e-d064f8147857.mp4

Addon Version: Send to Unreal 1.6.0

Blender Version: 2.91.0

Unreal Version: 4.26

Error Log:

LogSlate: Window 'Message Log' being destroyed LogSlate: Window 'Message Log' being destroyed LogFactory: FactoryCreateFile: StaticMesh with FbxFactory (0 0 C:\Users\mccan\AppData\Local\Temp\send2ue\Base_Model.fbx) LogFbx: Loading FBX Scene from C:\Users\mccan\AppData\Local\Temp\send2ue\Base_Model.fbx LogFbx: FBX Scene Loaded Succesfully LogFbx: Warning: Not valid bind pose for Pose (Cube.003) - Node Base Model.001 : The relative matrices do not match LogFbx: Warning: Getting valid bind pose failed. Try to recreate bind pose LogFbx: Valid bind pose for Pose (FbxSDKBindPose) - Base Model.001 LogFbx: Warning: Recreating bind pose succeeded. LogMaterial: Display: Material /Game/untitled_category/untitled_asset/Material_001.Material_001 needed to have new flag set bUsedWithSkeletalMesh ! LogMaterial: Display: Missing cached shader map for material Material_001, compiling. LogTexture: Display: Building textures: EB1HUqWl (AutoDXT, 256X256) LogMaterial: Display: Missing cached shader map for material Material_001, compiling. LogShaderCompilers: Display: Worker (1/3): shaders left to compile 24 LogShaderCompilers: Display: Worker (2/3): shaders left to compile 14 LogFbx: Triangulating skeletal mesh Base Model.001 LogFbx: Warning: Bones digested - 219 Depth of hierarchy - 12 LogSkeletalMesh: Display: /Game/untitled_category/untitled_asset/Base_Model.Base_Model ComputeTangents MikkTSpace function: Compute a zero length normal vector. LogSkeletalMesh: Section 0: Material=0, 1028 triangles LogSkeletalMesh: Building Skeletal Mesh Base_Model... LogSkeletalMesh: Display: /Game/untitled_category/untitled_asset/Base_Model.Base_Model ComputeTangents MikkTSpace function: Compute a zero length normal vector. LogSkeletalMesh: Section 0: Material=0, 1028 triangles LogSkeletalMesh: Built Skeletal Mesh [0.02s] /Game/untitled_category/untitled_asset/Base_Model.Base_Model LogWorld: UWorld::CleanupWorld for World_5, bSessionEnded=true, bCleanupResources=true LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated LogFactory: FactoryCreateFile: StaticMesh with FbxFactory (0 0 C:\Users\mccan\AppData\Local\Temp\send2ue\Wave.fbx) LogFbx: Loading FBX Scene from C:\Users\mccan\AppData\Local\Temp\send2ue\Wave.fbx LogFbx: FBX Scene Loaded Succesfully LogFbx: SortedLinks :(0) rig LogFbx: SortedLinks :(1) root LogFbx: SortedLinks :(2) ORG-spine LogFbx: SortedLinks :(3) ORG-spine_001 LogFbx: SortedLinks :(4) ORG-spine_002 LogFbx: SortedLinks :(5) ORG-spine_003 LogFbx: SortedLinks :(6) ORG-shoulder_L LogFbx: SortedLinks :(7) ORG-upper_arm_L LogFbx: SortedLinks :(8) ORG-forearm_L LogFbx: SortedLinks :(9) ORG-hand_L LogFbx: SortedLinks :(10) MCH-hand_tweak_L LogFbx: SortedLinks :(11) hand_tweak_L LogFbx: SortedLinks :(12) MCH-forearm_tweak_L LogFbx: SortedLinks :(13) forearm_tweak_L LogFbx: SortedLinks :(14) MCH-forearm_tweak_L_001 LogFbx: SortedLinks :(15) forearm_tweak_L_001 LogFbx: SortedLinks :(16) MCH-upper_arm_tweak_L_001 LogFbx: SortedLinks :(17) upper_arm_tweak_L_001 LogFbx: SortedLinks :(18) DEF-shoulder_L LogFbx: SortedLinks :(19) MCH-upper_arm_parent_L LogFbx: SortedLinks :(20) MCH-upper_arm_parent_socket_L LogFbx: SortedLinks :(21) upper_arm_parent_L LogFbx: SortedLinks :(22) upper_arm_fk_L LogFbx: SortedLinks :(23) forearm_fk_L LogFbx: SortedLinks :(24) MCH-hand_fk_L LogFbx: SortedLinks :(25) hand_fk_L LogFbx: SortedLinks :(26) upper_arm_ik_L LogFbx: SortedLinks :(27) MCH-forearm_ik_L LogFbx: SortedLinks :(28) MCH-upper_arm_ik_stretch_L LogFbx: SortedLinks :(29) MCH-upper_arm_tweak_L LogFbx: SortedLinks :(30) upper_arm_tweak_L LogFbx: SortedLinks :(31) DEF-upper_arm_L LogFbx: SortedLinks :(32) DEF-upper_arm_L_001 LogFbx: SortedLinks :(33) DEF-forearm_L LogFbx: SortedLinks :(34) DEF-forearm_L_001 LogFbx: SortedLinks :(35) DEF-hand_L LogFbx: SortedLinks :(36) ORG-shoulder_R LogFbx: SortedLinks :(37) ORG-upper_arm_R LogFbx: SortedLinks :(38) ORG-forearm_R LogFbx: SortedLinks :(39) ORG-hand_R LogFbx: SortedLinks :(40) MCH-hand_tweak_R LogFbx: SortedLinks :(41) hand_tweak_R LogFbx: SortedLinks :(42) MCH-forearm_tweak_R LogFbx: SortedLinks :(43) forearm_tweak_R LogFbx: SortedLinks :(44) MCH-forearm_tweak_R_001 LogFbx: SortedLinks :(45) forearm_tweak_R_001 LogFbx: SortedLinks :(46) MCH-upper_arm_tweak_R_001 LogFbx: SortedLinks :(47) upper_arm_tweak_R_001 LogFbx: SortedLinks :(48) DEF-shoulder_R LogFbx: SortedLinks :(49) MCH-upper_arm_parent_R LogFbx: SortedLinks :(50) MCH-upper_arm_parent_socket_R LogFbx: SortedLinks :(51) upper_arm_parent_R LogFbx: SortedLinks :(52) upper_arm_fk_R LogFbx: SortedLinks :(53) forearm_fk_R LogFbx: SortedLinks :(54) MCH-hand_fk_R LogFbx: SortedLinks :(55) hand_fk_R LogFbx: SortedLinks :(56) upper_arm_ik_R LogFbx: SortedLinks :(57) MCH-forearm_ik_R LogFbx: SortedLinks :(58) MCH-upper_arm_ik_stretch_R LogFbx: SortedLinks :(59) MCH-upper_arm_tweak_R LogFbx: SortedLinks :(60) upper_arm_tweak_R LogFbx: SortedLinks :(61) DEF-upper_arm_R LogFbx: SortedLinks :(62) DEF-upper_arm_R_001 LogFbx: SortedLinks :(63) DEF-forearm_R LogFbx: SortedLinks :(64) DEF-forearm_R_001 LogFbx: SortedLinks :(65) DEF-hand_R LogFbx: SortedLinks :(66) ORG-breast_L LogFbx: SortedLinks :(67) DEF-breast_L LogFbx: SortedLinks :(68) ORG-breast_R LogFbx: SortedLinks :(69) DEF-breast_R LogFbx: SortedLinks :(70) breast_L LogFbx: SortedLinks :(71) breast_R LogFbx: SortedLinks :(72) shoulder_L LogFbx: SortedLinks :(73) shoulder_R LogFbx: SortedLinks :(74) ORG-pelvis_L LogFbx: SortedLinks :(75) DEF-pelvis_L LogFbx: SortedLinks :(76) ORG-pelvis_R LogFbx: SortedLinks :(77) DEF-pelvis_R LogFbx: SortedLinks :(78) ORG-thigh_L LogFbx: SortedLinks :(79) ORG-shin_L LogFbx: SortedLinks :(80) ORG-foot_L LogFbx: SortedLinks :(81) ORG-toe_L LogFbx: SortedLinks :(82) ORG-heel_02_L LogFbx: SortedLinks :(83) MCH-toe_L LogFbx: SortedLinks :(84) toe_L LogFbx: SortedLinks :(85) MCH-foot_tweak_L LogFbx: SortedLinks :(86) foot_tweak_L LogFbx: SortedLinks :(87) MCH-shin_tweak_L LogFbx: SortedLinks :(88) shin_tweak_L LogFbx: SortedLinks :(89) MCH-shin_tweak_L_001 LogFbx: SortedLinks :(90) shin_tweak_L_001 LogFbx: SortedLinks :(91) MCH-thigh_tweak_L_001 LogFbx: SortedLinks :(92) thigh_tweak_L_001 LogFbx: SortedLinks :(93) ORG-thigh_R LogFbx: SortedLinks :(94) ORG-shin_R LogFbx: SortedLinks :(95) ORG-foot_R LogFbx: SortedLinks :(96) ORG-toe_R LogFbx: SortedLinks :(97) ORG-heel_02_R LogFbx: SortedLinks :(98) MCH-toe_R LogFbx: SortedLinks :(99) toe_R LogFbx: SortedLinks :(100) MCH-foot_tweak_R LogFbx: SortedLinks :(101) foot_tweak_R LogFbx: SortedLinks :(102) MCH-shin_tweak_R LogFbx: SortedLinks :(103) shin_tweak_R LogFbx: SortedLinks :(104) MCH-shin_tweak_R_001 LogFbx: SortedLinks :(105) shin_tweak_R_001 LogFbx: SortedLinks :(106) MCH-thigh_tweak_R_001 LogFbx: SortedLinks :(107) thigh_tweak_R_001 LogFbx: SortedLinks :(108) MCH-thigh_parent_L LogFbx: SortedLinks :(109) MCH-thigh_parent_socket_L LogFbx: SortedLinks :(110) thigh_parent_L LogFbx: SortedLinks :(111) thigh_fk_L LogFbx: SortedLinks :(112) shin_fk_L LogFbx: SortedLinks :(113) MCH-foot_fk_L LogFbx: SortedLinks :(114) foot_fk_L LogFbx: SortedLinks :(115) thigh_ik_L LogFbx: SortedLinks :(116) MCH-shin_ik_L LogFbx: SortedLinks :(117) MCH-thigh_ik_stretch_L LogFbx: SortedLinks :(118) MCH-thigh_tweak_L LogFbx: SortedLinks :(119) thigh_tweak_L LogFbx: SortedLinks :(120) DEF-thigh_L LogFbx: SortedLinks :(121) DEF-thigh_L_001 LogFbx: SortedLinks :(122) DEF-shin_L LogFbx: SortedLinks :(123) DEF-shin_L_001 LogFbx: SortedLinks :(124) DEF-foot_L LogFbx: SortedLinks :(125) DEF-toe_L LogFbx: SortedLinks :(126) MCH-thigh_parent_R LogFbx: SortedLinks :(127) MCH-thigh_parent_socket_R LogFbx: SortedLinks :(128) thigh_parent_R LogFbx: SortedLinks :(129) thigh_fk_R LogFbx: SortedLinks :(130) shin_fk_R LogFbx: SortedLinks :(131) MCH-foot_fk_R LogFbx: SortedLinks :(132) foot_fk_R LogFbx: SortedLinks :(133) thigh_ik_R LogFbx: SortedLinks :(134) MCH-shin_ik_R LogFbx: SortedLinks :(135) MCH-thigh_ik_stretch_R LogFbx: SortedLinks :(136) MCH-thigh_tweak_R LogFbx: SortedLinks :(137) thigh_tweak_R LogFbx: SortedLinks :(138) DEF-thigh_R LogFbx: SortedLinks :(139) DEF-thigh_R_001 LogFbx: SortedLinks :(140) DEF-shin_R LogFbx: SortedLinks :(141) DEF-shin_R_001 LogFbx: SortedLinks :(142) DEF-foot_R LogFbx: SortedLinks :(143) DEF-toe_R LogFbx: SortedLinks :(144) DEF-spine LogFbx: SortedLinks :(145) DEF-spine_001 LogFbx: SortedLinks :(146) DEF-spine_002 LogFbx: SortedLinks :(147) DEF-spine_003 LogFbx: SortedLinks :(148) DEF-spine_004 LogFbx: SortedLinks :(149) DEF-spine_005 LogFbx: SortedLinks :(150) DEF-spine_006 LogFbx: SortedLinks :(151) VIS_upper_arm_ik_pole_L LogFbx: SortedLinks :(152) VIS_upper_arm_ik_pole_R LogFbx: SortedLinks :(153) VIS_thigh_ik_pole_L LogFbx: SortedLinks :(154) VIS_thigh_ik_pole_R LogFbx: SortedLinks :(155) MCH-torso_parent LogFbx: SortedLinks :(156) torso LogFbx: SortedLinks :(157) hips LogFbx: SortedLinks :(158) chest LogFbx: SortedLinks :(159) MCH-spine_001 LogFbx: SortedLinks :(160) spine_fk_001 LogFbx: SortedLinks :(161) MCH-spine LogFbx: SortedLinks :(162) spine_fk LogFbx: SortedLinks :(163) tweak_spine LogFbx: SortedLinks :(164) tweak_spine_001 LogFbx: SortedLinks :(165) MCH-WGT-hips LogFbx: SortedLinks :(166) MCH-spine_002 LogFbx: SortedLinks :(167) spine_fk_002 LogFbx: SortedLinks :(168) MCH-pivot LogFbx: SortedLinks :(169) tweak_spine_002 LogFbx: SortedLinks :(170) MCH-spine_003 LogFbx: SortedLinks :(171) spine_fk_003 LogFbx: SortedLinks :(172) ORG-spine_004 LogFbx: SortedLinks :(173) ORG-spine_005 LogFbx: SortedLinks :(174) ORG-spine_006 LogFbx: SortedLinks :(175) MCH-ROT-neck LogFbx: SortedLinks :(176) neck LogFbx: SortedLinks :(177) MCH-ROT-head LogFbx: SortedLinks :(178) head LogFbx: SortedLinks :(179) tweak_spine_004 LogFbx: SortedLinks :(180) MCH-STR-neck LogFbx: SortedLinks :(181) MCH-spine_005 LogFbx: SortedLinks :(182) tweak_spine_005 LogFbx: SortedLinks :(183) tweak_spine_003 LogFbx: SortedLinks :(184) MCH-WGT-chest LogFbx: SortedLinks :(185) MCH-hand_ik_parent_L LogFbx: SortedLinks :(186) hand_ik_L LogFbx: SortedLinks :(187) MCH-upper_arm_ik_target_L LogFbx: SortedLinks :(188) MCH-upper_arm_ik_target_parent_L LogFbx: SortedLinks :(189) upper_arm_ik_target_L LogFbx: SortedLinks :(190) MCH-hand_ik_parent_R LogFbx: SortedLinks :(191) hand_ik_R LogFbx: SortedLinks :(192) MCH-upper_arm_ik_target_R LogFbx: SortedLinks :(193) MCH-upper_arm_ik_target_parent_R LogFbx: SortedLinks :(194) upper_arm_ik_target_R LogFbx: SortedLinks :(195) MCH-foot_ik_parent_L LogFbx: SortedLinks :(196) foot_ik_L LogFbx: SortedLinks :(197) foot_spin_ik_L LogFbx: SortedLinks :(198) foot_heel_ik_L LogFbx: SortedLinks :(199) MCH-heel_02_rock2_L LogFbx: SortedLinks :(200) MCH-heel_02_rock1_L LogFbx: SortedLinks :(201) MCH-heel_02_roll2_L LogFbx: SortedLinks :(202) MCH-heel_02_roll1_L LogFbx: SortedLinks :(203) MCH-foot_roll_L LogFbx: SortedLinks :(204) MCH-thigh_ik_target_L LogFbx: SortedLinks :(205) MCH-thigh_ik_target_parent_L LogFbx: SortedLinks :(206) thigh_ik_target_L LogFbx: SortedLinks :(207) MCH-foot_ik_parent_R LogFbx: SortedLinks :(208) foot_ik_R LogFbx: SortedLinks :(209) foot_spin_ik_R LogFbx: SortedLinks :(210) foot_heel_ik_R LogFbx: SortedLinks :(211) MCH-heel_02_rock2_R LogFbx: SortedLinks :(212) MCH-heel_02_rock1_R LogFbx: SortedLinks :(213) MCH-heel_02_roll2_R LogFbx: SortedLinks :(214) MCH-heel_02_roll1_R LogFbx: SortedLinks :(215) MCH-foot_roll_R LogFbx: SortedLinks :(216) MCH-thigh_ik_target_R LogFbx: SortedLinks :(217) MCH-thigh_ik_target_parent_R LogFbx: SortedLinks :(218) thigh_ik_target_R LogFbx: Parsing AnimStack Wave LogFbx: Warning: IMPORT TRANSFORM ERROR : Bone (ORG-spine_001:3) Source Global Transform (0.000000,629.160950,2646.127197|0.000000,0.000000,45.015423|0.100000,10306.471680,59.383904), Converted Global Transform (0.000000,629.160950,2646.127197|0.000000,0.000000,67.670967|0.100000,12868.836914,0.099169) LogAnimationCompression: Building Anim DDC data for AnimSequence /Game/untitled_category/untitled_asset/animations/Wave.Wave FBXImport: Warning: Imported bone transform is different from original. Please check Output Log to see detail of error.
LogAnimationCompression: Building Anim DDC data for AnimSequence /Game/untitled_category/untitled_asset/animations/Wave.Wave LogShaderCompilers: Display: Worker (1/3): shaders left to compile 4 LogShaderCompilers: Display: Worker (2/3): shaders left to compile 1

james-baber commented 3 years ago

@McSeanMcCann looks like you are exporting the entire rigify rig. This is not a supported workflow. The supported workflow is to use UE to Rigify with send to unreal, but you should not have to use rigify directly other than activating it. https://epicgames.github.io/BlenderTools/ue2rigify/quickstart.html

Once your in control mode, use send to unreal, and the addon will handle which bones to export. My guess is this doesnt happen manually because you selected the right rig to export. My guess is that you moved you 'rig' object genereated by rigify into the 'Rig' collection, which is not what you want. You want your source rig to be exported not the rig you are using to drive it.