diff --git a/Fange Pipeline/Pipline.py b/Fange Pipeline/Pipline.py index b8d6182..8dbfeab 100644 --- a/Fange Pipeline/Pipline.py +++ b/Fange Pipeline/Pipline.py @@ -8,9 +8,96 @@ About building setup: import bpy -coll = 'Placeholder' +from pathlib import Path -for collection in bpy.data.collections: - print(f'[Pipeline] Collection "{collection.name}"') - if collection.name is 'coll': - print(f'[Pipeline] Collection placeholder found') \ No newline at end of file +# Init all data +coll_layout = bpy.data.collections.get('Placeholder') +output = Path("W:\\", "Graou Studio", "Game Projects", "Fange Prototype", "Assets", "Graph", "Buildings").resolve() +fbx_preset = 'sm-unity-building' + +bpy.ops.object.select_all(action='DESELECT') + +def get_export_preset(): + fbx_preset_paths = bpy.utils.preset_paths(r"operator\export_scene.fbx") + fbx_preset = Path(fbx_preset_paths[0], "sm-unity-building.py") + + if fbx_preset_paths: + print(f'[Pipeline] Get the preset path "{fbx_preset}"') + #select_preset = bpy.utils.preset_find(name=preset_name, preset_path=fbx_preset.as_posix()) + #print(f'[Pipeline] Preset get {select_preset}') + + return fbx_preset + + else: + print(f'[Pipeline] Preset folder not found') + + +def apply_mesh_and_join(): + """ + This function make a new mesh with all selected asset. + It's usefull to + """ + pass + + +if coll_layout: + if len(coll_layout.collection_children): + for coll in coll_layout.children: + print(f'[Pipeline] Update "{coll.name}" mesh') + child = bpy.data.collections.get(coll.name) + + print(f'[Pipeline] Select all mesh inside the collection "{child.name}"') + for ob in child.all_objects: + print(f'\tLook "{ob.name}", his type are "{type(ob.data)}"') + if isinstance(ob.data, bpy.types.Mesh): + ob.select_set(True) + + # Export this collection + abs_export = output.joinpath("Garden", "Meshes") + if not abs_export.exists(): + abs_export.mkdir() + + bpy.ops.export_scene.fbx(filepath=abs_export.joinpath(f"SM_{coll.name}.fbx").as_posix(), + use_selection=True, + use_visible=False, + use_active_collection=False, + global_scale=1.0, + apply_unit_scale=True, + apply_scale_options='FBX_SCALE_NONE', + use_space_transform=True, + bake_space_transform=True, + object_types={'MESH','EMPTY'}, + use_mesh_modifiers=True, + use_mesh_modifiers_render=True, + mesh_smooth_type='OFF', + colors_type='SRGB', + prioritize_active_color=False, + use_subsurf=False, + use_mesh_edges=False, + use_tspace=False, + use_triangles=False, + use_custom_props=False, + add_leaf_bones=True, + primary_bone_axis='Y', + secondary_bone_axis='X', + use_armature_deform_only=False, + armature_nodetype = 'NULL', + bake_anim = False, + bake_anim_use_all_bones = True, + bake_anim_use_nla_strips = True, + bake_anim_use_all_actions = True, + bake_anim_force_startend_keying = True, + bake_anim_step = 1.0, + bake_anim_simplify_factor = 1.0, + path_mode = 'AUTO', + embed_textures = False, + batch_mode = 'OFF', + use_batch_own_dir = True, + axis_forward = 'X', + axis_up = 'Y' + ) + print(f'[Pipeline] Export here "{abs_export}"') + bpy.ops.object.select_all(action='DESELECT') + + #for coll in coll_layout.children: + # print(f'[Pipeline] Check {coll}. Item type {type(coll)}') \ No newline at end of file