2022年2月23日 星期三

Unity 搜尋2021.2大耀進

原文:https://blog.unity.com/technology/the-latest-in-search-unity-20212

過去一年裡,Unity 的搜索功能經歷了極大的轉變。除了能按名稱找尋物件的 Quick Search 套件,還有更為精細的核心搜索功能,能保存與查看搜索結果,並使用類似 LINQ 的語言來做複雜搜索。

*安裝Quick Search 可以從 Project Settings啓用 Preview Packages 選項後從Package manager安裝。


改進後的數據排列


今天介紹的 Asset Indexing System(資源索引系統)比以往更好用。初次排列佔用更少的時間和空間,而且還支援在 Index Manager(Window > Search > IndexManager )中自訂擴充索引量。


像圖中一樣啓用列表中的 Properties 和 Dependencies,你就可以更充分地利用新的 Search Picker 和 Table。


搜索記錄組織


另一個重大改進是超好用的搜索記錄(Save Searches)。由於重復地搜索很麻煩,所以我們為搜索記錄加了新的組織選(Search Organization)。





新選項包含:只顯示在個人頁面的 User Searches(保存為偏好設定),以及所有專案參與人共享的 Project Searches (保存為專案資源)。你可以為結果設定圖標,並在新窗口中打開搜索結果。搜索窗口的狀態將被保留,搜索資料、圖標大小(特別是 Table layout)和打開的搜索欄將始終被恢復。



Search Table視圖


搜索窗口允許以多種方式可視化對象,包括列表、大圖標列表及多種尺寸的塊狀視圖,如下圖所示。





Unity 2021.2 支援在 Table 中可視化查詢結果:





你可以按名稱或描述來進行排序,甚至能用 Search Expression(搜索表達式)來找文件屬性,產生類似下方的列表:





當然,這些花時間弄的列表也是可以保存的。之前提到整個搜索窗口狀態將持續保留,這其中也包括這些列表格局。你甚至可以建立自己的資源管理器,同時比對多個文件的屬性值。





在建立好一個列表格局後,你可以點 Save 按鈕將詳細的報告保存為 CSV 或 JSON 文件,方便審查和比較同一專案的各個版本內容。





Search Picker

本功能更能滿足專業 Unity 開發者的需求。Unity 現在可以用搜索窗口用更為複雜的搜索指令來讓搜索更加精確。你可以在程式碼中指明搜索所涉及的腳本屬性。

先為任意參考屬性加上 [SearchContextAttribute] 特性,再指定每次搜索的 Search Provider,來發起一次範圍更小的初始搜索,或設定 Search View Flags 來更改 Search Picker 的外貌。


上方設定結果看起來會像這樣:




Search Picker 視圖預設顯示格式


搜索表達式

最後,我們加入了搜索表達式的概念。搜索表達式可讓搜索更強大。那它究竟能幫你做些什麼呢?

  1. 你能用它來發起一次交叉比對多個 Search Provider 的搜索,或同時發起多次搜索。 比如說,顯示場景內所有著色器無法編譯的物件。
  2. 在搜索中轉換和篩選結果,表達式非常像 LINQ 加上 SQL 加上 Lisp(S-Expression 句法)。
    sort{count{...groupby{a:assets, @type}}, @value, desc}
    select{t:LODGroup, @lodsize}
  3. 在 Search Table 中就能做複雜的搜索,並將結果列為表格。Search Expression 可用作長期整合或驗證系統的基礎。

當然 Search Expression 的句法非常多,你可能會在搜索時用到以下內容:

找出所有帶有「rock」貼圖的Prefab:

t:prefab ref={t:texture rock}

這時搜尋系統將根據 t:texturerock 開始找,然後到所有貼圖上查 t:prefabref=,最後匯總並顯示結果。


找出專案中的資源種類數:

count{t={distinct{select{a:assets, @type}}}}


求出專案中所有 LODGroup 設定文件的平均 LODSize:


avg{select{t:LODGroup, @lodsize}}


通常大括號就代表著搜索表達式。而前綴 avg、 select、 distinct 則表達搜索結果的處理方法。求值過程執行於Unity的背景,無論搜索有多複雜、數據有多大,搜索不會導致無回應的情況。


搜索功能同樣支援保存非常長的搜索表達式,方便下次使用。






反饋


本文介紹的功能都在 Unity 編輯器文件中有說明。

並且,我們還製作了多個搜索功能範例和幾種基於 Search 功能打造的工具,並上傳到 GitHub 供大家下載使用。

我們的 Wiki 百科還收錄了幾篇非常不錯的搜索功能文章,其中有一篇詳細解讀了更為精密的搜索表達式


Query Examples 頁面還偷放了 2022.1 新搜索功能的預覽。





歡迎大家下載體驗。


2021年6月29日 星期二

Unity 2021.2 beta開放測試

原文:https://blog.unity.com/technology/unity-20212-beta-is-available-for-feedback


Unity 2021.2 beta開放測試

本次測試將帶大家領略Unity本年度即將推出的內容,所有新功能和改進皆已開放體驗。 最新Unity 2021.2的重點依舊在於穩定性、效能和工作流優化等優先級較高的事項上,同時也包含許多備受期待的功能,以及其他尚處早期測試的內容。本文將對這些新功能做逐一介紹。 下方為2021.2中部分編程與編輯器體驗的改進亮點:

編輯器:場景視圖工具佈局、日常使用改進、編輯器效能優化,Apple Silicon 編輯器測試版、AI導航實驗包、眾多功能等等..
程式:效能改進、資源導入與SRP可編程構建管線優化
效能分析:優化了Profiler分析器的連續性、平台兼容及對可編程渲染管線的支援,新推出實驗性System Metrics Mali Package
平台兼容:新增Chrome OS、Android ABB的支援,改進了對安卓與WebGL的兼容,Adaptive Performance更新,UDP改進


Unity 2021.2還推出了大量的新功能與工具,恭候各位美術和團隊試用、反饋:

高清渲染管線(HDRP):體積雲、地形細節紋理、虛擬紋理流傳輸、Nvidia DLSS,光線路徑追蹤與貼花UX的改進
通用渲染管線(URP):場景調試視圖,反射探針混合功能與對Box Projection(盒型投影)的支援,URP延遲渲染器、貼花系統、深度信息預傳輸、光照圖層、光照Cookie、SSAO效能改進、新範例項目等
SRP:Lens Flare系統、Light Anchor、GPU Lightmapper Lightmap Space Tiling、Enlighten Realtime GI、SRP設置改進
創作工具:地形工具更新、SpeedTree 8植被、Shader Graph改進、UI Toolkit執行時、更好的VFX 圖形和ShaderGraph集成、改進的URP支援等
2D工具:2D渲染器改進、Light Explorer中的2D光照、Shader Graph的自定義光照節點、VFX支援、新2D URP模板、Sprite Atlas v2新API和文件夾、2D動畫更新、2D Tilemaps和2D Physics
影視製作:實驗性Sequences工具包,Recorder、Alembic和Python的更新、簡化的Cinemachine Impulse功能、Unity Virtual Camera虛擬攝像機和Beta版面部捕捉


新版引擎即日起已在Unity Hub及官方下載頁面開放下載,引擎迄今包含了3000多種修復與720多種新功能和修改。注意,測試版並不適用於實際的製作專案。若想用測試版中執行已有專案,請務必做好備份。

開發者反饋是發佈測試版最為重要的目的之一。為了鼓勵開發者反饋,我們專門與NVIDIA開展合作:每位送出了至少一個未知Bug的開發者將有機會贏得一張GeForce RTX™ 3090顯卡,總共兩張。具體細節請在文末瞭解。




如何送出反饋

試用新版引擎

歡迎各位前來探索和測試新功能,如有任何問題,請使用Bug Reporter進行上報:選擇Help>Report a Bug。詳盡的問題報告可幫助我們高效地調查問題、分配任務單,讓問題更快地解決。你也可以在論壇Unity Answers上提及問題,將Case ID送出給相關團隊。在實際上報Bug之前,你可以在公開的Issue Tracker中查看Bug是否已被送出。




以上便是參加Beta測試的好處了:你不僅能幫我們解決引擎的小問題、改進正式版外,還有機會參加Beta抽獎。注意,要想獲取抽獎資格,每個送出的Bug必須具有獨特性、且可以復現,並在報告中加入#Beta2021Win_NVIDIA標籤。

快來大顯身手吧

Beta and Experimental論壇是社區與Unity員工建立聯繫、討論預發佈技術和Beta版的地方。你的參與將幫助Unity團隊評估Beta版表現、規劃產品路線,更好地瞭解開發者的需求和水平,推動引擎工具的發展。請在2021.2測試版論壇中分享任何關於Beta測試版的反饋。

如果對Unity體驗持有意見、或想與我們一塑造引擎的未來,那就來加入Unity Pulse吧。作為全新的開發者調研平台與社區,我們將在此積極舉辦開發者調查、意向調查、圓桌會談、開發者訪談和小組討論,以此作為調動資源力量的參考。更多詳情請在這篇文章中瞭解。

接下來,我們來瞭解下新Beta尚待測試的地方吧。




編輯器


在 Unity 2021.2 中,我們繼續關注使用的改進,著重提高編輯器的效能、改進實用功能。

在此版本中,我們重修了場景視圖UX,為美術相關的工具添加了操作界面,以及可定制的浮動工具欄。修整工作將從場景工具(移動、旋轉、縮放等)、組件工具、場景方向與搜索欄開展。新系統具備一定的可擴展性,支援用自定義工具及工具欄構成操作界面。


全新場景視圖操作界面展開


編輯器中還有其它許多提高效率的改進,包括:

  • Transform組件現在可以限定縮放比例。
  • 支援資源的複製/剪切/粘貼,多個對象從層級視圖拖入項目窗口時會生成多個預製物件。
  • 複雜預製物件的檢視器更為清晰,「Revert to Prefab(回滾至預製物件)」支援多選。
  • 遊戲視圖「Maximize on Play(在執行時最大化)」新增多個選項。




我們還改進了檢視器中的數學表達:如sqrt(9) 或讓範圍內的值擴大2倍的*=2。各C#數值類型(如 Vector3)中的ToString() 現在預設顯示兩位小數而非一位小數。

點擊Renderer組件的材質字段現在會高光顯示該材質。





此版本還包括了眾多可視化程式設計的日常使用改進:打開空白圖表編輯窗口會彈出創建/載入圖表的指南;圖標與Unity編輯器有更高的一致性;「Unit(單元)」重命名為「Node(節點)」,「Super Unit(超級單元)」現稱為「Sub-Graph(子圖表)」。我們還減少了可視化程式專案的資源導入時間,並推出了更易使用的Script圖表與State圖表呼叫節點。

我們還針對搜尋功能進行了改進:新的Table View(列表視圖)可顯示出搜索結果的各個屬性、還支援按名稱或描述進行排序;新的Asset Picker支援根據參考資源來搜索其它相關項目。

在此版本中,Package Manager新增「feature set(功能集)」概念,根據一定的開發目標來劃分軟體包,比如2D遊戲開發或手機開發。一組軟體包應該能很好地互補,而各種學習資源現在也可在Package Manager中直接下載。

不僅如此,我們還於近期發佈了全新的Apple Silicon Editor Beta版,為M1 Mac開發者帶去了原生的Unity編輯器體驗。為了能在2021.2正式發佈前盡可能地改進編輯器,在測試期間我們歡迎大家的反饋。請在論壇上詳細瞭解Beta版的下載方法或向我們提供反饋。

此版本還包含了一系列資源處理的改進,新Beta版的迭代過程較之以往更加迅速。新的「Import Activity(導入活動)」窗口可揭開詳細的導入流程——導入/重新導入的對象、導入時間、導入耗時。


全新Import Activity窗口展開


得益於紋理、網格導入流程的優化以及新導入功能,資源導入流程有了全面的速度提升。請在該帖子中詳細瞭解此方面的改進。




最後,我們研究了改進構建流程的方法,並優化了Scriptable Build Pipeline(可編程構建管線)與Build Cache(構建緩存)的效能。我們還引入了支援累加式C#編譯的編譯方案,升級了Windows、macOS、安卓與WebGL平台上的源碼加密流程。由此,項目在經過修改後,執行版本的構建時間將與修改的大小形成正比。這項改進將在未來逐步推廣到其它平台上。

全新的IL2CPP源碼加密功能可產生較少的程式碼(最多可減少50%),降低構建耗時與可執行文件的體積。由於加密方法稍有不同,新功能可能會輕微影響執行時效能,因此其最適用於減少團隊內部的迭代時間。請在該論壇中分享新功能對你專案速度的影響。

我們還推出了AI Navigation實驗軟體包,它可為執行時及編輯器中NavMesh的規劃和使用提供額外的控制選項。詳情請參閱相關文件論壇


你可以在Package Manager中下載com.unity.ai.navigation實驗軟體包



程式工作流程


我們還新增了編程方面的效能改進,包括:


  • 更積極的函數內聯方法將提高C#數學運算效能
  • Async Read Manager API現在支援在Burst的Job中呼叫,包括非同步開啟、關閉和取消讀取的API
  • 資源垃圾回收代碼現在支援多線程
  • 常見數據模式的GUID hash產生速度快6倍

新版本還推出了一系列分析工具的改進:

  • 改善了Profiler與接入安卓設備的連接效能
  • Connection下拉菜單翻新為樹狀圖,玩家連接狀態將被分為本地、遠程和直連
  • 改進了平台支援,可更快獲取URP/HDRP代碼執行的GPU耗時
  • 全新API支援將隨機數據傳入Profiler,並可視化成單張圖表;支援在Profiler窗口中顯示遊戲及其它系統的效能指標,分析數據還能以不同的形式顯示
  • 改進了Profiler窗口中的Memory視圖。詳情請見論壇




新的 實驗性System Metrics Mali軟體包允許開發者訪問搭載Mali架構的移動設備的底層系統或硬件效能指標,用於分析或執行時效能調整。請在文檔論壇貼中瞭解詳情。你可以在Package Manager的「Add Package by Name(按名稱添加包)」功能中輸入 com.unity.profiling.systemmetrics.mali來獲取軟體


平台支援

我們增加了四個新的Screen API,方便使用多個顯示器的玩家自主選擇遊戲顯示屏、提供更為全面的顯示控制。它們分別是:Screen.mainWindowPosition、Screen.mainWindowDisplayInfo、Screen.GetDisplayLayout()和Screen.MoveMainWindowTo()。

新版本還支援安卓環境下的Chrome OS。Unity將支援採用x86、x86–64與Arm架構的Chrome OS設備。此外,開發者們還可以構築自己的輸入操控方案,來充分利用起鍵鼠或模擬控制器。Unity生態中新增對Chrome OS的支援意味著更少的平台維護、更輕鬆的谷歌商店發佈流程。請在文件論壇中瞭解詳情。

在2021.2中,Unity將直接支援使用新的安卓擴展文件格式Android App Bundle(AAB)構建資源。開發者可採用符合Google Asset Delivery規定的AAB格式,將任意應用發佈至Google Play。

Adaptive Performance 3.0也將登陸2021.2。新版本添加了Startup Boost模式,讓軟體在啓動時能選擇優先佔用CPU/GPU資源,讓遊戲啓動更快。它還集成了Unity Profiler,讓軟體執行分析更為高效。更多信息,請查看文件論壇

安卓端創作者們現在可以使用改進後的線程配置功能,來選擇應用優化方向:如節能或高效能。功能的預設設置可滿足大部分開發者的需求,但高級開發者也能進行精細化控制,最大限度地發掘應用在硬體上的效能。

對WebGL的改進包括2.0.19版的Emscripten,它可更快地完成構建、為目標WebGL播放器生成更小的WebAssembly文件。

新版引擎還預裝了部分手機瀏覽器上的WebGL播放器功能,包括陀螺儀、加速度計、重力傳感器和姿態傳感器(iOS和安卓瀏覽器),其他還包括前後置攝像頭,以及鎖定全屏屏幕方向的功能。

對壓縮音頻的支援降低了背景音樂及其它音頻文件的體積,減少了WebGL播放器的內存佔用量。

紋理現在有ASTC和ETC/ETC2兩種壓縮格式可供選擇,而桌面端的高質量紋理則可採用BC4/5/6/7格式。

Unity Distribution Portal(UDP)的改進包括對執行模式的支援。此外,遊戲將提前下載新制定的IAP產品,讓購買和消費一定成功,方便開發者在播放模式下直接測試商品的兌現情況,不必等待UDP方法的回調。

我們還加入了一份UDP應用指南,在明確而UDP應用方式後(即直接應用或借助Unity IAP),指南將提供步驟式說明以及代碼樣例。指南可在菜單的Implementation Guide(應用指南)部分找到。


影視製作

2021.2包含了許多對影片製作工具的改進及新的軟體包。

新的實驗功能Sequences(com.unity.sequences)是一種全新的影片創作工具,可讓電影的內容編輯流程井井有條、便於協作、更加靈活。請在文件中詳細瞭解功能。

新版Recorder集成了Arbitrary Output Variable(任意輸出變量,AOV),方便為VFX及圖像合成分割特效。我們還集成了光線路徑追蹤和Accumulation Motion Blur(累加式動態模糊),以獲得更逼真的渲染效果。

最新的Alembic格式支援從任意路徑流傳輸Alembic文件,繞過了導入這一步,同時對材質的處理也有了進一步改進。

簡化後的Cinemachine Impulse效果大大降低了爆炸等事件下的效果複雜度。

Python for Unity拓寬了Unity對更廣範圍的媒體娛樂應用的支援,讓引擎的應用範圍更加廣泛。在4.0版本中,Python將直接內建到引擎安裝包中,並且還向下兼容Python 3.7,重新載入時進程中的Python程序也不會被再度初始化。PySide更為精簡且執行於進程內,支援的虛擬環境也較為有限。更多詳情請在文件論壇中查看。

在2021.2中,新的實驗包將著重改進影片的高級製作方式。

iOS應用Unity Virtual Camera可借助蘋果ARKit讓編輯器內攝像機的運動跟隨真實設備記錄在AR中的運動。

Unity Face Capture(面部捕捉)支援用帶有Face ID的iPhone或iPad來捕捉、預覽和記錄面部表演,再將其綁定到模型上。要想試用Unity的Virtual Camera與Face Capture,就來報名參加Cinematics公開beta測試吧。





高清渲染管線(HDRP)

HDRP現在支援程序化Volumetric Clouds(體積雲),普通開發者可以通過調整參數來輕鬆做出不同類型的逼真雲彩,而高級開發者可以調整更詳細的設置或導入自制貼圖,更全面地掌控美術風格。

NVIDIA Deep Learning Super Sampling(深度學習超級採樣,DLSS)是一種借助人工智能來改善圖形效能和質量的技術,可以切實提高實時光線追蹤的幀率與分辨率,顯著改善光柵化圖形的效能和畫質,增強VR應用的效能表現與執行幀率,有效防止由低幀率引起的眩暈、惡心及其他不良影響。DLSS技術目前已登陸HDRP。


《LEGO Builder’s Journey》,由Light Brick Studio出品,6月22日發行於Windows PC與Nintendo Switch展開

為慶祝這項技術登陸Unity,我們與NVIDIA展開了合作,限量贈送兩張GeForce RTX™ 3090顯卡及限量版Unity x LEGOⓇ聯名人偶。具體細節請在文末瞭解。




HDRP光線路徑追蹤組件現在支援體積光散射(原先僅支援線性霧)。功能目前還支援發絲、織物、層疊光照和AxF材質,以及更為優秀的HDRI採樣。

在體積密度的體積排布與混合方面,功能現在支援將一張Render Texture(渲染紋理)或Custom Render Texture(自定義渲染紋理)用作組件的體積遮罩。其他新增功能包括彩色體積遮罩、高清體積遮罩(在HDRP中最多可遮蓋256個立方體)以及衰減型密度體積混合距離(線性或指數型衰減)。3D紋理圖集現在支援不同的3D紋理分辨率和RGBA 3D紋理。


HDRP體積雲展開


在聽取美術的反饋後,我們改進了HDRP Decals(貼花)擺放時的開發者體驗,新增Pivot支點工具,改進了UV修改操作,新增對縮放變換、預製物件的支援,以及小工具顏色編輯與多選編輯。

Streaming Virtual Texturing(虛擬紋理流傳輸,SVT)是一種紋理傳輸功能,可降低GPU內存佔用與紋理加載時間。其原理是將紋理拆分為小圖塊,然後逐步將圖塊載入 GPU內存。作為一項實驗性功能,SVT目前僅支援HDRP,而本次更新新增了對PS5的支援等其它改進。


通用渲染管線(URP)




URP的Scene Debug View(場景除錯視窗)模式現在的功能更為貼近原內置渲染管線,Render Pipeline Debug(渲染管線除錯)窗口也新增了URP的調試工作流。開發者可以使用調試窗口來檢視渲染中材質的屬性、光線與材質的相互作用,以及最終效果中的陰影與LOD。



增加了對反射探針混合和盒型投影的支援,提高探針的反射質量,讓URP的功能更為貼近內置渲染管線。



URP Deferred Renderer(延遲渲染器)採用了一種特殊的渲染方法,即在所有頂點與像素的著色器渲染完成後,在另一條通道上完成光線投影在屏幕空間中的渲染。延遲渲染會分割幾何體與光照的渲染,僅有那些影響到可見像素的光線投影效果會被計算。此方法能夠在場景中渲染大量的光照,同時還不會對前向渲染造成顯著的效能影響。



新的貼花系統支援將貼花材質投射到物體的表面上。貼花可貼合模型並受到光照影響,常用於為場景添加額外細節、為材質及細節圖案增添隨機性。

新增對深度預傳輸的支援,在這條渲染通道上,所有不透明網格的深度信息都會被載入深度緩衝區(不會產生片段著色成本),在後續渲染通道上使用。深度預傳輸可消除或顯著減少幾何渲染中的過度繪制現象,換句話說,任何後續的色彩渲染通道都可以復用這個深度緩衝區來為每塊像素呼叫一次片段著色器。

Light Layers(光照層)是一種可以划定特定光照僅影響特定表面的渲染層。換句話說,它就像Photoshop的圖層蒙版一樣,特定層的燈光只會影響到同一圖層上的模型網格。

URP Light Cookies可以通過遮擋或過濾外射光線來生成光照圖案,它可用於改變外射光線的外觀、形狀和強度來形成藝術效果,也能以極小的效能成本模擬出複雜的場景光照。


左圖啓用了SSAO,右圖並未啓用展開


Ambient Occlusion(環境光遮蔽)是指根據受光表面周圍的幾何形狀來估算出光照的亮度(或暗度)。SSAO在新版本中有了諸多改進,包括手機效能的改善、對延遲渲染的支援、深度/法線緩衝區中的法線貼圖、非受光表面和粒子特效。

從內建渲染管線到URP的升級現在有了更為強大的轉換框架,現在材質以外的文件也可轉換。

新的Motion Vectors(動作向量)可捕捉並記錄對象從前一幀到下一幀每塊像素及屏幕空間上的運動,再將其存儲到一個向量緩存中。

URP Volume System Update Frequency(體積系統更新頻率)允許開發者根據內容和目標平台的要求來優化體積效果的效能。

Package Manager現在為URP提供了新的範例場景,各個場景中將展示多個功能的配置與實際用例,以幫助開發者入門和學習。

可編程渲染管線(SRP)

下列功能同時支援URP與HDRP。




本次更新推出了新的Lens Flare(鏡頭光暈)系統。Lens Flares可模擬光線在鏡頭內的折射,從而用以表現強烈的光照,或巧妙地用於營造氛圍。類似於內置渲染管線中的系統,新系統允許堆疊光效,改進了開發者界面與許多其它選項。

Light Anchor(光照錨點)是一種設定光照中心支點的工具,能讓光照圍繞支點旋轉,讓影視製作的打光能更為輕鬆高效。工具帶有多種預設,可快速為角色或任意興趣點擺放好光照。此功能同樣兼容內置渲染管線。



GPU Lightmapper新增的Lightmap Space Tiling(光照貼圖空間平鋪)是一種圖塊烘焙技術,可將烘焙過程拆分成能隨時載入GPU內存的數據塊來減少對GPU內存的佔用。該功能可加快漸進式GPU光照貼圖器的烘焙速度,讓其能應對分辨率更高的光照貼圖。

Enlighten Realtime GI能生成更具動態的光效,比如可影響全局光照的移動光照。功能的平台兼容範圍已延申至Apple Silicon、Sony PlayStation(R) 5和Microsoft Xbox Series X|S。



SRP還包含了一系列UI/UX改進,目的在於加快工作流程、提高管線間的連貫性。本次迭代的重點主要是統一URP與HDRP的光照和攝像機組件,包括標題、子標題、展開按鈕的樣式,設置排序、名稱和下屬字段的縮進。這些外觀上的修改對提高工具一致性具有很大的影響。


創作工具


本次更新為Terrain(地形)工具增添了如下功能:

  • 新增橋接、複製、(噪點)散布、聯排和彎折地形筆刷
  • 高度圖侵蝕工具(水蝕、風蝕與熱蝕)
  • 改進了噪點/圖層過濾後的材質繪制操作
總體界面改進,更為精簡的Terrain Toolbox及創作流程



可詳細顯示Instanced Mesh的Terrain展開

SpeedTree 8植被生成已整合至HDRP和URP,支援使用Shader Graph製作帶有風吹動畫的植被。




在2021.2中,Visual Effect Graph迎來了以下更新:

重修後的ShaderGraph集成讓Visual Effect Graph能支援用任意Shader Graph生成的HDRP著色器(非受光、受光、發絲、織物等)渲染原始形狀。此次更新在Shader Graph中替換了已遭棄用(但仍受支援)的Visual Effect target接口,還新增修改粒子特效頂點的功能,可做出著色器上的翅膀扇動動畫或肥皂泡一般的晃動粒子。

新工具Signed Distance Field Baker(符號距離場烘焙器)可在編輯器中快速地將3D紋理的靜態幾何圖形烘焙成符號距離場。



我們還為Bounds助手添加了一些輔助建立粒子特效邊界的功能,來提高特效的剔除效果、防止不正確的邊界破壞特效。

結構化/圖形緩存器支援將數據經由結構化/圖形緩存器傳入Visual Effect Graph,並獨立於紋理。此功能專門針對複雜的發絲或流體運動模擬,或借助Visual Effect Graph完成的動態數據(如敵人位置)分配。

改進了Visual Effect Graph在URP上的穩定性與兼容性,URP和2D Unlit Sprite著色器渲染受光粒子的功能也即將推出。

Shader Graph在2021.2中新增如下修改:

著色器關鍵字限制已被移除。我們添加了一個更高效的API來處理關鍵字,並明確區分了全局和本地著色器關鍵字。詳情請在論壇瞭解。

我們還更新了ShaderLab Package Dependency句法。此前,工具與資源的依賴無法在著色器與軟體包之間表達,它們也就無法兼容多條渲染管線。這給資源商店與開發者們造成了一定的困擾,開發者們通常會為每條管線提供一個單獨版本來繞過該問題。為了應對該問題,ShaderLab Package Dependency功能擴展了ShaderLab句法,讓開發者能夠在軟體包中清晰地表達出著色器的依賴。

UI Toolkit現在可用於為遊戲和應用製作執行時UI。它提供了專門用於製作與調試UI的可視化工具,還能借助TextMesh Pro渲染出漂亮的可縮放文本,可生成清晰的無紋理渲染,還可與Unity UI(UGUI)組合使用。請在文件論壇中瞭解更多資訊。


2D

*注意:在本文攥寫時,Unity 2021.2 beta的2D包尚未發佈。具體發佈日期請以實際為準。

部分URP/2D渲染器在此次更新中有了一定的改進。

使用2D渲染器的2D開發者現在可借助URP新的SceneView Debug Mode查看Mask(遮罩)、Alpha channel(Alpha通道)、Overdraw(過度繪制)或Mipmap等視圖。調整過的Sprite Mask(精靈遮罩)功能已經能正常地在SRP中運作,功能可在Window>Analysis>Rendering Debugger>Material Override下找到。

2D Renderer現在可使用Renderer Features進行定制或添加自定義通道。

2D Lights現在集成到了Light Explorer 窗口中,並且將不再帶有Experimental標籤。2D Shadow的優化工作正在進行中,部分改進已經落實,包括代碼重構、單通道陰影渲染及單光源陰影剔除。

2D Lights生成的紋理現在可由Shader Graph的2D Light Texture節點存取,你可以用它製作發光精靈材質。

VFX Graph現在支援2D Unlit著色器,Visual Effect渲染器尚不會受到2D Light的影響。歡迎各位前往論壇分享自己的使用體驗。



加入了全新的2D URP預設模板。模板包含所有經過驗證的2D工具,並且經過預先編譯。新項目不僅能更快地加載,還將帶有URP及配置好的2D Renderer,以及其它所有2D工具。該模板還包含最優的2D開發軟體包和預設設置。

其他2D方面的改進包括Sprite Atlas v2:第二版的Sprite Atlas增添了文件夾功能與新的API,可在多張圖集中查找重復的精靈、可查詢MasterAtlas和IsInBuild。2D Pixel Perfect的檢視器UI現在更加直觀。2D PSD Importer有了更好的使用體驗、更好的Photoshop圖層控制與精靈名稱映射。新增合併圖層組的選項,導入器現在可以自動產生物理形狀,方便導入角色以外的場景元素。

2D Animation更新了包括骨骼顏色設置(詳見visibility面板),方便區分不同顏色或結構的骨架。在開發者體驗方面,蒙皮編輯器工具的使用提示將包括快捷鍵,一個新工具可用於查看精靈對骨骼的影響。

2D Tilemaps新增了覆蓋塊圖色板按鈕或添加新按鈕的功能,方便開發者製作自定義工具。API改動包括:新的TileChangeData結構, 該結構 可在特定位置擺放帶色彩的圖塊,並一次完成所有實例的變換,省去了多次繪制呼叫的必要。你還能使用新的API來根據動畫圖塊的數據來生成圖塊。使用API放置多個圖塊的效率更高,如SetTiles(Tile 組和TileChangeData)及SetTilesBlock。

2D Physics現在支援用一種同類型形狀組功能來讀取和寫入原始物理形狀(圓形、膠囊形、多邊形和邊界線),所有形狀都可歸納到一個形狀組中,也可在任意Rigidbody2D的Collider2D組件中檢索。此外,新的CustomCollider2D可直接寫入形狀組,讓Collider2D內部數據的存取高效又直接。CustomCollider2D可以還原已有的Collider2D,也能用於製作簡單或程序化的Collider2D。在未來,物理形狀組將成為物理運算請求、精靈物理交互等新功能的基礎。


NVIDIA GeForce RTX™ 3090抽獎活動

為慶祝DLSS預覽版的發佈,NVIDIA為我們提供了兩張GeForce RTX™ 3090用於Beta測試抽獎活動,獲勝者將能享受到光線追蹤和DLSS帶來的畫面感染力與開發效率!




要想參加抽獎,請在活動期間找到並上報至少一個獨特的2021.2 Bug。抽獎活動將於2021年6月21日星期一9點(台北時間次日0點)開始,截止至2021年10月2日星期日17 點(台北時間次日8點)

獨特Bug是指尚未被發現、未被Unity復現並承認的Bug,上報時請在報告中加入 #Beta2021Win_NVIDIA標籤。每一個獨特Bug都能提高你的獲勝幾率,但每位參與者只能贏得一次獎品。

參與抽獎免費,違規視作無效。完整規則請在此處查看。我們將直接聯繫獲獎者。

此處報名參加NVIDIA Developer Program,在NVIDIA技術平台上學習光線追蹤工具、參加相關培訓。


註冊加入Unity Pulse,參與塑造更好的Unity

如果你想直接向Unity團隊提供反饋,就來註冊Unity Pulse吧。Unity Pulse社區的作用是收集開發者反饋、開展開發者調研,開發者的體驗與意見是Unity不可或缺的組成部分。你將有機會直接聯繫Unity產品團隊、接觸到概念產品、提供Beta測試反饋,幫助我們打造最為出色的產品和體驗。快來 用Unity ID註冊登錄吧!




遊戲作品徵集活動

Unity正在尋找一起展示新版Unity的合作夥伴,快來與我們一起,讓全球的開發者們見識Unity引擎吧。

感興趣的小夥伴請在
此處上傳你的項目。


《Oddworld:Soulstorm》截圖展開

以上內容僅供參考,不具備任何法律效力,不包含任何誘導性信息。Unity不承諾提供任何功能、特性或代碼。所有產品、功能和特性的開發、時間安排和發佈均由Unity自行決定,如有變動,恕不另行通知。

2020年8月2日 星期日

Unity 2020.1 更新亮點介紹

原文:Kelvin / 達哥

大家好!歡迎回到Unity官方頻道
2020新功能非常多,
我來聊聊2020將會有哪些新的改進。


以往Unity的版號是從.1 .2 .3 最終到.4 LTS

我們在上一篇2019的文章已提過,從2020開始將會改變,版號規範將會縮短成.1 .2 然後.3 LTS,將不會再有.4這個版號,最終我們希望版號的時間表能更貼近年份

接下來我們就來看看2020有哪些改進吧!


==Asset Import Pipeline 資源導入流V2==

我們在去年重建了整個資源導入的流程,從2020.1開始這個V2版將會是預設值。這個版本大大的改善了資源導入的時間,這代表平台切換的速度也會大幅提升,新結構對於資源之間的依賴關係描述更可靠,未來在打包時解決資源依賴的增減將會更容易。


Asset Import Pipeline V2


==Burst編譯器 1.3==

這個Burst編譯器是UnityDOTS裡很重要的一環,他的主要功能就是針對專案的加速有直接的幫助。這個功能已經發佈有一年了,在1.3這個版本當然也改進了許多,效能的提升以及更多API接口等等,但我個人最期待的是,Burst 1.3編譯出來的能自帶除錯用程式,能通過Visual Studio或是XCode更容易來追蹤效能問題。


Burst編譯器 1.3 除錯


==文檔編輯器整合==

Unity現在把像是Visual Studio, Rider這種程式IDE都整合在一起,並且放在Package Manager內。

從2020.1開始也加入了Visual Studio 2019套件,隨著版本的演進,會有越來越多的IDE被收錄在這。當然自行安裝自己的工具也是可以的。

整合的文字編譯器視窗


==Prefab編輯器改進==

Prefab編輯器是在2018.3時發佈的,它可以編輯一個Prefab預製物件,但也因為是另開窗口的關係,當你想要和場景其他物件對照的時候不太方便。從2020.1開始編輯Prefab物件會預設在場內編輯。場景內其他的物件會變成灰色,當然你也可以切換顯示或隱藏。

Prefab編輯視窗


==新除錯流程==

從2020.1開始,專案在Unity編輯器內還沒編譯打包之前,就會先以發佈考量的格式來安排執行程式碼。這樣不但能加速編譯時間,也帶來了一個好處,當你發現執行中的專案出現了一些問題,可以馬上切換到除錯模式,再也不需要重啟遊戲,對於重啟遊戲後再也無法重現問題的人來說,這是非常好用的一個功能。未來你可以在沒有開除錯模式的狀況下測試遊戲,當遇到問題時即時打開除錯模式除錯。這樣一來平時執行也就不用載入除錯模式所需的模組,報告更貼近真實測試,效能也會比較好。

除錯模式切換更便利


==序列化通用型態欄位==

以往如果你想序列化一個通用型態欄位,必須先定義一個非通用型態子類(non-generic subclass)。從2020.1開始就不用這麼麻煩,可以直接產生了。

直接產生通用型欄位


==Input System==

新的輸入系統在2020.1從預覽改為正式版
這個系統從2019週期導入到現在,為了解決各種不同現代平台操作方式像是觸碰、鍵盤和搖桿等等的輸入邏輯而重新打造的系統。實現了做一套操作,全平台通用。
不但如此,也開放了許多API接口方便開發者和UGUI這類系統直接互動。

New Input System


==Build Report Inspector 打包報告檢視==

Unity從2018開始導入了BuildReport API,專門用來除錯打包過程所發生的問題,比如打包為什麼慢?有什麼優化空間?為什麼漏檔案等等?產生出來的報告就可以顯示在這個Build Report Inspector打包報告檢視窗口裡。目前這個功能才開始進入預覽,源碼會放在Github上。

新的打包除錯介面


==Standalone Profiler 獨立的效能分析窗口==

以往的除錯器Unity Profiler是整合在編輯器內的,這個除錯器可以觀看專案每一幀的消耗到底花在哪裡,方便評估優化方案,但因為產出的報告也包含了Unity編輯器的消耗,數值混在一起反而容易造成判斷錯誤。從2020.1開始這個Profiler可以單獨開啟,代表著整個除錯流程就會移到Unity之外作為單獨運行的程式,所產出的報告就會更貼近專案執行的真實消耗。

要開啟這個程式可以從Window->Analysis->Profiler(Standalone Process)來開啟。

單獨開啟的 Unity Profiler


==Profiler 自訂事件==

現在你也可以通過Profiler的自訂API來把事件送到Profiler,產生一個可視化的圖表,例如將Unity在Job系統多執行緒時的分配畫成圖表。顯示在主執行緒等待多緒工作時的點,以圖型的方式顯示兩者之間的關係。

Unity Profiler自訂事件


==Profiler API支援C# 傳送Metadata==

在Unity內每個資源物件都會產生一個中繼資料檔Metadata, 現在可以通過Unity所提供的C# API來把裡面的變數放到Profiler上,方便觀察效能問題的可能性。這個功能也是預覽,整個2020週期都會持續改進。

Metadata支援


==紀錄GPU用除錯資訊==

以前只能通過Recorder API來獲取CPU效能分析資料,並自己用UI顯示出來。從2020.1開始,Recorder API開始支援從執行時獲取GPU資訊,方便分析渲染週期所造成的效能消耗。
題外話:會有這個功能是我們在開發SRP(Scriptable Render Pipeline就是新的渲染管線時的延伸產物)

GPU資訊搜集


==新 2D 模板==

Unity的2D工具在2020.1算是一個大躍進,許多原本都在預覽的功能在這一版本大多都轉正式了,而且還自帶了新的2D開發模板,如果是新專案開發,2020是一個非常好進入新2D專案研發的一個版本,那麼,整體來說有哪些功能呢?



==2D Sprite Shape 角落拉伸功能==

原本的2D Sprite Shape,就已經可以拉出不規則的形狀方便處理像是地形的工具,現在針對轉角又新加了一個拉伸(Stretched)的選項,可以把處理轉角的轉折。

Sprite Shape:Stretched選項


==2D Sprite Atlas 打包 v2 體驗版==

新版的Sprite Atlas打包流程可以支援用腳本把貼圖或是圖片打包成圖集了,這代表著未來專案的圖集管理會方便很多,這功能目前是體驗版。

Sprite Atlas V2


==2D 物理改進==

2D的物理也做了許多改進,像是Rigidbody2D的X軸和Y軸的約束器,現在不管鎖定哪一軸,都已經優化到幾乎0效能消耗。2D的碰撞在Simulation模式可以設定不同情境,比如物理的計算和渲染幀率同步,這代表著物理計算穿模問題會大大降低。

另外還有EdgeCollider2D現在也能控制起點和終點,方便處理和其他碰撞體之間的表面連續碰撞計算。

2D物理改進


==2D 動畫效能提升==

2D骨骼動畫的效能也有很大的提升,搭配前面介紹的Burst Compiler和Collections套件,就能夠在執行動畫變形時獲得很大的效能提升。

2D骨骼動畫


==2D Sprite Shape 網格烘焙==

現在2D Sprite Shpae也支援先把網格資料烘焙起來,這樣就能夠在執行時直接載入而不需要重新計算。當你有執行時從未修改過的靜態Sprite Shpae或者和Prefab一起使用的Sprite Shape時,就能省下許多CPU的執行時間。
需要注意的是,這樣的做法雖然省下運算時間,相對的就是用空間去交換,資料量一大場景大小也會變大。而且在執行期間是無法修改這些烘焙的Sprite Shape網格。

烘焙Sprite Shape網格的選項


==2D 鏡頭疊加==

跟UPR之前發佈的改進一樣,多鏡頭疊加是開發很重要的功能。
現在你可以在 SRP模式將多個鏡頭疊合成一個最終輸出效果,用以處理像是小地圖等等功能。

2D鏡頭疊加


==Package Manager改進==

Package Manager的更新,2020.1的套件安裝把預覽版的開關放到Unity設定內,這樣可以避免開發者在不知情的情況下安裝了預覽版的套件,說明和UI安排也都有改動。

預覽版的開關改到設定內


==背景工作進度窗口==

以往的Unity版本中,監控編輯器的背景執行是不容易的。

新的背景工作窗口能追蹤這些後台進程,看看Unity正在發生什麼事情,也會提供相對應的API讓程式人員做非同步處理。我們還對所有的進度條管理做了一個改進,未來所有的執行任何需要停止操作編輯器的工作,會統一用一個顯示窗口來顯示目前正在執行的工作,並查看細節。

背景正在執行的工作進度


==屬性頁面鎖定物件 Focused Inspectors==

全新的焦點檢查窗口讓你可以針對所選取的物件打開一個專屬的屬性檢視窗口。
以前是只有一個窗口,選了別的物件屬性視窗就跑掉了。現在你可以同時開啟許多不同的窗口來查看不同的物件。而且這個窗口不單可以顯示物件,也能鎖定顯示物件內的組件信息,螢幕夠大會非常方便。

可以鎖定物件的屬性窗口


==Presets改進==

2019有介紹過Presets功能,專門用來記錄當下物件屬性,在需要的時候可以把這個屬性套用到其他物件上,問題是每次都是紀錄全部屬性。從2020.1開始就可以只複製和應用特定屬性了。

Presets套用特定屬性


==FBX匯入改進==

FBX仍然是Unity支援最齊全的模型格式之一,從2020.1開始做了幾項修正:
1.支援來自Sketchup的網格導入自訂屬性
2.軸向轉換設定,一般來說Maya或3D Max 的軸向不是Y up,所以匯入Unity之前還要做轉向,有了這個設定之後會自動修正軸向,以後再也不會有模型轉進Unity跌倒的狀況發生了。
3.匯入PNG圖片時可以忽略咖碼校正的選項,這設定有助於不同平台之間貼圖的顏色一致性。

FBX改進


==移除Asset Store窗口==

我們從Unity內移除了一個編輯器框架,主要是這個框架原本是用來在Unity內開啟Asset Store窗口用的,但這項技術不但過時了,還引起了一些效能問題。因此我們在2020.1移除了它

移除這個框架之後的Asset Store窗口該怎麼辦?
Unity內將不再支援開啟Asset Store網頁的窗口,現在你會看到一個警告頁面。

你必須直接從網頁上購買套件,然後從Unity的Package manager內的My Assets就可以找到套件並下載使用。

從Package Manager的My Assets安裝套件


==Unity Remote 功能移除==

另外一個移除的功能是Unity Remote,Unity Remote是一個不用打包就可以把內容傳到手機上測試的一個工具,但同樣技術也過時了,未來我們會有更好的替代方案。


==Device Simulator 裝置模擬器==

剛提到Remote被Remove掉了,如果不是實機測試,可以試試這個Device Simulator裝置模擬方案,可以在編輯器內模擬手機設備。可以視為在開發環境用模擬器執行的概念。

Unity內的裝置模擬


==Cinemachine 2.5 轉正式,2.6 轉預覽==

這是一個處理運鏡的套件,各種遊戲或電影會用到的運鏡,包含一些像是鏡頭抖動、自動跟隨等等這個都能幫你搞定。我個人對這個系統的評價相當高。網上也有相當多教程,基本上就是搞定運鏡所有需要的功能。

Cinemachine 2.5正式版

==Animation Rigging動作系統==

Unity 2019開始導入的功能,以往我們把動作導入Unity之後發現有問題,通常都會請美術人員回到其他的DCC軟件像是Maya, 3D Max去修改,有了這個功能之後,就能在Unity對動作用約束器來微調動作。
例如我有個手拿著武器的動作位置錯了,這時我就可以把手的位置約束到刀柄就可以了。

你可以將骨骼動作烘焙起來並裝到約束器上,這樣可以對關鍵幀進行編輯,也可以將約束後產生的動作烘焙到骨架上,執行時效能就不會消耗太大。

簡單來說,未來你可以在Unity內微調各種動作了。

Animation Rigging套件


==Kinematica 動作系統預覽==

基於”動作匹配”概念的次世代人物動作系統,能在執行時產生高品質的人物動作。
不像傳統的做法,需要在Blend Tree或狀態機安排兩個動作之間的切換,只要給予一個骨骼姿勢和所需的軌跡運動,他就會去演算出慣性的動作位移。

新的Kinematica人物動作系統

==UI Toolkit==

原本的UIElements更名為UI Toolkit,這樣比較直覺,一看就知道用來打造編輯器工具UI的,不管是編輯器UI或是執行時的UI他都可以做到。因為是設計給非程式人員的工具,他會有許多方便的功能是不用寫程式的。

UI Builder + UI Toolkit


==XR設備的流程改進==

我們調整了啟用XR設備的選單內容,現在比較直覺好用了。

新的XR開關選單


==AR Foundation 3.1==

AR Foundation和製作AR內容的開發者比較有相關,他跟Unity一樣主打一次開發,全平台發佈的概念。意思就是通過AR Foundation可以開發一個AR內容,但全部Unity支持的AR設備都可以發布。

AR Foundation 3.1支援表


==URP: 鏡頭疊加==

URP的多鏡頭疊加之前有介紹,可以讓你的3D物件和2D UI連同特效一起疊合

URP:多鏡頭疊加

==Lighting Setting Assets 光照設定文件==

全新的光照設定檔,可以讓你把不同光照設定存下來,未來你可以調好各種不同環境光照,比如陰天、晴天、雨天、室內、室外、夜晚等等,並在需要的時候載入。

以往的光照資訊是跟著場景的,從2020開始,照明設定會變成獨立的設定檔,存儲預先計算的全域光照資料相關所有資訊。

這樣的好處是A場景的光照設定也能給B場景用,未來在場景氛圍的製作會更簡單。

新光照設定檔


==烘焙貼圖UV計算改進==

美術人員在拆UV 貼圖時很重要的一點,就是如何善用空間把貼圖塞的越密越好,這在光照烘焙也是一樣的道理。但是自動計算的光照圖以往可能會算出非預期的結果,比如太多空白。

未來在Unity模型導入時,就是Model Importer會多一個Calculate的選項可以勾選,用意就是把這些模型先納入光照貼圖計算考量,拆平貼圖並計算邊距,求得最少空白的貼圖結果,也不會有UV重疊的問題。可以看到右圖是有打開選項的結果,比左邊的乾淨許多。

計算UV優化


==全域光照烘焙的採樣改進==

光照貼圖的計算簡單來說就是模擬光的路徑追蹤,因為不同光線之間的路線關聯性複雜,以往的演算法偶而會因為這些特性產生不正確的結果或是躁點。
Unity 2020.1在光照路徑計算的方法做了許多改動,預設的情況已經啟用了這個設定。可以比較出和舊版有很大的差異,烘焙時間更短結果也比之前好很多,可以注意烘圖從滿是噪點到完成的時間變得更短。

原本的採樣數量限制也從原本的10萬個提升到10億個。這代表著光線原本能模擬的環境更真實,一般遊戲10萬個採樣,市內設計專案10億個採樣能烘出真實的結果,當然採樣越多計算時間越久是不變的。

支援10億個採樣


==全域光照:支持俄羅斯輪盤烘焙模式==

新的“俄羅斯輪盤”烘焙選項可以加快烘焙速度,他會依照情況自動決定光線最佳路徑。
這個演算法會考慮場景中的全域光照路徑,當光線在深色表面反彈時,光線被吸收的程度越大,光線的投射就會結束的更早。這樣不但可以減少整體烘焙的時間,對於最終的烘焙品質影響也不大。

新的俄羅斯輪盤演烘焙


==光照貼圖支持Cookies==

Cookies在Unity內意思是一種光照時指定的貼圖圖形,很適合用來模擬光線通過物件所產生的陰影照明,增加真實感。
以前的Cookie不支持SRP。從Unity 2020.1開始,不管是CPU或是GPU的光照貼圖都支持Cookie,這意味著混合模式的Cookie計算將會一起考慮直接光源和間接光源。

Unity Cookie


==HDRP 光追支持網格特效==

HDRP現在支援光追的進度已經到可以處理動態的網格光追處理,目前是預覽版。

光追 vs HDRP


==GPU貼圖串流功能預覽版==

當你搭配HDRP使用Shader Graph時就能夠使用這個”串流虛擬貼圖”功能,當場景內有許多高解析度的貼圖時,可以用串流的方式來減輕GPU記憶體的壓力,以及加速貼圖載入的時間。
他的原理是通過將貼圖拆分為小圖塊,然後依照需求將這些小圖塊逐步上傳到GPU記憶體內工作。

這個功能目前是預覽版。

串流GPU貼圖功能


以上就是2020.1整理的功能說明
希望對你的有幫助
保持關注我們!

著作人