diff --git a/client/ayon_maya/plugins/publish/extract_layout.py b/client/ayon_maya/plugins/publish/extract_layout.py index f1c7e9b0..e2523586 100644 --- a/client/ayon_maya/plugins/publish/extract_layout.py +++ b/client/ayon_maya/plugins/publish/extract_layout.py @@ -191,3 +191,28 @@ def convert_abc_transformation_matrix(self, transform_mm: om.MMatrix, rotation: convert_transform.setScale([convert_scale[0], convert_scale[2], convert_scale[1]], om.MSpace.kObject) return convert_transform.asMatrix() + + + def convert_transformation_matrix(self, transform_mm: om.MMatrix, rotation: list) -> om.MMatrix: + """Convert matrix to list of transformation matrix for Unreal Engine fbx asset import. + + Args: + transform_mm (om.MMatrix): Local Matrix for the asset + rotation (list): Rotations of the asset + + Returns: + List[om.MMatrix]: List of transformation matrix of the asset + """ + convert_transform = om.MTransformationMatrix(transform_mm) + + convert_translation = convert_transform.translation(om.MSpace.kWorld) + convert_translation = om.MVector(convert_translation.x, convert_translation.z, convert_translation.y) + convert_scale = convert_transform.scale(om.MSpace.kObject) + convert_transform.setTranslation(convert_translation, om.MSpace.kWorld) + converted_rotation = om.MEulerRotation( + math.radians(rotation[0]), math.radians(rotation[2]), math.radians(rotation[1]) + ) + convert_transform.setRotation(converted_rotation) + convert_transform.setScale([convert_scale[0], convert_scale[2], convert_scale[1]], om.MSpace.kObject) + + return convert_transform.asMatrix()