# PSK ```python import bpy import os import math from io_import_scene_unreal_psa_psk_280 import * pskPath = 'C:\\Users\\BlueRose\\Desktop\\BLUEPROTOCOL\\Game\\Character\\Enemy' for root, subdirs, files in os.walk(pskPath): for dirName in subdirs: print(root + '\\'+ dirName) for modelroot, modeldirs, modelfiles in os.walk(root + '\\'+ dirName +'\\Model'): for f in modelfiles: if f.endswith('.psk'): psk_file = os.path.join(modelroot, f) fbx_file = os.path.splitext(psk_file)[0] + ".fbx" # 清空场景 bpy.ops.object.select_all(action='SELECT') bpy.ops.object.delete() pskimport(psk_file, bReorientBones = False) # 使用SmoothShading for obj in bpy.data.objects: if obj.type=='MESH': obj.data.use_auto_smooth = True obj.data.auto_smooth_angle = math.radians(180) currentmesh = obj.data for setting in currentmesh.polygons: setting.use_smooth = True # 输出骨骼模型 bpy.ops.object.select_all(action='SELECT') bpy.ops.export_scene.fbx(filepath=fbx_file,add_leaf_bones=False) ``` # PSA ```python import bpy import os import math from io_import_scene_unreal_psa_psk_280 import * pskPath = 'C:\\Users\\BlueRose\\Desktop\\BLUEPROTOCOL\\Game\\Character\\Enemy\\E000_00\\Model\\SK_CH_E000_00.psk' psaDirPath = 'C:\\Users\\BlueRose\\Desktop\\BLUEPROTOCOL\\Game\\Animations\\Enemy\\E000' # 清空场景并且导入模型 bpy.ops.object.select_all(action='SELECT') bpy.ops.object.delete() pskimport(pskPath, bReorientBones = False, bImportmesh = False, bImportbone = True) for root, subdirs, files in os.walk(psaDirPath): for f in files: if f.endswith('.psa'): psa_file = os.path.join(root, f) pskDirPath = os.path.dirname(pskPath) fbx_file = os.path.join(pskDirPath,f) fbx_file = os.path.splitext(fbx_file)[0] + ".fbx" print(fbx_file) psaimport(psa_file) bpy.ops.object.select_all(action='SELECT') bpy.ops.export_scene.fbx(filepath=fbx_file,add_leaf_bones=False) ``` # 其他 获取UModel解包游戏所需的AES Key:https://cs.rin.ru/forum/viewtopic.php?t=100672