不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇美術(shù)python程序?qū)W習(xí),就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來告訴你這個(gè)專業(yè)的優(yōu)勢(shì)到底體現(xiàn)在哪里:技術(shù)美術(shù)之咸魚翻身,游戲誕生之日10 - 美術(shù)篇 Houdini程序化生成入門??。
自從去年《NBA 2K18》發(fā)售以后,我就想開一個(gè)專欄和大家分享一些我對(duì)技術(shù)美術(shù)的理解,討論一些技術(shù)美術(shù)比較熱的話題,奈何自己實(shí)在是重度拖延癥患者,這個(gè)事情就一拖再拖。直到最近面試了頑皮狗工作室,花了1個(gè)月時(shí)間做完題目以后慘遭默拒,便覺得自己不能夠再咸魚了。想認(rèn)真的寫這個(gè)專欄,一方面督促自己保持一顆學(xué)習(xí)的心,另一方面也是希望能重新梳理一下自己學(xué)到的知識(shí)。如果我寫的內(nèi)容可以對(duì)大家有所幫助的話,那是再好不過了。到底什么是技術(shù)美術(shù)?What is technical artist?怎么成為技術(shù)美術(shù)?這些問題無論在歐美論壇,還是在國(guó)內(nèi),還是在知乎都在不斷的被問起。一句話就是:作為美術(shù)和程序之間溝通的橋梁。 這是一個(gè)非常空洞的回答,至少在我上學(xué)的時(shí)候我依然不知道這個(gè)橋梁該怎么搭建。如果打開任意一家公司對(duì)于TA的招聘要求,可以看到這樣的描述:- 計(jì)算機(jī)、美術(shù)相關(guān)或者交叉專業(yè);- 具有美術(shù)基礎(chǔ),對(duì)形式、色彩、光影、動(dòng)態(tài)有比較明確的認(rèn)識(shí)和敏銳的辨識(shí)能力;- 熟悉美術(shù)制作工具的使用,比如3ds max,maya,photoshop,zbrush,等;- 熟悉unity或unreal Engine等任意一款商業(yè)引擎- 了解編程原理和程序基本結(jié)構(gòu),會(huì)使用如python,c#,java,lua類型的語言,或maxscript,MEL等軟件工具內(nèi)建二次開發(fā)語言;或熟悉 Shader language語言;- 強(qiáng)烈的求知欲和優(yōu)秀的學(xué)習(xí)能力;- 良好的團(tuán)隊(duì)協(xié)作精神和溝通能力需要熟練使用DCC工具,需要設(shè)計(jì)人物綁定,參與Mocap動(dòng)畫幀的優(yōu)化,變形器的開發(fā), 這樣的技術(shù)美術(shù)我們多稱之為Character TD。為了能夠優(yōu)化開發(fā)流程,在DCC工具中使用Python, PyQt, Mel進(jìn)行工具開發(fā)以供自己和美術(shù)使用的技術(shù)美術(shù)我們多稱之位PipelineTool Technical Artist。 在歐美這些TA還要了解如何使用Perforce來對(duì)游戲資源進(jìn)行版本管理,如何使用Shotgun來對(duì)游戲開發(fā)任務(wù)進(jìn)行管理,以及對(duì)于類似MySQL數(shù)據(jù)庫有所了解,這樣可以更加快速有效的對(duì)美術(shù)素材進(jìn)行查詢。熟悉Shader language,根據(jù)概念設(shè)計(jì)師的要求,和美術(shù)合作開發(fā)特效。這樣的技術(shù)美術(shù)多稱之位Shading Technical Artist Technical Artist. 這個(gè)職位往往對(duì)于TA的美術(shù)基礎(chǔ),色彩,光影有著很高的要求。同時(shí)要對(duì)Computer Graphics中的光照模型有著比較深入的了解,例如一些特殊的模型: 水, 雪, 毛皮等。另外還有一些技術(shù)美術(shù)會(huì)擅長(zhǎng)于對(duì)于游戲的優(yōu)化,我曾經(jīng)抖機(jī)靈回答過一個(gè)類似問題:技術(shù)美術(shù)的核心競(jìng)爭(zhēng)力是什么?我認(rèn)為這樣的技術(shù)美術(shù)的能力相對(duì)較為綜合,需要對(duì)于實(shí)時(shí)引擎的工作原理有深入的理解。知道什么任務(wù)是在CPU或者GPU層面運(yùn)行,從而進(jìn)行特定的優(yōu)化。綜上,這家公司的的招聘要求實(shí)際是包括了成為各類技術(shù)美術(shù)的可能,這在歐美工作室也是常見的。 但是對(duì)于一個(gè)面試者,我們多希望看到的還是他能展示出某一方面的突出才能。如果你是偏Character TD方向,會(huì)被多問一些矩陣/線性代數(shù)方面的問題,做人物綁定方面的測(cè)試題。如果你是Tool方向,會(huì)多被問一些Python,Maya API的問題,做一個(gè)工具開發(fā)的題目。如果你是Shading方向,會(huì)多被問著色器/光照模型的問題,做一個(gè)shader開發(fā)的題目。王滕昊:一道技術(shù)美術(shù)的面試題在后續(xù)的文章里,我會(huì)給大家講一些我認(rèn)為比較經(jīng)典的工具開發(fā)和人物綁定的練習(xí)題目。在這個(gè)專欄里面,我希望我可以把我理解的技術(shù)美術(shù)知識(shí)點(diǎn)串聯(lián)在一起,讓大家更好的理解TA是如何在游戲開發(fā)中成為一座橋梁。我計(jì)劃在接下來的文章里面依次闡述:為何矩陣/線性代數(shù)在對(duì)于Technical Artist如此重要?如何自己實(shí)現(xiàn)Linear Blend Skinning?為何以及如何讓我們實(shí)現(xiàn) blend shape? 什么是Pose Space ?為什么我們需要PSD?什么是Laplacian ?Laplacian 有什么實(shí)現(xiàn)意義?基于Machine Learning的SSDR的解決方案?;贕erstner Wave的水面模擬方法 在中間我可能會(huì)穿插一下我認(rèn)為有趣有意思的文章。 希望我的專欄可以給不僅是初學(xué)者,和各個(gè)TA大佬們一些幫助,也希望大家可以多留言交流。謝謝
在寫專欄之初就想要研究一下程序化生成的流程,現(xiàn)在終于有機(jī)會(huì)進(jìn)行一些研究了。本文目標(biāo)是:研究程序化生成的概念,建立起初步對(duì)程序化的認(rèn)知。探討程序化生成的適用范圍。以確定要不要深入學(xué)習(xí)這門技術(shù)。由于程序化生成這個(gè)話題非常大,以后我也會(huì)時(shí)不時(shí)加一些相關(guān)文章。本篇文章定位是,不需要了解軟件的操作,僅僅建立一個(gè)概念,對(duì)新手非常友好。第27塊拼圖 - 程序化生成技術(shù)1. 什么是程序化生成技術(shù)看一個(gè)視頻能直觀的了解程序化生成技術(shù)能夠做什么。在游戲引擎中簡(jiǎn)單放置一條曲線,就能沿著曲線就能生成一整條立交橋。修改曲線的位置,整座立交橋的位置也跟隨曲線變化而變化。調(diào)整幾個(gè)參數(shù)就能實(shí)時(shí)控制立交橋的形狀。從路面的寬度,到路燈的數(shù)量和高度,到護(hù)欄的位置,到橋墩的數(shù)量和粗細(xì),全都能通過參數(shù)進(jìn)行調(diào)整。曲線生成立交橋用參數(shù)控制橋墩的數(shù)量總結(jié)一下的話,程序化生成技術(shù)能夠根據(jù)輸入的參數(shù)不同,能得到不同的輸出。這個(gè)輸出可以是一個(gè)3D模型,或是一個(gè)紋理貼圖,也可以是一組點(diǎn),或是一個(gè)二進(jìn)制數(shù)據(jù)文件。其實(shí)程序化生成技術(shù)并不是近幾年的新鮮技術(shù),在練習(xí)編程時(shí)候用程序畫菱形,某種意義上也是個(gè)程序化生成的應(yīng)用。輸入是菱形的列數(shù),輸出是一個(gè)字符組成的菱形。從這個(gè)角度看,一個(gè)捏臉系統(tǒng)也可以算是一個(gè)程序化生成的案例。輸入是眾多的身體部位參數(shù),輸出是一個(gè)玩家定制的,個(gè)性化的模型。除此之外,如《我的世界》《饑荒》這樣的隨機(jī)地形,輸入是一個(gè)隨機(jī)種子,輸出是一個(gè)新的地形,包含了資源、怪物和地形信息。如《以撒的結(jié)合》《殺戮尖塔》這樣的roguelike游戲,輸入是一個(gè)隨機(jī)種子,按照游戲的邏輯輸出一個(gè)可玩的隨機(jī)關(guān)卡,以達(dá)到一個(gè)*的體驗(yàn)。荒野大鏢客2 捏臉系統(tǒng)我的世界 隨機(jī)地形 以撒的結(jié)合 隨機(jī)關(guān)卡捏臉系統(tǒng)或是隨機(jī)地形,隨機(jī)關(guān)卡往往是一個(gè)游戲比較重要的系統(tǒng),由程序、美術(shù)策劃共同配合,用寫代碼的方式制作整個(gè)系統(tǒng)。這樣做的好處是效率較高,而且能滿足一些定制化的特殊需求。但是需要多人配合,或是需要即懂美術(shù)原理又懂編程的TA/圖程進(jìn)行開發(fā),門檻更高。隨著游戲行業(yè)的發(fā)展,面對(duì)越來越大規(guī)模的地形和素材,美術(shù)也越來越需要能對(duì)模型進(jìn)行批量生成、批量處理的工具。我們需要一個(gè)解決方案來快速制作這樣的工具。Houdini就提供了這樣一套解決方案,將美術(shù)流程中可能用到的各類工具做了梳理以供使用,既避免了從零開始造輪子,又保證能快速簡(jiǎn)單地滿足需求。我們可以把Houdini看做一個(gè)生產(chǎn)美術(shù)工具的工具。2. 為什么是Houdini?美術(shù)軟件那么多,為什么選擇Houdini?Houdini的軟件界面 用不同顏色標(biāo)注功能節(jié)點(diǎn)編輯器基于節(jié)點(diǎn)的工作流在houdini中,一切物體都是基于節(jié)點(diǎn)的,模型是一個(gè)節(jié)點(diǎn),對(duì)模型的操作和計(jì)算同樣是一個(gè)節(jié)點(diǎn),攝像機(jī),材質(zhì),燈光等待同樣是一個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)包含了不同的屬性。例如節(jié)點(diǎn)是一個(gè)方塊模型的話,就包含了長(zhǎng)寬高的數(shù)值。如果節(jié)點(diǎn)是一個(gè)變換(Transform)操作的話。節(jié)點(diǎn)就會(huì)有位移,旋轉(zhuǎn),縮放等屬性。每個(gè)節(jié)點(diǎn)可以相互連接,節(jié)點(diǎn)的上端是輸入,下端是輸出,不同節(jié)點(diǎn)可接收的輸入輸出數(shù)量也是不一樣的。如果把節(jié)點(diǎn)當(dāng)做一個(gè)數(shù)據(jù)處理的函數(shù)來看的話會(huì)比較容易理解。數(shù)據(jù)像水流一樣從上往下,沿著連接線流向不同節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)可以對(duì)數(shù)據(jù)流進(jìn)行增刪改查,數(shù)據(jù)流也可以分叉或是合并,最終流出來的數(shù)據(jù)便是我們最終的結(jié)果。我們不僅僅能夠通過修改連線改變數(shù)據(jù)流向的位置,還可以截取某個(gè)節(jié)點(diǎn)查看中間步驟。通過修改任意中間節(jié)點(diǎn)上的參數(shù),就可以實(shí)時(shí)查看到最終效果,也就不會(huì)出現(xiàn)很早的一個(gè)操作錯(cuò)誤無法撤銷這樣的情況。進(jìn)一步,我們可以還創(chuàng)建很多測(cè)試用例,只要更改輸入數(shù)據(jù)就能簡(jiǎn)單地進(jìn)行測(cè)試。Houdini 的預(yù)設(shè)節(jié)點(diǎn)Houdini提供了非常多的預(yù)設(shè)節(jié)點(diǎn),例如:模型處理 如:車削 擠出復(fù)制生成 如:復(fù)制圖章流程控制節(jié)點(diǎn) 如:選擇 循環(huán)地形節(jié)點(diǎn) 如:高度圖噪聲 如:高度圖噪聲分形節(jié)點(diǎn) 如:L-System燈光節(jié)點(diǎn) 如:各類燈光渲染節(jié)點(diǎn) 如: Mantra / RedShift流體節(jié)點(diǎn) 如:云動(dòng)力學(xué) 如:毛發(fā) 布料VOP編程節(jié)點(diǎn)常見的建模操作基本都附帶了,并且支持多種格式的文件。相比用代碼從文件讀取開始造輪子,這里有很多現(xiàn)成的輪子可以直接用。即使沒有,也可以通過VEX節(jié)點(diǎn)進(jìn)行拓展。如果需要大量處理數(shù)據(jù),會(huì)遇到性能問題,可以使用Python語言進(jìn)行拓展。輕松訪問所有數(shù)據(jù)Houdini里能夠很方便地訪問到各種數(shù)據(jù),這為程序化控制提供了基礎(chǔ)。索引編號(hào)。Houdini里幾何體里的頂點(diǎn)、邊和面片都可以看到索引編號(hào),通過這個(gè)索引就能以函數(shù)的形式取到這個(gè)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行修改后再保存回去。屬性。Houdini中將幾何體的數(shù)據(jù)分為四個(gè)層級(jí),分別是detail(對(duì)象),primitive(面),vertex(頂點(diǎn)),point(點(diǎn)) ,用戶可以向每一個(gè)層級(jí)中追加屬性,例如可以讓每個(gè)點(diǎn)加上隨機(jī)的縮放屬性后,向點(diǎn)上拷貝出的物體也就具有了隨機(jī)縮放。訪問其他節(jié)點(diǎn)。Houdini可以根據(jù)節(jié)點(diǎn)的路徑來訪問其他節(jié)點(diǎn)的數(shù)據(jù),并用表達(dá)式在節(jié)點(diǎn)間建立引用關(guān)系。幾何體的頂點(diǎn)編號(hào)/面編號(hào)使用表達(dá)式訪問節(jié)點(diǎn)的屬性3. 一些程序化的實(shí)例我們實(shí)際上來看一個(gè)程序化模型生成的過程。從零開始做出一棵草。一棵草的生產(chǎn)過程通過改變每個(gè)步驟的參數(shù),例如彎曲的程度,葉片的數(shù)量,就可以做出不同樣式的草。修改參數(shù)實(shí)現(xiàn)不同變種接下來生成一片草地。生成一片草地的過程有了生成草地這個(gè)流程,我們就可以將*步的圓替換為任意幾何體,就能在任意幾何體上長(zhǎng)出草來。在任意模型上長(zhǎng)草在Houdini中還能夠基于程序化地生成地形,相比用筆刷人工進(jìn)行雕刻,效率和擬真程度都更好。生成簡(jiǎn)單高度場(chǎng)地形的流程程序化生成的好處是,你可以退回到過去的某一步進(jìn)行修改,而不用重做后續(xù)步驟。簡(jiǎn)單地進(jìn)行修改打光渲染后的效果4. Houdini與游戲引擎對(duì)接Houdini對(duì)接了Unity和Unreal這樣的游戲引擎,我們可以這樣理解:Houdini是一個(gè)制造插件的工廠,制造的這個(gè)插件能夠在游戲引擎內(nèi)部運(yùn)行,根據(jù)參數(shù)生成各類模型。Houdini將這樣的插件稱為數(shù)字資產(chǎn)(HDA,Houdini Digital Asset),這樣一個(gè)資產(chǎn)封裝了程序化的邏輯,規(guī)定了暴露的參數(shù)以及參數(shù)的取值范圍。一個(gè)HDA的界面,參數(shù)為一個(gè)顏色在實(shí)際工作中,除了編寫HDA的人員外,其他人都不需要安裝Houdini,也不需要知道HDA內(nèi)部工作邏輯。只需要調(diào)整參數(shù),編輯曲線,點(diǎn)擊烘焙即可。除此之外,Houdini還能導(dǎo)出其他游戲引擎可用的資產(chǎn),例如,可以直接使用Houdini烘焙動(dòng)畫文件 ,或是Visual Effect Graph可用的向量場(chǎng)等。VFX特效 用Houdini制作向量場(chǎng)5. 程序化的適用范圍程序化生成技術(shù)適合處理數(shù)量龐大、有規(guī)律重復(fù)的工作。例如:可以參數(shù)化地生成模型,如:房屋、桌椅家具快速生成大量的、不重復(fù)的模型,如:石頭、樹木對(duì)大量的數(shù)據(jù)進(jìn)行批處理,如:大地形植被搭建一整條管線,并在不同階段進(jìn)行編輯,如:大地形的地形工具一些特殊效果,如:在任意模型上長(zhǎng)草,用模型生成特效適合程序化制作的特效相應(yīng)的,少量的,無規(guī)律的工作不適合用程序化的進(jìn)行制作。例如:要求對(duì)模型進(jìn)行非常細(xì)微的控制,例如建模出一個(gè)角色。已經(jīng)有成熟插件,例如制作樹的Speed Tree,制作地形的Gaea等。就不必用Houdini再做一遍。程序化無法帶來明顯優(yōu)勢(shì)的工作,因?yàn)镠oudini學(xué)習(xí)起來相對(duì)高成本。兩種工作流對(duì)比注意事項(xiàng)團(tuán)隊(duì)中只需要有少數(shù)人來程序化生成工作流即可。程序化不能完全替代傳統(tǒng)工作流。找準(zhǔn)應(yīng)用場(chǎng)景。強(qiáng)行做自己不適合的工作反而會(huì)事倍功半。注意性能問題,兼容性問題6. 擴(kuò)展資料一些好的學(xué)習(xí)教程。給想入門Houdini程序化建模的你指路嗶哩嗶哩 ( ゜- ゜)つロ 乾杯~ Bilibili程序猿玩 Houdini第27塊拼圖 - 程序化生成技術(shù) Houdini付出成本: 2上手難度: 6可控性: 8表現(xiàn)效果: 8性價(jià)比: 2.0思維導(dǎo)圖Houdini能講的東西太多了,以后如果有機(jī)會(huì)再講吧。最近在學(xué)各類程序化建模、程序化紋理,程序化地形,深感要學(xué)的東西太多,時(shí)間不夠用。這一系列文章將會(huì)收藏于專欄之中,希望大家多多支持。游戲誕生之日 - 游戲開發(fā)流程研究只要對(duì)游戲開發(fā)有興趣,歡迎加入交流群 Unity游戲開發(fā)流程研究 479984340
就拿大數(shù)據(jù)說話,優(yōu)勢(shì)一目了然,從事IT行業(yè),打開IT行業(yè)的新大門,找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專業(yè)和系統(tǒng)的學(xué)習(xí)。
只要一個(gè)電話
我們免費(fèi)為您回電