Autodesk分享:讓3D美術(shù)師更強大,如何在Maya中使用AI插件
在游戲研發(fā)領(lǐng)域, Maya是制作游戲美術(shù)資源、動畫、場景的主流軟件,也美術(shù)以及TA工作者們使用最多的工具之一。
(相關(guān)資料圖)
隨著AIGC技術(shù)的發(fā)展,Autodesk也在使用機器學(xué)習(xí)讓該公司旗下的工具可以幫助美術(shù)從業(yè)者提高效率,并降低這些專業(yè)工具的使用門檻。
今年的GDC活動中,來自Autodesk公司的基礎(chǔ)產(chǎn)品經(jīng)理Chip Weatherman和高級工程師Bruno Roy就分享了Maya最新的AI插件,讓同行們可以通過大型語言模型在Maya里進行直觀互動,哪怕是沒有代碼基礎(chǔ)的小白,也能通過文字指令實現(xiàn)專家級別的操作。
以下是Gamelook聽譯的完整內(nèi)容:
Chip Weatherman:
我是Chip Weatherman,我是Autodesk基礎(chǔ)產(chǎn)品經(jīng)理,基礎(chǔ)團隊負責(zé)3ds Max和Maya所有的API和SDK。另外,我還和其他內(nèi)部團隊一起合作,例如我與Bruno領(lǐng)導(dǎo)的與微軟合作的團隊。
圍繞機器學(xué)習(xí)和AI,一直都有些爭議,比如它有可能搶走美術(shù)師們的工作。但我們希望采取另一種方式,實際上只是讓美術(shù)師變得更強大,用更少的操作步驟給他們加速,讓他們更快速完成工作。
我入行超過20年了,但這種互動模型從來沒有變過,無論是應(yīng)用還是行業(yè)?,F(xiàn)在,我們有機會在未來極大改變這種狀況,使其變得更好。接下來不再贅述,讓Bruno介紹一些技術(shù)細節(jié)。
Bruno Roy:
基本上,就像Chip所說,這個項目是與微軟團隊合作的,他們稱之為AI加速工作室團隊,也就是通過Azure模型為我們提供OpenAI的訪問,后者對于測試你如何利用這些類型的模型上的服務(wù)的層是非常好用的。
我會非常簡短地介紹這個項目的真正靈感的一些背景,以及我們在生成式AI領(lǐng)域所處的位置。我還會介紹我們部署這種方法的一個簡短概覽,當(dāng)然,我們還會提到數(shù)據(jù)以及我們實現(xiàn)它所做的試驗,我們會展示一個簡短demo,是直接在Maya里操作的錄屏,最后我們會宣布測試,以及未來將會著手提升的未來范圍。
背景與動機
非常簡短的背景介紹,或許很多的概念對很多人來說都并不是新的。不過,我們的目標(biāo)是充分利用“自然語言處理(Natural Language Processing,即NLP)”以更好地理解我們?nèi)绾伪磉_事情來創(chuàng)作內(nèi)容,在這個案例中特指的是在Maya當(dāng)中。
當(dāng)然,像GPT-3/3.5(現(xiàn)在已經(jīng)有了GPT-4)這些模型并不是新事物,這些模型在利用文本創(chuàng)造或生成代碼或者文字。還有衍生模型,他們稱之為多模態(tài)化,也就是整合不同的數(shù)據(jù)結(jié)構(gòu)以更好地理解、連接,比如連接圖片與文字,或者文字與視頻,或者順序、草圖,現(xiàn)在通過這些模型都是可實現(xiàn)的。
當(dāng)然,與我們項目更接近的事Codex,與GPT相反,訓(xùn)練和目的是生成代碼,所以,我們希望的就是為Maya整合自然語言和代碼生成。
我們對Maya Assist的立場,實際上我們內(nèi)部把這個項目稱之為Maya Codex,它作為一個插件隨著測試發(fā)布,介于DALL-E和Codex之間。因此,我們的目標(biāo)是利用NLP代碼生成用于Maya當(dāng)中的內(nèi)容創(chuàng)作和互動。
所以,這背后的動機,就是讓這些工具更加直觀,你不用成為專家也能使用它們。當(dāng)然,我們還希望通過始終這種功能引入一個學(xué)習(xí)過程。因此,使用我們的插件,你可以始終看到這些模型產(chǎn)出而生成的代碼,這樣,你通過Maya里的API也可以用這種模型學(xué)習(xí)腳本。
方法概覽
當(dāng)然,自動化是很明顯的一個目標(biāo),因為你希望實用腳本自動化繁重的工作,以及重復(fù)性的工作。所以這是非常高層級的概覽,我們在Maya里有一個插件,這個插件調(diào)用我們稱之為的“Maya輔助服務(wù)層”。這一層,如果我們要深入了解的話,它是連接OpenAI模型,也是我們尋求多樣化反饋并從中生成代碼的地方。
這是來自微軟的AI加速工作室團隊提供的,實際上這就是我們使用、評估并更新使用模型的整個管線,從這個插件輸入代碼。
基本上,我們有用戶指令,這些指令作為樣本被我們的入口和反饋服務(wù)解析,這會被用來創(chuàng)作一個數(shù)據(jù)集,我們會使用該數(shù)據(jù)集的不同變體來做大量實驗,并且看哪里取得進展、哪里能夠評估一些指標(biāo),以確保我們的模型方向正確。
一旦對不同實驗的結(jié)果感到滿意,就可以通過Azure用我們的管線提升、實際上是對當(dāng)前的模型進行升級。因此,這對于用戶是透明的,他們知道自己使用的事更新過的模型。
通過這個服務(wù),返回的其實是由Azure OpenAI生成的代碼,所以這個代碼是使用Maya API的Python代碼,用來控制UI,包括創(chuàng)作內(nèi)容。
這是一個非常簡單的用例,我們的用戶輸入“為場景增加立方體”,從那個插件返回的命令就是生成這個幾何體,因此這里是polyCube命令。然后,后續(xù)操作可能是“在X軸將立方體旋轉(zhuǎn)45度”,接下來通過一系列的指令輸入,你會得到帶有物體恰當(dāng)值參照的命令。
在這個插件里,實際上當(dāng)前的范圍聚焦四個類別以驗證概念,我們現(xiàn)在只覆蓋攝像頭、光照、材質(zhì)以及整物體操作,后者是我們自己的稱呼,也就是不包括物體內(nèi)的元素,而是在場景中只操作整個物體。
對每個類別,我們都使用了簡單的操作,例如剛體變換(rigid transformation),不過也有一些更復(fù)雜的,比如你可以用插件將一個物體與其他物體關(guān)聯(lián),它會理解3D場景并將其實現(xiàn)。實際上,在插件界面的紅框內(nèi),有一些建議告訴你該如何稱呼它,或者可以使用哪些命令。
數(shù)據(jù)
不令人意外的是,帶有這種能力的數(shù)據(jù)是至關(guān)重要的。我們當(dāng)然需要強大的數(shù)據(jù)集,以確保我們能夠精準(zhǔn)衡量進度。因此評估(數(shù)據(jù))集的想法是我們的真實數(shù)據(jù),我們會與之對比來看我們做的有多好。
基本而言,這個數(shù)據(jù)包含了成對的自然指令與命令,當(dāng)然,這些命令包括我之前提到的四個類別的案例。這些由各領(lǐng)域的專家審核,所以,我們確保這些指令能夠制作出用戶指令描述的東西。
我們還使用這些樣本來優(yōu)化實驗?zāi)P偷膮?shù)和配置,因此,我們也在用這個數(shù)據(jù)集來優(yōu)化我們的模型,在最近的版本做出更好的提升。
有關(guān)這一點可能比較有趣的是,我稍后會說,該評估集80%的分布都是由一對一樣本組成,這些對應(yīng)用戶生成的一個指令,它就生成一個命令,我們還有其他的案例,它會生成更多行命令。但實際上,如果你由一對一樣本,它的學(xué)習(xí)會更好。所以,基本上,你代碼里的一個命令使用一行代碼。
出于驗證和微調(diào)目的,我們還需要增長這個數(shù)據(jù)集,我們需要更多數(shù)據(jù)來訓(xùn)練和微調(diào)。所以,這里我們使用來自評估集力的成對的樣本,我們使用一個Synthetic Data Generator在這些自然指令里提取一些元素?;揪褪切袨閯釉~、數(shù)值、物體參照,我們生成更抽象通用的表達,以后可以用來生成更多的變體。
當(dāng)然,我們在使用這些樣本對應(yīng)的代碼,并將其輸入我們的訓(xùn)練模型以便在更多延伸案例中帶來更好的提升。這些模型樣本的使用方法有些是有幫助的,比如我們的“(零)小樣本學(xué)習(xí)(zero/few-shot learning)”。
我們這里對小樣本學(xué)習(xí)做了一系列的試驗,隨著我們收到更多的請求,我們提供更多與玩家請求相似的樣本,只是提供了更多的上下文環(huán)境。
這里要強調(diào)一些事情,不管我們使用哪個模型,都有歷史背景,它指的是此前被用戶使用的命令,或者在這些精準(zhǔn)指標(biāo)當(dāng)中比小樣本學(xué)習(xí)部分更有影響力。基本來說,小樣本學(xué)習(xí)就是選取一些類似的樣本提供給用戶的請求,而歷史背景則是用戶此前使用過的命令。
更有趣的是,當(dāng)你將兩者結(jié)合起來,可以得到底部那樣表現(xiàn)更好的模型,因此我們使用的是小樣本學(xué)習(xí)的五個樣本,加上像這樣帶有歷史背景的樣本。
在所有支持的類別中,我們的精確度超過80%,這是非常好的。實際上,如果看右邊,這些指標(biāo)的純命令分解的得分會低一些,我們在這些地方得分較低的唯一原因,就是一些指令太過于簡單,所以我們實際上能夠?qū)W習(xí)的樣本更少。
為了評估我們處理這些樣本的效果,我們在這里使用了我們所謂的“Exact Match Error Analysis”,基本上就是對比預(yù)期以及生成的代碼,所以我們是在看它們有多相似。你們可以在這個樣本里看到,兩個非常不同的生成代碼,將生成完全相同的結(jié)果。
唯一的區(qū)別是,單一代碼,或者flag的長短版本。這有些誤導(dǎo)性,因為你會得到非常低的分?jǐn)?shù),它是假陽性(false positive)的,因為你在最終會得到同樣的預(yù)期結(jié)果。
由于我們使用的是小樣本學(xué)習(xí),我們需要辨別我們的庫里哪些是最接近的樣本,為我們的模型提供一個指導(dǎo)。所以,我們嘗試了不同的技巧,我們稱之為“Sentiment Classifier”的是了解用戶意圖,以及這個請求在更大的樣本庫里放在哪里適合。我們做了嘗試,高等級類別對于這里的分類器(classifier)而言有些太寬泛、有些混淆,因此我們還決定關(guān)注普通級別的分類,后者也有些偏頗,因為如之前所提到的,有些指令的樣本更少,因此我們的數(shù)據(jù)集非常不平衡。
所以,我們決定采用一個常用的技巧,被稱為“Density-Based Spatial Clustering”方法,在數(shù)據(jù)內(nèi)提取自然分組,以便讓我們試圖關(guān)注的數(shù)據(jù)更有代表性。
如之前所述,我們了解的是一對一樣本,因為這里的學(xué)習(xí)更穩(wěn)定,使用這些比率。
我們處理和訓(xùn)練這部分?jǐn)?shù)據(jù),使用了“High-Level APIs”,它們是我們調(diào)用壓縮更復(fù)雜任務(wù)的函數(shù)。如右側(cè)案例,你可以要求“改變pCube1顏色為紅色”,它會使用Maya API通過三個Python命令反應(yīng)出來。我們的目標(biāo)是將它壓縮和封裝到一個高級別API,也就是單行,所以我們要求在它之上訓(xùn)練,就像將這些簡單的數(shù)值插入到更復(fù)雜的命令中。
因此,我們試圖聚焦于非常具體的用例,用更多通用函數(shù)調(diào)用,而不是直接使用API。這個函數(shù)其實知道Maya API。
我們?yōu)榱私档臀⒄{(diào)要求而做的其他一些事,就是提供更大范圍的上下文環(huán)境。我們的目標(biāo)是提供背后的用戶意圖,我們實現(xiàn)的方式是讓一個分類器預(yù)測用戶指令反映的可能被使用的命令,我們提供預(yù)期命令的函數(shù)簽名、描述、flag,以及一些描述。有時候,我們還提供用例,如它展現(xiàn)在Dockstring結(jié)構(gòu)形式里的那樣。這是可選的,因為我們已經(jīng)在使用小樣本學(xué)習(xí),后者已經(jīng)提供了很多樣本,它們更符合用戶使用的命令順序。
基本上,這就是我們設(shè)計指令的一個總結(jié),隨它提供一個非常高級別的背景,通常只是說我們在使用Maya Python API并展示出來。在基于這些大型語言模型訓(xùn)練的核心模型中,你還需要加入大量不同版本,所以我們做的是聚焦于我們想要的版本,確保這些版本之間不會有矛盾。
此外,我們還提供了延展背景,這個背景實際被分為三個部分,第一個我們稱之為任務(wù)特定的信息,提供通過dockstring結(jié)構(gòu)形式來反應(yīng)的用戶意圖;第二部分提供小樣本學(xué)習(xí)的樣本,也就是這個任務(wù)的不同描述版本,確保它被封裝在模型的請求中;另外,我們也使用來自這部分和歷史背景的其他類型的背景。
Demo
我們這里有一個demo,我會講解每一步執(zhí)行了什么動作。
這是我們從KITBASH3D得到的一個場景,來展示一些真實資產(chǎn),讓你們知道如何用在插件內(nèi)與之互動。
首先我會開啟燈光,這樣我要增加光源的時候你們可以看到變化。
接下來我會要求增加一個太陽,重命名為Sun,你不需要成為專家就可以知道一個太陽帶來的將是來自很遠地方的平行光,有了這種插件是很酷的。
我要求替代、并將其旋轉(zhuǎn)90度,說“你能夠?qū)⑺{(diào)低15度?”這其實是在X軸,減掉15度,
你可以用自己的話說,將強度降低到50%,你還可以說“我想再降低一些,讓他更像環(huán)境”。
再回到光源,我會增加一個攝像頭并重命名,你也可以一句話里加入多個請求,我會將它移動到路燈前面,“將攝像頭移動到路燈前”,它實際上知道應(yīng)該放在什么位置。
讓它指向正面建筑結(jié)構(gòu),我們來通過攝像頭來看真實視角。我會要求它隱藏路燈,因為看起來它似乎錯位了。
接下來我希望了解不同的光源來強調(diào)這些,可以看到墻上的燈,我會增加光源,來強調(diào)建筑的細節(jié),增加壁燈,然后問“能否指出它在哪里?”只需要用你自己的語言,然后我復(fù)制這個燈,放在右邊同樣的位置。
然后對右邊的燈重命名,因為它是在左側(cè)被創(chuàng)造的,然后要求它將燈放在右邊的位置,它就會移動到這里。
我們再做些更酷的事情,回到我們創(chuàng)造的攝像頭,現(xiàn)在我要求改變這些光源的顏色,“將左側(cè)聚光燈顏色變紅”,然后右側(cè)也同樣操作。
將它調(diào)得更亮一些,“10倍亮度”,可以看屬性編輯器,這里燈的數(shù)值1被改成了10,所以,你不必知道如何進入這些菜單和工具條進行調(diào)整。
我們也可以對材質(zhì)做一些很酷的事情,比如對前面的花瓶使用與柱子同樣的材質(zhì)。
對于這些玻璃,我可以讓剛剛移除的街燈放在門口左側(cè),然后旋轉(zhuǎn),“將其向右旋轉(zhuǎn)90度”,接著增加另一個路燈形成對稱效果。
技術(shù)總監(jiān)也可以用它來在非常復(fù)雜的場景中做出非常小的改變?;蛘?,你也可以是一個學(xué)習(xí)這些技巧的新手,能夠看到我們插件生成的代碼,在操作的過程中可以學(xué)習(xí)腳本,而不是專門的操作或者只是學(xué)習(xí)如何使用Python API。
未來展望
對于未來的工作,我們在關(guān)注這些模型的問題,尤其是文本模型,GPT-4提供了另一個選擇,它們不一定理解3D世界。我們的目標(biāo)是使用這種多模帶來更好的結(jié)構(gòu),比如通過USD呈現(xiàn)的比ERT更好。
另外,我們還會引入“Multiple Completions”,也就是提供更多類似樣本,比如你會用不同于的說法,或者是適合其他用戶的方法,在你輸入指令的時候給出提示建議。
可以看到,我們最開始用的是Codex,現(xiàn)在用了ChatGPT 3/3.5,在你輸入的時候,會出現(xiàn)提示,以便幫你得到更好的結(jié)果。
目前,我們加入了攝像頭照明,物體操控與材質(zhì),不過,未來我們希望拓展到渲染,并且已經(jīng)有了一些行之有效的案例。當(dāng)然,UI和布局通常做起來都很難,因為你需要使用很多的菜單與工具條,所以,我們也可以用同樣的技術(shù)控制。
當(dāng)然,希望可以運用到動畫和建模,加入一些基礎(chǔ)功能,例如幫助定位、動畫骨骼,或者更高級別的建模。
關(guān)鍵詞:
相關(guān)閱讀
-
Autodesk分享:讓3D美術(shù)師更強大,如何...
「?點擊上方& 34;GameLook& 34;,訂閱微信?」在游戲研發(fā)領(lǐng)域,Maya是 -
普元信息簽約船舶行業(yè)領(lǐng)先企業(yè)
證券時報e公司訊,近日,普元信息成功簽約某船舶行業(yè)領(lǐng)先企業(yè),將融合 -
醫(yī)療腐敗的核心是院長、主任,是掌握權(quán)...
北大這個叫李玲的為醫(yī)療腐敗找理由令人惡心,根治醫(yī)療腐敗是讓醫(yī)生有陽 -
ixia(關(guān)于ixia的基本詳情介紹)
1、美國IXIA公司的應(yīng)用層性能測試軟件IxChariot是一個獨特的測試工具, -
開辟“綠色通道”,最多可縮減至20個工...
邵永高鐵環(huán)境影響報告書通過專家評審。通訊員攝華聲在線8月12日訊(全 -
格爾軟件6月26日盤中跌幅達5%
以下是格爾軟件在北京時間6月26日14:03分盤口異動快照:6月26日,格爾 -
金融監(jiān)管總局:全力以赴做好保險理賠工作
從國家金融監(jiān)督管理總局獲悉,金融監(jiān)管總局將支持防汛救災(zāi)和災(zāi)后恢復(fù)重 -
探訪良渚博物院 看鎮(zhèn)館之寶 感受良渚...
考古研究顯示,良渚文化存在于距今5300年到4300年之間,目前,良渚博物 -
再次預(yù)撥14.6億元!中央財政已下達各項...
針對近期京津冀及東北地區(qū)嚴(yán)重暴雨洪澇災(zāi)害,8月11日,財政部、應(yīng)急管 -
國家一級保護野生動物彩鹮現(xiàn)身云南孟連
近日,國家一級保護野生動物彩鹮現(xiàn)身云南普洱孟連。畫面中,彩鹮和白鷺 -
長江源頭興起登山熱
初秋時節(jié),長江源頭仍有綠意。沿著109國道深入可可西里,在太陽的照射 -
新時代中國調(diào)研行·長江篇丨長江源頭興...
新時代中國調(diào)研行·長江篇丨長江源頭興起登山熱---新華社西寧8月12... -
寧夏預(yù)制菜都有啥?一起來這場大會一探...
01:118月12日至14日,寧夏預(yù)制菜產(chǎn)業(yè)發(fā)展推進會暨首屆寧夏重點預(yù)制菜推 -
太倉美食探店烤肉哪家好吃 太倉燒烤的...
今年去上海邊上的太倉,吃了頓燒烤4個人花了500多,還沒敢點多呢。在沈 -
中國聯(lián)通服務(wù)密碼怎么查詢_中國聯(lián)通服務(wù)...
你們好,最近小活發(fā)現(xiàn)有諸多的小伙伴們對于中國聯(lián)通服務(wù)密碼怎么查詢, -
女生說自己飛機場什么意思(飛機場什么...
導(dǎo)讀1、飛機場有一種意思就是停飛機用的。2、我們現(xiàn)實生活中的一個地方 -
哈維談內(nèi)馬爾&羅克:專注于下一場比賽 ...
哈維今天出席了新聞發(fā)布會,并談到了巴薩緋聞對象內(nèi)馬爾。被記者問及內(nèi) -
客戰(zhàn)領(lǐng)頭羊拿3分,喬迪:祝賀我的團隊,...
客戰(zhàn)領(lǐng)頭羊拿3分,喬迪:祝賀我的團隊,做出了非常完美的工作,喬迪,浙 -
姑媽:戰(zhàn)勝GEN不僅能晉級決賽也能晉級S...
戰(zhàn)勝GEN不僅能晉級決賽也能晉級S賽Gumayusi也是說到了關(guān)于這一次比賽的 -
創(chuàng)新網(wǎng)格治理模式,“紅港灣”特色品牌...
黃埔街港灣一村社區(qū)是一個典型的老舊小區(qū),常住居民5000人,其中60歲以