关于Unity动画系统优化,你可能遇到这些问题

unity-小白学习Animator建立动画的状态切换 AnimatorAnimator窗口站立的3个动画攻击的3个动画 相信你们都学过Animator的一些东西,这里讲在建立状态切换的一些用法,让你状态切换看起来简洁,代码容易理解,不易出现bug Animator窗口 首先是Animator窗口 刚开始只有Any state,Entry,Exit Any state:任意状态切换,一般用于死亡状态切换,所以不使用Any state更能看清楚哪些状态之间能切换,哪些不能 Entry,默认动画人口,一般是ilde站立 Exit:动画退出出口,注意一定要加退出动画的 阅读详情

关键字

内存泄漏
资源制作


一、内存泄漏

Q1:我们测试发现,当Animator Controller挂载的动作比较多时,即使切换成另外一个动作很少的Animator Controller,任务的动作信息还是不会释放。我们将英雄打成一个AssetBundle,然后又把定制的Runtime Animator Controller加载替换进去,英雄自带的Runtime Animator Controller是挂了所有动作的。我们试了替换Runtime Animator Controller之后,把先前的Runtime Animator Controller Destroy掉,貌似内存也没释放。
请输入图片描述

销毁Animator Controller并不会释放其内所引用的AnimationClip资源的,所以内存没有明显下降是正常的。建议按照以下方式做个试验:
1)销毁Animator Controller 后,通过Unity Profiler立刻真机Take Sample,查看Animation Clip的Ref count是否为0;
2)如果不是,则需要进一步查看这些资源的索引出处;如果为0,则可以通过UnloadUnusedAssets或UnloadAsset来将其从内存> 中去除。


二、资源制作

Q1:Optimize Game Objects对于老版本的Animation系统有没有作用呢?

没有作用。Optimize Game Objects功能是Unity4.3版本推出的功能,且仅对Mecanim动画系统起作用。如果可以的话,建议研发团队尽可能使用Mecanim来作为项目动画系统的解决方案。

Q2:在UWA性能报告中,你们建议我们选中Optimize GameObject来提升Mecanim动画模块的运行性能,但是这个功能会隐蔽角色骨骼,那么要挂载该骨骼上的这个点就无法查询了,有什么办法可以解决这个问题吗?

是的,开启Optimize GameObject默认情况下会将动画网格下的所有骨骼结点隐藏,但是,你可以通过“Extra Transform to Expose”查看你想通过脚本获取的骨骼结点,这样既可以提升该角色的动画模块性能,又可以达到获取某个关键结点的需求。
请输入图片描述

Q3:SkinnedMeshRenderer.BakeMesh这个函数一般是什么时候调用呢?在Instantiate后调用么?

SkinnedMeshRenderer.BakeMesh 的作用在于:将一个蒙皮动画的某个时间点上的动作,Bake成一个不带蒙皮的Mesh,从而可以通过自定义的采样间隔,将一段动画转成一组Mesh序列帧。而后在播放动画时只需选择最近的采样点(即一个Mesh)进行赋值即可,从而省去了骨骼更新与蒙皮计算的时间。
该方法的优点是用内存换计算时间,在场景中大量出现同一个带动画的模型时,效果会非常明显。该方法的缺点是内存的占用极大地受到模型顶点数、动画总时长及采样间隔的限制。因此,该方法只适用于顶点数较少,且动画总时长较短的模型。同时,Bake的时间较长,因此需要在加载场景时完成。
比较经典的适用场景为MOBA游戏中的小兵。

Q4:在UWA给出的报告中,我们发现了Animator过高的情况,其中UI和角色各占一半。我们之前一直选择CullUpdateTransforms,通过阅读Unity官方文档发现CullCompletely更符合我们的现状,想请教下如果我们选择CullCompletely可能会有什么隐患呢?

使用 CullCompletely 在开启 RootMotion 时是需要注意的,比如人物有一个巡逻动画是通过 RootMotion 制作的,那么在人物走出屏幕后,其动画就停止了,即不会再走回屏幕中。

Q5:我们在美术制作时做了40根骨骼,但在动作中仅用到了其中的30根。这种做法和30根骨骼用到了30根相比,在蒙皮计算上会明显增加吗?(Animation经过了压缩处理)

理论上是有增加的,骨骼运算均是每个骨骼阶段的Matrix乘起来的,所以理论上会有开销。建议使用Optimize GameObejct选项,可以减少一些不必要的CPU开销。

Unity中的Animator动画详解 Unity中的Animator动画详解Animator动画导入Animator动画详解动画类型选择Rig面板属性Mode面板属性Animation面板属性动画片段控制使用 Animator动画创建动画控制器,添加需要播放的动画片段注意事项 Animator动画导入 模型名+@+动画名的方式,可以直接组装使用动画; 直接将动画资源导入到unity中,一般包含模型、贴图、材质三种。 Animator动画详解 动画类型选择 Rig面板属性 Animation Type 不同的动画类型 None 阅读详情

相关推荐

Unity动画系统优化:使用UAC插件构建模块化动画管理框架

在游戏开发中,动画系统是角色与场景交互的核心组件,其设计直接影响到游戏的流畅度与表现力。传统的状态机(State Machine)模型虽然直观,但随着项目复杂度提升,容易出现逻辑耦合度高、可视化混乱等问题。为了解决这些痛点,现代动画管理框架引入了模块化与数据驱动的设计思想,通过将动画逻辑拆解为状态、行为、转换器等独立单元,实现动画师与程序员的高效协作。这种架构不仅提升了开发效率,还增强了系统的可维护性与扩展性,特别适用于需要复杂动画交互的第三人称角色、战斗系统等场景。本文以Unity平台的ULTIMATE

weixin_34122604的博客 1334

unity Animator 同时播放两个动画,并动态更换Animator中的AnimationClip

https://blog.youkuaiyun.com/weixin_39562801/article/details/88873511

fanfan_hongyun的博客 1749

Unity中基于SkinMeshRenderer的骨骼动画换装系统优化实践

本文深入探讨了Unity中基于SkinnedMeshRenderer的骨骼动画换装系统优化实践。针对换装卡顿、显示错误等常见问题,文章剖析了SkinnedMeshRenderer的核心数据原理,对比了“数据替换”与“实体替换”两种主流方案的性能差异,并详细阐述了通过骨骼字典缓存、对象池管理、材质合并与Draw Call优化等实战技巧,构建高性能、高稳定性的生产级换装系统。

weixin_29008055的博客 314

unity 动画原动画返回_unity 关于新的动画系统animator的动作混合(原)

首先要分清两个概念,动作融合和动作混合1动作融合是指,一个动作播放到结束后时,接着播另一个动作时,首尾进行融,实现平滑过渡的效果2动作混合是指,本来是多个独立完整的动作,来用其中一个动作来控制角色的部分骨骼,另一个来控制角色的另一部分骨骼,实现不同的身体部分播放不同的动作,目地是为了节省动作资源,不用单独重新制做新的动作这里只说动作混合,动作融合放到其它的文章里首先准备好美术资源1角色模型fbx,...

weixin_39851048的博客 564

Unity进阶技巧:Spine骨骼动画与3D动画的实战优化

本文深入探讨了Unity中Spine骨骼动画与3D动画的实战优化技巧,特别针对换装系统开发提供了高效解决方案。通过动画混合、过渡技巧和IK控制等进阶方法,帮助开发者提升游戏动画表现力和性能,适用于各类2D/3D游戏开发场景。

weixin_27717759的博客 393

Blender几何节点动画导出Unity全攻略:形态键烘焙与性能优化

在计算机图形学与游戏开发中,顶点动画是实现模型动态效果的核心技术之一,它通过记录网格顶点位置随时间的变化来驱动变形。其原理基于对顶点数据的线性插值,相较于骨骼动画,顶点动画在处理复杂表面形变时具有独特优势,尤其适用于流体、材质波动等效果。这项技术的核心价值在于能在保持较低计算开销的同时,实现丰富的视觉表现,是实时渲染中优化性能的重要手段。在应用场景上,顶点动画广泛应用于游戏角色表情、环境特效及程序化生成内容的动态展示。本文聚焦于Blender几何节点这一强大的程序化建模工具,针对其动态效果导出至游戏引擎的行

caodaoxi的专栏 586

Unity Animator动画系统深度解析

摘要:Unity Animator动画系统由骨骼动画支持、状态机控制和扩展功能三部分组成。骨骼计算框架通过Animator和SkinnedMeshRenderer组件实现,支持多线程Job系统优化性能。状态机通过Animator Controller定义结构,使用Bool/Float/Trigger等参数驱动动画切换。扩展功能包括分层动画、Avatar Mask和运行时动画控制,支持角色换装和动画复用。系统采用解耦架构,适用于从独立游戏到大型3A项目的动画需求,结合Job System与DOTS/ECS可提

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 1681

如何移除Unity中的默认动画?

然而,有时候我们可能不需要使用Unity默认的动画系统,而是希望自己实现自定义的动画逻辑。默认情况下,每个游戏对象都会自带Animator组件,这个组件负责播放预设的动画片段。要移除默认的动画,我们需要手动移除Animator组件。需要注意的是,移除Animator组件后,原本由Animator控制的动画将不再播放。总结起来,要移除Unity中的默认动画,可以通过移除Animator组件或禁用Animator的自动播放选项来实现。除了移除Animator组件,还可以通过其他方式禁用默认动画的播放。

QscFramework的博客 1473

Unity笔记-29-ARPG游戏项目-04-攀爬系统优化与IK动画

Unity笔记-29-ARPG游戏项目-04-攀爬系统优化与IK动画 上一篇,IK没有讲,这一篇补充一下IK动画以及一些其他优化部分 为什么要加IK动画 首先,如果没有IK动画会导致动作穿模,通过代码的距离设置可以一定程度解决问题,但不能彻底解决,因此IK动画是必要的。其次,尤其是攀到墙顶,没有IK动画的情况下,人物的手通常是浮空的,这对于玩家来说是十分糟糕的,就好像浮空攀顶一样,是否奇怪 其次,做了一些优化,先讲优化,再讲IK 攀顶代码优化 上一篇的攀墙顶的检测代码经过优化,不再通过头顶的辅助坐标来检测,

韩天衣的博客 4461

e-puck场景搭建

可以注意到一个黑色的小窗口出现在三维视图的左上角。它显示了电子吸盘机器人的摄像头拍摄的图像。该图像将保持黑色,直到机器人的控制器明确启用相机。最后,单击右上角的“x”可以关闭它。在对话框中,选择PROTO节点(Webots项目)/robots/gctronic/e-puck/e-puck(Robot)。一个电子吸盘机器人应该出现在竞技场的中央。通过按Alt+左键单击+拖动,对机器人施加力。无法对WoodenBox节点施加力,因为默认情况下,它们没有质量,并且被视为粘在地板上。将新控制器与机器人链接。

weixin_66540163的博客 769

AIDC智算中心建设:资源池化核心技术解析

AI 应用的POD在运行的时候,通过池化运行时访问虚拟GPU、执行AI任务,池化运行时拦截对虚拟GPU的访问请求、转递给池化服务代理执行,池化服务代理通过向智算池化控制器查询虚拟GPU所对应的真实智算资源位置、规格,按查询结果分配智算资源、执行AI任务,如果真实的智算资源位于远程计算节点,则由本地池化服务代理将访问请求转递给远程计算节点上的池化服务代理处理,相关通信经由参数面网络。

u013891230的博客 2432

Unity UI动画终极指南:10个UGUI动画效果实现技巧

Unity UI动画是游戏开发中提升用户体验的关键技术,通过Unity杂货铺中的UGUI动画效果实现技巧,你可以轻松创建出专业级的界面动画效果。本指南将带你深入了解Unity UGUI动画的核心概念和实用技巧,让你的游戏界面更加生动有趣。🎮 ## 为什么Unity UI动画如此重要? 在游戏开发中,流畅的UI动画能够显著提升用户体验。Unity的UGUI系统提供了强大的动画支持,从简单的渐隐

gitblog_00819的博客 549

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器

本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。

weixin_26750481的博客 315

我的Unity 2D角色动画与场景搭建探索之旅

在制作跳跃动画时,通过曲线编辑器将起跳初段的Y轴速度提升到5m/s,并在下落阶段添加0.2秒的滞空帧,成功塑造出符合物理直觉的跳跃质感。通过将背景元素分为5个Parallax层(远景山峦/中景建筑/近景植被等),设置不同的移动系数(0.3/0.7/1.0),当角色移动时,各层以差异速度滚动,创造出惊人的三维景深。在场景叙事层面,通过前景的倾斜断柱(旋转-15度)、中景的焦黑弹坑(使用Hole材质)、背景的硝烟粒子系统(发射率10个/秒)三位一体的环境叙事,无需任何文字就传递出战火蹂躏的故事情境。

2403_89069301的博客 695

Arduino——GY39大气压、温湿度、光照模块

前几天买东西的时候买了一个GY39,这个模块集成了温湿度,大气压,海拔,光照一体,使用起来很方面。它有两种工作模式使用串口模式时需要搭配转接板,我选择了IIC模式,看一下通信协议吧,就是关于高八位和低八位的数据。看一下接线。

戚晨夕的博客 2605

【CTFhub】——hate_php2021

【CTFhub】——hate_php2021

manerzi的博客 1605

Unity 2D骨骼动画与换装系统

Unity 2D骨骼动画与换装系统

ggbzwz的博客 1568

为什么你的PROFINET IRT同步性能不达标?等时模式常见配置误区盘点

本文深入剖析了PROFINET IRT等时模式同步性能不达标的常见原因。文章直击痛点,系统盘点了从硬件兼容性、拓扑组态、过程映像分区分配,到同步OB配置、时序参数调校及带宽管理等关键环节的配置误区,并提供了实用的诊断思路与性能优化清单,帮助工程师精准定位并解决同步抖动、时序混乱等难题。

ujm5678901的博客 457

Unity 3D角色模型导入与动画系统优化指南

3D角色模型导入与动画系统是游戏开发中的核心技术环节。FBX作为行业标准格式,其导入设置直接影响后续动画表现和物理交互效果。在Unity引擎中,通过合理配置Mesh Compression、Scale Factor等参数,可以确保模型资源在不同平台上的最佳表现。动画系统方面,Animator Controller的状态机设计、Blend Tree应用以及动画重定向技术,都是实现流畅角色动作的关键。针对移动端性能优化,需要关注骨骼数量控制、动画压缩设置等技巧。这些技术在RPG、MMO等需要复杂角色行为的游戏类

weixin_31115195的博客 355

STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发

系列文章目录 一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁 文章目录系列文章目录前言一、配置CubeMX二、逻辑代码部分 前言 这次我用的板子是一个用STM32F103C8T6作为主控芯片的一个数据采集卡,两个LED灯连接的引脚是PB3与PB4,TX与RX引脚分别是PA9和PA10。 一、配置CubeMX 1、新建工程; 2、配置时钟源,在RCC里面的HSE配置的是晶振时钟; 3、配置程序烧录引脚SYS为SWD模式; 4、配置GPIO口,配置一个LE

遗忘丶的博客 1万+

Codex 100个真实案例 - 用AI画业务流程图Mermaid(产品经理都馋哭了)

还在用 Visio、ProcessOn 拖拖拽拽画流程图?改一个箭头方向就要调半天?本案例教你用 Codex 自然语言描述业务流程,AI 自动转为 Mermaid 代码,一秒生成专业流程图、时序图、甘特图、饼图!还能搭建在线渲染工具、批量导出 PNG/SVG、集成到文档系统。产品经理、架构师、项目经理都能用,从此画图再也不是体力活!

yueyeguzhuo的专栏 358

Unity技术分享(58)|粒子系统优化 | 同屏HUD过多| ResampleCurves的作用...

Unity技术分享(58)|粒子系统优化 | 同屏HUD过多| ResampleCurves的作用... https://www.jianshu.com/p/dd140b5a2819 侑虎科技 2018.02.23 23:47:52字数 2,405阅读 1,990 原文链接:https://blog.uwa4d.com/archives/TechSharing_58.html ...

kuangben2000的博客 1900

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Unity动画系统优化:UAC框架实现配置驱动与模块化管理

在Unity游戏开发中,动画系统是角色表现的核心,其性能与可维护性直接影响项目效率。传统Animator Controller通过图形化状态机管理动画逻辑,虽然直观,但在处理复杂角色、多状态切换时容易变得臃肿且难以维护。基于配置驱动的动画管理框架通过ScriptableObject等数据资产将动画逻辑与状态机解耦,实现了逻辑的可视化配置与版本控制。这种设计不仅提升了团队协作效率,还支持动画资源的动态加载与热更新,为大型项目提供了稳定基础。其技术价值在于通过模块化分层架构,将动画资源、状态逻辑、控制器生成与运

weixin_30564785的博客 316

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

unity particle system 粒子特效系统优化

什么是粒子系统 官方解释: 粒子系统是在三维空间渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果。一个粒子系统由粒子发射器、粒子动画器和粒子渲染器三个独立的部分组成。 unity渲染流程 在首先我觉得要想知道如何优化粒子系统以及为什么优化粒子系统,你要先搞懂unity的这个渲染流程在知道在什么地方着手优化。 CPU : 1、检查场景物体,判断是否被渲染,不被渲染的物体被剔除(culled)–...

alla_Candy的博客 6691

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: Photon服务器引擎(二)socket/TCP/UDP基础及Unity聊天室的实现
下一篇: 总体性能-CPU性能占用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值