vault backup: 2024-10-09 12:53:48

This commit is contained in:
BlueRose 2024-10-09 12:53:48 +08:00
parent 8cb4a84deb
commit 88f39002a0

View File

@ -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
- 支持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