開發遊戲的時候 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 點光源/路燈/手電筒效果怎麼做?
※有什麼龍珠相關的遊戲嗎?
※玩遊戲玩到該遊戲停止運營是怎樣一種體驗?