界面的本質是美術UI設計和用戶體驗,本身相當易變,需要不斷調優,拼界面這事最好由設計人員全職負責并積極改進。而美術資源和布局之外,仍然有大量的邏輯是需要程序員完成的,無論是通用控件,還是具體業務邏輯。
說說我了解的實際情況,經歷有限,主要舉完美的例子:
1. 引擎組提供統一UI編輯器
完美本部的端游基本都是用Angelica引擎開發,從完美世界一直到笑傲江湖。引擎含有UI系統,包括一個所見即所得編輯器,由公司引擎部維護,基本上是所有項目兼容的。一個項目有1~2名UI策劃,負責拼界面。編輯器以游戲面板為單位編輯,每個面板對應一個 xml,支持固定布局的界面,支持特效,在編輯器里面就可以看見界面效果。
局限--Angelica編輯器僅提供基本控件,項目需要自己定義諸如物品格的邏輯。
兼容性--引擎部會不定時增加新功能,例如“變色文字”之類。各項目組會不定時去取更新的引擎版本。
需求--為保證兼容性,底層需求只能往引擎部提交,等待更新。當然,據我們老大說,也有膽大的項目組硬改,然后硬是反提交到了引擎部。
2. 自己實現UI編輯器
頁游和手游時代,有些項目組自行實現了UI編輯器。舉其中一個為例:
編輯器是專門寫的C#獨立程序。游戲本身是Cocos2D-X。
編輯器研發時間約一個人4周:兩周框架,兩周基本控件。不過呢,這么做一定是有后續修改的。
編輯器是固定布局的。
對于很多項目來說,自制UI編輯器是一個很好的方案,也是推薦方案。編輯器對策劃非常友好,易學易用,因為他限制了輸入的可能性,沒有冗余選項,每個控件直接對應一個明確的功能。另一方面,他特別適合性能優化,因為他對資源的規格、輸入輸出和預處理有最精確的控制力。不過動手前,需要熟悉UI架構,能說清楚編輯器的功能和結構。
我想詳細解釋一下優化。頁游時代,我們項目的UI是用Flash直接制作的,連帶問題就是,各個界面的資源不能共享。同時期使用編輯器的項目,已經是使用3D引擎渲染界面,使用共享九宮格,無論是下載速度還是顯示性能都有天然優勢。
3. 直接使用引擎自帶的UI系統
大部分Unity項目,都是由策劃人員直接使用NGUI制作UI的。好的系統往往提供更強的功能。例如,NGUI支持自適應縱寬比的動態布局,這是上面提及的自研編輯器所不支持的。美術可以自由添加任何引擎支持的資源。程序和TA可以提供小腳本,讓設計人員來直接定義動畫效果。但是完全自由組合的系統,對策劃/美術的技術要求高,容易引入bug,不易控制性能,資源穩定性差。
我們的項目,有一份面向策劃的圖文文檔,20頁左右,說明界面的基本概念,全部的控件和自定義控件,以及常見的錯誤。
新UI策劃的上手大致是這樣的:
看NGUI的視頻教程,并親自動手做一次,大致1~2周時間
看項目的UI文檔
直接上手拼界面
《UI設計培訓課程》免費試聽!
之后就是在工作的各種bug中刷經驗了。由于UI和引擎完全混在一起,又不可能完全解釋所有情況,還有麻煩的潛規則,所以“正確地做界面”是要經驗積累的。老帶新的情況下,新人可以平滑過渡到工作輸出。但是如果整個團隊從零開始的話,相當需要突出的個人能力,可能需要3個月以上的磨合。