找回密码
马上加入

QQ登录

只需一步,快速开始

搜索
发新帖

0

收听

3

听众

9

主题
发表于 2024-6-21 23:01:17 | 查看: 965| 回复: 17
本帖最后由 tutu 于 2024-6-22 16:02 编辑

前言
身为一名游戏美术,发现许多人并不懂得运用图片九宫格,对于游戏 UI 的资源优化也不够重视。于是在闲暇之余,经过思考写下了这篇文章。谈不上教学,只是总结一下我多年的美术经验与心得,权当抛砖引玉,和大家共同探讨一番。

  • 图片九宫格介绍

图片九宫格是一种在图形设计和界面布局中常用的技巧和概念。它将一个图片或界面区域划分为九个相等的格子,形如一个九宫格。如下图

1.png

九宫格的划分并非仅仅是形式上的,而是具有实际的功能和意义。通过九宫格,可以更精准地控制图片在不同尺寸和比例下的缩放和拉伸效果位于九宫格四个角的部分,通常在缩放时保持其原始的尺寸和比例,不会发生拉伸变形,以确保图片的关键元素如边角的图案、标识等能够完整且清晰地呈现。而九宫格中间的部分,则可以根据需要进行适当的拉伸,以适应不同的布局和尺寸要求。合理运用图片九宫格能够优化资源,使界面元素在各种屏幕尺寸和分辨率下都能保持良好的显示效果,提升用户体验。同时,图片九宫格也有助于提高设计效率,减少重复工作(划重点!!)

总结:简单来讲,九宫格的作用在于能够让一张图片在任意调整尺寸大小的情况下,避免出现拉伸变形的情况,从而适配各种不同的应用场景。

理论介绍完了,下面用图文的方式实际感受下九宫格的操作演示

我们用以下这种图用来演示

22.png

第一步:打开PS先把图片切成九宫格(这里用参考线划一下就行)注意一定要保持图片四个角花纹的完整,然后计算得上下左右四个角的数据

没有ps的,最简单的方式用QQ截图去量一下尺寸,效果一样。

d8523bad217815c1377b1ef5a71c2a3.png

第二步:打开搭建好的单机服,Ctrl+F9,随便新建个项目,导入这张图片,并填写好我们上一步得到的九宫格数据。如图所示:

Screenshot - 2024-06-21 22.10.56.png

第三步:现在你可以任意更改图片的尺寸大小,并看到图片没有发生任何拉伸变形  ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ

Screenshot - 2024-06-21 22.12.23.png

完毕,以上为九宫格(拉伸)方式的演示

  • 其他切图方法

通过上面的演示,相信你们对九宫格有了初步的了解,估计有不少聪明的同学已经开始有了疑问:如果一个图片无法通过九宫格的方式切图,比如下图这张按钮,

图层 1.png 这张图左右都有完整花纹,确实无法通过九宫格来切图,类似这种情况还有很多,以下开始逐个介绍,(篇幅有限我就不一一演示了)

①三宫(拉伸)

类似上面情况,我们可以使用三宫切图法,如以下图所示


Screenshot - 2024-06-21 22.28.46.png

Screenshot - 2024-06-21 22.30.35.png

Screenshot - 2024-06-21 22.30.51.png

②九宫(复用)


213.png

系统界面大外框.带花纹,我们可利用九宫复用花纹的方式去切,(找准花纹的复用规律,这种切图方式主要是针对带材质,花纹的元素)。

③对称(1/2)

Screenshot - 2024-06-21 22.30.57.png

常见可以左右对称的图,通过这种方式最大节省资源,上下对称的图片同理。

④拼凑

Screenshot - 2024-06-21 22.31.05.png

使中间的部分可以进行左右拉伸,和三宫类似。

⑤拉伸、缩放

Screenshot - 2024-06-21 22.31.13.png

常见界面中用来衬托文字的底图,横向拉伸缩,没有明显颜色变化,且拉伸方式不是封闭的

  • UI与性能

产品的性能优化是产品开发中必须着重解决的关键工作,其中 UI 性能优化尤为重要。倘若产品的包体过大,用户就得花费大量时间来下载应用;要是产品运行卡顿严重,用户可能会即刻卸载;当用户打开产品时,若手机发烫且耗电迅速,同样会导致产品被卸载。可见,UI 性能优化的重要性不言而喻。

UI 资源的影响主要包含三个方面的因素,分别是切图大小、UI 图集以及 UI 背景图。

其一,切图切不可留白,大小应为 2 或 4 的倍数,且要尽可能小。可以通过九宫格、堆叠、拼凑、拉伸等方式,让图集小巧而充实。(此为内存优化)

其二,UI 图集方面,图集划分如下:设置一个公共资源图集 common,其大小控制在 2048*2048,由于它常驻内存,所以一定要充分利用;主界面的资源通常较多,图集大小同样要控制在 2048*2048。对于 2048 大小的图集,要严格控制个数。(这属于内存优化)

其他图集分别为各个系统独有的资源,要保证同一个系统界面出现的资源在同一图集里,大小尽量控制在 512*512 以内,以提升界面的加载卸载速率及性能。(这涉及内存和 drawcall 优化)

其三,UI 背景图方面,一定要控制背景图的个数,能复用的一定要复用。背景图不使用图集,对于变化不大、颜色单一且模糊的背景图,应尽量压缩大小使用,并且背景图大小要是 2 或 4 的倍数。

(感谢大家的观看,文中部分图片来源于网络)


发表于 2024-6-21 23:39:17 来自手机 IP属地:河南省郑州市
大佬牛逼
发表于 2024-6-22 09:46:31 IP属地:江苏省镇江市
大佬牛逼
发表于 2024-6-22 13:37:00 IP属地:陕西省西安市
写得很好,学习了
发表于 2024-6-22 15:04:36 IP属地:辽宁省沈阳市
知识又增长了 顶一下
发表于 2024-6-23 14:11:54 IP属地:辽宁省沈阳市
大佬牛鼻
发表于 2024-6-26 17:59:34 IP属地:四川省成都市
九宫格知道,但是可以弄对称图的吗?晚点试试
发表于 2024-6-28 20:56:47 IP属地:湖北省咸宁市
发表于 2024-7-2 20:05:21 IP属地:山东省临沂市
每仔细看 但是觉得很叼
发表于 2024-7-4 14:28:29 IP属地:安徽省合肥市
专业
您需要登录后才可以回帖 登录 | 马上加入

QQ|Archiver|手机版|小黑屋|alg阿灵戈社区 ( 苏ICP备2023026137号-1|苏ICP备2023026137号-1 )

GMT+8, 2025-3-13 03:43 , Processed in 1.823686 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表