ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何把骨骼动画烤进一张纹理:Unity 动画纹理烘焙器从零上手

如何把骨骼动画烤进一张纹理:Unity 动画纹理烘焙器从零上手 如何把骨骼动画烤进一张纹理:Unity 动画纹理烘焙器从零上手【免费下载链接】Animation-Texture-Baker頂点の位置と法線を、Texture2Dに保存しておく。ARGBFloatとか、HDR Textureを使用したバージョン项目地址: https://gitcode.com/gh_mirrors/an/Animation-Texture-Baker场景里要塞几百个同模型角色时,每个都拖着整棵骨骼树的蒙皮网格,CPU 会先扛不住。Animation Texture Baker 做的事很直接:把骨骼动画逐帧做动画纹理烘焙,存成三张 Texture2D,运行时靠动画纹理采样驱动一个静态网格。原理:把骨骼的活冻进一张会滚动的贴图把它想成一本竖着排的动作漫画:横轴是顶点编号,纵轴是时间帧,每一格画的是该顶点在那一帧的位置(或法线、切线)。烘焙端逐帧采样动画、用BakeMesh把蒙皮结果烤成静态数据写进贴图(ARGBHalf 格式,即 HDR 贴图);播放端则完全不需要骨骼——网格纹丝不动,Shader 随时间滚动 UV 去采样当前位置和法线,看起来就像蒙皮在动。从克隆到第一次 Bake 的三个动作把仓库拉到本地git clone https://gitcode.com/gh_mirrors/an/Animation-Texture-Baker让 Unity 项目认识烘焙器把Assets整个拖进工程即可,不用额外装包。核心逻辑都在 Assets/AnimationBaker:Scripts 里三个 C# 脚本分别对应三种动画驱动方式,MeshInfoTextureGen.compute负责把顶点数据写入贴图,TextureAnimPlayer.shader负责播放;Shaders 目录里还有 URP GPU 实例化版本。Scenes下现成的bake.unity、testAnimator.unity已经把马的角色挂好了,可以直接拿来试。触发第一次 Bake选中挂了烘焙脚本的角色对象,走右键 ContextMenu 的 bake texture(Animator 版本则进 Play 模式让脚本自动跑)。烘焙的核心循环大致是这样:// 以下为示意流程,以项目文档为准 clip.SampleAnimation(go, t); // 逐帧采样动画 skin.BakeMesh(mesh); // 把蒙皮结果烤成静态网格 // 顶点/法线/切线写入 RenderTexture,再转成 Texture2D 资源产物自动落在Assets/BakedAnimationTex:每条动画生成posTex/normTex/tanTex三个 asset、一个材质和一个 prefab,拖进场景就能播,效果长这样:该用与不该用的分界线适合上手的场景:大数量、同模型、同动画的角色群——马群、鸟群这类。烘焙后每个实例只剩一个静态网格,能直接走 GPU 实例化甚至 Entities 批量生成,项目内置了上百匹马的GpuInstanceExample和EntityExample场景验证过这条路。动画内容固定、不需要运行时交互的装饰性角色,省掉每个实例的骨骼层级和蒙皮计算。别硬用的场景:需要 CrossFade 混合、IK 或物理碰撞的角色。纹理里冻结的是固定帧序列,播放端只读贴图,没有骨骼可供重定向,动画状态切换也只能整条换贴图。第一次烘焙前该检查什么⚠️ 三个脚本对应三种驱动:LegacyAnimation用AnimationTextureBaker,Animator用AnimatorTextureBaker,AnimationClip用带 bake texture 菜单的AnimationClipTextureBaker,挂错组件会采不到帧。⚠️ 帧数按 0.05 秒一帧、向上取 2 的幂,5 秒的动画贴图高度就到 128 行;顶点多 × 动画长 贴图爆炸,烘焙前先估算 posTex 尺寸。 播放 Shader 按顶点编号采样,烘焙后别在运行时改网格;Shader Graph 版还需要脚本把顶点索引写进 uv1(见 Assets/ShaderGraph)。它站在哪条技术链路上烘焙端是 Compute Shader,播放端是 Unlit Shader,URP 下有 GPU 实例化变体,天然衔接 Unity Entities 的大规模生成链路;想可视化编辑的话,Assets/ShaderGraph 里给了一份 Shader Graph 实现。一句话总结:它把蒙皮的成本从运行时挪到烘焙期,用三张动画纹理换掉整棵骨骼树,换来实例化与实体化的空间。复现全部流程看 Readme.md 和 Assets/AnimationBaker 目录即可。【免费下载链接】Animation-Texture-Baker頂点の位置と法線を、Texture2Dに保存しておく。ARGBFloatとか、HDR Textureを使用したバージョン项目地址: https://gitcode.com/gh_mirrors/an/Animation-Texture-Baker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表