開發遊戲的時候 UI是由哪些人來拼的 ?

在一家小公司做開發,天天為一個像素調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文檔

  • 直接上手拼界面

之後就是在工作的各種bug中刷經驗了。由於UI和引擎完全混在一起,又不可能完全解釋所有情況,還有麻煩的潛規則,所以「正確地做界面」是要經驗積累的。老帶新的情況下,新人可以平滑過渡到工作輸出。但是如果整個團隊從零開始的話,相當需要突出的個人能力,可能需要3個月以上的磨合。

工作流程:

系統策劃首先提供系統需求,參考圖,以及建議的ui框圖。

ui策劃一方面提供比例準確的框圖,交美術製作。框圖要細,需呈現的文字、圖標要全,有時候美術做完效果圖加一行字,就破壞了布局的美感,運氣不好的時候還得做大調整。美術拿到框圖製作正式界面,包括效果圖和素材。素材按風格分素材集,會復用。

另一方面,ui策劃製作比例準確的策劃版界面,程序完成邏輯,完成驗收,很多時候會發現有用戶體驗問題,也是在這個階段修改。我們推薦這個版本盡量完成細節,包括文字顏色、選中態、切換動畫等。所有和布局、動畫相關的東西,都盡量提供機制,能讓策劃/美術自己調整。

當美術提供正式界面後,ui策劃替換資源,這時候里程碑往往要截止了。運氣好的話,不會有代碼改動,但很多時候還是有結構修改。

程序需要掌握工程細節。比較困難的部分,例如有交互的動畫、需要目前尚缺少的控制項邏輯時,需要多方討論,程序提方案。特別困難的動畫,有時候策劃會給出參考遊戲,用Flash/Unity 做一些動態演示。用戶體驗特別難,或者技術特別難的情況下,方案可能多次修改,需要有心理準備。

其他:

  • 我們有一位主美,之前在的手游公司,是由程序拼界面的,性能很好。界面完全九宮格化,大致應當類似於設置Style就能換素材。

  • 靈游坊梁其偉《小團隊,大製作》(http://www.gamelook.com.cn/2014/04/157141)表示他們採用了不同的模式,員工傾向於多面手,一人兼任美術、策劃、程序中的數職,提出想法同時也負責實施。

  • 14年曾跟人討論,界面腳本化的情況下,由策劃寫界面業務邏輯的可行性(這樣程序猿就再也不用幹活了!)。大多數人反對。但有人表示有一個未上線的項目,其ui由兩位腳本策劃負責,且合作較愉快。


理想中的UI應該是這樣製作的:美術負責提供美術資源,策劃使用美術資源和UI編輯器製作UI,程序對UI編輯器導出的配置文件進行解析並為其編寫邏輯。然而到了Unity3D這裡,一般都是新手來做UI,因為美術和策劃都覺得這玩意兒和程序貼的比較近,所以誰倒霉就誰做吧,每次改UI的時候我內心深處都是拒絕的!


題主是在做手游吧,用Unity?

以前做端游的時候,UI這些都是美術和策划去拼的,程序只負責實現功能,因為那個時候整個UI底層是自己開發的,所以給美術和策劃提供的編輯器比較有針對性,說白了就是拼UI,不幹別的。

而對於Unity,要拼一個UI,要費很多功夫,又是綁這個腳本,又是綁那個腳本,還要考慮UI的適配啊這些,作為策劃和美術來說,這個略微複雜了些,而且有諸多限制,主要是溝通成本比較高,你要說真要去專門拿出一個人來學怎麼拼UI,策劃和美術也是可以的,但等到你和程序溝通無障礙完全學會的時候項目都快完了,意義何在?

所以現在用Unity的手游團隊很多都是這樣,程序來拼UI,一般都是新手來做,最奇葩的是拼UI跟邏輯是兩個人做,SVN也分開,做邏輯的人發現介面參數不對或者其他問題,就得通知拼UI的人去弄,弄完之後導出,做邏輯的人再導入一遍,覺得這樣太麻煩而只是想測試一下的話,自己改是最快的,當然你會發現你調試完了之後不能提交到UI那邊去,得讓拼UI的人再重新改一次,因為你們的SVN是分開的。


以前沒用編輯器時,客戶端程序手擼界面,策劃常為了「控制項擺放位置和效果圖不一致」這種小問題,頻繁找程序調坐標。不僅程序嫌煩,覺得佔用做功能的時間,策劃也不想老在這種不影響操作的地方糾結,顯得策劃沒事幹吹毛求疵。(後來我都是直接給程序坐標,但是在程序那起始點不一定是界面左下角啊所以給坐標也沒用- -

後來用了cocos的UI編輯器,策劃自己上手拼,對齊強迫症終於解決。而且因為界面效果是策劃和美術溝通的,策劃來拼,也可以更快擺好美術設計的布局,以後要給控制項移個位置,改改界面文本什麼的,策劃都可以直接改,程序可以專心實現功能和動態效果(不是指特效)。但是,就像樓上某位說的一樣,美術設計好的效果圖加一行字,都可能破壞美感。隨著細節優化,界面總要加加改改,所以後來頭疼的不是對齊問題了,而是做完UI之後出現的體驗問題。

至於層級問題,按程序需要來做就好了,UI策劃也會跟系統策劃溝通,了解玩法以知道如何切塊,如何設置層級關係。


這個問題沒有絕對答案,取決於很多因素(編輯器友好性,工具流,團隊人力結構等等),但總的原則是——在儘可能短的時間內,高度還原美術表現

說下我們團隊(Unity項目,使用NGUI)的做法:

美術出效果圖給策劃,策劃根據功能確定是否OK,OK走下一步,不OK美術重新設計 -&>

美術出各個元素處於不同圖層的PSD給程序,程序使用工具(FastGUI)導出引擎可用的預製體,對著效果圖進行調整導出的預製體,並開始開發-&>

最後美術在遊戲運行時檢查校對效果,認為OK結束,有問題知會程序修正。

整個過程策劃從系統角度對UI把關,美術從表現效果對UI把關,程序負責實現


這個問題其實我一直很有興趣,因為這些年見過(也交流過)很多朋友的創業公司(遊戲),關於這塊問題上大多也很頭疼,我給出的建議都是一樣的(首先確定你做的是2D遊戲,如果不是我想我很難給建議):

1,策劃、美術、程序坐在一起分析美術畫完的UI,該如何拆塊。拆塊的目的是為了align(中文大概就是對齊?姑且這麼說吧),有些塊希望是左上對齊的(比如WoW的角色頭像、名字、血條的那個欄),有些是希望右上對齊的(比如WoW的小地圖)。其實我們定義了9個通用對齊點,和9宮圖差不多,左上、中上、右上、左中、正中、右中、左下、中下、右下。然後我們要分析的是那些「塊」(也就是多個UI元素的組合)是需要什麼樣對其的。

2,在Flash裡面做9個MovieClip,他們的註冊點(如果你不了解註冊點,那麼百度一下) 都是(0,0)就好了。但是你的概念裡面,他們每一個都對應一個屏幕對齊點(左上、中上、右上、左中、正中、右中、左下、中下、右下)。

3,將相同對齊的元素放在同一個MovieClip,注意註冊點的意義,比如WoW的小地圖,你應該吧他放在右上的MovieClip中,並且坐標是(-x,y)的。

4,以上步驟解決的是屏幕適應問題,接下來要說的是每一塊元素的問題,我們拿WoW的狀態欄(角色頭像、血條等那塊)作說明,這其實是一整塊,建議做一個MovieClip,然後再這個MovieClip下,放若干個MovieClip,他們包括:

1)頭像的MovieClip:當然是空圖,因為我們通過這個MC來獲得坐標(這個MC的註冊點),然後貼別的頭像,這裡要注意的是每個頭像的註冊點,比如都是人的肩膀中間,頭像的註冊點在貼圖的時候貼在這個MC的註冊點上。

2)名字、數字區域:也都放空的MovieClip,然後獲得位置信息,以便貼出文字。

3)條子的MovieClip區域:把條子切成三段放在那裡(我並不贊成使用100幀動畫來做血條,然後用gotoAndPlay來確定當前為止,這樣你要做ease會不太靈活,畢竟血條變化的動畫不應該是ease.linear的)。

4)狀態外框:這是最靜態的一個MovieClip了。

5,完成這些後,對於程序來說,每個界面上需要做的事情很簡單:

1)在屏幕的9個角落貼出9個MovieClip,根據一些商量(甚至可以設置數據表),做一些play規則,比如界面剛進入的時候有一個剛進入的MC要Play一下之類的。

2)「更換」掉一些信息元素,比如頭像、文字。

之後就沒有程序什麼事情了,儘管去忙別的方面問題。而其他任務交給策劃和美術:策劃和美術對於不滿意的美術資源、不滿意的位置,都通過Flash來修改,不需要通知程序細節修改,只需要告知程序更新一下fla文件(然後根據各家的工具,比如通過flumps、大召喚師的工具等等導出各家要的文件),放入工程就好了。隨你怎麼改,都不會影響到程序工作,各司其職,而且好處還有就是你可以在Flash裡面預覽UI的效果,同時因為適配問題解決了,你完全可以按照一個你喜歡的解析度去設計

之所以我推薦這樣的作法,原因如下

1)從項目管理上來說:可以明確每個人的分工,把串聯的事情並聯化。

2)從對於員工的能力來說:Flash技術是美術界通用的技術,你不應該做一個獨有的編輯器做這個事情,因為美術如果使用Flash,那麼他在你這裡掌握的技術,以後到了別的公司還能用,這樣對他個人來說是學到東西的,但用你自己做的一套工具,到了別處完全用不到,等於白乾了。

3)從技術角度來說:與世界技術接軌,現在世界範圍內太多人關注Flash與2d遊戲開發的一些細節了,你可以得到很多的技術支持。

Mac上寫這些,實在不方便配圖說明了(而且這台Mac也沒買Flash CC),如果贊數高了,我會考慮用windows做一個圖文攻略。


在我們公司,我來設計我來畫,我來編碼我來拼

(揮手)


我做了那麼久都是自己拼的。

有時候美術給的效果圖還不一定是對齊的,例如tile,list之類的,間隔都不一樣,我還要強迫症的自己調整。

其實一個功能面板的拼UI的時間占整個需求很少的(除非天天改界面)。而且自己拼的UI自己熟悉結構,命名等,不用出現拼完自己感覺結構不對,命名有問題等。

如果你不想自己拼UI,必須要有一個完整容易上手操作的UI編輯器,這樣你就可以不用擔心了。沒有的話,還是自己來吧。

當然,你可以把做好的UI丟給策划去調整,只調位置不做其他修改,這個很容易教會的。

教一個小技巧,想知道位置有沒有對上,在底部放一張效果圖,然後上面的UI組件大致放好位置,然後顯示隱藏顯示隱藏…,你就能看到位置是不是跟效果圖一樣了。


問了一下老前輩,老前輩表示誰特么倒霉誰來拼唄……


題主,你提出這個問題肯定讓你天天做UI感覺很無力吧!

但是,機會來了,趕緊搞個美術能容易上手使用的UI製作工具,你就能擺脫苦海,陞官加薪,離人生巔峰更進一步了哦


不知道題主是什麼職位... 不同公司不同引擎, 就可能交給不同的職位的人來做....

我剛進第一家遊戲公司的時候, 是客戶端程序, 就是拼界面,一個像素一個像素對, 用別人寫好的工具轉換圖片(2D回合制遊戲)..確實都是體力活沒啥意思...

但是你得自己去學啊... 去看UI編輯器是怎麼回事.. 去看別人寫的工具是什麼邏輯... 當交給你別的工作的時候, 你能立刻勝任, 那麼就不會去讓你接著做苦力了...

這個時間就是積累的時間...


具體看公司分工,呆過幾個遊戲公司。管理嚴謹一點的都是美術切好資源後策劃用相應的工具拼好,具體美觀的布局的問題由策劃和美術部門解決。程序部門就負責功能實現和一些編輯器不太容易實現的特效。

要是碰到不靠譜的公司。。。呵呵呵,策劃和美術只管設計效果圖和寫文檔。我也碰到過之前主程做架構完全沒顧及ui修改的情況搞得每次修改ui還的重新定位的蛋疼事。


策劃驅動,美術設計

其實UI除了編碼,沒程序員太多事兒

要提高生產率和質量

可以 供美術使用的 所見即所得的 UI編輯器 基本是必須的

讓策划去使用UI編輯器的,一般都是有年頭的端游,例如暢遊和完美的那幾款

界面風格已經固化,常用控制項基本齊備

甚至小的標準化界面,策劃在UI編輯器里搭一個原型界面就直接可以用於生產了

丑一點也不要緊,反正界面都差不多,能用即可

對於大部分大於20人的有追求的新項目,還是由策劃設計UI原型(比如大家都愛用的AxureRP),

美術負責具體設計實現,並在UI編輯器里做出復原, 策劃審核修改ok,再交給程序比較靠譜

做好數據邏輯分離,PM維護好流程,效率還是非常高的

至於程序...壓根不是問題,web界MVC都用了十幾年了...

好多Unity程序員還在手動往編輯器里的對象上掛腳本...這是開歷史的倒車……

靠譜的公司很多都會基於Unity Editor做自己的ui編輯器

NGUI也好UGUI也好,無非在上面山寨一層MVC加一套序列化而已,用起來也很方便


新人Unity客戶端拼,為嘛呢,因為通過界面熟悉這個UI邏輯和架構,這樣到實現簡單的功能。

當然因為UI邏輯的代碼不是很複雜,也不是核心,試用期到了,再招個。

當然對於新人UNity客戶端本身來說是很尷尬的。

我去上海騰訊面試過

1.要求熟悉NGUI,知道NGUI的坑

2.1年工作經驗,其實項目周期要長,如果只是小項目,沒有加分

3.有獨立實現一個功能,如背包系統等等

當然大部分公司招人當然你會的越多越好。自己研究點別的也是挺好的。


1,環境簡陋的話,可以把調試的參數拉到配置文件里,然後讓產品或者設計人員調試。

2,自己有實力的話,自己寫一套UI框架,寫一個UI工具,讓產品或者設計人員即改即看調試。

3,用第三方引擎的話大部分都有自帶的UI開發套件,比如cocostudio,U3D的UI插件,讓產品或者設計人員調試。

4,如果你的工時很值錢的話,會找一些實習生幫你做這些調試工作。

靈活簡便,前提是你得有其他的事兒可以做。


我,系統策劃,只有系統策劃知道他的系統需要UI有什麼,怎麼做。又,項目組只有一個系統策劃。因此,項目所有系統和UI都變成了我的工作。。。


用unity拼UI已經很方便了,關鍵是有合適的人。 如果是專業的技術人員,以後肯定會不願意做這樣簡單的工作,如果你團隊的用人要求是這樣。有些策劃、美術願意多學多做,也是有能力做好這件事的,就比較合適。他們可以成為複合能力人才,避免分工過細,設計施工一氣呵成,也是現在大多數遊戲開發團隊的發展趨勢。遊戲是體驗性產品,製作人員駕馭的能力越好,效果才能越好。


Unity

我們前端自己拼,誰負責這塊兒功能誰拼,美術出好效果圖,前端拼完界面差1像素就是前端沒做好

並且,命名必須規範,腳本里關聯UI的變數必須名字一致

比如:UILabel 的名字 必須以Label_開頭,比如Label_Name

如果一個UI需要兩個變數引用,那麼必須有一個變數名一致,另一個變數名相關

比如:UIScrollView ,名字叫 ScrollView_Items,用到的第一個UIScrollView腳本的變數名:ScrollView_Items,第二個UIPanel腳本的變數名:Panel_ScrollView_Items.

大概這個樣子,這樣即使別人做完的節目其他人看了也有跡可循..


基本上小公司都是這種模式,程序來拼UI,策劃一般都是配置了。這活一般都是剛入門的新人來做,本來就沒什麼技術含量的東西,但是挺鍛煉一個人的意志力的,拼界面也可以熟練掌握ngui的控制項使用啊,也不是一點沒用。


待過幾家公司,這個誰來拼的真不好說,我見過大部分都是比較初級 的程序拼,也有策劃拼的,也有不願意拼讓美術拼的,不過個人感覺要是不影響進度的話,自己學學unity拼拼UI還是挺好的,畢竟程序拼出來的效果和UI做的效果圖就像買家秀和賣家秀一樣.....各種變形不對齊.....老大不知道的話,美術還要背鍋


推薦閱讀:

為什麼用Unity3D開發遊戲是用C#,JS開發而不是用C++?U3D的設計者是怎樣考慮的?
像缺氧、環世界那些小人自動分工機制是怎麼做到的?
unity 2d 點光源/路燈/手電筒效果怎麼做?
有什麼龍珠相關的遊戲嗎?
玩遊戲玩到該遊戲停止運營是怎樣一種體驗?

TAG:遊戲 | 遊戲設計 | 遊戲開發 | Unity遊戲引擎 |