From 88f39002a00df5ad9de73b2d99835a8da00ec582 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Wed, 9 Oct 2024 12:53:48 +0800 Subject: [PATCH] vault backup: 2024-10-09 12:53:48 --- .../导出PSK_PSA脚本 & 部分UModel AES Key.md | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md b/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md index 1840381..75f5101 100644 --- a/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md +++ b/06-DCC/Blender/导出PSK_PSA脚本 & 部分UModel AES Key.md @@ -568,4 +568,63 @@ https://www.bilibili.com/video/BV15M4m197TG/?spm_id_from=333.337.search-card.all - 虚幻4(ue4)引擎加密pak解包教程(初学者向x64源码逆向) - 看雪的文章 - 知乎 https://zhuanlan.zhihu.com/p/96480632 - 支持Addtition动画的版本: https://github.com/djhaled/UEViewer -- 支持ACL的UModel https://github.com/MinshuG/UEViewer \ No newline at end of file +- 支持ACL的UModel https://github.com/MinshuG/UEViewer + +# Pak AdditiveAnimation 恢复 +- https://www.bilibili.com/video/BV13r4y1a7mW/?vd_source=f333e2edf5f07eeccd47911824e738a3 +## 脚本分析 +### BaseAnimation +主要逻辑: +1. 根据路径导入fbx文件。 +2. 获取所有骨骼数据。 +3. 骨骼进行缩放。 + +```c++ +on BtnBase pressed do +( + local filename = getOpenFileName types:"Base Animation (*.fbx)|*.fbx|All (*.*)|*.*|" filename:g_lastDir1 + if filename != undefined then + ( + BaseAnimFileName = filename + g_lastDir1 = getFilenamePath BaseAnimFileName + if DoesFileExist BaseAnimFileName then + ( + importFile BaseAnimFileName #noPrompt using:Wavefront_Object + local BaseAnimBones = FindAllBones() + scale BaseAnimBones[1] [(50.0/127.0),(50.0/127.0),(50.0/127.0)] + ) + ) +) +``` +### AdditiveAnimation +```c++ +Anims = #() +if DotNetObject == undefined then +( + local filename = getOpenFileName types:"Additive Anim (*.fbx)|*.fbx|All (*.*)|*.*" filename:g_lastDir2 + if filename != undefined then + ( + AddAnimFileName = filename + g_lastDir2 = getFilenamePath AddAnimFileName + ) +) +else +( + local filenames = getMultiOpenFilenames types:"Additive Anim (*.fbx)|*.fbx|All (*.*)|*.*" filename:g_lastDir2 + if filenames != undefined then + ( + for filename in filenames do + ( + AddAnimFileName = filename + g_lastDir2 = getFilenamePath AddAnimFileName + if DoesFileExist AddAnimFileName then + ( + ImportAddAnimFile filename + LstAnims.items = for a in Anims collect (a.Name) + ) + ) + ) +) +``` + +### ExportAnimation \ No newline at end of file