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