色婷婷综合在线,在线日韩欧美一区二区三区,欧美日韩中文字幕在线,一区国产视频,极品嫩模,h美女漫画网站,亚洲wuma

您的位置:首頁>市場(chǎng) >

Autodesk分享:讓3D美術(shù)師更強(qiáng)大,如何在Maya中使用AI插件

2023-08-13 08:36:37    來源:騰訊網(wǎng)

在游戲研發(fā)領(lǐng)域, Maya是制作游戲美術(shù)資源、動(dòng)畫、場(chǎng)景的主流軟件,也美術(shù)以及TA工作者們使用最多的工具之一。


(相關(guān)資料圖)

隨著AIGC技術(shù)的發(fā)展,Autodesk也在使用機(jī)器學(xué)習(xí)讓該公司旗下的工具可以幫助美術(shù)從業(yè)者提高效率,并降低這些專業(yè)工具的使用門檻。

今年的GDC活動(dòng)中,來自Autodesk公司的基礎(chǔ)產(chǎn)品經(jīng)理Chip Weatherman和高級(jí)工程師Bruno Roy就分享了Maya最新的AI插件,讓同行們可以通過大型語言模型在Maya里進(jìn)行直觀互動(dòng),哪怕是沒有代碼基礎(chǔ)的小白,也能通過文字指令實(shí)現(xiàn)專家級(jí)別的操作。

以下是Gamelook聽譯的完整內(nèi)容:

Chip Weatherman:

我是Chip Weatherman,我是Autodesk基礎(chǔ)產(chǎn)品經(jīng)理,基礎(chǔ)團(tuán)隊(duì)負(fù)責(zé)3ds Max和Maya所有的API和SDK。另外,我還和其他內(nèi)部團(tuán)隊(duì)一起合作,例如我與Bruno領(lǐng)導(dǎo)的與微軟合作的團(tuán)隊(duì)。

圍繞機(jī)器學(xué)習(xí)和AI,一直都有些爭(zhēng)議,比如它有可能搶走美術(shù)師們的工作。但我們希望采取另一種方式,實(shí)際上只是讓美術(shù)師變得更強(qiáng)大,用更少的操作步驟給他們加速,讓他們更快速完成工作。

我入行超過20年了,但這種互動(dòng)模型從來沒有變過,無論是應(yīng)用還是行業(yè)?,F(xiàn)在,我們有機(jī)會(huì)在未來極大改變這種狀況,使其變得更好。接下來不再贅述,讓Bruno介紹一些技術(shù)細(xì)節(jié)。

Bruno Roy:

基本上,就像Chip所說,這個(gè)項(xiàng)目是與微軟團(tuán)隊(duì)合作的,他們稱之為AI加速工作室團(tuán)隊(duì),也就是通過Azure模型為我們提供OpenAI的訪問,后者對(duì)于測(cè)試你如何利用這些類型的模型上的服務(wù)的層是非常好用的。

我會(huì)非常簡(jiǎn)短地介紹這個(gè)項(xiàng)目的真正靈感的一些背景,以及我們?cè)谏墒紸I領(lǐng)域所處的位置。我還會(huì)介紹我們部署這種方法的一個(gè)簡(jiǎn)短概覽,當(dāng)然,我們還會(huì)提到數(shù)據(jù)以及我們實(shí)現(xiàn)它所做的試驗(yàn),我們會(huì)展示一個(gè)簡(jiǎn)短demo,是直接在Maya里操作的錄屏,最后我們會(huì)宣布測(cè)試,以及未來將會(huì)著手提升的未來范圍。

背景與動(dòng)機(jī)

非常簡(jiǎn)短的背景介紹,或許很多的概念對(duì)很多人來說都并不是新的。不過,我們的目標(biāo)是充分利用“自然語言處理(Natural Language Processing,即NLP)”以更好地理解我們?nèi)绾伪磉_(dá)事情來創(chuàng)作內(nèi)容,在這個(gè)案例中特指的是在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)在通過這些模型都是可實(shí)現(xiàn)的。

當(dāng)然,與我們項(xiàng)目更接近的事Codex,與GPT相反,訓(xùn)練和目的是生成代碼,所以,我們希望的就是為Maya整合自然語言和代碼生成。

我們對(duì)Maya Assist的立場(chǎng),實(shí)際上我們內(nèi)部把這個(gè)項(xiàng)目稱之為Maya Codex,它作為一個(gè)插件隨著測(cè)試發(fā)布,介于DALL-E和Codex之間。因此,我們的目標(biāo)是利用NLP代碼生成用于Maya當(dāng)中的內(nèi)容創(chuàng)作和互動(dòng)。

所以,這背后的動(dòng)機(jī),就是讓這些工具更加直觀,你不用成為專家也能使用它們。當(dāng)然,我們還希望通過始終這種功能引入一個(gè)學(xué)習(xí)過程。因此,使用我們的插件,你可以始終看到這些模型產(chǎn)出而生成的代碼,這樣,你通過Maya里的API也可以用這種模型學(xué)習(xí)腳本。

方法概覽

當(dāng)然,自動(dòng)化是很明顯的一個(gè)目標(biāo),因?yàn)槟阆M麑?shí)用腳本自動(dòng)化繁重的工作,以及重復(fù)性的工作。所以這是非常高層級(jí)的概覽,我們?cè)贛aya里有一個(gè)插件,這個(gè)插件調(diào)用我們稱之為的“Maya輔助服務(wù)層”。這一層,如果我們要深入了解的話,它是連接OpenAI模型,也是我們尋求多樣化反饋并從中生成代碼的地方。

這是來自微軟的AI加速工作室團(tuán)隊(duì)提供的,實(shí)際上這就是我們使用、評(píng)估并更新使用模型的整個(gè)管線,從這個(gè)插件輸入代碼。

基本上,我們有用戶指令,這些指令作為樣本被我們的入口和反饋服務(wù)解析,這會(huì)被用來創(chuàng)作一個(gè)數(shù)據(jù)集,我們會(huì)使用該數(shù)據(jù)集的不同變體來做大量實(shí)驗(yàn),并且看哪里取得進(jìn)展、哪里能夠評(píng)估一些指標(biāo),以確保我們的模型方向正確。

一旦對(duì)不同實(shí)驗(yàn)的結(jié)果感到滿意,就可以通過Azure用我們的管線提升、實(shí)際上是對(duì)當(dāng)前的模型進(jìn)行升級(jí)。因此,這對(duì)于用戶是透明的,他們知道自己使用的事更新過的模型。

通過這個(gè)服務(wù),返回的其實(shí)是由Azure OpenAI生成的代碼,所以這個(gè)代碼是使用Maya API的Python代碼,用來控制UI,包括創(chuàng)作內(nèi)容。

這是一個(gè)非常簡(jiǎn)單的用例,我們的用戶輸入“為場(chǎng)景增加立方體”,從那個(gè)插件返回的命令就是生成這個(gè)幾何體,因此這里是polyCube命令。然后,后續(xù)操作可能是“在X軸將立方體旋轉(zhuǎn)45度”,接下來通過一系列的指令輸入,你會(huì)得到帶有物體恰當(dāng)值參照的命令。

在這個(gè)插件里,實(shí)際上當(dāng)前的范圍聚焦四個(gè)類別以驗(yàn)證概念,我們現(xiàn)在只覆蓋攝像頭、光照、材質(zhì)以及整物體操作,后者是我們自己的稱呼,也就是不包括物體內(nèi)的元素,而是在場(chǎng)景中只操作整個(gè)物體。

對(duì)每個(gè)類別,我們都使用了簡(jiǎn)單的操作,例如剛體變換(rigid transformation),不過也有一些更復(fù)雜的,比如你可以用插件將一個(gè)物體與其他物體關(guān)聯(lián),它會(huì)理解3D場(chǎng)景并將其實(shí)現(xiàn)。實(shí)際上,在插件界面的紅框內(nèi),有一些建議告訴你該如何稱呼它,或者可以使用哪些命令。

數(shù)據(jù)

不令人意外的是,帶有這種能力的數(shù)據(jù)是至關(guān)重要的。我們當(dāng)然需要強(qiáng)大的數(shù)據(jù)集,以確保我們能夠精準(zhǔn)衡量進(jìn)度。因此評(píng)估(數(shù)據(jù))集的想法是我們的真實(shí)數(shù)據(jù),我們會(huì)與之對(duì)比來看我們做的有多好。

基本而言,這個(gè)數(shù)據(jù)包含了成對(duì)的自然指令與命令,當(dāng)然,這些命令包括我之前提到的四個(gè)類別的案例。這些由各領(lǐng)域的專家審核,所以,我們確保這些指令能夠制作出用戶指令描述的東西。

我們還使用這些樣本來優(yōu)化實(shí)驗(yàn)?zāi)P偷膮?shù)和配置,因此,我們也在用這個(gè)數(shù)據(jù)集來優(yōu)化我們的模型,在最近的版本做出更好的提升。

有關(guān)這一點(diǎn)可能比較有趣的是,我稍后會(huì)說,該評(píng)估集80%的分布都是由一對(duì)一樣本組成,這些對(duì)應(yīng)用戶生成的一個(gè)指令,它就生成一個(gè)命令,我們還有其他的案例,它會(huì)生成更多行命令。但實(shí)際上,如果你由一對(duì)一樣本,它的學(xué)習(xí)會(huì)更好。所以,基本上,你代碼里的一個(gè)命令使用一行代碼。

出于驗(yàn)證和微調(diào)目的,我們還需要增長這個(gè)數(shù)據(jù)集,我們需要更多數(shù)據(jù)來訓(xùn)練和微調(diào)。所以,這里我們使用來自評(píng)估集力的成對(duì)的樣本,我們使用一個(gè)Synthetic Data Generator在這些自然指令里提取一些元素。基本就是行為動(dòng)詞、數(shù)值、物體參照,我們生成更抽象通用的表達(dá),以后可以用來生成更多的變體。

當(dāng)然,我們?cè)谑褂眠@些樣本對(duì)應(yīng)的代碼,并將其輸入我們的訓(xùn)練模型以便在更多延伸案例中帶來更好的提升。這些模型樣本的使用方法有些是有幫助的,比如我們的“(零)小樣本學(xué)習(xí)(zero/few-shot learning)”。

我們這里對(duì)小樣本學(xué)習(xí)做了一系列的試驗(yàn),隨著我們收到更多的請(qǐng)求,我們提供更多與玩家請(qǐng)求相似的樣本,只是提供了更多的上下文環(huán)境。

這里要強(qiáng)調(diào)一些事情,不管我們使用哪個(gè)模型,都有歷史背景,它指的是此前被用戶使用的命令,或者在這些精準(zhǔn)指標(biāo)當(dāng)中比小樣本學(xué)習(xí)部分更有影響力?;緛碚f,小樣本學(xué)習(xí)就是選取一些類似的樣本提供給用戶的請(qǐng)求,而歷史背景則是用戶此前使用過的命令。

更有趣的是,當(dāng)你將兩者結(jié)合起來,可以得到底部那樣表現(xiàn)更好的模型,因此我們使用的是小樣本學(xué)習(xí)的五個(gè)樣本,加上像這樣帶有歷史背景的樣本。

在所有支持的類別中,我們的精確度超過80%,這是非常好的。實(shí)際上,如果看右邊,這些指標(biāo)的純命令分解的得分會(huì)低一些,我們?cè)谶@些地方得分較低的唯一原因,就是一些指令太過于簡(jiǎn)單,所以我們實(shí)際上能夠?qū)W習(xí)的樣本更少。

為了評(píng)估我們處理這些樣本的效果,我們?cè)谶@里使用了我們所謂的“Exact Match Error Analysis”,基本上就是對(duì)比預(yù)期以及生成的代碼,所以我們是在看它們有多相似。你們可以在這個(gè)樣本里看到,兩個(gè)非常不同的生成代碼,將生成完全相同的結(jié)果。

唯一的區(qū)別是,單一代碼,或者flag的長短版本。這有些誤導(dǎo)性,因?yàn)槟銜?huì)得到非常低的分?jǐn)?shù),它是假陽性(false positive)的,因?yàn)槟阍谧罱K會(huì)得到同樣的預(yù)期結(jié)果。

由于我們使用的是小樣本學(xué)習(xí),我們需要辨別我們的庫里哪些是最接近的樣本,為我們的模型提供一個(gè)指導(dǎo)。所以,我們嘗試了不同的技巧,我們稱之為“Sentiment Classifier”的是了解用戶意圖,以及這個(gè)請(qǐng)求在更大的樣本庫里放在哪里適合。我們做了嘗試,高等級(jí)類別對(duì)于這里的分類器(classifier)而言有些太寬泛、有些混淆,因此我們還決定關(guān)注普通級(jí)別的分類,后者也有些偏頗,因?yàn)槿缰八岬降?,有些指令的樣本更少,因此我們的?shù)據(jù)集非常不平衡。

所以,我們決定采用一個(gè)常用的技巧,被稱為“Density-Based Spatial Clustering”方法,在數(shù)據(jù)內(nèi)提取自然分組,以便讓我們?cè)噲D關(guān)注的數(shù)據(jù)更有代表性。

如之前所述,我們了解的是一對(duì)一樣本,因?yàn)檫@里的學(xué)習(xí)更穩(wěn)定,使用這些比率。

我們處理和訓(xùn)練這部分?jǐn)?shù)據(jù),使用了“High-Level APIs”,它們是我們調(diào)用壓縮更復(fù)雜任務(wù)的函數(shù)。如右側(cè)案例,你可以要求“改變pCube1顏色為紅色”,它會(huì)使用Maya API通過三個(gè)Python命令反應(yīng)出來。我們的目標(biāo)是將它壓縮和封裝到一個(gè)高級(jí)別API,也就是單行,所以我們要求在它之上訓(xùn)練,就像將這些簡(jiǎn)單的數(shù)值插入到更復(fù)雜的命令中。

因此,我們?cè)噲D聚焦于非常具體的用例,用更多通用函數(shù)調(diào)用,而不是直接使用API。這個(gè)函數(shù)其實(shí)知道Maya API。

我們?yōu)榱私档臀⒄{(diào)要求而做的其他一些事,就是提供更大范圍的上下文環(huán)境。我們的目標(biāo)是提供背后的用戶意圖,我們實(shí)現(xiàn)的方式是讓一個(gè)分類器預(yù)測(cè)用戶指令反映的可能被使用的命令,我們提供預(yù)期命令的函數(shù)簽名、描述、flag,以及一些描述。有時(shí)候,我們還提供用例,如它展現(xiàn)在Dockstring結(jié)構(gòu)形式里的那樣。這是可選的,因?yàn)槲覀円呀?jīng)在使用小樣本學(xué)習(xí),后者已經(jīng)提供了很多樣本,它們更符合用戶使用的命令順序。

基本上,這就是我們?cè)O(shè)計(jì)指令的一個(gè)總結(jié),隨它提供一個(gè)非常高級(jí)別的背景,通常只是說我們?cè)谑褂肕aya Python API并展示出來。在基于這些大型語言模型訓(xùn)練的核心模型中,你還需要加入大量不同版本,所以我們做的是聚焦于我們想要的版本,確保這些版本之間不會(huì)有矛盾。

此外,我們還提供了延展背景,這個(gè)背景實(shí)際被分為三個(gè)部分,第一個(gè)我們稱之為任務(wù)特定的信息,提供通過dockstring結(jié)構(gòu)形式來反應(yīng)的用戶意圖;第二部分提供小樣本學(xué)習(xí)的樣本,也就是這個(gè)任務(wù)的不同描述版本,確保它被封裝在模型的請(qǐng)求中;另外,我們也使用來自這部分和歷史背景的其他類型的背景。

Demo

我們這里有一個(gè)demo,我會(huì)講解每一步執(zhí)行了什么動(dòng)作。

這是我們從KITBASH3D得到的一個(gè)場(chǎng)景,來展示一些真實(shí)資產(chǎn),讓你們知道如何用在插件內(nèi)與之互動(dòng)。

首先我會(huì)開啟燈光,這樣我要增加光源的時(shí)候你們可以看到變化。

接下來我會(huì)要求增加一個(gè)太陽,重命名為Sun,你不需要成為專家就可以知道一個(gè)太陽帶來的將是來自很遠(yuǎn)地方的平行光,有了這種插件是很酷的。

我要求替代、并將其旋轉(zhuǎn)90度,說“你能夠?qū)⑺{(diào)低15度?”這其實(shí)是在X軸,減掉15度,

你可以用自己的話說,將強(qiáng)度降低到50%,你還可以說“我想再降低一些,讓他更像環(huán)境”。

再回到光源,我會(huì)增加一個(gè)攝像頭并重命名,你也可以一句話里加入多個(gè)請(qǐng)求,我會(huì)將它移動(dòng)到路燈前面,“將攝像頭移動(dòng)到路燈前”,它實(shí)際上知道應(yīng)該放在什么位置。

讓它指向正面建筑結(jié)構(gòu),我們來通過攝像頭來看真實(shí)視角。我會(huì)要求它隱藏路燈,因?yàn)榭雌饋硭坪蹂e(cuò)位了。

接下來我希望了解不同的光源來強(qiáng)調(diào)這些,可以看到墻上的燈,我會(huì)增加光源,來強(qiáng)調(diào)建筑的細(xì)節(jié),增加壁燈,然后問“能否指出它在哪里?”只需要用你自己的語言,然后我復(fù)制這個(gè)燈,放在右邊同樣的位置。

然后對(duì)右邊的燈重命名,因?yàn)樗窃谧髠?cè)被創(chuàng)造的,然后要求它將燈放在右邊的位置,它就會(huì)移動(dòng)到這里。

我們?cè)僮鲂└岬氖虑?,回到我們?chuàng)造的攝像頭,現(xiàn)在我要求改變這些光源的顏色,“將左側(cè)聚光燈顏色變紅”,然后右側(cè)也同樣操作。

將它調(diào)得更亮一些,“10倍亮度”,可以看屬性編輯器,這里燈的數(shù)值1被改成了10,所以,你不必知道如何進(jìn)入這些菜單和工具條進(jìn)行調(diào)整。

我們也可以對(duì)材質(zhì)做一些很酷的事情,比如對(duì)前面的花瓶使用與柱子同樣的材質(zhì)。

對(duì)于這些玻璃,我可以讓剛剛移除的街燈放在門口左側(cè),然后旋轉(zhuǎn),“將其向右旋轉(zhuǎn)90度”,接著增加另一個(gè)路燈形成對(duì)稱效果。

技術(shù)總監(jiān)也可以用它來在非常復(fù)雜的場(chǎng)景中做出非常小的改變?;蛘撸阋部梢允且粋€(gè)學(xué)習(xí)這些技巧的新手,能夠看到我們插件生成的代碼,在操作的過程中可以學(xué)習(xí)腳本,而不是專門的操作或者只是學(xué)習(xí)如何使用Python API。

未來展望

對(duì)于未來的工作,我們?cè)陉P(guān)注這些模型的問題,尤其是文本模型,GPT-4提供了另一個(gè)選擇,它們不一定理解3D世界。我們的目標(biāo)是使用這種多模帶來更好的結(jié)構(gòu),比如通過USD呈現(xiàn)的比ERT更好。

另外,我們還會(huì)引入“Multiple Completions”,也就是提供更多類似樣本,比如你會(huì)用不同于的說法,或者是適合其他用戶的方法,在你輸入指令的時(shí)候給出提示建議。

可以看到,我們最開始用的是Codex,現(xiàn)在用了ChatGPT 3/3.5,在你輸入的時(shí)候,會(huì)出現(xiàn)提示,以便幫你得到更好的結(jié)果。

目前,我們加入了攝像頭照明,物體操控與材質(zhì),不過,未來我們希望拓展到渲染,并且已經(jīng)有了一些行之有效的案例。當(dāng)然,UI和布局通常做起來都很難,因?yàn)槟阈枰褂煤芏嗟牟藛闻c工具條,所以,我們也可以用同樣的技術(shù)控制。

當(dāng)然,希望可以運(yùn)用到動(dòng)畫和建模,加入一些基礎(chǔ)功能,例如幫助定位、動(dòng)畫骨骼,或者更高級(jí)別的建模。

關(guān)鍵詞:

相關(guān)閱讀

澎湖县| 南漳县| 宝丰县| 商丘市| 南漳县| 宣恩县| 娄底市| 共和县| 澄江县| 贵德县| 昂仁县| 鄯善县| 高要市| 罗田县| 天等县| 河东区| 贞丰县| 鄂州市| 江津市| 凤庆县| 公主岭市| 冕宁县| 济南市| 娄底市| 循化| 额济纳旗| 甘德县| 思南县| 伊金霍洛旗| 金溪县| 阿城市| 左贡县| 合作市| 宜兴市| 凤台县| 民乐县| 福海县| 井陉县| 东山县| 金溪县| 临海市|