你需要知道這些關於技術美術的知識構成
作者:Freddy
騰訊互動娛樂 技術美術
一、美術篇
工程師轉技術美術的這類同學,一定要掌握藝術方面的內容,否則本質上還是一個程式設計師。
1.1 美術DCC軟體操作方面
必須精通:Photoshop,3dsmax/Maya
無論是繪圖還是3D建模,這幾款軟體是遊戲美術必不可少的。作為標準的遊戲美術,TechnicaArtist必須精通裡面的所有功能,並熟練掌握完整的各個管線的工作流程和常用功能的使用方法。
而Artist轉他的同學可以根據自己本來的專精,歸納工作流程,並嘗試編寫自動化工具。
稍微進階一些需要掌握:AfterEffects/NUKE/Fusion360,Blender,ZB/SubstancePainter/SubstanceDesigner,MotionBuilder 等等。
根據經驗的增長,你逐漸掌握了一些影像合成知識,並開始瞭解流行的開源3D建模軟體、引擎外部的貼圖繪製軟體、材質生成軟體, 動作捕捉軟體等等。這裡面開始涉及到了各個不同的專業,可以選擇性地進行學習。
再進階一些需要掌握:
Houdini,WorldMachine/WorldCreater, SpeedTree 等等更專業或專精的軟體。
這時你已經積累了很長時間的軟體操作經驗,對美術工作流了如指掌,於是便可以往難度更高或更細分的領域深入研究。如果你有了一定的程式碼經驗,並且對於日常的DCC功能開發已經遊刃有餘,再深入就變成技術知識構成的範圍。
1.2 美術基礎知識方面
Technical Artist顧名思義是包含大量的Artist的內容,而Artist以最基礎的美術知識為根本,萬變不離其宗。
TA需要通過掌握的美術知識會使調節出來的畫面效果比圖形程式設計師要好看的多,並且具有一定的藝術觀賞性。另外一方面,完全不掌握Tech調節方法的Artist會有勁沒處使,不知道怎麼調節出好看的畫面效果。
當美術管線被優化到足夠便捷的話(類似美術更喜歡使用UE4,而非其它引擎開發的定製化渲染管線),Artist自己就可以進行畫面調節了,並且能比TA調節得更美。他的工作恰恰是使這個複雜的調節過程簡單化。
當渲染管線過於繁瑣時,TA應當提供完整的操作文件提供給美術,畢竟他們調節出來的是最好看的。作為一個綜合性的輔助職位,沒有必要和他們搶飯碗。
作為TA你要掌握基礎的美術知識,包括造型,透視,色彩構成,質感刻畫等各個方面。
你要可以迅速判斷遊戲畫面的黑白灰關係、層次關係、畫面的色彩構成,還要能通過修改shader或Toonmapping等方法進行調節。對於各種質感的表現特徵,你需要了如指掌,例如金屬的明暗交界線和反射的狀態,這裡可以基於物理渲染但是並不一定符合物理,以畫面好看為主。
尤其是非真實感渲染,對他的美術方面的要求更高,由於是非物理渲染,所以圖形程式能幫上忙的空間非常小。
比如最近流行的二次元風格,如果你大學學了動畫專業,那麼你會對二次元的畫面構成了如指掌。透臺是怎麼使用的,賽璐璐是怎麼使用的,畫面怎麼由layout到原畫、中間畫,到上色、後期,為什麼某些角色的動態畫面是扭曲的,為什麼要用色指卡來上色,為什麼不同的漫畫家的線條都各具有特色等等,你都完全清楚。你可以通過你的美術經驗,對所有關鍵性內容進行拆解,然後通過技術手段實現它。這是其它工種完全無法替代的。
1.3 溝通技法
和美術溝通時,“說人話”非常重要。因為你之前本身就是美術或對美術工作流程非常瞭解,這是你和程式設計師相比非常大的優勢,那麼要以美術能快速聽懂的方式對相關美術人員進行解釋,把複雜問題簡單化概括。實際上當你對一個技術越瞭解的時候,你描述的過程是越通俗易懂且簡約的。儘量不要拽各種專業性技術名詞、英文縮寫。
例如圖形程式口中的toonmaping等術語,或其他複雜演算法。對於精通Photoshop的美術來說就是點選兩個按鈕,比如可選顏色,漸變對映等等。但是大多數程式設計師連ps基礎操作都不會,這就需要你來簡化描述。
你在美術方面是不如美術的,程式方面又不如程式。和程式溝通時要把專業水平拿上來,通過技術知識來描述美術的想法和實現方式,描述後不一定是你來做,有可能是程式設計師去做,但是你也不要把自己僅僅定位為傳話筒,要儘量想到既效果好又效能好的trick方案。
TA屬於一個完美的輔助型魔劍士,既肉又奶又可以輸出,形成一個良好的工作氛圍後,美術和程式是都願意和你配合的。
二、技術篇
美術師轉技術美術的這類同學,一定要掌握程式設計方面的內容。
這方面的內容包含3類,第一種是指令碼語言,第二種是程式語言,第三種是shading語言。
2.1 指令碼語言
指令碼語言簡單來說就是:
3DSMAX 的 maxscript 或 MAYA 的 mel 語言 或 Houdini 的 vex 這種DCC軟體語言。
這種語言使用的功能相對簡單,大多是對軟體封裝好的功能進行呼叫。
作為TA,你可以根據你在你之前的美術領域(模型/動畫/特效/UI)浸淫多年的DCC軟體操作習慣來使用指令碼語言。這會對你的大量重複性工作進行自動批處理,從而使你和你支援的藝術家從操作的工作中解脫出來,進行藝術創作。
其中,在某一美術領域浸淫多年這一點非常重要,這也就是”使用者既開發者“原理。所以我並不贊成畢業生沒有進行過美術工作直接進入到這一領域,否則開發出來的功能會十分難用。
它的工作流一般是線性的、擬人化的方式。不同軟體的寫法和API差異很大,由於官方文件寫的爛,有很大的學習負擔,所以這方面工作一般沒有程式設計師會接手,只有TA來承擔。
DCC工具一般來說以批處理和資源檢查為主,一定程度上追求執行速度,因為美術要經常快速修改美術資源,所見即所得非常關鍵。由於這裡生產的資源是完全與遊戲專案脫離的,所以穩定性不是最主要的,而是以提高美術製作人員的舒適度為主。在引擎工具方面,還會對美術資源進行二次,三次的反覆檢查。
python介於指令碼語言和程式語言之間,各個軟體或引擎之間可以同時支援。所以目前來看價效比要高一些。
2.2 程式語言
程式語言就是C,C++, C#, 這種更接近於程式設計師使用的程式碼語言。這類語言一般用於遊戲引擎中的內容修改或工具製作。
作為TA,這類語言你至少要精通一種,不是比其它美術師稍微懂點引擎操作方法就可以變成TA了。因為許多高階美術師,同樣對遊戲引擎的使用非常熟練,例如經常使用遊戲引擎內建編輯器的遊戲特效師、經常編輯動畫狀態機的遊戲動畫師。
技術美術應該做的事情是在高階遊戲美術師的基礎上,使用程式語言,自動控制/檢測美術資產的正確性,對重複性工作進行批處理開發,對引擎中的操作繁瑣的步驟進行一鍵操作的簡化處理,甚至把很多操作集中在打包流程中。
這方面工作與引擎程式或客戶端程式有一定的交集,要掌握工作分配尺度。
TA在引擎層面開發的工具或功能,由於和遊戲專案耦合性較高,所以要首要關注可靠性。美術生產資源的合理性要完全在這一步把握住,通過使用資源檢查工具、資源後處理工具、資源提交工具,完全阻斷出錯率的效果。
其次需要關注的是美術工具流方面的易用性(因為工具互動做的很差或不好用,美術用起來就很排斥,這導致沒有反饋資訊的輸入,沒有這部分輸入就會導致無法更新迭代,這樣的話就開發不下去了。如果強行推廣使用的話,那麼對於美術來說就由幫手變成了敵人)。
最後一點才是執行速度,但這一點又是不可或缺的,如果你使用程式語言開發了工具,必定帶來開發速度的提升。這是要遵循二八原理,比如花很少的開發時間,把美術生產輸出從幾天或幾周優化到了分鐘級或秒級,就沒必要再花百分之八十的時間扣演算法,優化那麼幾毫秒的執行速度。
以上所有引擎內功能的穩定性是由一套”穩定“的引擎底層架構和渲染/客戶端邏輯來支撐的,如果引擎和邏輯變來變去,那麼工具也無法保證穩定。
2.3 Shading語言
一般是opengl, hlsl, cg這種類似於C語言這種底層語言的寫法,對Shading語言的瞭解目前成了技術美術必不可缺的要素。這幾種語言的寫法非常接近,基本可以做到同時精通。
你不一定會掌握底層shading的基礎演算法或架構,這裡面很大程度上的工作由圖形程式設計師承擔(不要搶他們的飯碗,或者一部分圖形程式變成了所謂的TAT)。但是作為TA一定要掌握surface層面的效果向shading開發,並具有很強的優化能力。
作為TA你要通過你的傳統美術技法,產生大量的trick能力,這是圖形程式設計師不具備的,尤其是非真實感渲染方面,你的地位十分重要。由於一般傳統藝術家畫畫是直接用畫筆在畫布上畫的,效果不一定真實,但非常好看。你要使用美術的基礎知識對其明暗調子,色彩構成,線條的優美,等等方面進行把控。
如果你精通PhotoShop或AfterEffects來進行影像處理的話,那麼你對於影像後處理技術也會非常精通的,這部分的門檻就會非常低。
國內最開始有TA行業的時候,對於連線節點方式的shading創作是鄙視的。目前來說放開了一些,但如果你對優化有一定要求的話,依然還是要掌握程式碼。
三、結語
以上幾個方面,從初級,中級,高階必須做到由少到多,由入門逐漸到熟練,精通。這是一個積累的過程,尤其是對於美術來說,學習曲線非常陡,由一種語言到多種語言,加上熟悉API,起碼要持續幾年。所以不要著急,不能由於行業比較火,一口吃個胖子。
雖然標題是技術美術的技術知識構成,但是程式設計師不要由於程式設計優勢妄圖混進來~趕快去看藝術史,畫石膏像,用DCC軟體建模吧,這樣才能達到“使用者既開發者”的目的。
來源:騰訊GWB遊戲無界
原文:https://mp.weixin.qq.com/s/iIEL4-tSWIQABH_kOuL0yQ
相關文章
- 遊戲技術美術之<技術&美術>知識構成遊戲
- 關於美顏SDK,還有這些你不知道的知識
- 這些關於WebSocket的知識,你知道多少?Web
- 關於JVM,你必須知道的這些知識點JVM
- Netty中的這些知識點,你需要知道!Netty
- 要成為架構師,你需要掌握這些知識體系!架構
- 消除遊戲美術設計的這些套路,你都知道嗎?遊戲
- 關於神經網路:你需要知道這些神經網路
- 你應該知道的 9 個 Docker 技術知識Docker
- 遊戲影視美術設計也有套路,這些你都知道嗎?遊戲
- 關於專案採購管理,這些你需要知道
- 關於Android Gradle你需要知道這些(4)AndroidGradle
- 關於Android Gradle你需要知道這些(3)AndroidGradle
- 關於Android Gradle你需要知道這些(1)AndroidGradle
- 關於Android Gradle你需要知道這些(2)AndroidGradle
- 每天都在用 Map,這些核心技術你知道嗎?
- 關於深度學習,這些知識點你需要了解一下深度學習
- 關於 TDengine 3.0 資料訂閱,你需要知道這些
- 關於輪播圖的技術理解你知道多少
- 關於DNS,你應該知道這些DNS
- 關於遊戲技術美術工程師的思考遊戲工程師
- 關於HTML你可能不知道的一些知識點HTML
- 關於 Git 你需要知道的一些事情Git
- 關於深度學習編譯器,這些知識你需要了解一下深度學習編譯
- 想要成為黑客?那你需要學會這些知識黑客
- [譯] 關於Angular的變更檢測(Change Detection)你需要知道這些Angular
- 關於MySQL引數,這些你要知道MySql
- 關於灰度釋出,你得知道這些......
- Web直播,你需要先知道這些Web
- 關於Java面試,你應該準備這些知識點Java面試
- 短連結的一些技術知識
- 關於技術部落格--找工作--這些年--陸續的
- [技術討論]iTSP組04年關於知識庫構建的對話
- 關於汽車一些您必須知道的知識
- 【格物獵蹤】關於OpenVPN反射攻擊,你還需要知道這些!反射
- 這三個關於Python包匯入的知識點你知道嗎Python
- 這三個關於Python包匯入的知識點你知道嗎?Python
- 你想知道的關於 Refs 的知識都在這了