From a83560be794e902aab74a6161cc4064a4e07f46f Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Thu, 24 Mar 2022 08:09:44 +0100 Subject: [PATCH 01/15] - You can now use Force Static Mesh and Export Deform Only options with proxy armatures. --- Release log.txt | 3 ++- blender-for-unrealengine/bfu_ui.py | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Release log.txt b/Release log.txt index 6b34839a..fc792460 100644 --- a/Release log.txt +++ b/Release log.txt @@ -405,8 +405,9 @@ It is now possible to force the duration of an animation according to the scene == Rev 0.3.1 == -- New potential errors in the check: If you use Parent Bone to parent your mesh to your armature the import will fail. - New: Generated import script compatible with Python 3.9 (Unreal Engine Preview 2) +- New potential errors in the check: If you use Parent Bone to parent your mesh to your armature the import will fail. +- You can now use Force Static Mesh and Export Deform Only options with proxy armatures. - Fixed: GetObjExportDir remove ":" in path. - Fixed: GetExportFullpath remove ":" in path. - Fixed: Remove the active object if an exported collection contain a single object. diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index cf9bd898..3c0d20bb 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -1340,14 +1340,15 @@ def draw(self, contex): if GetAssetType(obj) != "SkeletalMesh": LodProp = layout.column() LodProp.prop(obj, 'ExportAsLod') + if not obj.ExportAsAlembic: + if obj.type == "ARMATURE": + AssetType2 = layout.column() + # Show asset type + AssetType2.prop(obj, "ForceStaticMesh") + if GetAssetType(obj) == "SkeletalMesh": + AssetType2.prop(obj, 'exportDeformOnly') - if obj.type == "ARMATURE": - AssetType2 = layout.column() - # Show asset type - AssetType2.prop(obj, "ForceStaticMesh") - if GetAssetType(obj) == "SkeletalMesh": - AssetType2.prop(obj, 'exportDeformOnly') - + if not GetExportAsProxy(obj): # exportCustomName exportCustomName = layout.row() exportCustomName.prop(obj, "bfu_use_custom_export_name") From 61df3a708da4568e13ed0ed54e61603bbdc2e611 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Fri, 25 Mar 2022 05:50:25 +0100 Subject: [PATCH 02/15] - Fixed: NLA export fail when use inter frame. --- Release log.txt | 1 + blender-for-unrealengine/bfu_utils.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Release log.txt b/Release log.txt index fc792460..47381f82 100644 --- a/Release log.txt +++ b/Release log.txt @@ -414,4 +414,5 @@ It is now possible to force the duration of an animation according to the scene - Fixed: With Unit Scale not at 0.01 and Proxy use animation export will fail. - Fixed: With Unit Scale not at 0.01 and Proxy ShapeKeysCurve scale is wrong. - Fixed: Export camera can do axis flipping. +- Fixed: NLA export fail when use inter frame. - Fixed: Import script doesn't work with Unreal Engine Preview 2. diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index c12e3441..ae918bee 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -297,7 +297,7 @@ def ApplySaveOnTarget(self, target): new_nla_track.select = nla_track.select for strip in nla_track.strips: if strip.action: - new_strip = new_nla_track.strips.new(strip.name, strip.frame_start, strip.action) + new_strip = new_nla_track.strips.new(strip.name, int(strip.frame_start), strip.action) # new_strip.action = strip.action new_strip.action_frame_end = strip.action_frame_end new_strip.action_frame_start = strip.action_frame_start From d5fbac942829c6dd321e00c2f7edf1ac4fe11585 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Tue, 29 Mar 2022 07:35:14 +0200 Subject: [PATCH 03/15] - Fixed: NLA export ignore animated influence on actions. --- Release log.txt | 1 + blender-for-unrealengine/bfu_utils.py | 32 ++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Release log.txt b/Release log.txt index 47381f82..2456d170 100644 --- a/Release log.txt +++ b/Release log.txt @@ -415,4 +415,5 @@ It is now possible to force the duration of an animation according to the scene - Fixed: With Unit Scale not at 0.01 and Proxy ShapeKeysCurve scale is wrong. - Fixed: Export camera can do axis flipping. - Fixed: NLA export fail when use inter frame. +- Fixed: NLA export ignore animated influence on actions. - Fixed: Import script doesn't work with Unreal Engine Preview 2. diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index ae918bee..530bdeb5 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -306,10 +306,18 @@ def ApplySaveOnTarget(self, target): new_strip.blend_out = strip.blend_out new_strip.blend_type = strip.blend_type new_strip.extrapolation = strip.extrapolation - # new_strip.fcurves = strip.fcurves #TO DO + # new_strip.fcurves = strip.fcurves new_strip.frame_end = strip.frame_end # new_strip.frame_start = strip.frame_start + new_strip.use_animated_influence = strip.use_animated_influence new_strip.influence = strip.influence + print(new_strip.influence) + print(new_strip.influence) + print(new_strip.influence) + print(new_strip.influence) + print(new_strip.influence) + print(new_strip.influence) + print(new_strip.influence) # new_strip.modifiers = strip.modifiers #TO DO new_strip.mute = strip.mute # new_strip.name = strip.name @@ -318,6 +326,27 @@ def ApplySaveOnTarget(self, target): new_strip.select = strip.select new_strip.strip_time = strip.strip_time # new_strip.strips = strip.strips #TO DO + for i, fcurve in enumerate(strip.fcurves): + if fcurve: + new_fcurve = new_strip.fcurves.find(fcurve.data_path) + new_fcurve.array_index = fcurve.array_index + new_fcurve.color = fcurve.color + new_fcurve.color_mode = fcurve.color_mode + # new_fcurve.data_path = fcurve.data_path + # new_fcurve.driver = fcurve.driver #TO DO + new_fcurve.extrapolation = fcurve.extrapolation + new_fcurve.group = fcurve.group + new_fcurve.hide = fcurve.hide + # new_fcurve.is_empty = fcurve.is_empty + # new_fcurve.is_valid = fcurve.is_valid + # new_fcurve.keyframe_points = fcurve.keyframe_points + new_fcurve.lock = fcurve.lock + # new_fcurve.modifiers = fcurve.modifiers #TO DO + new_fcurve.mute = fcurve.mute + # new_fcurve.sampled_points = fcurve.sampled_points + new_fcurve.select = fcurve.select + for keyframe_point in fcurve.keyframe_points: + new_fcurve.keyframe_points.insert(keyframe_point.co[0], keyframe_point.co[1]) class Proxy_NLA_Track(): def __init__(self, nla_track): @@ -345,6 +374,7 @@ def __init__(self, strip): self.fcurves = strip.fcurves # TO DO self.frame_end = strip.frame_end self.frame_start = strip.frame_start + self.use_animated_influence = strip.use_animated_influence self.influence = strip.influence self.modifiers = strip.modifiers # TO DO self.mute = strip.mute From 7e0591bd40c062068886c9cec62fc3b5c1591b42 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Wed, 6 Apr 2022 16:27:13 +0200 Subject: [PATCH 04/15] - Fixed: Import script doesn't work with Unreal Engine 5. --- Release log.txt | 3 ++- blender-for-unrealengine/bfu_ui.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Release log.txt b/Release log.txt index 2456d170..aa74b1b5 100644 --- a/Release log.txt +++ b/Release log.txt @@ -408,6 +408,7 @@ It is now possible to force the duration of an animation according to the scene - New: Generated import script compatible with Python 3.9 (Unreal Engine Preview 2) - New potential errors in the check: If you use Parent Bone to parent your mesh to your armature the import will fail. - You can now use Force Static Mesh and Export Deform Only options with proxy armatures. +- Naming asset updated for Unreal Engine 5. - Fixed: GetObjExportDir remove ":" in path. - Fixed: GetExportFullpath remove ":" in path. - Fixed: Remove the active object if an exported collection contain a single object. @@ -416,4 +417,4 @@ It is now possible to force the duration of an animation according to the scene - Fixed: Export camera can do axis flipping. - Fixed: NLA export fail when use inter frame. - Fixed: NLA export ignore animated influence on actions. -- Fixed: Import script doesn't work with Unreal Engine Preview 2. +- Fixed: Import script doesn't work with Unreal Engine 5. diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index 3c0d20bb..4d168682 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -305,7 +305,7 @@ class BFU_PT_BlenderForUnrealObject(bpy.types.Panel): name="", description="The name of the Skeleton in Unreal. Skeleton not the skeletal mesh.", override={'LIBRARY_OVERRIDABLE'}, - default="SK_MySketonName_Skeleton" + default="SKM_MySketonName_Skeleton" ) bpy.types.Object.bfu_target_skeleton_custom_ref = StringProperty( @@ -315,7 +315,7 @@ class BFU_PT_BlenderForUnrealObject(bpy.types.Panel): "(Use right clic on asset and copy reference.)" ), override={'LIBRARY_OVERRIDABLE'}, - default="SkeletalMesh'/Game/ImportedFbx/SK_MySketonName_Skeleton.SK_MySketonName_Skeleton'" + default="SkeletalMesh'/Game/ImportedFbx/SKM_MySketonName_Skeleton.SKM_MySketonName_Skeleton'" ) # StaticMeshImportData @@ -1823,7 +1823,7 @@ class BFU_OT_ConvertToSkeletalSocketButton(Operator): " to Unreal sockets ready for export (SkeletalMesh)") def execute(self, context): - ConvertedObj = Ue4SubObj_set("SK_Socket") + ConvertedObj = Ue4SubObj_set("SKM_Socket") if len(ConvertedObj) > 0: self.report( {'INFO'}, @@ -2125,13 +2125,13 @@ class BFU_PT_Export(bpy.types.Panel): name="SkeletalMesh Prefix ", description="Prefix of SkeletalMesh", maxlen=32, - default="SK_") + default="SKM_") bpy.types.Scene.alembic_prefix_export_name = bpy.props.StringProperty( name="Alembic Prefix ", description="Prefix of Alembic (SkeletalMesh in unreal)", maxlen=32, - default="SK_") + default="SKM_") bpy.types.Scene.anim_prefix_export_name = bpy.props.StringProperty( name="AnimationSequence Prefix", From 8a58c6ef66401fc26b769e1ca8398effb8d0015c Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Fri, 8 Apr 2022 09:34:23 +0200 Subject: [PATCH 05/15] NLA crash if new_strip has no fcurves --- blender-for-unrealengine/bfu_utils.py | 37 ++++++++++++++------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index 530bdeb5..822de3f0 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -329,24 +329,25 @@ def ApplySaveOnTarget(self, target): for i, fcurve in enumerate(strip.fcurves): if fcurve: new_fcurve = new_strip.fcurves.find(fcurve.data_path) - new_fcurve.array_index = fcurve.array_index - new_fcurve.color = fcurve.color - new_fcurve.color_mode = fcurve.color_mode - # new_fcurve.data_path = fcurve.data_path - # new_fcurve.driver = fcurve.driver #TO DO - new_fcurve.extrapolation = fcurve.extrapolation - new_fcurve.group = fcurve.group - new_fcurve.hide = fcurve.hide - # new_fcurve.is_empty = fcurve.is_empty - # new_fcurve.is_valid = fcurve.is_valid - # new_fcurve.keyframe_points = fcurve.keyframe_points - new_fcurve.lock = fcurve.lock - # new_fcurve.modifiers = fcurve.modifiers #TO DO - new_fcurve.mute = fcurve.mute - # new_fcurve.sampled_points = fcurve.sampled_points - new_fcurve.select = fcurve.select - for keyframe_point in fcurve.keyframe_points: - new_fcurve.keyframe_points.insert(keyframe_point.co[0], keyframe_point.co[1]) + if new_fcurve: + new_fcurve.array_index = fcurve.array_index + new_fcurve.color = fcurve.color + new_fcurve.color_mode = fcurve.color_mode + # new_fcurve.data_path = fcurve.data_path + # new_fcurve.driver = fcurve.driver #TO DO + new_fcurve.extrapolation = fcurve.extrapolation + new_fcurve.group = fcurve.group + new_fcurve.hide = fcurve.hide + # new_fcurve.is_empty = fcurve.is_empty + # new_fcurve.is_valid = fcurve.is_valid + # new_fcurve.keyframe_points = fcurve.keyframe_points + new_fcurve.lock = fcurve.lock + # new_fcurve.modifiers = fcurve.modifiers #TO DO + new_fcurve.mute = fcurve.mute + # new_fcurve.sampled_points = fcurve.sampled_points + new_fcurve.select = fcurve.select + for keyframe_point in fcurve.keyframe_points: + new_fcurve.keyframe_points.insert(keyframe_point.co[0], keyframe_point.co[1]) class Proxy_NLA_Track(): def __init__(self, nla_track): From 7620b30df84c924acd26ac9460a9131869aea260 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Sun, 15 May 2022 16:38:01 +0200 Subject: [PATCH 06/15] - New: Text generator for export camera in Unreal Engine (Copy / Paste). --- Release log.txt | 3 +- blender-for-unrealengine/bfu_ui.py | 28 +++++++- blender-for-unrealengine/bfu_utils.py | 81 +++++++++++++++++++++- blender-for-unrealengine/bfu_write_text.py | 22 +++--- 4 files changed, 121 insertions(+), 13 deletions(-) diff --git a/Release log.txt b/Release log.txt index aa74b1b5..bf3974fb 100644 --- a/Release log.txt +++ b/Release log.txt @@ -405,7 +405,8 @@ It is now possible to force the duration of an animation according to the scene == Rev 0.3.1 == -- New: Generated import script compatible with Python 3.9 (Unreal Engine Preview 2) +- New: Generated import script compatible with Python 3.9 (Unreal Engine 5) +- New: Text generator for export camera in Unreal Engine (Copy / Paste). - New potential errors in the check: If you use Parent Bone to parent your mesh to your armature the import will fail. - You can now use Force Static Mesh and Export Deform Only options with proxy armatures. - Naming asset updated for Unreal Engine 5. diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index 4d168682..ff28a7f8 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -900,6 +900,22 @@ def execute(self, context): ) return {'FINISHED'} + class BFU_OT_CopyCameraButton(Operator): + bl_label = "Copy Camera for Unreal" + bl_idname = "object.copy_camera_command" + bl_description = "Copy Camera Script command" + + def execute(self, context): + scene = context.scene + obj = context.object + if obj: + if obj.type == "CAMERA": + setWindowsClipboard(GetImportCameraScriptCommand(obj)) + self.report( + {'INFO'}, + "Camera copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)") + return {'FINISHED'} + class BFU_OT_ComputLightMap(Operator): bl_label = "Calculate surface area" bl_idname = "object.computlightmap" @@ -1291,6 +1307,11 @@ def draw(self, contex): ExportType = layout.column() ExportType.prop(obj, 'ExportEnum') + + if obj.type == "CAMERA": + CameraProp = layout.column() + CameraProp.operator("object.copy_camera_command", icon="COPYDOWN") + if obj.ExportEnum == "export_recursive": @@ -1302,8 +1323,8 @@ def draw(self, contex): ) if obj.type == "CAMERA": - CameraProp = layout.column() CameraProp.prop(obj, 'bfu_export_fbx_camera') + else: ProxyProp = layout.column() @@ -1850,7 +1871,7 @@ def execute(self, context): setWindowsClipboard(GetImportSkeletalMeshSocketScriptCommand(obj)) self.report( {'INFO'}, - "Skeletal sockets copied. Paste in Unreal Engine for import sockets.") + "Skeletal sockets copied. Paste in Unreal Engine Skeletal Mesh assets for import sockets. (Ctrl+V)") return {'FINISHED'} def draw(self, context): @@ -1982,7 +2003,7 @@ def FoundTypeInSelect(targetType, include_active=True): copy_skeletalsocket_buttons.enabled = False copy_skeletalsocket_buttons.operator( "object.copy_skeletalsocket_command", - icon='OUTLINER_DATA_EMPTY') + icon='COPYDOWN') if obj is not None: if obj.type == "ARMATURE": copy_skeletalsocket_buttons.enabled = True @@ -2852,6 +2873,7 @@ def execute(self, context): BFU_PT_BlenderForUnrealObject.BFU_MT_ObjectGlobalPropertiesPresets, BFU_PT_BlenderForUnrealObject.BFU_OT_AddObjectGlobalPropertiesPreset, BFU_PT_BlenderForUnrealObject.BFU_OT_OpenDocumentationPage, + BFU_PT_BlenderForUnrealObject.BFU_OT_CopyCameraButton, BFU_PT_BlenderForUnrealObject.BFU_OT_ComputLightMap, BFU_PT_BlenderForUnrealObject.BFU_UL_ActionExportTarget, BFU_PT_BlenderForUnrealObject.BFU_OT_UpdateObjActionListButton, diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index 822de3f0..c7688d81 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -29,8 +29,13 @@ if "bpy" in locals(): import importlib + if "bfu_write_text" in locals(): + importlib.reload(bfu_write_text) if "bfu_basics" in locals(): importlib.reload(bfu_basics) + + +from . import bfu_write_text from . import bfu_basics from .bfu_basics import * @@ -1755,6 +1760,80 @@ def GetImportAssetScriptCommand(): return 'py "'+fullpath+'"' +def GetImportCameraScriptCommand(obj): + if obj: + if obj.type == "CAMERA": + # Get Camera Data + scene = bpy.context.scene + frame_current = scene.frame_current + + # First I get the camera data. + # This is a very bad way to do this. I need do a new python file specific to camera with class to get data. + data = bfu_write_text.WriteCameraAnimationTracks(obj, frame_current, frame_current) + transform_track = data["Camera transform"][frame_current] + location_x = transform_track["location_x"] + location_y = transform_track["location_y"] + location_z = transform_track["location_z"] + rotation_x = transform_track["rotation_x"] + rotation_y = transform_track["rotation_y"] + rotation_z = transform_track["rotation_z"] + scale_x = transform_track["scale_x"] + scale_y = transform_track["scale_y"] + scale_z = transform_track["scale_z"] + FocalLength = data["Camera FocalLength"][frame_current] + SensorWidth = data["Camera SensorWidth"][frame_current] + SensorHeight = data["Camera SensorHeight"][frame_current] + FocusDistance = data["Camera FocusDistance"][frame_current] + Aperture = data["Camera Aperture"][frame_current] + + # And I apply the camrta data to the copy paste text. + t = "Begin Map" + "\n" + t += " " + "Begin Level" + "\n" + + # Actor + t += " " + "Begin Actor Class=/Script/CinematicCamera.CineCameraActor Name=BlenderCineCameraActor Archetype=/Script/CinematicCamera.CineCameraActor'/Script/CinematicCamera.Default__CineCameraActor'" + "\n" + + # Init SceneComponent + t += " " + "Begin Object Class=/Script/Engine.SceneComponent Name=\"SceneComponent\" Archetype=SceneComponent'/Script/CinematicCamera.Default__CineCameraActor:SceneComponent'" + "\n" + t += " " + "End Object" + "\n" + + # Init CameraComponent + t += " " + "Begin Object Class=/Script/CinematicCamera.CineCameraComponent Name=\"CameraComponent\" Archetype=CineCameraComponent'/Script/CinematicCamera.Default__CineCameraActor:CameraComponent'" + "\n" + t += " " + "End Object" + "\n" + + # SceneComponent + t += " " + "Begin Object Name=\"SceneComponent\"" + "\n" + t += " " + "RelativeLocation=(X="+str(location_x)+",Y="+str(location_y)+",Z="+str(location_z)+")" + "\n" + t += " " + "RelativeRotation=(Pitch="+str(rotation_y)+",Yaw="+str(rotation_z)+",Roll="+str(rotation_x)+")" + "\n" + t += " " + "RelativeScale3D=(X="+str(scale_x)+",Y="+str(scale_y)+",Z="+str(scale_z)+")" + "\n" + t += " " + "End Object" + "\n" + + # CameraComponent + t += " " + "Begin Object Name=\"CameraComponent\"" + "\n" + t += " " + "Filmback=(SensorWidth="+str(SensorWidth)+",SensorHeight="+str(SensorHeight)+")" + "\n" + t += " " + "CurrentAperture="+str(Aperture)+")" + "\n" + t += " " + "CurrentFocalLength="+str(FocalLength)+")" + "\n" + t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" + t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" + t += " " + "End Object" + "\n" + + # Attach + t += " " + "CameraComponent=\"CameraComponent\"" + "\n" + t += " " + "SceneComponent=\"SceneComponent\"" + "\n" + t += " " + "RootComponent=\"SceneComponent\"" + "\n" + t += " " + "ActorLabel=\"BlenderCineCameraActor\"" + "\n" + + # Close + t += " " + "End Actor" + "\n" + t += " " + "End Level" + "\n" + t += "Begin Surface" + "\n" + t += "End Surface" + "\n" + t += "End Object" + "\n" + return t + + return "Please select a Camera." + + def GetImportSkeletalMeshSocketScriptCommand(obj): if obj: @@ -1775,7 +1854,7 @@ def GetImportSkeletalMeshSocketScriptCommand(obj): t += "\t" + 'RelativeScale=' + "(X="+str(s[0])+",Y="+str(s[1])+",Z="+str(s[2])+")" + "\n" t += "End Object" + "\n" return t - return "Select a Skeletal Mesh" + return "Please select an armature." def GetImportSequencerScriptCommand(): diff --git a/blender-for-unrealengine/bfu_write_text.py b/blender-for-unrealengine/bfu_write_text.py index 9f785652..4ad892b0 100644 --- a/blender-for-unrealengine/bfu_write_text.py +++ b/blender-for-unrealengine/bfu_write_text.py @@ -150,9 +150,15 @@ def WriteExportLog(): return ExportLog -def WriteCameraAnimationTracks(obj): +def WriteCameraAnimationTracks(obj, target_frame_start=None, target_frame_end=None): # Write as json file + scene = bpy.context.scene + if target_frame_start is None: + target_frame_start = scene.frame_start + if target_frame_end is None: + target_frame_end = scene.frame_end+1 + def getCameraFocusDistance(Camera, Target): transA = Camera.matrix_world.copy() transB = Target.matrix_world.copy() @@ -166,7 +172,7 @@ def getAllCamDistKeys(Camera, Target): scene = bpy.context.scene saveFrame = scene.frame_current # Save current frame keys = [] - for frame in range(scene.frame_start, scene.frame_end+1): + for frame in range(target_frame_start, target_frame_end): scene.frame_set(frame) v = getCameraFocusDistance(Camera, Target) keys.append((frame, v)) @@ -177,7 +183,7 @@ def getAllKeysByMatrix(obj): scene = bpy.context.scene saveFrame = scene.frame_current # Save current frame keys = [] - for frame in range(scene.frame_start, scene.frame_end+1): + for frame in range(target_frame_start, target_frame_end): scene.frame_set(frame) v = obj.matrix_world*1 keys.append((frame, v)) @@ -214,11 +220,11 @@ def getAllKeysByFcurves(obj, DataPath, DataValue, IsData=True): f = obj.animation_data.action.fcurves.find(DataPath) if f is not None: - for frame in range(scene.frame_start, scene.frame_end+1): + for frame in range(target_frame_start, target_frame_end): v = f.evaluate(frame) keys.append((frame, v)) return keys - return[(scene.frame_start, DataValue)] + return[(target_frame_start, DataValue)] class CameraDataAtFrame(): @@ -329,12 +335,12 @@ def EvaluateTracks(self, camera, frame_start, frame_end): data['Frames'] = [] data['Frames'].append({ - 'frame_start': scene.frame_start, - 'frame_end': scene.frame_end, + 'frame_start': target_frame_start, + 'frame_end': target_frame_end, }) camera_tracks = CameraDataAtFrame() - camera_tracks.EvaluateTracks(obj, scene.frame_start, scene.frame_end) + camera_tracks.EvaluateTracks(obj, target_frame_start, target_frame_end) data['Camera transform'] = camera_tracks.transform_track data['Camera FocalLength'] = camera_tracks.lens From 01b81328aaf66755ae16de32302dc195ac7e5203 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Sun, 15 May 2022 16:52:18 +0200 Subject: [PATCH 07/15] Add pic --- docs/ExportAssetDocCopyCamera.png | Bin 0 -> 174658 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ExportAssetDocCopyCamera.png diff --git a/docs/ExportAssetDocCopyCamera.png b/docs/ExportAssetDocCopyCamera.png new file mode 100644 index 0000000000000000000000000000000000000000..0fae504e652913ae4894c4fa45271fadefb6ce1b GIT binary patch literal 174658 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%0AVYJur$`eD@)ta-0910$F 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 D9PD70 literal 0 HcmV?d00001 From 31c7a92ec0bde122ac23b50a5338abb30ca9ac5f Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Mon, 16 May 2022 09:52:01 +0200 Subject: [PATCH 08/15] Clean --- blender-for-unrealengine/bfu_ui.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index ff28a7f8..399df1f8 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -1307,12 +1307,11 @@ def draw(self, contex): ExportType = layout.column() ExportType.prop(obj, 'ExportEnum') - + if obj.type == "CAMERA": CameraProp = layout.column() CameraProp.operator("object.copy_camera_command", icon="COPYDOWN") - if obj.ExportEnum == "export_recursive": folderNameProperty = layout.column() @@ -1324,7 +1323,6 @@ def draw(self, contex): if obj.type == "CAMERA": CameraProp.prop(obj, 'bfu_export_fbx_camera') - else: ProxyProp = layout.column() From c892f476bc9f2c91bab9bbf400981fc4a71fd185 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Mon, 16 May 2022 10:08:24 +0200 Subject: [PATCH 09/15] Move options and add options resolution_x resolution_y desired_screen_ratio to the camera. --- blender-for-unrealengine/bfu_write_text.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blender-for-unrealengine/bfu_write_text.py b/blender-for-unrealengine/bfu_write_text.py index 4ad892b0..b8fd87b8 100644 --- a/blender-for-unrealengine/bfu_write_text.py +++ b/blender-for-unrealengine/bfu_write_text.py @@ -333,6 +333,13 @@ def EvaluateTracks(self, camera, frame_start, frame_end): '3/3': ti('write_text_additional_track_end'), } + data["resolution_x"] = scene.render.resolution_x + data["resolution_y"] = scene.render.resolution_y + data["desired_screen_ratio"] = scene.render.resolution_x / scene.render.resolution_y + data["frame_start"] = target_frame_start + data["frame_end"] = target_frame_end + + # Frames is old, need to update and remove. data['Frames'] = [] data['Frames'].append({ 'frame_start': target_frame_start, From c5b14b4865186776520a6219b10ff2604eb61878 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Mon, 16 May 2022 10:52:21 +0200 Subject: [PATCH 10/15] Add CopyRegularCameraButton + FOV Support --- blender-for-unrealengine/bfu_ui.py | 35 +++++++++++++++++----- blender-for-unrealengine/bfu_utils.py | 28 ++++++++++++----- blender-for-unrealengine/bfu_write_text.py | 8 ++++- 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index 399df1f8..ca425ef6 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -900,17 +900,35 @@ def execute(self, context): ) return {'FINISHED'} - class BFU_OT_CopyCameraButton(Operator): - bl_label = "Copy Camera for Unreal" - bl_idname = "object.copy_camera_command" - bl_description = "Copy Camera Script command" + + + class BFU_OT_CopyRegularCameraButton(Operator): + bl_label = "Copy Regular Camera for Unreal" + bl_idname = "object.copy_regular_camera_command" + bl_description = "Copy Regular Camera Script command" + + def execute(self, context): + scene = context.scene + obj = context.object + if obj: + if obj.type == "CAMERA": + setWindowsClipboard(GetImportCameraScriptCommand(obj, False)) + self.report( + {'INFO'}, + "Camera copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)") + return {'FINISHED'} + + class BFU_OT_CopyCineCameraButton(Operator): + bl_label = "Copy Cine Camera for Unreal" + bl_idname = "object.copy_cine_camera_command" + bl_description = "Copy Cine Camera Script command" def execute(self, context): scene = context.scene obj = context.object if obj: if obj.type == "CAMERA": - setWindowsClipboard(GetImportCameraScriptCommand(obj)) + setWindowsClipboard(GetImportCameraScriptCommand(obj, True)) self.report( {'INFO'}, "Camera copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)") @@ -1310,7 +1328,9 @@ def draw(self, contex): if obj.type == "CAMERA": CameraProp = layout.column() - CameraProp.operator("object.copy_camera_command", icon="COPYDOWN") + CameraProp.operator("object.copy_regular_camera_command", icon="COPYDOWN") + CameraProp.operator("object.copy_cine_camera_command", icon="COPYDOWN") + if obj.ExportEnum == "export_recursive": @@ -2871,7 +2891,8 @@ def execute(self, context): BFU_PT_BlenderForUnrealObject.BFU_MT_ObjectGlobalPropertiesPresets, BFU_PT_BlenderForUnrealObject.BFU_OT_AddObjectGlobalPropertiesPreset, BFU_PT_BlenderForUnrealObject.BFU_OT_OpenDocumentationPage, - BFU_PT_BlenderForUnrealObject.BFU_OT_CopyCameraButton, + BFU_PT_BlenderForUnrealObject.BFU_OT_CopyRegularCameraButton, + BFU_PT_BlenderForUnrealObject.BFU_OT_CopyCineCameraButton, BFU_PT_BlenderForUnrealObject.BFU_OT_ComputLightMap, BFU_PT_BlenderForUnrealObject.BFU_UL_ActionExportTarget, BFU_PT_BlenderForUnrealObject.BFU_OT_UpdateObjActionListButton, diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index c7688d81..1924d217 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -1760,7 +1760,7 @@ def GetImportAssetScriptCommand(): return 'py "'+fullpath+'"' -def GetImportCameraScriptCommand(obj): +def GetImportCameraScriptCommand(obj, CineCamera=True): if obj: if obj.type == "CAMERA": # Get Camera Data @@ -1780,26 +1780,39 @@ def GetImportCameraScriptCommand(obj): scale_x = transform_track["scale_x"] scale_y = transform_track["scale_y"] scale_z = transform_track["scale_z"] + FieldOfView = data["Camera FieldOfView"][frame_current] FocalLength = data["Camera FocalLength"][frame_current] SensorWidth = data["Camera SensorWidth"][frame_current] SensorHeight = data["Camera SensorHeight"][frame_current] FocusDistance = data["Camera FocusDistance"][frame_current] Aperture = data["Camera Aperture"][frame_current] + CameraName = "BlenderCineCameraActor" # And I apply the camrta data to the copy paste text. t = "Begin Map" + "\n" t += " " + "Begin Level" + "\n" # Actor - t += " " + "Begin Actor Class=/Script/CinematicCamera.CineCameraActor Name=BlenderCineCameraActor Archetype=/Script/CinematicCamera.CineCameraActor'/Script/CinematicCamera.Default__CineCameraActor'" + "\n" + if CineCamera: + t += " " + "Begin Actor Class=/Script/CinematicCamera.CineCameraActor Name="+CameraName+" Archetype=/Script/CinematicCamera.CineCameraActor'/Script/CinematicCamera.Default__CineCameraActor'" + "\n" + else: + t += " " + "Begin Actor Class=/Script/Engine.CameraActor Name="+CameraName+" Archetype=/Script/Engine.CameraActor'/Script/Engine.Default__CameraActor'" + "\n" # Init SceneComponent - t += " " + "Begin Object Class=/Script/Engine.SceneComponent Name=\"SceneComponent\" Archetype=SceneComponent'/Script/CinematicCamera.Default__CineCameraActor:SceneComponent'" + "\n" - t += " " + "End Object" + "\n" + if CineCamera: + t += " " + "Begin Object Class=/Script/Engine.SceneComponent Name=\"SceneComponent\" Archetype=SceneComponent'/Script/CinematicCamera.Default__CineCameraActor:SceneComponent'" + "\n" + t += " " + "End Object" + "\n" + else: + t += " " + "Begin Object Class=/Script/Engine.SceneComponent Name=\"SceneComponent\" Archetype=SceneComponent'/Script/Engine.Default__CameraActor:SceneComponent'" + "\n" + t += " " + "End Object" + "\n" # Init CameraComponent - t += " " + "Begin Object Class=/Script/CinematicCamera.CineCameraComponent Name=\"CameraComponent\" Archetype=CineCameraComponent'/Script/CinematicCamera.Default__CineCameraActor:CameraComponent'" + "\n" - t += " " + "End Object" + "\n" + if CineCamera: + t += " " + "Begin Object Class=/Script/CinematicCamera.CineCameraComponent Name=\"CameraComponent\" Archetype=CineCameraComponent'/Script/CinematicCamera.Default__CineCameraActor:CameraComponent'" + "\n" + t += " " + "End Object" + "\n" + else: + t += " " + "Begin Object Class=/Script/Engine.CameraComponent Name=\"CameraComponent\" Archetype=CameraComponent'/Script/Engine.Default__CameraActor:CameraComponent'" + "\n" + t += " " + "End Object" + "\n" # SceneComponent t += " " + "Begin Object Name=\"SceneComponent\"" + "\n" @@ -1815,13 +1828,14 @@ def GetImportCameraScriptCommand(obj): t += " " + "CurrentFocalLength="+str(FocalLength)+")" + "\n" t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" + t += " " + "FieldOfView="+str(FieldOfView)+")" + "\n" t += " " + "End Object" + "\n" # Attach t += " " + "CameraComponent=\"CameraComponent\"" + "\n" t += " " + "SceneComponent=\"SceneComponent\"" + "\n" t += " " + "RootComponent=\"SceneComponent\"" + "\n" - t += " " + "ActorLabel=\"BlenderCineCameraActor\"" + "\n" + t += " " + "ActorLabel=\""+CameraName+"\"" + "\n" # Close t += " " + "End Actor" + "\n" diff --git a/blender-for-unrealengine/bfu_write_text.py b/blender-for-unrealengine/bfu_write_text.py index b8fd87b8..6fc453f5 100644 --- a/blender-for-unrealengine/bfu_write_text.py +++ b/blender-for-unrealengine/bfu_write_text.py @@ -231,6 +231,8 @@ class CameraDataAtFrame(): def __init__(self): scene = bpy.context.scene self.transform_track = {} + self.fov = {} + self.angle = {} self.lens = {} self.sensor_width = {} self.sensor_height = {} @@ -270,10 +272,12 @@ def EvaluateTracksAtFrame(self, camera, frame): transform["scale_z"] = array_scale.z self.transform_track[frame] = transform - # Get FocalLength SensorWidth SensorHeight + # Get FOV FocalLength SensorWidth SensorHeight + self.angle[frame] = getOneKeysByFcurves(camera, "angle", camera.data.angle, frame) self.lens[frame] = getOneKeysByFcurves(camera, "lens", camera.data.lens, frame) self.sensor_width[frame] = getOneKeysByFcurves(camera, "sensor_width", camera.data.sensor_width, frame) self.sensor_height[frame] = getOneKeysByFcurves(camera, "sensor_height", camera.data.sensor_height, frame) + self.fov[frame] = math.degrees(self.angle[frame]) # Get FocusDistance scale_length = bpy.context.scene.unit_settings.scale_length @@ -350,6 +354,8 @@ def EvaluateTracks(self, camera, frame_start, frame_end): camera_tracks.EvaluateTracks(obj, target_frame_start, target_frame_end) data['Camera transform'] = camera_tracks.transform_track + data["Camera FieldOfView"] = camera_tracks.fov + data["Camera FocalAngle"] = camera_tracks.angle data['Camera FocalLength'] = camera_tracks.lens data['Camera SensorWidth'] = camera_tracks.sensor_width data['Camera SensorHeight'] = camera_tracks.sensor_height From 6b64bf0b8e91cae8301e0d98e07bb8b33a46853c Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Mon, 16 May 2022 11:04:19 +0200 Subject: [PATCH 11/15] desired_screen_ratio supported for regular camera --- blender-for-unrealengine/bfu_utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index 1924d217..f6313dab 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -1786,6 +1786,7 @@ def GetImportCameraScriptCommand(obj, CineCamera=True): SensorHeight = data["Camera SensorHeight"][frame_current] FocusDistance = data["Camera FocusDistance"][frame_current] Aperture = data["Camera Aperture"][frame_current] + AspectRatio = data["desired_screen_ratio"] CameraName = "BlenderCineCameraActor" # And I apply the camrta data to the copy paste text. @@ -1823,12 +1824,13 @@ def GetImportCameraScriptCommand(obj, CineCamera=True): # CameraComponent t += " " + "Begin Object Name=\"CameraComponent\"" + "\n" - t += " " + "Filmback=(SensorWidth="+str(SensorWidth)+",SensorHeight="+str(SensorHeight)+")" + "\n" + t += " " + "Filmback=(SensorWidth="+str(SensorWidth)+",SensorHeight="+str(SensorHeight)+", SensorAspectRatio="+str(AspectRatio)+")" + "\n" t += " " + "CurrentAperture="+str(Aperture)+")" + "\n" t += " " + "CurrentFocalLength="+str(FocalLength)+")" + "\n" t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" t += " " + "CurrentFocusDistance="+str(FocusDistance)+")" + "\n" t += " " + "FieldOfView="+str(FieldOfView)+")" + "\n" + t += " " + "AspectRatio="+str(AspectRatio)+")" + "\n" t += " " + "End Object" + "\n" # Attach From 2e50764bd7315febd3edd930f31552997cb30867 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Mon, 16 May 2022 11:12:29 +0200 Subject: [PATCH 12/15] Copy/Paste camera will use the same name as Blender --- blender-for-unrealengine/bfu_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index f6313dab..f817a1db 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -1787,7 +1787,7 @@ def GetImportCameraScriptCommand(obj, CineCamera=True): FocusDistance = data["Camera FocusDistance"][frame_current] Aperture = data["Camera Aperture"][frame_current] AspectRatio = data["desired_screen_ratio"] - CameraName = "BlenderCineCameraActor" + CameraName = obj.name # And I apply the camrta data to the copy paste text. t = "Begin Map" + "\n" From 94e017cde9a7849b24f34e2359b6fbafeb15b9c0 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Wed, 18 May 2022 01:15:28 +0200 Subject: [PATCH 13/15] Support multiple camera export --- blender-for-unrealengine/__init__.py | 1 + blender-for-unrealengine/bfu_ui.py | 99 ++++++++++++++++++--------- blender-for-unrealengine/bfu_utils.py | 56 +++++++++++---- 3 files changed, 110 insertions(+), 46 deletions(-) diff --git a/blender-for-unrealengine/__init__.py b/blender-for-unrealengine/__init__.py index d78711e8..982f87b3 100644 --- a/blender-for-unrealengine/__init__.py +++ b/blender-for-unrealengine/__init__.py @@ -121,6 +121,7 @@ def register(): bpy.types.Scene.bfu_collection_properties_expanded = bpy.props.BoolProperty() bpy.types.Scene.bfu_object_advanced_properties_expanded = bpy.props.BoolProperty() bpy.types.Scene.bfu_export_type_expanded = bpy.props.BoolProperty() + bpy.types.Scene.bfu_camera_expanded = bpy.props.BoolProperty() bpy.types.Scene.bfu_collision_socket_expanded = bpy.props.BoolProperty() bpy.types.Scene.bfu_lightmap_expanded = bpy.props.BoolProperty() bpy.types.Scene.bfu_nomenclature_properties_expanded = bpy.props.BoolProperty() diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index ca425ef6..ae0599fd 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -900,22 +900,19 @@ def execute(self, context): ) return {'FINISHED'} - - class BFU_OT_CopyRegularCameraButton(Operator): bl_label = "Copy Regular Camera for Unreal" bl_idname = "object.copy_regular_camera_command" bl_description = "Copy Regular Camera Script command" def execute(self, context): - scene = context.scene obj = context.object - if obj: - if obj.type == "CAMERA": - setWindowsClipboard(GetImportCameraScriptCommand(obj, False)) - self.report( - {'INFO'}, - "Camera copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)") + result = GetImportCameraScriptCommand([obj], False) + if result[0]: + setWindowsClipboard(result[1]) + self.report({'INFO'}, result[2]) + else: + self.report({'WARNING'}, result[2]) return {'FINISHED'} class BFU_OT_CopyCineCameraButton(Operator): @@ -924,14 +921,13 @@ class BFU_OT_CopyCineCameraButton(Operator): bl_description = "Copy Cine Camera Script command" def execute(self, context): - scene = context.scene obj = context.object - if obj: - if obj.type == "CAMERA": - setWindowsClipboard(GetImportCameraScriptCommand(obj, True)) - self.report( - {'INFO'}, - "Camera copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)") + result = GetImportCameraScriptCommand([obj], False) + if result[0]: + setWindowsClipboard(result[1]) + self.report({'INFO'}, result[2]) + else: + self.report({'WARNING'}, result[2]) return {'FINISHED'} class BFU_OT_ComputLightMap(Operator): @@ -948,21 +944,6 @@ def execute(self, context): "Compunted Light map: " + str(GetCompuntedLightMap(obj))) return {'FINISHED'} - class BFU_OT_ComputAllLightMap(Operator): - bl_label = "Calculate all surface area" - bl_idname = "object.computalllightmap" - bl_description = ( - "Click to calculate the surface of the all object in the scene" - ) - - def execute(self, context): - updated = UpdateAreaLightMapList() - self.report( - {'INFO'}, - "The light maps of " + str(updated) + - " object(s) have been updated." - ) - return {'FINISHED'} # Animation : @@ -1744,6 +1725,36 @@ class BFU_PT_BlenderForUnrealTool(bpy.types.Panel): default="MySocket" ) + class BFU_OT_CopyRegularCamerasButton(Operator): + bl_label = "Copy Regular Cameras for Unreal" + bl_idname = "object.copy_regular_cameras_command" + bl_description = "Copy Regular Cameras Script command" + + def execute(self, context): + objs = context.selected_objects + result = GetImportCameraScriptCommand(objs, False) + if result[0]: + setWindowsClipboard(result[1]) + self.report({'INFO'}, result[2]) + else: + self.report({'WARNING'}, result[2]) + return {'FINISHED'} + + class BFU_OT_CopyCineCamerasButton(Operator): + bl_label = "Copy Cine Cameras for Unreal" + bl_idname = "object.copy_cine_cameras_command" + bl_description = "Copy Cine Cameras Script command" + + def execute(self, context): + objs = context.selected_objects + result = GetImportCameraScriptCommand(objs, False) + if result[0]: + setWindowsClipboard(result[1]) + self.report({'INFO'}, result[2]) + else: + self.report({'WARNING'}, result[2]) + return {'FINISHED'} + class BFU_OT_ConvertToCollisionButtonBox(Operator): bl_label = "Convert to box (UBX)" bl_idname = "object.converttoboxcollision" @@ -1892,6 +1903,22 @@ def execute(self, context): "Skeletal sockets copied. Paste in Unreal Engine Skeletal Mesh assets for import sockets. (Ctrl+V)") return {'FINISHED'} + class BFU_OT_ComputAllLightMap(Operator): + bl_label = "Calculate all surface area" + bl_idname = "object.computalllightmap" + bl_description = ( + "Click to calculate the surface of the all object in the scene" + ) + + def execute(self, context): + updated = UpdateAreaLightMapList() + self.report( + {'INFO'}, + "The light maps of " + str(updated) + + " object(s) have been updated." + ) + return {'FINISHED'} + def draw(self, context): addon_prefs = GetAddonPrefs() @@ -1943,6 +1970,12 @@ def FoundTypeInSelect(targetType, include_active=True): export_type_cameras.operator("object.converttoboxcollision", icon='MESH_CUBE') ''' + bfu_ui_utils.LayoutSection(layout, "bfu_camera_expanded", "Camera") + if scene.bfu_camera_expanded: + copy_camera_buttons = layout.column() + copy_camera_buttons.operator("object.copy_regular_cameras_command", icon="COPYDOWN") + copy_camera_buttons.operator("object.copy_cine_cameras_command", icon="COPYDOWN") + bfu_ui_utils.LayoutSection(layout, "bfu_collision_socket_expanded", "Collision and Socket") if scene.bfu_collision_socket_expanded: if not ActiveModeIs("OBJECT"): @@ -2902,6 +2935,8 @@ def execute(self, context): BFU_PT_BlenderForUnrealObject.BFU_OT_ShowCollectionToExport, BFU_PT_BlenderForUnrealTool, + BFU_PT_BlenderForUnrealTool.BFU_OT_CopyRegularCamerasButton, + BFU_PT_BlenderForUnrealTool.BFU_OT_CopyCineCamerasButton, BFU_PT_BlenderForUnrealTool.BFU_OT_ConvertToCollisionButtonBox, BFU_PT_BlenderForUnrealTool.BFU_OT_ConvertToCollisionButtonCapsule, BFU_PT_BlenderForUnrealTool.BFU_OT_ConvertToCollisionButtonSphere, @@ -2909,7 +2944,7 @@ def execute(self, context): BFU_PT_BlenderForUnrealTool.BFU_OT_ConvertToStaticSocketButton, BFU_PT_BlenderForUnrealTool.BFU_OT_ConvertToSkeletalSocketButton, BFU_PT_BlenderForUnrealTool.BFU_OT_CopySkeletalSocketButton, - BFU_PT_BlenderForUnrealObject.BFU_OT_ComputAllLightMap, + BFU_PT_BlenderForUnrealTool.BFU_OT_ComputAllLightMap, # BFU_PT_BlenderForUnrealDebug, # Unhide for dev diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index f817a1db..f305f906 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -1760,16 +1760,24 @@ def GetImportAssetScriptCommand(): return 'py "'+fullpath+'"' -def GetImportCameraScriptCommand(obj, CineCamera=True): - if obj: - if obj.type == "CAMERA": +def GetImportCameraScriptCommand(objs, CineCamera=True): + # Return (success, command) + + success = False + command = "" + report = "" + add_camera_num = 0 + + def AddCameraToCommand(camera): + if camera.type == "CAMERA": + t = "" # Get Camera Data scene = bpy.context.scene frame_current = scene.frame_current # First I get the camera data. # This is a very bad way to do this. I need do a new python file specific to camera with class to get data. - data = bfu_write_text.WriteCameraAnimationTracks(obj, frame_current, frame_current) + data = bfu_write_text.WriteCameraAnimationTracks(camera, frame_current, frame_current) transform_track = data["Camera transform"][frame_current] location_x = transform_track["location_x"] location_y = transform_track["location_y"] @@ -1787,11 +1795,7 @@ def GetImportCameraScriptCommand(obj, CineCamera=True): FocusDistance = data["Camera FocusDistance"][frame_current] Aperture = data["Camera Aperture"][frame_current] AspectRatio = data["desired_screen_ratio"] - CameraName = obj.name - - # And I apply the camrta data to the copy paste text. - t = "Begin Map" + "\n" - t += " " + "Begin Level" + "\n" + CameraName = camera.name # Actor if CineCamera: @@ -1841,13 +1845,37 @@ def GetImportCameraScriptCommand(obj, CineCamera=True): # Close t += " " + "End Actor" + "\n" - t += " " + "End Level" + "\n" - t += "Begin Surface" + "\n" - t += "End Surface" + "\n" - t += "End Object" + "\n" return t + return None - return "Please select a Camera." + cameras = [] + for obj in objs: + if obj.type == "CAMERA": + cameras.append(obj) + + if len(cameras) == 0: + report = "Please select at least one camera." + return (success, command, report) + + # And I apply the camrta data to the copy paste text. + t = "Begin Map" + "\n" + t += " " + "Begin Level" + "\n" + for camera in cameras: + add_command = AddCameraToCommand(camera) + if add_command: + t += add_command + add_camera_num += 1 + + t += " " + "End Level" + "\n" + t += "Begin Surface" + "\n" + t += "End Surface" + "\n" + t += "End Object" + "\n" + + success = True + command = t + report = str(add_camera_num)+" camera(s) copied. Paste in Unreal Engine scene for import the camera. (Ctrl+V)" + + return (success, command, report) def GetImportSkeletalMeshSocketScriptCommand(obj): From 69d5399d2bb49f6e791c9a476fdae46b0fdff9eb Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Sat, 6 Aug 2022 05:11:29 +0200 Subject: [PATCH 14/15] Skeleton Prefix + - Fixed: Export doesn't work with animation from Proxy Since Blender 3.2.2 --- Release log.txt | 1 + blender-for-unrealengine/bfu_ui.py | 23 +++++++++++-------- blender-for-unrealengine/bfu_utils.py | 6 ++--- .../bfu_write_import_asset_script.py | 2 +- .../export/bfu_export_single_fbx_action.py | 18 +++++++++------ .../export/bfu_export_single_fbx_nla_anim.py | 21 +++++++++++------ 6 files changed, 44 insertions(+), 27 deletions(-) diff --git a/Release log.txt b/Release log.txt index bf3974fb..325467a5 100644 --- a/Release log.txt +++ b/Release log.txt @@ -419,3 +419,4 @@ It is now possible to force the duration of an animation according to the scene - Fixed: NLA export fail when use inter frame. - Fixed: NLA export ignore animated influence on actions. - Fixed: Import script doesn't work with Unreal Engine 5. +- Fixed: Export doesn't work with animation from Proxy Since Blender 3.2.2 diff --git a/blender-for-unrealengine/bfu_ui.py b/blender-for-unrealengine/bfu_ui.py index ae0599fd..22be8347 100644 --- a/blender-for-unrealengine/bfu_ui.py +++ b/blender-for-unrealengine/bfu_ui.py @@ -2187,17 +2187,23 @@ class BFU_PT_Export(bpy.types.Panel): bl_category = "Unreal Engine" # Prefix - bpy.types.Scene.static_prefix_export_name = bpy.props.StringProperty( + bpy.types.Scene.static_mesh_prefix_export_name = bpy.props.StringProperty( name="StaticMesh Prefix", description="Prefix of staticMesh", maxlen=32, default="SM_") - bpy.types.Scene.skeletal_prefix_export_name = bpy.props.StringProperty( + bpy.types.Scene.skeletal_mesh_prefix_export_name = bpy.props.StringProperty( name="SkeletalMesh Prefix ", description="Prefix of SkeletalMesh", maxlen=32, default="SKM_") + + bpy.types.Scene.skeleton_prefix_export_name = bpy.props.StringProperty( + name="skeleton Prefix ", + description="Prefix of skeleton", + maxlen=32, + default="SK_") bpy.types.Scene.alembic_prefix_export_name = bpy.props.StringProperty( name="Alembic Prefix ", @@ -2315,8 +2321,9 @@ class BFU_OT_AddNomenclaturePreset(AddPresetBase, Operator): # Properties to store in the preset preset_values = [ - 'scene.static_prefix_export_name', - 'scene.skeletal_prefix_export_name', + 'scene.static_mesh_prefix_export_name', + 'scene.skeletal_mesh_prefix_export_name', + 'scene.skeleton_prefix_export_name', 'scene.alembic_prefix_export_name', 'scene.anim_prefix_export_name', 'scene.pose_prefix_export_name', @@ -2774,11 +2781,9 @@ def draw(self, context): # Prefix propsPrefix = self.layout.row() propsPrefix = propsPrefix.column() - propsPrefix.prop(scene, 'static_prefix_export_name', icon='OBJECT_DATA') - propsPrefix.prop( - scene, - 'skeletal_prefix_export_name', - icon='OBJECT_DATA') + propsPrefix.prop(scene, 'static_mesh_prefix_export_name', icon='OBJECT_DATA') + propsPrefix.prop(scene, 'skeletal_mesh_prefix_export_name', icon='OBJECT_DATA') + propsPrefix.prop(scene, 'skeleton_prefix_export_name', icon='OBJECT_DATA') propsPrefix.prop(scene, 'alembic_prefix_export_name', icon='OBJECT_DATA') propsPrefix.prop(scene, 'anim_prefix_export_name', icon='OBJECT_DATA') propsPrefix.prop(scene, 'pose_prefix_export_name', icon='OBJECT_DATA') diff --git a/blender-for-unrealengine/bfu_utils.py b/blender-for-unrealengine/bfu_utils.py index f305f906..4970ed1b 100644 --- a/blender-for-unrealengine/bfu_utils.py +++ b/blender-for-unrealengine/bfu_utils.py @@ -1692,7 +1692,7 @@ def GetCollectionExportFileName(collection, fileType=".fbx"): # Generate assset file name scene = bpy.context.scene - return scene.static_prefix_export_name+collection+fileType + return scene.static_mesh_prefix_export_name+collection+fileType def GetObjExportFileName(obj, fileType=".fbx"): @@ -1705,9 +1705,9 @@ def GetObjExportFileName(obj, fileType=".fbx"): if assetType == "Camera": return ValidFilename(scene.camera_prefix_export_name+obj.name+fileType) elif assetType == "StaticMesh": - return ValidFilename(scene.static_prefix_export_name+obj.name+fileType) + return ValidFilename(scene.static_mesh_prefix_export_name+obj.name+fileType) elif assetType == "SkeletalMesh": - return ValidFilename(scene.skeletal_prefix_export_name+obj.name+fileType) + return ValidFilename(scene.skeletal_mesh_prefix_export_name+obj.name+fileType) elif assetType == "Alembic": return ValidFilename(scene.alembic_prefix_export_name+obj.name+fileType) else: diff --git a/blender-for-unrealengine/bfu_write_import_asset_script.py b/blender-for-unrealengine/bfu_write_import_asset_script.py index 9f8218a5..b3d275c9 100644 --- a/blender-for-unrealengine/bfu_write_import_asset_script.py +++ b/blender-for-unrealengine/bfu_write_import_asset_script.py @@ -103,7 +103,7 @@ def WriteImportAssetScript(): if GetIsAnimation(asset.asset_type): if(asset.object.bfu_skeleton_search_mode) == "auto": - customName = scene.skeletal_prefix_export_name+ValidUnrealAssetsName(asset.skeleton_name)+"_Skeleton" + customName = scene.skeletal_mesh_prefix_export_name+ValidUnrealAssetsName(asset.skeleton_name)+"_Skeleton" SkeletonName = customName+"."+customName SkeletonLoc = os.path.join(asset.folder_name, SkeletonName) diff --git a/blender-for-unrealengine/export/bfu_export_single_fbx_action.py b/blender-for-unrealengine/export/bfu_export_single_fbx_action.py index 483a38a1..bf7c3941 100644 --- a/blender-for-unrealengine/export/bfu_export_single_fbx_action.py +++ b/blender-for-unrealengine/export/bfu_export_single_fbx_action.py @@ -95,9 +95,12 @@ def ExportSingleFbxAction( SelectParentAndDesiredChilds(obj) asset_name = PrepareExportName(obj, True) - duplicate_data = DuplicateSelectForExport() - SetDuplicateNameForExport(duplicate_data) - MakeSelectVisualReal() + if export_as_proxy is False: + duplicate_data = DuplicateSelectForExport() + SetDuplicateNameForExport(duplicate_data) + + if export_as_proxy is False: + MakeSelectVisualReal() BaseTransform = obj.matrix_world.copy() active = bpy.context.view_layer.objects.active @@ -214,11 +217,12 @@ def ExportSingleFbxAction( bpy.context.scene.unit_settings.scale_length = savedUnitLength RescaleAllActionCurve(1/(rrf*oldScale), 0.01/savedUnitLength) - CleanDeleteObjects(bpy.context.selected_objects) - for data in duplicate_data.data_to_remove: - data.RemoveData() + if export_as_proxy is False: + CleanDeleteObjects(bpy.context.selected_objects) + for data in duplicate_data.data_to_remove: + data.RemoveData() - ResetDuplicateNameAfterExport(duplicate_data) + ResetDuplicateNameAfterExport(duplicate_data) for obj in scene.objects: ClearAllBFUTempVars(obj) diff --git a/blender-for-unrealengine/export/bfu_export_single_fbx_nla_anim.py b/blender-for-unrealengine/export/bfu_export_single_fbx_nla_anim.py index 77b47f8e..feb9bffb 100644 --- a/blender-for-unrealengine/export/bfu_export_single_fbx_nla_anim.py +++ b/blender-for-unrealengine/export/bfu_export_single_fbx_nla_anim.py @@ -86,13 +86,17 @@ def ExportSingleFbxNLAAnim( export_as_proxy = GetExportAsProxy(obj) export_proxy_child = GetExportProxyChild(obj) + SafeModeSet('OBJECT') SelectParentAndDesiredChilds(obj) asset_name = PrepareExportName(obj, True) - duplicate_data = DuplicateSelectForExport() - SetDuplicateNameForExport(duplicate_data) - MakeSelectVisualReal() + if export_as_proxy is False: + duplicate_data = DuplicateSelectForExport() + SetDuplicateNameForExport(duplicate_data) + + if export_as_proxy is False: + MakeSelectVisualReal() BaseTransform = obj.matrix_world.copy() active = bpy.context.view_layer.objects.active @@ -103,6 +107,8 @@ def ExportSingleFbxNLAAnim( animation_data = AnimationManagment() animation_data.SaveAnimationData(obj) animation_data.SetAnimationData(active, True) + + if export_as_proxy: ApplyProxyData(active) @@ -191,11 +197,12 @@ def ExportSingleFbxNLAAnim( bpy.context.scene.unit_settings.scale_length = savedUnitLength RescaleAllActionCurve(1/(rrf*oldScale), 0.01/savedUnitLength) - CleanDeleteObjects(bpy.context.selected_objects) - for data in duplicate_data.data_to_remove: - data.RemoveData() + if export_as_proxy is False: + CleanDeleteObjects(bpy.context.selected_objects) + for data in duplicate_data.data_to_remove: + data.RemoveData() - ResetDuplicateNameAfterExport(duplicate_data) + ResetDuplicateNameAfterExport(duplicate_data) for obj in scene.objects: ClearAllBFUTempVars(obj) \ No newline at end of file From 1adc6ccedafbe375c7b671442f15b66958cbc052 Mon Sep 17 00:00:00 2001 From: Xavier Loux Date: Tue, 9 Aug 2022 21:07:54 +0200 Subject: [PATCH 15/15] Hotfix bertex color --- blender-for-unrealengine/export/bfu_export_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blender-for-unrealengine/export/bfu_export_utils.py b/blender-for-unrealengine/export/bfu_export_utils.py index f97f0d31..0f15f6be 100644 --- a/blender-for-unrealengine/export/bfu_export_utils.py +++ b/blender-for-unrealengine/export/bfu_export_utils.py @@ -368,7 +368,8 @@ def SetVertexColorForUnrealExport(parent): obj.data.vertex_colors.active_index = vced.index new_vertex_color = obj.data.vertex_colors.new() - new_vertex_color.name = "BFU_VertexColorExportName" + if new_vertex_color: + new_vertex_color.name = "BFU_VertexColorExportName" number = len(obj.data.vertex_colors) - 1 for i in range(number):