發(fā)布時(shí)間:2024-01-11 19:48:08 瀏覽量:141次
工作中經(jīng)常遇到3D制作不了解引擎要求導(dǎo)致返工或是被客戶說沒有經(jīng)驗(yàn),所以就邀請了工作十多年,經(jīng)驗(yàn)豐富的TA-紅偉大哥做了一篇相關(guān)文章為大家解惑,紅偉大哥也有相關(guān)獨(dú)立游戲開發(fā)經(jīng)驗(yàn)。
很多3D同學(xué)都會(huì)面臨一個(gè)問題,就是對引擎不熟悉,導(dǎo)致對某些資源規(guī)范和優(yōu)化方法知其然不知所以然,特別是3D相關(guān)的同學(xué),由于平時(shí)工作基本上不需要跟引擎打交道。另外3D美術(shù)外包更是如此,更沒有機(jī)會(huì)接觸到引擎。
于是,為了給廣大3D同學(xué)謀福利,此篇就誕生了。
引擎是什么?
想想汽車引擎是什么就明白了,要想讓汽車跑,必須要有引擎,同樣游戲要想運(yùn)行起來也需要引擎,引擎將我們的美術(shù)資源與程序組合起來并利用渲染、物理等模塊進(jìn)行拼裝使其可以正常運(yùn)行。汽車引擎有各種品牌,游戲引擎也是一樣,目前市場主流引擎有:Unity和Unreal,本篇我們主要討論Unity。
Unity引擎
Unity的版本相當(dāng)?shù)亩?,截止目前為止,最新的正式版?017.4.1f1。
每個(gè)版本的后綴你會(huì)發(fā)現(xiàn)不一樣,分別代表什么意思呢?
· b (beta版,也就是測試版,還沒有正式發(fā)布,b1代表beta第一個(gè)版本,b2代表beta第二個(gè)版本)。
· f (正式版,面向所有開發(fā)者的版本,一般比較穩(wěn)定)。
· p (補(bǔ)丁版,一般是針對正式版進(jìn)行的bug修復(fù)版本)。
比如上面的2017.4.1f1就是指版本為2017.4.1的第1個(gè)正式版.
選擇什么版本一般由項(xiàng)目主程來決定,所以我們不用過多操心,只要保證項(xiàng)目成員版本統(tǒng)一就可以了。
本篇重點(diǎn)
接下來,我們步入主題,我們以下幾個(gè)維度來重點(diǎn)分析下(由于篇幅有限,不能把每個(gè)步驟操作都詳細(xì)說明,還請各位3D同學(xué)見諒)
1. 規(guī)范
2. 品質(zhì)
3. 性能
規(guī)范
美術(shù)資源,不管是3D還是2D,也不管是模型還是動(dòng)作亦或者是特效,在引擎中都要有一定的規(guī)范才行,因?yàn)檫@些資源并不是給我們自己用的,而是團(tuán)隊(duì)中大家都會(huì)共同用到的資源,特別是程序,如果規(guī)范沒有定清楚,會(huì)導(dǎo)致工程很混亂,不管是后期維護(hù)的成本還是開發(fā)的成本都會(huì)增加不少。
那么關(guān)于3D模型的規(guī)范有以下幾點(diǎn):
· 單位
3D資源導(dǎo)入U(xiǎn)nity時(shí),首先面臨的問題就是單位,由于Unity中的單位是米,所以我們通過以上設(shè)置即可達(dá)到max與Unity的單位統(tǒng)一,這對于整體比例把控以及引擎中世界大小的制定相當(dāng)重要。
· 方向
由于Unity的坐標(biāo)系是左手坐標(biāo)系,max是右手坐標(biāo)系,而且Unity中z軸的正方向被認(rèn)為是前方(物理系統(tǒng),方向變換等都是基于此進(jìn)行的),所以為了使其簡單化,3D資源最好是將方向調(diào)整為unity的標(biāo)準(zhǔn)。
標(biāo)準(zhǔn):在max中,更改模型的軸,使其Z軸指向物體的前方,Y軸朝上!
品質(zhì)
不管是角色還是場景最終的美術(shù)效果都要以引擎的為準(zhǔn),不以引擎為目的的資源都是耍流氓!那如何要做到這一點(diǎn)呢?其實(shí)很簡單,單說品質(zhì)這一點(diǎn),只有一個(gè)概念——Shader。
Shader可能大家不是很了解,但是大家一定都對材質(zhì)相當(dāng)熟悉,那事情就簡單了,你可以理解為材質(zhì)的底層就是Shader,Shader是引擎中渲染一個(gè)物體時(shí)所必須要用到的一段程序代碼,一般是由TA或者程序來為項(xiàng)目制作的。一個(gè)物體的材質(zhì)質(zhì)感如何完全取決于Shader,材質(zhì)只不過是更上一層,可以用來調(diào)整 Shader中參數(shù)的對象而已。關(guān)于Shader,水很深,我們不做過多不相關(guān)介紹,本文主要圍繞作為3D美術(shù)所必須知道的知識(shí)來講解。
既然我們已經(jīng)知道了3D軟件中的效果并不是最終游戲所呈現(xiàn)的效果這件事情,那么作為一個(gè)有責(zé)任的3D同學(xué),就要想辦法去使自己做的3D資源能夠在引擎中顯示出最佳效果。
最常用的方法就是將自己制作的3D資源導(dǎo)入到Unity中進(jìn)行觀察效果(一定要使用項(xiàng)目定好的Shader,否則也是白調(diào)),來回反復(fù)調(diào)整,以使其在引擎中達(dá)到最佳。
那么要做到這一點(diǎn)我們需要掌握什么知識(shí)呢?
· Unity引擎的簡單使用(基礎(chǔ)教程網(wǎng)上很多,有天賦的同學(xué)自己打開軟件摸摸也就了解了)
· 重點(diǎn)學(xué)習(xí)下如何在Unity中給3D模型賦材質(zhì),以及調(diào)整材質(zhì)效果。
然后你就可以為所欲為了。。。
優(yōu)化
模型效果上來了,但是程序說太耗了,要優(yōu)化,這時(shí)我們不能讓自己于一臉蒙逼的狀態(tài),一定要有所覺悟,知道該如何去優(yōu)化。關(guān)于優(yōu)化,并且跟3D同學(xué)相關(guān)的,我們有以下幾點(diǎn)需要注意:
頂點(diǎn)數(shù)
很多同學(xué)以為模型影響消耗的都是三角面數(shù),只要控制三角面數(shù)就好了,其實(shí)不然,三角面數(shù)固然重要,但是頂點(diǎn)數(shù)也不容忽視,這里普及一個(gè)知識(shí)點(diǎn):渲染一個(gè)模型需要用到Shader,而Shader中又一定分為頂點(diǎn)著色器與片斷著色器,而頂點(diǎn)數(shù)量的多少直接與Shader中頂點(diǎn)著色器的消耗成正比。也就是就頂點(diǎn)數(shù)越多消耗越大!
除了常規(guī)美術(shù)上的少點(diǎn)少面以外,我們這里額外說兩點(diǎn)與引擎相關(guān)的,如何去減少頂點(diǎn)數(shù)。
首先我們做個(gè)簡單的測試:
在max建一個(gè)Box,然后導(dǎo)入到Unity中,觀察他們的頂點(diǎn)數(shù)區(qū)別。
max:8個(gè)頂點(diǎn),12個(gè)三角面
unity:24個(gè)頂點(diǎn),12個(gè)三角面
三角面數(shù)一致,頂點(diǎn)數(shù)竟然相差這么大!
產(chǎn)生頂點(diǎn)數(shù)不一致的原因主要有兩點(diǎn):
1. 光滑組不一致,當(dāng)多個(gè)面設(shè)置了不同的光滑組時(shí)(如果這些都處于一個(gè)平面,則不會(huì))就會(huì)導(dǎo)致頂點(diǎn)數(shù)增加。
2. 當(dāng)模型上一個(gè)頂點(diǎn)在UV中對應(yīng)多個(gè)頂點(diǎn)時(shí)(切割UV會(huì)產(chǎn)生這種效果)也會(huì)導(dǎo)致頂點(diǎn)數(shù)增加。
當(dāng)兩個(gè)面光滑組不一致時(shí),它們所共用的頂點(diǎn)將需要兩個(gè)表現(xiàn)法線方向的信息,unity中無法通過一個(gè)頂點(diǎn)來獲取到這些信息,所以在unity中會(huì)被識(shí)別為兩個(gè)頂點(diǎn),同樣,模型上的一個(gè)頂點(diǎn),在UV中出現(xiàn)在多個(gè)位置,也會(huì)被unity識(shí)別為兩個(gè)頂點(diǎn)。
當(dāng)然了,并不是說完全不能用光滑組與UV切割,只是如果我們知道了這些原理,那么在制作時(shí)就能夠盡量去規(guī)避這些問題了。
三角面數(shù)
這個(gè)沒有什么好說的,在保證效果的前提下,能少則少。
貼圖
貼圖的做法和Shader息息相關(guān),需要在前期與TA一起討論清楚,其中尺寸可以做的大些,因?yàn)榭梢灾苯釉趗nity中根據(jù)需求縮小,如果做小了,放大就會(huì)有損失了。還有要注意,最好是方形,同時(shí)是2的次冪。如果貼圖需要有額外的信息存儲(chǔ)到Alpha通道,則用tga,否則用png格式。
材質(zhì)
材質(zhì)數(shù)量直接影響DrawCall,所以盡量做到一個(gè)物體一個(gè)材質(zhì)球,特別是在max中盡量少用多維子材質(zhì)。因?yàn)槎嗑S子材質(zhì)的信息會(huì)被導(dǎo)入到unity中,并以多個(gè)材質(zhì)的形式出現(xiàn),除非你真的需要這么做。
頂點(diǎn)色
頂點(diǎn)色如果不需要的話一定要清除,因?yàn)轫旤c(diǎn)色在unity中會(huì)影響合批,導(dǎo)致性能下降,同時(shí)本身的頂點(diǎn)色數(shù)量也會(huì)導(dǎo)致模型本身的資源加大。
模型中的頂點(diǎn)色一旦修改,就會(huì)使模型附帶了頂點(diǎn)色屬性,既使你更改回默認(rèn)顏色和透明度也是一樣,這個(gè)時(shí)候只能通過ChannelInfo來移除了,注意在ID那一列中,標(biāo)識(shí)為:VC的就是頂點(diǎn)色(Vertex Color)。
UV數(shù)量
模型的UV數(shù)量正常情況下只需一套,如果在max設(shè)置了多套,既使沒有用到也會(huì)被導(dǎo)出到unity中,同樣也是通過Channel Info來移除。
如果大家能做到以上這些,那么TA和程序會(huì)愛死你的!
這里是最接地氣最普通的3D美術(shù)圈從業(yè)人員的交流地,希望可以將最實(shí)用的知識(shí)分享給你。
勵(lì)志成為業(yè)界一股清流,如果對你有用,期待你的轉(zhuǎn)發(fā)帶給我們更多動(dòng)力呦~
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵碓囋嚕?/span>
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇。《天命奇御》具有多線劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)漫建模全過程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動(dòng)畫軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫軟件或動(dòng)畫工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫的軟件程序。但是,在3D動(dòng)畫軟件中還包含了其他類型的...
8. 如何自己開發(fā)一款游戲(游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧)
?游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧無論您是剛剛起步開發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無論你對游戲有著什么樣的概念,都
9. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
?三昧動(dòng)漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
最新文章
同學(xué)您好!