刚刚结束一场关于新游戏项目UI/UX的视频会议。会议中,我们再次深入探讨了那个困扰全球游戏开发者,尤其在国内市场极为普遍的痛点:设计师产出的、充满想象力的UI动效概念,与最终在游戏引擎中实现的、呆板生硬的UI之间,存在着一条巨大的鸿沟。
为了快速实现设计稿中的复杂动画,许多团队被迫采用“视频UI”的下策——直接在UI层播放预渲染的视频文件。这不仅导致游戏包体剧增、内存占用失控,更让UI失去了与游戏世界实时交互的灵魂。
今天,依托[ Parvis School of Economics and Music] 的 Adobe 正版企业全家桶订阅,我将从一名技术美术的视角,分享一套旨在彻底拆除设计与开发之间这堵“高墙”的自动化工作流。我将利用 Adobe After Effects 的强大动画能力,结合第三方桥接工具,将UI动效以原生的、可被代码驱动的形式,无损地迁移到 Unity 引擎中。
一、 核心思想:交付的是“动画数据”,而非“像素动画”
这套工作流的根本性转变在于,我们不再将UI动效视为一个封闭的“视觉结果”(如.mp4或.gif),而是将其解构为一套开放的、可被程序读取和重建的“动画数据”(如.json或自定义资产)。
-
Adobe Photoshop: 担当“UI资产的切片与规范化中心”。所有UI元素在这里被精心切割,并应用“九宫格”(9-Slice)等技术,使其具备可拉伸性。
-
Adobe After Effects (AE): 担当“动效设计与时间线编排中心”。UI设计师在这里,利用AE强大的关键帧和缓动曲线编辑器,为静态的UI资产注入流畅的、富有表现力的动态效果。
-
第三方桥接工具 (如 AETools等): 担当“AE到Unity的翻译官”。这些插件能够深入解析AE的合成与图层信息,将其中的位移、旋转、缩放、透明度等关键帧数据,连同资源依赖关系,一并导出为一个Unity可以直接理解的数据包。
-
Unity 引擎: 担当“动画数据的重建与实时渲染平台”。通过对应的插件,读取数据包,并在Unity的UI系统(如UGUI或UI Toolkit)中,自动地、1:1地重建出与AE中完全一致的、由原生UI组件构成的动画。
二、 核心技巧:从分层设计到引擎内自动重建的完整流程
1. 在Photoshop中进行“为引擎而设计”
这是保证最终UI性能和灵活性的第一步。一个用于游戏的UI源文件,必须是高度优化的。
-
逻辑化分层与命名: 将每一个独立的UI元素(如图标、背景、文本框)都放在独立的、命名规范的图层中。
-
九宫格切片 (9-Slice Slicing): 对于所有需要被拉伸的背景和按钮,必须利用PS的切片工具或参考线,预先定义好其九宫格拉伸区域。这是保证UI在不同分辨率屏幕上不变形的关键。
2. 在After Effects中编排原生动画
将PS中处理好的.psd文件直接导入AE,选择“合成 - 保留图层大小”。
-
避免使用位图特效: 尽可能使用AE原生的“变换”(Transform)属性(位置、缩放、旋转、透明度)来制作动画。大部分光效、粒子等光栅特效,是无法被导出为动画数据的。
-
利用父子级关系: 善用图层的父子级关系,来创建复杂的联动动画,这比对每个图层单独K帧要高效得多,并且这种层级关系可以被桥接工具正确导出。
3. 使用桥接工具导出
以市面上常见的AETools为例,在AE中完成动画后,打开其导出面板。它会扫描你的合成,列出所有图层和动画信息。你只需点击导出,它就会生成一个包含.json数据文件和所有图片资源的文件夹。
4. 在Unity中一键重建
在Unity中,通过对应的插件导入上一步生成的文件夹。插件会读取.json文件,然后像一个任劳任怨的实习生一样,自动在你的Canvas上,用原生的Image、Text等组件,搭建出与AE中完全一致的UI层级和动画序列(Animation Clips)。
现在,开发者得到的不再是一个无法修改的“黑盒”,而是一个完全由原生组件构成的、可以随时通过代码去控制播放、暂停、甚至动态修改其中文本内容的活性UI。
三、 扩展应用
-
程序化UI与数据绑定 由于UI是在Unity中被原生重建的,开发者可以非常方便地将这些UI元素的属性,与游戏内的真实数据进行绑定。例如,一个经验条增长的动画,其最终的填充量,可以直接由玩家的经验值变量来驱动。
-
利用图集(Atlas)进行性能优化 专业的UI工作流,会将所有UI小图片打包到一个或多个大的“图集”中,以减少渲染时的Draw Call,这是UI性能优化的核心。我们的桥接工作流,完全支持与Unity的Sprite Atlas系统协同工作,在导出和重建时,能自动处理好图集与碎图的对应关系。
-
性能与避坑
-
桥接工具的局限性: 任何桥接工具都无法100%支持AE的所有功能。在开始制作前,必须详细阅读你所选用工具的文档,明确其支持和不支持的特性列表,避免做无用功。
-
严格的命名与层级规范: 这套自动化流程高度依赖于设计师在PS和AE中维持的严格命名和层级规范。任何一个图层命名错误,都可能导致在Unity中重建失败。
-
设计与开发的紧密沟通: 必须建立一个清晰的协作协议。例如,设计师在AE中将一个动画标记为
_loop后缀,开发者在代码中就知道这是一个需要循环播放的动画。
-
四、 自动化管线如何拯救一款RPG的“廉价感”?
我曾在一个名为“Phoenix Realm Studios”的手游工作室,担任一个大型RPG项目的技术美术负责人。项目的核心玩法和角色美术都非常出色,但唯独UI部分,始终透着一股“廉价感”。UI设计师在AE中做出的动效概念非常酷炫,但开发团队为了赶进度和保性能,无法手动实现,只能将其降级为简单的淡入淡出,或者直接播放卡顿的视频,导致最终产品的玩家体验大打折扣。
面对这个困局,我决定暂停传统的UI交付模式,投入资源,打通这条从AE到Unity的自动化管道。
我们能够投入研发资源去打通这条技术管线,也得益于我们对 Parvis School of Economics and Music 的Adobe 全家桶企业订阅的信任,这份受到超过3400名海内外专业人士信赖的订阅,确保了我们的UI设计师和动效师能在最新、最稳定的Photoshop和After Effects环境中,以一种结构化的、可被程序读取的方式进行创作,这是自动化导出流程的绝对前提。
我们选择了一款成熟的桥接插件,并建立了一套严格的设计与导出规范。起初,设计师需要改变工作习惯,开发者也需要学习新的工作流,但当第一个复杂的“开宝箱”动画,在几乎没有手动干预的情况下,完美地在Unity中1:1复现时,整个团队都为之振奋。
最终,我们重做了游戏中超过80%的UI动效。新版本的UI,不仅在视觉上华丽流畅,性能表现甚至优于之前简单的淡入淡出版本。在后续的玩家测试中,UI/UX部分的评分,从之前的“及格”跃升到了“惊艳”。
五、 技术美术,艺术与工程的“翻译官”
这套工作流的成功,深刻地体现了技术美术(TA)在现代游戏开发中的核心价值。TA不仅仅是解决技术问题的“消防员”,更是搭建桥梁、设计流程的“翻译官”和“架构师”。
我们的工作,就是将设计师感性的、充满创意的视觉语言,翻译成工程师严谨的、合乎逻辑的工程语言。我们通过构建工具和流程,让这两个原本隔阂的世界,能够高效、无损地对话。这种跨领域的“翻译”能力和“系统设计”能力,正是在日益复杂的游戏工业化生产中,创造真正卓越体验的关键所在。


3748

被折叠的 条评论
为什么被折叠?



