![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5SNxIjM0ADN5MTY4ETMjNGOxYzX0AzNwUTMxEzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.jpg)
一個手遊的圖形技術關鍵性名額是: 記憶體占用, DrawCall和包大小。
這三個參數是訓練有素的程式和UI美術都需要關注的重要問題。
接下來我們來講解下UI美術怎麼對待這三個問題。
記憶體占用
手機的記憶體不會明顯區分記憶體和顯存, 大部分都是共享通路的. 這裡說的記憶體, 一般可以通過一些工具直接看到, 比如說XCode等圖形上對記憶體影響最大的就是紋理, 而紋理上最關鍵的問題就是紋理的大小, 也就是紋理面積。
我曾經見過一些訓練不是那麼有素的UI美術, 用滑鼠選中幾個png檔案, 點選屬性告訴我: 諾, 你都看到了, 我這邊的圖檔才占幾kb, 為啥你總是說記憶體占用大紋理的記憶體占用, 隻決定于紋理的面積以及發色數, 紋理面積就是長乘寬(像素), 發色數就是一般常說的: 16位色, 32位色。
之是以把記憶體占用放在首位, 是因為, 大多數的手機一旦超過限定記憶體就會開始清理背景挂起的程式, 實在清理不了隻有殺掉最占記憶體的程式,這就肯定殺到了你寫的遊戲之上。
DrawCall(DC)
美術來了解這個概念可以這麼說: 繪制一張圖檔需要耗費1次DC, 假設界面上有10個圖示, 那就需要耗費10個DC。
而一般手遊的DC需要限定在150個之内, 如何降低DC呢, 就需要通過Atlas技術來合并圖檔。
将多張圖檔打到一張紋理上的技術被叫做Atlas, 俗稱大圖或者圖集, 被打之前的圖也就叫小圖。大圖上的每個圖元素叫做精靈。每個精靈被繪制無數次最終也隻會耗費1個DC。
但我們不能把所有遊戲用到的圖檔都打成圖集, 這并不劃算,我們會根據圖的使用頻率, 用途來按需打圖集。
比如說:
1. 進遊戲隻看一次的宣傳圖, 為了友善制作和加載迅速, 做一張整圖動态加載會比較好。
2. 反複檢視的圖示, 因為數量相對固定,數量不會膨脹, 我們就做成圖集。
3. 但是類似于刀塔傳奇中50+英雄, 普通玩家看不到那麼多英雄但又被打成圖集是不劃算的, 是以損失一點DC按小圖繪制及加載是正确方法。
4. 一般時候, 我們将尺寸小的圖檔打成圖集, 配合大尺寸圖檔同時加載。
包大小
包大小對于遊戲來說, 會影響的是玩家首次下載下傳的時間, 如果連遊戲都不下載下傳, 做的再漂亮的遊戲也是沒用的。
降低包大小的方法很多, 例如:
1. 分包機制. 先玩小包, 根據需要下載下傳大包, 多見于MMORPG
2. 良好的資源管理方法及習慣
3. 剔除備援資源
4. 盡量使用3D渲染代替2D紋理圖檔
以上3個概念是遊戲美術, 程式必須了解的重要概念。但一個合格的美術, 除了事後優化, 還需要做的是事前優化。
事前優化包括: 在遊戲立項後, UI美術需要了解基本的二手賣号平台功能設計方案,出一套基本的對話框, 提示框, 圖示裝飾等的圖素, 這些資源往往隻有不到512見方的資源。利用這些圖檔可以拼湊出70%的界面及美化效果。在這之後的UI内容, 隻是特效,動畫的設計。
一些道理:
1. 進遊戲因為記憶體超标就崩潰, 再漂亮的圖檔也是沒用的。
2. 遊戲是多門藝術的綜合, 遊戲美術的不僅要畫的好, 還要能做出優化的好的資源。
3. 手遊和端遊的美術資源标準有本質差別, 資源做出來是給人看的, 不是螢幕. 是以高低分辨率的搭配, 尤為重要。