2017年7月12日 星期三

Unity 2017.1正式版發佈

作者:Alex Lian 原文
潤稿:Kelvin Lo



Unity 2017.1正式版已發佈,現在就可以從這裡下載。感謝Unity社群在測試期間所給出的各種有價值的建議。

版本發佈也代表Unity 2017產品循環的開始,將全球最受歡迎的引擎繼續變好,最重要的是幫助開發者更方便開發並獲得成功。

我們希望為美術、企劃和開發者們提供強大的新視覺化工具,讓整個團隊工作效率更高更順。透過改進圖形品質和執行效能來幫助大家創造令人驚豔的3A級體驗。

效能方面我們希望幫助開發者有效利用最新的GPU和圖形API,第一時間能發佈在所有平台(PC、遊戲機、手機、VR、AR、電視等等)。以此為初衷,我們建立了Unity強大的跨平台架構“一次構建,全平台發佈”。我們與全球技術合作夥伴緊密合作,幫助大家落地到各個平台的用戶,將成功機率最大化。

成功的範圍包括營收、內建的Ads廣告、IAP和在Unity 2017中提供的即時操作分析服務(Live-Ops Analtyics)。它們幫你提供更多機會,即時優化遊戲效能且不需要重新打包,利用數據的力量來實現最大化利益。

Unity 2017.1適用於所有Personal個人版,Plus加強版和Pro專業版的訂閱用戶。至於舊的Unity 5買斷授權的用戶請注意,Unity 5.6是5.x產品週期中最後一個版本。Unity 2017已經無法更新上去。如果想繼續獲得更新版本,請聯繫經銷商購買新授權。

我們也非常期待廣大Unity社群開發者能用Unity 2017創作令人驚奇的內容!想了解未來有甚麼功能可以關注Unity版本發佈計畫圖

接下來為大家介紹Unity 2017產品週期第一個版本所有新功能與改進。

Unity 2017.1簡介


Unity 2017.1中包含大量新功能與改進。主要內容如下:

美術和設計師們:全新的敘事系統和運鏡系統

Unity 2017.1為美術和設計師們提供了全新的工具,使用Timeline,Cinemachine和Post-processing工具,可以創造令人驚歎的電影等級畫面與後製鏡頭畫面,並視覺化描述故事。

Timeline是一款強大的視覺化創作工具,用來建立電影等級內容,例如過場動畫、預告片、鏡頭運鏡順序等等。

Cinemachine是一個運鏡系統,您可以像電影導演一樣,在Unity中運用各種鏡頭,而且不需要寫任何程式,引領您進入程式化攝影時代。

Post-processing可以很方便的為場景加上各種逼真濾鏡,使用電影工業級技術、選項和顏色空間格式來創造高品質視覺效果,讓畫面更生動、更逼真,助您描繪更好的視覺故事。

效率:協作、即時操作分析、工具


我們發佈了Unity Teams,它由一系列功能和解決方案,包含Collaborate多人協作和Cloud Build雲構建。

即時操作分析系統引入了新的、更簡單的方法,幫您更了解玩家,並在不需要重新打包的情況下,對遊戲做出即時的反應和調整。

最重要的是,Unity 2017.1對編輯器進行了大量更新,包括對FBX匯入、動畫工作流程、2D功能、Asset Bundle和Visual Studio整合的改進。

圖形與平台:全面改進


Unity 2017.1對粒子系統和漸進式烘焙光照(Progressive Lightmapper)做了大量改進,現在有更多選擇來實現您的藝術願景並保持效能。不同平台可採用不同的渲染加強選項,例如iOS平台上的Deferred Rendering,和PC上的NVIDIA VRWorks。

這些都只是Unity 2017.1的重點介紹,接下來會一一介紹完整豐富的細節內容!


Unity 2017.1新看點
藝術家敘事工具: Timeline和Cinemachine介紹

設計師、美術或動畫師們可以使用新的敘事工具,自己製作電影內容和遊戲分鏡,不在需要仰賴程式設計師幫你調。這代表著開發效率更高,且省下溝通成本。

Timeline是一款強大的視覺化新工具,可用於建立影視內容(例如短片《Adam》)。透過編排遊戲物件、動畫、聲音和場景,來建立過場動畫、遊戲影片等等。有了Timeline,您可以把時間花在敘事內容和電影藝術創作,而不是寫程式。

Timeline基於軌道的鏡頭序列工具,用拖放操作來編排動畫、聲音、事件、影片等元素,可以快速建立漂亮的過場動畫和程式化內容。Timeline有許多功能,例如動畫、音訊、自動關鍵幀,以及可以鎖定或靜音特定軌道的多軌操作介面。Timeline可通過Playable API進行擴展,支援建立自訂軌道,來驅動遊戲中的任何系統。您可以製作一個Timeline剪輯來驅動幾乎所有內容,並且可以重複播放、縮放和混合這些剪輯,所有這些都可在Timeline中實現。



Cinemachine是累積了多年遊戲和電影鏡頭運鏡的經驗而成的結晶。現在,它更將業界領先的鏡頭系統交到所有人手上,引領程式化攝影的時代。

這是一套智慧攝影系統,可以動態根據場景的構成和互動,在最佳時間拍攝最佳鏡頭。使您擺脫無盡的手調動畫、鏡頭程式設計以及後製修改的過程。

現在Cinemachine可以在Asset Store中下載。

從第一人稱射擊遊戲到第三人稱動作冒險,您可以很容易的用Cinemachine改變遊戲內鏡頭:

  • 像電影導演那樣,使用鏡頭工具及真實的鏡頭設定,控制鏡頭序列。
  • 合成鏡頭,把重點放在美術方向上,而非實現細節。給Cinemachine智慧攝像機一個簡單的指示,比如跟隨人物的頭部,如果動畫發生變化,鏡頭會自動改變並繼續工作。


在Unity 2017.1中,我們為Cinemachine加了許多新功能,比如:
  • 多目標物件:以多個物件為目標,並設定它們的權重。它會基於任意數量的物件建立一個邏輯,根據成員的位置來定位自己該去的位置。在跟蹤一組物件時,可以將它用作LookAt和Follow方法的目標。對2D場景也非常適用。
  • 動態取景多個物件:這個功能基於物件的位置自動取景一組目標。如果物件散開,Cinemachine會根據你建立的一套規則調整FOV或Zoom(或兩者同時進行)
  • 全新開放API:輕鬆訂製Cinemachine配置,取得專案所需的鏡頭行為。
  • 鏡頭軌道:創造出像電影一樣的鏡頭軌道,讓鏡頭在遊戲世界裡平滑移動。適合於電影鏡頭或當你希望鏡頭沿著一組軌道跟蹤拍攝對象時。
  • 安全鏡頭:會根據鏡頭優先順序與品質,動態選擇最佳的鏡頭。例如有東西進了取景框破壞了畫面?沒問題,Cinemachine會判斷並切換到另一個攝影機。很適合重播或場景的電影鏡頭序列。
  • 狀態驅動鏡頭:允許攝影機和動畫狀態之間形成關聯。從動畫中觸發不同的鏡頭行為。

Timeline和Cinemachine能結合使用,可以將敘事流程帶入更高層次。然後使用後製處理特效進一步強化畫面,營造更好氛圍和戲劇效果的場景。



想瞭解Timeline和Cinemachine的用法,可以看今年Unite歐洲的演講(英文)。

Post-processing Stack的改進(Beta)

Post-processing將全螢幕濾鏡和特效應用於鏡頭的圖形緩衝區,然後再把它顯示在螢幕上。你可以使用後製特效來模擬物理鏡頭和各種電影效果。

你可以下載最新版的Post-processing Stack(Beta)。我們預計今年夏季發佈正式版(友善提示:如果你要上一個較穩定的版本可以在Asset Store下載)。

改進後的後製特效處理可以將一組完整的圖形效果整合到單個後製處理流程中,並帶有下列高品質的鏡頭效果:

  • Screen-space anti-aliasing 
  • Auto Exposure 
  • Motion Blur
  • Bokeh Depth of Field
  • Bloom
  • Color Grading 
  • Chromatic Aberration
  • Film Grain
  • Vignette
你可以把多個特效合成到單個Pass中,使用基於Asset的預設設定系統管理特效也非常輕鬆。

顏色分級(Color grading)特效是一種支援Academy Color Encoding System (ACES)的全HDR顏色流程,低階平台可以使用LDR管線。這個後製特效有兩個螢幕空間的光照特效,環境光遮蔽(AO)和螢幕空間反射(SSR)。

這個新版本裡還提供了一個基於體積混合的特性,你可以在場景中定義區域(任何類型的網格),並在玩家進入區域時設定特定的氛圍/外觀。Unity會自動在範圍內進行混合,實現流暢的畫面轉換。


Unity Collaborate多人協作已正式發佈!現為Unity Teams一員

Unity Collaborate多人協作已結束測試,與Cloud Build雲端打包一起成為Unity Teams的一員,一個解決方案一套功能,就可以幫助你更快速進行團隊協作。Unity Teams將可免費使用至2017年10月,可以看這裡了解更多(英文)。

對於Collaborate多人協作,我們在Unity 2017.1中發佈的首個版本並處理了Beta用戶提供的反饋。除了效能改進、穩定性之外,我們還增加了一組新功能:選擇性推送、更好的Asset瀏覽器整合和一個新的“In Progress”功能,用來標註團隊成員在某個場景或預製物件上有未發佈的本地更改。



以下是我們為Collaborate多人協作增加的一些新功能:

In Progress標註
為場景和預製物件加上了In Progress標註,告訴團隊中其他人已對某個場景或預製物件做出了一些未發佈的更改。這個功能有助於協調對場景和預製物件的更改。





按右鍵選擇性發佈
我們增加了按右鍵的操作,現在你可以在專案視窗中直接發佈、退版、查看差異,解決檔衝突等等。這是一個重要的開發者需求,我們希望讓Collaborate的操作和其他專案管理更加一致。原Collaborate用戶請注意,要更新這個功能之前必須確保舊的版本所有發佈已更新到最新。



專案視窗體驗更佳
在專案視窗的“Favorites”中加了新的篩檢方式,包括“All Modified”、“All Excluded”和“All Conflicts”,這樣開發者就可以看到他們所有正在修、已修改、有衝突和忽略的檔案。特別要留意的是“All in Progress”,可以讓你即時看到Collaborate團隊中的其他人正在處理哪些Asset。




即時分析操作(Live-Ops Analytics)
Unity 2017.1可以透過資料來驅動這個服務,隨時獲得豐富的分析資料。深入瞭解你的玩家在你的遊戲裡的情況,方便即時針對它們的喜好做出對應的調整,不需要重新打包發佈。在Unity 2017裡,可以更好的為玩家提供更佳的遊戲體驗。

通過Standard Events (目前是Beta版)可以進行更有效的檢視,它提供了一組預定義事件,可顯示和你遊戲相關的重要資訊。使用新的 Analytics Event Tracker,不需要寫程式即可實現這些功能。



使用Remote Settings 功能,可以即時更改遊戲設定,不需要重新打包發佈,這個功能已加到Unity Analytics分析服務中。




2D功能大躍進
在Unity 5.6中,我們在2D工具和工作流程做了重大改進。Unity 2017.1中導入了2D Sprite Atlas,這是一種新的Asset,將會取代Sprite Packer。隨著它的出現,新的工作流程可以在執行時更容易控制圖片的打包和使用。導入Atlas圖集是Unity中2D工作流程的重要組成部分,而Sprite Atlas不僅提供了更簡單的圖集建立和管理方式,還有對應的API可接,能獲得更多的控制。



Sprite Masks用在世界空間中隱藏或顯示圖片或圖片組的一部分。圖片遮罩只對擁有Sprite Renderer元件或粒子系統的物件有效。



在Unity 2017.1中,我們還為Sprite編輯器加了物理形狀編輯。可以為圖片設定自訂的預設形狀,以使用PolygonCollider2D產生碰撞器的形狀。



Animation的改進
我們對Animation視窗進行了全面修改,改進了keyframe的工作流程,使動畫製作更方便,支援與Animator狀態機互動。而Performance Recording是一個實驗中的功能。

新的keyframe工作流程支援明確指定何時將哪一格變為keyframe,並在預覽時將所有未修改未定義的keyframe都刪除。我們已經改變了在Animation視窗中編輯剪輯的預設行為(新的預設預覽模式)、視覺和全域keyframe操作熱鍵。這些改變的目的是在Animation視窗之外為keyframe操作提供一個更流暢的工作流程,同時預覽動畫不需要在autokey/rec模式下。

現在在編輯器中play狀態可以對狀態機行為進行除錯。

我們還導入了GameObjectRecorder,這是一個新的測試編輯器功能,它允許你錄製GameObject和它子物件上的任何屬性行為。並將記錄到的所有內容存到一個動畫片段中,
這樣就可以輕鬆建立動畫




Playables已正式發佈
Playables API透過使用樹狀結構的PlayableGraph組織和分析資料來源,提供一種建立工具、特效或其他遊戲機制的方法。PlayableGraph允許您混合和修改多個資料來源,合成為單一輸出後播放。

Playables API支援動畫、音訊和程式腳本。Playables API還提供了透過腳本來與動畫系統和音訊系統進行互動的能力。

Playable API是一個通用API,它最終也將用於影片和其他系統。查看文件瞭解更多細節。


Ambisonic音訊
在Unity 2017.1中,我們增加了對環繞身歷聲音訊剪輯的支援,這是全方位環繞音訊技術,除了水平面外,它還覆蓋了聽眾上方和下方的聲源。

Ambisonics以多聲道格式儲存。它不是將每個通道都映射到一個特定的喇叭,而是以一種更通用的方式來表示音場。然後根據聆聽者的方向(即VR中玩家的頭部角度),來旋轉音場。音場也可以被解碼成一種與喇叭設定配合的格式。Ambisonics通常與360度影片結合使用,也可以用作音效skybox,表現遙遠的環境聲音。

我們還加了Ambisonic解碼器套件,現在也可以在新的敘事工具Timeline中透過一個腳本來使用它。


編輯器改進
我們在UnityEditor.IMGUI.Controls中加了一個新的ArcHandle類別,它可以在場景視圖中互動式編輯弧線。也加入了SearchField的新IMGUI控制項目,它帶有普通和工具列使用者介面風格,但也可以自行定制。



現在還支持使用JetBrains Rider作為外部腳本編輯器。

其他改進還包括對所有player loop階段加上分析器標籤(Profiler labels),改進Package Export載入狀態,以及記錄已連接玩家的log資訊,這些都將出現在編輯器控制台中,使除錯更加輕鬆。

UI Profiler

Profiler視窗上現在把UI專門獨立一個區塊出來幫助您除錯UI。 現在可以清楚看到UI批次產生流程中發生了什麼事,方便你解決那些UI造成的效能問題。 有了這些資訊,您可以重新排列層次結構來避免那些隱藏的消耗。




改進了對Visual Studio的支援,包括Mac OS
現在安裝Unity時可以選擇在Windows上安裝Visual Studio Community 2017(而非Visual Studio Community 2015)。安裝速度較快也更省空間。

Mac用戶也別難過,現在可以在Mac上使用Visual Studio了!微軟發佈了Mac版的Visual Studio和Tools for Unity。Visual Studio for Mac還提供了許多很酷的功能:一鍵除錯
,IntelliSense for Unity messages,針對Shader程式高亮顯示等等。


場景與Asset Bundle改進
我們對遊戲中的場景和Asset Bundle進行了一些改進。更改底層架構使場景和Asset Bundle載入速度更快使玩家體驗更好。我們還建立了一個工具,Asset Bundle Browser。


Asset Bundle Browser
Asset Bundle Browser的正式版與Unity 2017.1一同發佈。它允許你在Unity中查看和編輯Asset Bundle的配置。它的目的是替換當前選擇Asset的工作流程,並在檢視視窗中手動設定Asset Bundle的工作流程。現在您可以查看所有的Asset Bundle配置。透過拖放能安排、修改和分析相關資源包。

這個工具會顯示可能需要注意的警告,提示將中斷資源包創建的錯誤。透過查看包內容,你可以更有效地組織Asset Bundle。也可以查看單個Asset Bundle,並處理包和包之間的Asset依賴關係。





腳本核心升級(測試)到 C# 6和.NET 4.6
在Unity 2017.1中,我們把腳本核心升級支援Mono/.NET 4.6。它包含了許多修復、效能改進,可以使用C# 6。我們相信它會提高遊戲的整體效能。

可以在Player Settings中啟用.NET 4.6:



注意,更改設定會在重啟編輯器後生效,因為它會影響編輯器和播放。對應的腳本API是PlayerSettings.scriptingRuntimeVersion屬性。

IL2CPP完全支援新的.NET 4.6 API,因此你仍可以用C#編寫程式但有C++的效能優勢。


Model Importer改進
現在從Unity導入Maya匯出的FBX檔已支持Segment Scale Compensation,而且FBX SDK已升級至2016.1.2。

在導入FBX檔時,我們還加了計算加權法
線(weighted normals)的選項,如按面積、角度或二者皆有,以及硬邊緣(Hard edges)的法線產生。現在也能從FBX檔中匯入燈光和鏡頭資料,Unity會自動在需要時為物件加入和安排鏡頭和燈光組件。

Unity現在可以使用“Import Visibility”屬性從FBX檔中讀取可見屬性。值和動畫曲線將啟用或禁用MeshRenderer組件:




Progressive Lightmapper改進
Unity 2017.1增加了Progressive Lightmapper中對烘焙LOD的支援。在烘焙LOD時,Enlighten和Progressive Lightmapper之間的主要區別在於使用Progressive Lightmapper不必在LOD周圍放置光照探針來獲得反射光。在完全烘焙解析度下,間接光照將為LOD提供更優質的烘焙光照貼圖,您也可以避開安排光照探針的繁瑣過程。(Unity 5.6中也有此功能。)

我們還在Progressive Lightmapper中加了對雙面材質的支持,通過加上新的材質設定,使光線與背面接觸。啟用後在進行全域光照計算時幾何體的兩面都被包括在內。當從其他物件觀察時,背面不會被認定為無效。背面渲染既不受該設定的控制,也不會在光照貼圖中顯示。背面使用與正面相同的自發光和漫反射設定反射光線。(該功能也可在Unity 5.6中使用)。




即時陰影改進
我們優化了在穩定模式下定向光源陰影投射器的選擇。這代表著產生陰影貼圖時的Draw Call更少。這個優化是與場景和設定相關的。例如在四個級聯光(Cascaded directional light)的情況下,可以看到Draw Call數量明顯下降不少。根據太陽/鏡頭的方向,有機會可以減少50%的陰影投射器數量。下面是Viking Village的一個例子:

這個場景在Unity 5.6中有5718個陰影投射器。


使用Unity 2017.1,相同的場景,只有4807個陰影投射器。



Unity 2017.1還實現了即時陰影的Percentage Closer Filtering (PCF)。每個圖元的深度值都是從當前圖元周圍的陰影貼圖中取樣,並所有的採樣值進行比較。這使得光和影之間的線條更加平滑。您可以在下圖中看到對比:




除了即時陰影改進,Shadowmask和Distance Shadowmask光照模式現在已成為Quality Setting中的參數,可以在執行時進行修改而不會有任何效能消耗。例如可以在室內使用Shadowmask (實現柔和的陰影),並在相同關卡中的戶外場景即時切換到distance Shadowmask。它也可以作為一個品質設定。

我們還加了Custom Render貼圖作為渲染貼圖的擴展,可以很方便的用著色器來更新貼圖。這有助於實現各種複雜的模擬,比如焦散光、雨滴漣漪模擬,牆面液體噴濺等等。它還提供了一個腳本和著色器框架,以便進行更複雜的設定,比如局部或多階段更新,不同的更新頻率等等。



有了新的LineUtility類別和LineRenderer.Simplify函式,現在可以優化線條,用LineUtility建立由簡單形狀組成的簡化版本。


使用Metal/OpenGL ES3實現iOS上的Deferred Rendering
我們為加入deferred rendering path支援
使用Metal和OpenGL ES 3.0像是A8晶片和以後的iOS設備。當開啟它時,影響GameObject的燈光數量就沒有限制。所有的燈光都是按圖元計算的,這代表著它們都能與法線貼圖進行正確的計算。此外所有的燈光都可以有投影和陰影功能。


粒子系統改進
我們加入了Sprite到粒子系統,粒子的碰撞力(可以推動碰撞器),大形模型的支援改進,包括一個新的形狀類型,噪點模組加了新選項,以及其他一些較小的特性和強化。因為增加了新的控制和約束,例如速度與對齊,使得在2D中使用粒子更加輕鬆。可以使用粒子來獲得比以往更多的特效和動畫效果,包括光線的線條和尾跡。

透過Texture Sheet Animation模組,我們在粒子系統中增加了對圖形的支援。這使粒子系統能更好進行圖集處理和批次處理,同時也在粒子系統中增加了大量與Sprite相關的特性,例如不同大小的動畫幀,以及每幀的軸心點。






噪點模組(Noise Module)提供了新的選項,可以更好將噪點應用於粒子效果中。這個功能在Unity 5.5中第一次出現,噪點被應用到粒子的位置屬性。在2017.1中我們可以將噪點應用到更多的地方:

  • 位置
  • 旋轉
  • 大小
  • 使用Custom Vertex Streams的著色器(非常適合製作UV失真效果!)


在粒子系統形狀模組的碰撞模式中,我們引入了一個新的甜甜圈粒子發射形狀和編輯模式。模組內的Transform可以為粒子發射的形狀應用自訂位置、旋轉和縮放。

其他的改進還包括將粒子與速度方向對齊的能力,以及允許在局部空間系統使用Emit over Distance。邊緣粒子發射現在更加靈活,可以選擇用來產生粒子的邊緣厚度。

粒子現在也可以使用碰撞模組對碰撞器進行施力。




Windows Store現在改名為Universal Windows Platform
Unity現在支援Windows商店的Universal Windows Platform(UWP)應用模式,支援為Xbox One、Windows 10、Windows Phone 10和HoloLens進行構建。

請注意,對Windows Mixed Reality PC設備的支援將在今年發佈。




我們增加了對UWP的多顯示支援,現在Unity player 二進位檔案已做數位簽章,增加了額外的一層安全性,可以防止對Unity運行時二進位檔案進行篡改。

最後,我們取消了對Windows 8.1和Windows Phone 8.1應用的支持,Unity 5.6是最後一個支持這兩個平台的版本。


Sony PS4支援Video Player
我們在Unity 5.6中加入了一個全新的Video Player,在Unity 2017.1中正式支援 Sony PS4,完成了對跨平台的支援。PS4的Video Player使用Sony的AvPlayer庫來加速h.264的解碼。解碼h.264(PS4的推薦格式)時,CPU消耗非常低。可以同時對最多8個h.264進行解碼。它還支援對webm容器中的VP8格式進行軟體解碼(會有更高的CPU消耗)。最後它支援多種影片渲染模式(直接渲染到攝影機的近/遠平面,作為材質覆蓋,或渲染貼圖),音訊流可以直接輸出或發送到Audio Source進行混合。


Low-Level Native Plugin渲染擴展
我們擴展了底層渲染API,並提供了一些很酷的新功能:

  • 現在可以將user data發送callback函式。
  • 我們擴展callback的可能事件列表增加。
  • 我們在Shader編譯器中加了hook功能,允許你在發送到編譯器之前對著色器進行更新。這可以設計透過自訂關鍵字來控制自訂變體(Variants)。
要想瞭解這些擴展功能的威力,可以查看NVIDIA的VRWorks裡面的資料,它是實現這一切的基礎。


VR: NVIDIA VRWorks
在Unity 2017.1中,NVIDIA VRWorks透過以下功能幫虛擬實境提供了一種全新高度的視覺擬真、效能和反饋力:

  • Multi-Res Shading是一種用於VR的創新性渲染技術,它可以使圖像的每一部分都能渲染在一個與鏡頭矯正圖像圖元密度相匹配的解析度上。
  • Lens Matched Shading使用NVIDIA基於Pascal的GPU的新Simultaneous Multi-Projection架構,為圖元著色提供潛在的效能改進。
  • Single Pass Stereo使用NVIDIA基於Pascal的GPU的新Simultaneous Multi-Projection架構,僅對模型進行一次繪製,即可在雙眼視圖同時投射相同物體。
  • VR SLI為虛擬實境應用程式提供更高的效能,可以指派獨立GPU給特定眼睛,大大加速立體渲染。
為了更好實現這些功能,建議在PC上使用GeForce 9系列或更高的GPU來執行。可以從Asset Store下載




Release notes
請查閱Release notes說明,瞭解新功能與bug修復的完整列表。

再次感謝那些在測試版本協助我們改進功能的開發者們。

沒有留言:

張貼留言

著作人