Source code for cgl.plugins.unreal.tasks.shd

try:
    import unreal
except ImportError:
    pass

from cgl.plugins.smart_task import SmartTask


[docs] class Task(SmartTask): def __init__(self, dcc="unreal_engine", task="mld", path_object=None): self.dcc = dcc self.task = task if not path_object: self.set_path_object() else: self.path_object = path_object self.set_task_object()
[docs] def get_msd_data(self, path_object=None): pass
[docs] def create_material(shader_destination, material_name): asset_tools = unreal.AssetToolsHelpers.get_asset_tools() asset_tools.create_asset( material_name, shader_destination, unreal.Material, unreal.MaterialFactoryNew() )
[docs] def attach_materials_to_model(model_path, materials_folder): missing_material_list = [] model_obj = unreal.load_object(None, model_path) if not model_obj: print("Error: Can't Load MDL for Shader") return False for material_slot in model_obj.static_materials: slot_name = material_slot.material_slot_name slot_index = model_obj.get_material_index(slot_name) material_path = f"{materials_folder}{slot_name}" loaded_material = unreal.load_object(None, material_path) if loaded_material: model_obj.set_material(slot_index, loaded_material) else: print(f"Couldn't Find Material: {loaded_material}") missing_material_list.append(slot_name) return missing_material_list
if __name__ == "__main__": from cgl.core.path.object import PathObject import cgl.plugins.unreal.path as path import cgl.plugins.unreal.turntable as tt from cgl.plugins.unreal.utils import sequence, asset from importlib import reload reload(path) reload(sequence) reload(tt) reload(asset) filepath = r"Z:\prod\premise\source\ASJ\assets\wdb\talithaOutfit\cth\default\publish\001.000\high" po = PathObject().from_path_string(filepath) Task(path_object=po).import_latest() # ue_obj = path.UnrealObject().from_path_object(po) # tt.create_turntable(ue_obj, mesh_task="mdl") # render_path = ue_obj.get_render_path(dirname=False) # print(render_path) # game_dirname = ue_obj.get_game_path(dirname=True) # # level_sequence_name = "shd_turntable_sequence" # # asset_data = unreal.EditorAssetLibrary.find_asset_data( # f"{game_dirname}/{level_sequence_name}" # ) # print(asset_data) # # if asset_data: # # self.shared_data["level_sequence"] = asset_data