diff --git a/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md b/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md index 29855ae..e27d651 100644 --- a/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md +++ b/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md @@ -608,6 +608,75 @@ D:\OtherTools\GameAssets\umodel_win32_1590\umodel_64.exe -path=D:\Games\Guilty.G - https://zhuanlan.zhihu.com/p/644379193 - 贴图:https://zhuanlan.zhihu.com/p/493802718 +```python + + +import bpy +import os +import math +from io_import_scene_unreal_psa_psk_280 import * +from better_fbx import * + +for action in bpy.data.actions: + bpy.data.actions.remove(action) + +pskPath = 'C:\\Users\\BlueRose\\Desktop\\GranblueFantasyVersusRising\\Chara\\ZET\\Costume01\\Mesh\\zet_weapon_kaihou.psk' +psaPath = 'C:\\Users\\BlueRose\\Desktop\\GranblueFantasyVersusRising\\Chara\\ZET\\Costume01\\Animation\\Default\\weapon\\zet001.psa' +fbxExportPath = 'C:\\Users\\BlueRose\\Desktop\\GranblueFantasyVersusRising\\Chara\\ZET\\Costume01\\Animation\\Default\\weapon\\' + +# 清空并且设置为60fps +bpy.ops.scene.new(type='EMPTY') +bpy.ops.object.select_all(action='SELECT') +bpy.ops.object.delete() +bpy.context.scene.render.fps = 60 + + +# 导入骨骼以及动画(所有NLA) +pskimport(pskPath, bReorientBones = False, bImportmesh = False, bImportbone = True) +psaimport(psaPath, bActionsToTrack = True) + +for obj in bpy.data.objects: + print(obj.type) + if obj.type=='ARMATURE': + currentSkeleton = obj + +print(currentSkeleton.animation_data.action) + +for action in bpy.data.actions: + # print(action) + currentSkeleton.animation_data.action = action + bpy.ops.better_export.fbx(filepath= fbxExportPath+ action.name + ".fbx",my_fbx_format="binary",use_selection=False,use_visible=True) + # print(currentSkeleton.animation_data.action) + # print(bpy.data.objects["SM_ch0100.ao"].animation_data.action) + +# 导入模型 +import bpy +import os +import math +from io_import_scene_unreal_psa_psk_280 import * +from better_fbx import * + +for action in bpy.data.actions: + bpy.data.actions.remove(action) + +pskPath = 'C:\\Users\\BlueRose\\Desktop\\GuiltyGear\\Chara\\\BGT\\Costume01\\Mesh\\bgt_body.psk' +# psaPath = 'C:\\Users\\BlueRose\\Desktop\\GranblueFantasyVersusRising\\Chara\\ZET\\Costume01\\Animation\\Default\\weapon\\zet001.psa' +fbxExportPath = 'C:\\Users\\BlueRose\\Desktop\\GuiltyGear\\Chara\\BGT\\Costume01\\Mesh\\' + +# 清空并且设置为60fps +bpy.ops.scene.new(type='EMPTY') +bpy.ops.object.select_all(action='SELECT') +bpy.ops.object.delete() +bpy.context.scene.render.fps = 60 + + +# 导入骨骼以及动画(所有NLA) +pskimport(pskPath, bReorientBones = False, bImportmesh = True, bImportbone = True) +# psaimport(psaPath, bActionsToTrack = True) + +fileName = os.path.basename(pskPath) +bpy.ops.better_export.fbx(filepath= fbxExportPath + fileName.split('.')[0] + ".fbx",my_fbx_format="binary",use_selection=False,use_visible=True) +``` ## 提取角色 - BGT:修女 布丽姬 https://baike.baidu.com/item/%E5%B8%83%E4%B8%BD%E5%A7%AC/61832042 - Anim