merge upstream

This commit is contained in:
2025-06-22 21:38:20 +00:00
711 changed files with 31 additions and 15 deletions

View File

@ -151,7 +151,7 @@ class LeenkxExporter:
self.default_part_material_objects = [] self.default_part_material_objects = []
self.material_to_lnx_object_dict = {} self.material_to_lnx_object_dict = {}
# Stores the link between a blender object and its # Stores the link between a blender object and its
# corresponding export data (arm object) # corresponding export data (lnx object)
self.object_to_lnx_object_dict: Dict[bpy.types.Object, Dict] = {} self.object_to_lnx_object_dict: Dict[bpy.types.Object, Dict] = {}
self.bone_tracks = [] self.bone_tracks = []
@ -540,7 +540,13 @@ class LeenkxExporter:
o['material_refs'].append(lnx.utils.asset_name(material)) o['material_refs'].append(lnx.utils.asset_name(material))
def export_particle_system_ref(self, psys: bpy.types.ParticleSystem, out_object): def export_particle_system_ref(self, psys: bpy.types.ParticleSystem, out_object):
if psys.settings.instance_object is None or psys.settings.render_type != 'OBJECT' or not psys.settings.instance_object.lnx_export or not bpy.data.objects[out_object['name']].modifiers[psys.name].show_render: if psys.settings.instance_object is None or psys.settings.render_type != 'OBJECT' or not psys.settings.instance_object.lnx_export:
return
for mod in bpy.data.objects[out_object['name']].modifiers:
if mod.type == 'PARTICLE_SYSTEM':
if mod.particle_system.name == psys.name:
if not mod.show_render:
return return
self.particle_system_array[psys.settings] = {"structName": psys.settings.name} self.particle_system_array[psys.settings] = {"structName": psys.settings.name}
@ -917,7 +923,11 @@ class LeenkxExporter:
out_object['particle_refs'] = [] out_object['particle_refs'] = []
out_object['render_emitter'] = bobject.show_instancer_for_render out_object['render_emitter'] = bobject.show_instancer_for_render
for i in range(num_psys): for i in range(num_psys):
if bobject.modifiers[bobject.particle_systems[i].name].show_render: for obj in bpy.data.objects:
for mod in obj.modifiers:
if mod.type == 'PARTICLE_SYSTEM':
if mod.particle_system.name == bobject.particle_systems[i].name:
if mod.show_render:
self.export_particle_system_ref(bobject.particle_systems[i], out_object) self.export_particle_system_ref(bobject.particle_systems[i], out_object)
aabb = bobject.data.lnx_aabb aabb = bobject.data.lnx_aabb
@ -2289,12 +2299,12 @@ class LeenkxExporter:
self.output['particle_datas'] = [] self.output['particle_datas'] = []
for particleRef in self.particle_system_array.items(): for particleRef in self.particle_system_array.items():
padd = False; padd = False;
for obj in self.output['objects']: for obj in bpy.data.objects:
if 'particle_refs' in obj: for mod in obj.modifiers:
for pref in obj['particle_refs']: if mod.type == 'PARTICLE_SYSTEM':
if pref['particle'] == particleRef[1]["structName"]: if mod.particle_system.settings.name == particleRef[1]["structName"]:
if bpy.data.objects[obj['name']].modifiers[pref['name']].show_render == True: if mod.show_render:
padd = True; padd = True
if not padd: if not padd:
continue; continue;
psettings = particleRef[0] psettings = particleRef[0]
@ -2988,6 +2998,9 @@ class LeenkxExporter:
# mesh = obj.data # mesh = obj.data
# for face in mesh.faces: # for face in mesh.faces:
# face.v.reverse() # face.v.reverse()
# if bpy.app.version[0] >= 4:
# bpy.ops.wm.obj_export(override, use_selection=True, filepath=nav_filepath, check_existing=False, use_normals=False, use_uvs=False, use_materials=False)
# else:
# bpy.ops.export_scene.obj(override, use_selection=True, filepath=nav_filepath, check_existing=False, use_normals=False, use_uvs=False, use_materials=False) # bpy.ops.export_scene.obj(override, use_selection=True, filepath=nav_filepath, check_existing=False, use_normals=False, use_uvs=False, use_materials=False)
# bobject.scale.y *= -1 # bobject.scale.y *= -1
armature = bobject.find_armature() armature = bobject.find_armature()

Some files were not shown because too many files have changed in this diff Show More