• 投稿

[附源码] 终末地 全角色+动画+Shader逆向还原

1.6万
0
2026-05-01 04:53:19
495
188
1157
136
如上个视频所说 这是动画和角色shader部分 毕竟AI时代逆向不耗时间了 AI线程负责简单Shader还原就够了 我的日本朋友也帮了很多忙 终末地的引擎改得太多了 极度折磨 Shader的Bindings还pack过 unpack之后也很奇怪 明明只有2个cb slot被用到 但是metadata里面index指向0 6 13 space也有变动 cbuffer CB0UBO : register(b0, space0) 问题是unity原版根本不支持这玩意 我也是第一次听说space0这东西 从现象上来看这如果是优化那有可能是固定内存cb 不会是纯GPU驱动渲染吧(但仔细想想如果是纯GPU驱动rdc还能截到渲染命令吗.突然好奇起来了,有没有老哥试过的) 而且不知道为什么shader上有两个bindings 看上去也不是对应vs/ps的 终末地的Shader和动画也是魔改得妈都不认识的级别 1.2之后我的Animator导出器已经彻底坏了  终末地的动画在UI角色界面的时候用的是无损压缩 而平时操作的时候用的是ACL有损压缩 所以ACL部分无法导出动画需要解压 实际解压后我又发现关节异常 但是挂上IK之后看上去就已经和游戏中差不多了 因此我猜测他们在运行时角色的四肢是完全程序驱动动画 比如干员在待机动画中也能打中其他干员并且做出反应 他们的细节打磨超乎我对二游的刻板印象了 越分析越觉得牛逼 这还是途中做了2个单机游戏的情况下 都是神仙  视频中佩里卡动画肩膀看上去很奇怪是因为用的Unity自带的IK系统模拟的 所以很垃圾 模拟不好要用FinalIK 用AI总结就是 Animator  多了LOD系统(AnimatorLOD里有distance/maxDeltaTime/framesPerUpdate/uroMode) 骨骼约束系统SkeletonConstrainData(带driverBones+球体碰撞+约束类型) 鹰角自家三件套MorphAvatar/CorrectiveBoneData/PoseDriverData  再配一堆OptClipBinding/OptBindingByAvatar/CacheClipBinding优化开关 AnimationClip  直接换成ACL压缩 整个AnimClipAclCompressedBuffer塞进去  Transform/RootMotion/Float三个Buffer分桶  还有SubTrackMask+ConstantMask  多了TransitionRotate相关字段 AnimatorController  新增三姿势混合器UseThreePoseBlender、TransitionBlockParamConstant、 BlendSequenceDataConstant(per-child的BodyMask/SkeletonMask/Speed/LodThreshold/AbilityThreshold/CullingMode一整套都塞里面了)、 布料计算器ClothCalculatorType  顶层还加了LOD/Ability阈值和PostProcessLayer Shader  把Bindings魔改成Vulkan风格的DescriptorSetParams(PackedBinding/PackedInfo打包过)  多了HGECS Instancing变体 EnableShaderLODStreaming按LOD切SubShaderBlob压缩 还多了个CompressionType字段 比如游戏中走远了npc看上去是白黑渐变那个效果就是shaderlod 根据距离选择不同的shader二进制 当然不止这些 如果真感兴趣可以直接去 FractalTools/TypeTree/blob/main/5/1.2.4/info.json AssetRipper/TypeTreeDumps/blob/main/InfoJson/2021.3.34f1.json 对比下就知道了 因为简介的字不够了 最后是源码,角色Shader反正都烂大街了应该不至于被鹰角律师函吧 https://github.com/ShiyumeMeguri/FractalMiner 忘说了 我没有实现法线解码函数 需要在shader加上法线解码 动画就不要让我配布了 鹰角律师函警告 带符号注入的反编译器 近期整理后发布exe 基于AOP编程方式实现的 因此理论上Fmodel或者AssetRipper更新也能用 替换旧版本的Fmodel/AssetRipper文件就可以 https://github.com/ShiyumeMeguri/Ruri.ShaderDecompiler
私信0级回不了 不要关注我 因为我是傻逼 偶尔随机发点东西 正在想办法提升审美与学习SP画PBR
接下来播放
自动连播
客服
顶部
赛事库 课堂 2021拜年纪