虛幻引擎 4 14 版發佈


此版包含 Epic 的數百項更新,以及 GitHub 虛幻引擎開發者社區提交的 71 項改良!特此對虛幻引擎 4.14 版本的每位貢獻者表達誠摯謝意:php

Adam Moss(adamnv)、Alan Edwardesa(alanedwardes)、Andreas Axelsson (judgeaxl)、Andreas Schultes(andreasschultes)、Andrew Armbruster(aarmbruster)、Artem V. Navrotskiy(bozaro)、Audiokinetic Inc.(audiokinetic)、BaxterJF、CA-ADuran、Cameron Angus (kamrann)、Cengiz Terzibas (yaakuro)、Christian Hutsch (UnrealEverything)、CodeSpartan、Cuo Xia (shrimpy56)、Damir Halilovic(DamirHalilovic)、dcyoung、Deniz Piri(DenizPiri)、Dennis Wissel(dsine-de)、Dominic Guana(jobs-git)、Dorgon Chang(dorgonman)、dsine-de、Filip Brcic(brcha)、Hakki Ozturk(ozturkhakki)、Hannah Gamiel(hgamiel)、Hao Wang(haowang1013)、Jarl Gullberg(Nihlus)、Jason(Abatron)、Jeff Rous(JeffRous)、Jeremy Yeung(jeremyyeung)、Jørgen P. Tjernø(jorgenpt)、Josh Kay(joshkay)、jpl-mac、KashiKyrios、Kory Postma(korypostma)、Kyle Langley(Vawx)、Laurie(Laurie-Hedge)、Lei Lei(adcentury)、Leszek Godlewski(inequation)、Marat Radchenko(slonopotamus)、Matthew Davey(reapazor)、Matthias Huerbe(MatzeOGH)、Matthijs Lavrijsen(Mattiwatti)、mbGIT、Michael Geary(geary)、Michail Nikolaev(michail-nikolaev)、Moritz Wundke(moritz-wundke)、Narendra Umate(ardneran)、Nelson Rodrigues(NelsonBilber)、null723八、Paul Evans(paulevans)、PjotrSvetachov、projectgheist、Rama(EverNewJoy)、rcywongaa、rekko、Ryan C. Gordon(rcgordon)、sangpan、Sébastien Rombauts(SRombauts)、Shihai(geediiiiky)、stfx、straymist、Theodoros Ntakouris(Zarkopafilis)、tmiv、ungalyant、Webster Sheets(Web-eWorks)、x414e5四、yehaike、YossiMHWF、Yukariin、Zachary Burke(error454)、Zhiguang Wang(zhiguangwang)html

全新內容

虛幻引擎 4.14 版本包含一個針對 VR 進行優化的全新前向着色渲染器,在遊戲中啓用清晰的多重採樣抗鋸齒。全新的接觸陰影(Contact Shadows)功能可渲染出複雜物體的美麗陰影細節。此版本中還加入了一個全新靜態網格體自動 LOD 生成(automatic LOD generation)功能。此功能不須要第三方庫。node

咱們還簡化了動畫工具,以便提升生產效率,爲Sequencer(UE4 的非線性動畫工具)添加了諸多新功能,並對載具、布料和動畫進行了改良。ios

移動開發者的好消息:如今能夠在兼容的安卓設備上使用 Vulkan!此外咱們還添加了多項全新移動渲染功能,如從場景色彩和深度進行讀取,以及在 UI 上繪製 3D 物體。git

Windows 平臺上的 C++ 程序員現可以使用 Visual Studio "15」 進行開發。仍然支持 Visual Studio 2015。程序員

主要功能

新鮮出爐:帶 MSAA 的前向着色渲染器

全新的前向着色渲染器結合了高精度 UE4 燈光功能和多重採樣抗鋸齒(MSAA)支持!前向渲染器擁有 MSAA 和啓用每一個材質優化的選項,很是適用於 VR。算法

Robo

前向渲染器的工做原理是將燈光和反射捕捉剔除到一個視錐空間網格。前向通道中的每一個像素在對其產生影響的燈光和反射捕捉上迭代,對它們帶有的材質進行着色。靜態光照的動態陰影爲提早計算,並被打包到屏幕空間陰影遮罩的通道中,以便高效利用多個陰影投射功能。啓用 Rendering Project 設置中的「Forward Shading」並重啓編輯器便可使用前向渲染器。json

前向着色

支持的前向渲染功能包括:windows

  • 完整支持靜態光照。包括來自可移動物體的動態陰影,此陰影將和預計算環境陰影混合
  • 混合的多個反射捕捉(帶視差矯正)
  • 部分場景的平面反射,將合成到反射捕捉中
  • D-Buffer 貼圖
  • 預計算光照和天光
  • 無陰影的可移動光照
  • 膠囊體陰影
  • 兼容實例化立體

前向着色暫不支持如下功能:後端

  • 屏幕空間技術(SSR、SSAO、接觸陰影)
  • 投射陰影的可移動光照
  • 動態陰影半透明度
  • 從靜態光照獲取環境陰影的半透明度
  • 光照函數和 IES 配置文件
  • 透明覆蓋
  • D-Buffer 貼圖上的 MSAA、動態模糊、動態陰影和膠囊體陰影

Robo

前向渲染器支持多重採樣抗鋸齒(MSAA)和隨機採樣抗鋸齒(TAA)。在多數狀況下 TAA 更爲可取,由於它能移除幾何體鋸齒和反射鋸齒。在 VR 項目中,頭部追蹤引發的恆定亞像素運動會形成沒必要要的模糊。MSAA 方爲更佳選擇。

選擇使用 MSAA 的項目將須要編譯內容,以減輕反射鋸齒。「Normal to Roughness」功能有助於弱化細節法線貼圖上的反射鋸齒。靜態網格體的自動 LOD 生成可抹平遠處模型上的特徵,有助於弱化小三角形致使的鋸齒。

在咱們的測試中,使用 MSAA(替代 TAA)提升了約 25% 的 GPU 幀時。實際開銷將依內容而定。

在 Rendering 項目設置中設置默認抗鋸齒方法便可使用 MSAA:

控制檯變量「r.MSAACount」控制每一個像素計算的 MSAA 採樣數。「r.MSAACount 1」擁有特殊含義並可返回隨機採樣抗鋸齒,便於在抗鋸齒方法之間切換。

性能

進行一些渲染時,前向渲染器的速度比延遲渲染器更快。可在每一個材質上禁用的功能能夠實現最大的性能提高。默認狀況以下:只有最近的反射捕捉應用時不帶視差矯正,除非材質使用高精度反射、高度霧按每一個頂點計算、平面反射只應用到啓用的材質上。

在 Epic 最新的 VR 遊戲《Robo Recall》上平衡這些選項。在使用 NVIDIA 970 GTX 顯卡的狀況下,前向渲染器比延遲渲染器的速度快約 22%。

新鮮出爐:接觸陰影

接觸陰影(Contact Shadows)可在物體上實現高細節動態陰影。

下圖中的常春藤只是一些扁平的片,但因爲材質中輸出的 Pixel Depth Offset,其自身造成的陰影十分真實。

接觸陰影功能針對深度緩衝在屏幕空間中添加一個短光線投射,瞭解像素是否從給定光照被遮擋。這可以在幾何體的鏈接點處造成銳化的細節陰影。經過其餘算法所造成陰影的接觸點可能出現缺失或模糊,存在多種緣由。一般這是因爲缺少分辨率或深度誤差。不管緣由如何,全新的接觸陰影功能可以以較小的開銷填補空缺。

接觸陰影可用於設置光照上的 Contact Shadow Length 屬性。此屬性控制屏幕空間中光線投射的長度。如設爲 1,則光線投射將穿過屏幕。如設置的值較大,精度和性能將會降低。所以在實現須要的效果時請儘可能將長度保持在最短。

接觸陰影的另外一個使用狀況是從任意光照的視差遮蔽映射得到自陰影。這須要在材質中輸出像素深度偏移。此動畫顯示了一個視差遮蔽映射的表面,接觸陰影的長度設爲 0.1。

新鮮出爐:自動 LOD 生成

虛幻引擎最新版本能夠自動減小靜態網格體的多邊形數量來建立 LOD!

上面的動畫顯示了自動生成的五個 LOD。每一個 LOD 的三角形數量均爲上一個的一半。

自動 LOD 生成使用名爲二次網格體簡化的功能。網格體簡化器將把生成的兩個頂點合併,以計算與邊緣發生重疊的視覺差的量。它將選取視覺影響量最小的邊緣,而後與之重疊。執行此操做時,它將選取最佳位置放置新合併的頂點,並移除沿邊緣重疊的三角形。它將繼續以此方式重疊邊緣,直到達到所要求的三角形目標數量。

此網格體簡化器將維持 UV,包括生成的光照圖 UV、法線、切線和頂點顏色。UV 被維持後,則可以使用相同的材質,且全部 LOD 都可共享相同的光照圖。

控制所生成 LOD 的高級設置在靜態網格體查看器中的 LOD Settings 下。

「LOD Group」包含預設列表。可根據項目在 BaseEngine.ini 文件的 [StaticMeshLODSettings] 下進行修改。咱們建議爲項目設置好類別並儘可能使用 LOD 羣組,而不對每一個 LOD 的細節進行控制。

須要注意一個重要設置:「Auto Compute LOD Distances」。由於算法瞭解每一個邊緣重疊所添加的視覺差量,因此它能夠用此信息決定可接受的距離偏差量。這意味着它也將自動爲每一個 LOD 計算所使用的屏幕尺寸。

如需瞭解每一個 LOD 自動生成的細節,可在 Reduction Settings 中進行查看。請注意:此功能當前只可用於靜態網格體,尚不支持網格體代理 LOD 生成。

新鮮出爐:預計算光照情景

最新版本現支持同一幾何體在多個光照設置下的預計算光照!這在 VR 和建築視覺表現的使用實例中尤其重要,由於這些項目要求儘可能高的精度和性能。

在上例中,定向光照、天空光照和天空盒已放置到一個名爲 DayScenario 的光照情景關卡中。街燈已被放置到 NightScenario 中。

使用光照情景的方法:

  • 右鍵點擊 Levels 窗口中的子關卡並將其改成 Lighting Scenario。當光照情景關卡爲可見時,其光照圖將被應用到世界場景。
  • 在光照情景關卡上變動到藍圖的關卡流送方法
  • 將網格體和燈放置到此關卡中並構建光照
  • 在不變關卡的關卡藍圖的 BeginPlay 中,在須要激活的光照情景關卡上執行一個 Load Stream Level。

限制:

  • 在遊戲中一次只存在一個可見光照情景關卡。
  • 光照情景關卡出現後,來自全部子關卡的光照圖數據均會被放置在其中,所以白天時只加載 DayScenario 光照圖。因此,光照圖將再也不由子關卡進行流送。
  • 讓光照情景關卡出現時將強制進行反射捕捉更新,將致使加載時間變長。

新鮮出爐:逐像素半透明光照改良

在延遲渲染器中,全新的前向着色功能現可用於半透明表面,從多個燈光處得到反射高光、從視差矯正反射捕捉得到基於圖像的反射。

新鮮出爐:全分辨率皮膚着色

UE4 現支持下表面輪廓着色模型的全分辨率皮膚着色。這可生成表面細節(如毛孔和皺紋)的高保真度光照。

棋盤格渲染皮膚(左圖)、全分辨率皮膚(右圖)(註釋:頭部模型由 Lee Perry-Smith 建立)

表面細節 - 棋盤格(左圖)、全分辨率(右圖)

以前,皮膚上的光照使用棋盤格圖案展現,一半像素包含彌散光照、另外一半像素包含反射光照。光照在最終的下表面輪廓全屏通道中重組。此方法可生成下表面光照的良好效果(原始即爲低頻),但它可能致使表面細節光照的保真度較低。

新方法將把包含彌散和反射光照信息的每一個像素打包到 RGBA 編碼中。利用它可在最終的下表面輪廓全屏通道中重建全分辨率光照,經過隨機採樣抗鋸齒得到表面細節的更佳效果和更穩定的表現。

兼容性 全分辨率皮膚着色須要至少 64 位的場景色彩格式(帶完整透明通道)。默認的 FloatRGBA 場景色彩格式可正常使用,但不支持 FloatRGB 之類的 32 位表示。如場景色彩格式與全分辨率皮膚不兼容,則會退回以棋盤格爲基礎的光照。使用 r.SSS.Checkerboard 控制檯變量可覆蓋此行爲。可使用的數值爲:

0:禁用棋盤格(全分辨率)

1:啓用棋盤格(舊行爲)

2:自動(默認)-

如場景色彩像素格式支持,將使用全分辨率 限制 全分辨率皮膚着色是一個近似,但毫無心義。它在多數狀況下均工做正常,但因編碼方法不一樣,特定材質特徵可能出現問題。如下材質尤其如是:

  • 金屬材質
  • 自發光材質

這些特徵將正常工做,但因爲打包 RGBA 彌散/反射編碼的緣故,輸出與棋盤格之間可能存在差別。製做材質時能夠解決特定問題:將不須要進行皮膚着色的區域的不透明度設爲 0 便可。爲進行着色,不透明度爲 0 的像素將做爲默認光照。

註解: 出於性能緣由,以此方式對具備透明度的像素進行遮罩爲可取之法——由於下表面後期處理將略過這些像素。

性能注意事項

如遊戲擁有 64 位場景色彩格式,全分辨率下表面光照的處理速度一般比棋盤格更快(因爲紋理提取數量更少)。而若是遊戲擁有 32 位場景色彩,減小紋理帶寬所換取的性能益處較大(但這取決於硬件)。

新鮮出爐:反射捕捉精度提高

使用反射捕捉時,引擎將混合來自反射捕捉的間接反射和來自光照圖的間接彌散。由於反射立方體貼圖只在空間中的一個點捕捉,這將有助於減小泄露,但光照圖會在全部接收物表面進行計算幷包含本地陰影。

左圖帶光照圖混合,右圖則不帶

混合在不平表面效果較好。但在平滑表面上,來自反射捕捉的反射與來自其餘方法的反射(如屏幕空間反射或平面反射)不相匹配。

十分平滑的表面上將再也不進行光照圖混合 粗糙度爲 .3 的表面將得到完整光照圖混合,粗糙度 .1 及如下的表面將逐漸淡出至無光照圖混合。這容許反射捕捉和 SSR 進行更好的匹配,過渡更不明顯。

下圖的鏡頭展現了先後的鏡面表面反射。注意 SSR 和反射捕捉之間牆壁反射的區別。在動態效果下穿幫尤爲明顯,由於它將隨攝像機一同運動(因爲存在 SSR 限制)。

這會對現有內容產生影響 - 在反射泄露在平滑表面的狀況下,泄露將更爲明顯。 爲解決此問題,可放置更多反射探頭減小泄露。關卡最小應擁有一個大型球體捕捉。也可經過渲染項目設置恢復舊的光照圖渲染行爲:

新鮮出爐:VISUAL STUDIO「15」支持

虛幻引擎 4.14 版本天然支持即將推出的 Visual Studio「15」。仍然支持 Visual Studio 2015。可從微軟 Visual Studio 網站的「Preview」處獲取 Visual Studio「15」。

如您已安裝 Visual Studio 的多個版本,可在「Editor Preferences」的「Source Code」部分選擇使用的版本。

新鮮出爐:從 ACTOR 建立靜態網格體

如今能夠右鍵點擊關卡視口中的 actor 並將其當前狀態轉換爲一個新的靜態網格體資源。這個方法甚至可用於骨架網格體,所以能夠從擺好姿式的角色上獲取網格體。

新鮮出爐:NVIDIA ANSEL 支持

UE4 4.14 新增了對 NVIDIA Ansel 攝影的支持!Ansel 是 NVIDIA 退出的一款新工具,便於玩家在遊戲中進行截圖。在 Ansel 模式中時,遊戲將暫停,玩家可控制攝像機構圖,而後進行截圖。可抓取多種截圖,從 HDR 到 360 立體都可。在 NVIDIA 網站中查閱更多詳情

Ansel 現已做爲全新的 UE4 插件公開。在項目中啓用插件後,便可在 standalone 遊戲會話中訪問 Ansel。

(在網頁瀏覽器中查看 Ansel 360 捕捉)

咱們也在 Player Camera Manager 類上公開了函數,以便遊戲對 Ansel 捕捉行爲進行自定義。遊戲可能須要限制攝像機運動的距離、禁用 UI 元素、禁用/啓用特定的光照或後期處理效果,等等。感謝 Adam Moss 和 NVIDIA 提供實現。如要開始使用此功能,請查閱 Ansel 插件文件夾下的 ‘Ansel_integration_guide.html’ 文檔。官方 UE4 Ansel 文檔將不日推出。

新鮮出爐:改良纜繩組件(CABLE COMPONENT)

纜繩組件插件已更新新特性,包括碰撞支持和附着物體或效果的套接字。

纜繩組件現包含如下新特性:

  • 包含摩擦設置的簡單碰撞
  • 嘗試減小彎曲的剛性設置
  • 纜繩每端的套接字
  • 將任意一端設爲「自由」的功能

新鮮出爐:UI 字體外框

UMG 和 Slate 的字體如今擁有一個可應用的任選外框。

指定字體的控件能夠變動外框設置、顏色、或外框所使用的材質。

外框上字體材質的使用方法與其餘字體材質的使用方法相同,惟一的區別是對外框指定的材質只能應用到外框。字體材質可在外框上使用,建立出許多不一樣效果。

新鮮出爐:可編輯的 MAP 與 SET 屬性

現可在 Details 面板中編輯 Map 與 Set 屬性

Sets 和陣列類似,但沒法在一個集中兩次擁有相同元素,且元素的排序沒法保證。然而在一個 set 中進行查找肯定其是否包含元素的速度十分之快。

Maps 擁有一個鍵和一個值,可在 details 面板中對這兩者進行編輯。和 Sets 相同,全部的鍵必須獨一無二,元素的排序不保證留存。然而,元素值的查找速度很是快(只要明確它是一個鍵)。

新鮮出爐:材質中的矢量 NOISE

Noise 材質圖表節點包含數個適用於過程着色的函數,生成一個單值(標量)結果。|

 |  |  |  |  |

| Cellnoise | Vector Noise | Gradient | Curl | Voronoi |

新的 Vector Noise 節點添加數個 3D 或 4D 矢量結果。這些函數存在運行時開銷,所以建議它們開發出一個查找後,使用 4.13 版本中加入的 Draw Material to Render Target 藍圖特性將全部或部分計算烘焙到紋理中。這些材質圖表節點容許過程查看在引擎中的最終資源上開發,是用外部工具應用到引擎中資源、建立過程生成紋理的另外一種方法。這些新函數包括

1.Cellnoise:爲 3D 網格中的每一個單元返回一個隨機色彩(即從數學下截斷應用至節點輸入)。特定位置的結果固定不變,是爲材質增長隨機性的好方法。該 Vector Noise 節點的計算開銷極低,所以不須要將其烘焙到紋理中提高性能。

2.Perlin 3D Noise:用 3D 矢量輸出計算 Perlin Simplex Noise 的一個版本。每一個輸出組件在範圍 -1 到 1 之間。同時計算三個 noise 通道的開銷比合並三個標量 noise 函數結果的開銷更低。

3.Perlin Gradient:計算標量 Perlin Simplex Noise 的分析 3D 梯度。輸出爲四個通道,前三個(RGB)爲梯度,第四個(A)爲標量 noise。這適用於表面上的凹凸貼圖和流型貼圖。

4.Perlin Curl:計算矢量 Perlin Simplex Noise(又稱 Curl Noise)的分析 3D 旋度。輸出爲一個 3D 簽名旋度矢量。這適用於流體或粒子流。

5.Voronoi:將相同 Voronoi noise 做爲標量 Noise 材質節點進行計算。標量 Voronoi noise 在 3D 空間中散佈種子點並返回到最近點的距離。Vector Noise 版本返回 RGB 中最近種子點的位置,以及 A 中到該點的距離。尤爲是配合 Cellnoise 使用後,這能造成每一個 Voronoi 單元的一些隨機行爲。下圖是一個簡單的石牀材質,使用 Vector Noise / Voronoi 的距離組件調製一些表面的凹凸、混合裂縫中的苔蘚,以及種子位置和 Vector Noise / Cellnoise,用於變動每塊岩石的色彩和凹凸高度。

 

Perlin Curl 和 Perlin Gradient 可在倍頻中被一同添加(只做爲常規 Perlin noise 容器)。對於更復雜的表達式而言,有必要計算表達式結果的梯度。爲進行協助,可放置表達式計算爲一個材質函數,並將其結合助手節點 Prepare3DDerivCompute3DDeriv、或 GradFrom3DDeriv/CurlFrom3DDeriv 進行使用。它們使用位於四面體圖案中的基礎表達式的四個求值來近似這些基於導數的操做。例如,此網絡使用梯度從一個凹凸高度函數計算凹凸法線。

新鮮出爐:PHYSX 3.4 升級

虛幻引擎現使用 NVIDIA PhysX 最新的 3.4 版本。這改善了剛體和場景查詢的性能和內存使用(尤爲是多核性能)。

這個版本的 PhysX 支持運動物體上的連續碰撞檢測(Continuous Collision Detection)(CCD),可在高速運動的剛體之間造成精確的碰撞。在下方的 Robo Recall 測試關卡動畫中,玩家揮舞武器反彈迎面而來的子彈。

可當即在 UE4 中使用的新特性:

  • 運動物體的連續碰撞檢測(CCD)(見上方動畫)
  • 加速運動物體更新
  • 加速凸包製做

在將來版本中,咱們將加入更多 PhysX 最新版本中擁有的新物理特性。

新鮮出爐:動畫編輯器改良

與動畫相關的工具被拆分爲單獨的資源編輯器,無需再在多個模式中使用一個編輯器。

還進行了多項其餘改良。每一個編輯器的經常使用功能基本均顯示在視口和改良的骨架樹中。

  • 骨架網格體編輯器的佈局和資源細節面板均有修改,材質和 LOD 部分的修改較大。
  • 骨架編輯器的佈局已做調整,骨架樹已進行優化。
  • 動畫編輯器的佈局已做調整,可在資源瀏覽器中選擇性地添加和移除欄目。
  • 動畫藍圖編輯器的佈局已做調整,更接近標準藍圖編輯器的佈局。動畫預覽編輯器如今能夠選擇性地將對預覽屬性均進行的修改應用到類默認上。

資源快捷工具欄

使用改良的資源快捷工具欄可在共享骨架的相關動畫資源之間切換。

錄製移至傳送功能按鈕

以前的版本中,錄製經過工具欄上的一個按鈕進行。最新版本中,錄製按鈕已移至傳送功能按鈕中(與 Sequencer 類似)。

預覽場景設置

經過「Scene Setup」菜單便可在每一個編輯器中編輯場景中的物體和它們的動畫。使用該功能能夠應用預覽動畫、設置不一樣的預覽網格體(這是針對骨架或單個動畫),並附加額外的網格體。額外的網格體現可指定爲單獨的純編輯器資源。這些資源將定義做爲主網格體從屬進行驅動的一套骨架網格體。

新鮮出爐:動畫曲線窗口

在最新版本中,使用動畫編輯器中的全新專屬窗口便可便利地對動畫曲線進行調整。編輯時便可進行即時預覽。

在以前的版本中只能在動畫資源上配置曲線,而在最新版本中可在骨架上進行設置。

新鮮出爐:CHILD ACTOR 模板

經過 Child Actor 模板便可自定義添加到藍圖的子 Actor 組件的屬性。

添加子 Actor 組件後,擁有 Actor 的藍圖編輯器的 Details 面板中便會出現一個可展開模板。可今後處訪問子 Actor 的所有屬性,包括公開變量。例如,Blueprint_A

  • 包含一個 PointLight 組件(使用公開變量驅動其色彩),而後將該藍圖設爲 *Blueprint_B* 中的一個子 Actor 組件,便可從 *Blueprint_B* 的 Details 面板中調整顏色變量。

這是一項重大改良。以前的版本中用戶被限制在子 Actor 組件的默認屬性中,只能經過遊戲腳本進行更新。

新鮮出爐:默認動畫藍圖

現可指定動畫藍圖到骨架網格體。動畫藍圖在組件中被指派後,該骨架網格體將固定運行。不管網格體是在動畫工具中查看、只是一個 Sequencer 過場,或只是放置在關卡中,都可對固定應用的動畫動態或其餘控制器進行設置。

這將使動態、控制器、IK 或其餘動畫藍圖特性與網格體產生關聯,無需在每一個動畫藍圖中進行復制便可在此網格體上進行使用。

「後期處理」動畫藍圖也擁有其原生特性和藍圖更新步驟,所以參數可被讀取或計算,以便在動畫圖表中使用。

新鮮出爐:VR 中的地形編輯

在新版本中可以使用 VR 運動控制器建立並設計地貌,並繪製地形材質。

可在快捷菜單的「Modes」面板中打開地形編輯工具。而後從 UI 中選擇筆刷並開始繪製!長按運動控制器上的「Modifier」按鈕便可消除。

新鮮出爐:載具改良

新版本中輪胎力的應用點已發生變化。以前的版本中,輪胎力的應用點位於載具的質量中心。新版本中輪胎力的應用點位於輪胎的質量中心,更容易實現車輛的載荷擺振。

此外咱們還添加了簡單輪式載具移動組件(Simple Wheeled Vehicle Movement Component),無需複雜的引擎和傳動模擬便可實現車輪懸掛和輪胎摩擦。利用此組件可輕鬆在單個輪胎上應用扭矩。在新版本中,繼承自 Wheeled Vehicle Movement Component 的所有組件都可在任意組件上使用,無需依賴於 Wheeled Vehicle Actor。

已有內容的 Deprecated Spring Offset Mode 將自動設爲 true,以維持以前的行爲。變動 Suspension Force Offset 便可對此行爲進行進一步調整。

新鮮出爐:安卓 VULKAN 改良

在虛幻引擎 4.14 版本中可發佈支持 Vulkan 的遊戲。

  • UE4 支持帶 Vulkan 驅動的 Android 7(Nougat)設備,以及運行最新 OTA 更新的三星 Galaxy S7。
  • Android 設備上的 UE4 Vulkan 渲染器已修復許多渲染問題。
  • 在不支持 Vulkan 的 Android 設備上運行時,渲染器將自動撤回 OpenGL ES。
  • 現可以使用設備配置文件啓用或禁用特定設備和驅動版本上的 Vulkan 支持,以及到 ES 3.1 和 ES 2 的撤回。這使得 UE4 遊戲可在 Vulkan 實現不完整或損壞的手機上禁用 Vulkan 支持,轉而使用 OpenGL ES。

新鮮出爐:支持移動設備的自定義深度

新版本的移動渲染通道中已支持自定義深度。自定義後期處理材質如今可從場景深度、自定義深度以及場景色彩取樣。

須要後期處理,所以必須啓用移動 HDR。但在當前版本中,移動 MSAA 啓用時該功能沒法正常工做。

新鮮出爐:移動設備場景捕捉改良

在最新版本中,渲染場景進行捕捉時,移動設備支持輸出 Inverse Opacity 和 Depth 值的 Scene Capture Source 設置。

  • 「SceneColor (HDR) in RGB, Inv Opacity in A」選項可用於將帶半透明度的物體渲染爲紋理,而後在場景或控件藍圖上進行透明混合。
  • 一樣,使用結果紋理時深度值可用做遮罩。
  • 生成不透明度數據存在一些開銷,所以能夠在不須要不透明度時使用「SceneColor (HDR) in RGB, Inv Opacity in A」優化性能。
  • 場景捕捉現可在不支持浮點目標的設備上正常使用,如 Android 6 以前的 Galaxy S6。

新鮮出爐:布料蒙皮改良

咱們在引擎中加入了計算模型對模型布料蒙皮數據的功能。所以無需使用導出爲 .apx 或 .apb 文件的渲染數據,而使用 UE4 已擁有的渲染數據。從 APEX 導出資源選取模擬模型,並在此模型上從新蒙皮渲染數據。這意味着最終數據的效果應和最初導入的數據同樣好。

這將帶來一些益處。以前法線可能存在顯示錯誤(見下圖),而且限制在一個 UV 通道上。全新蒙皮系統將這兩個問題一舉解決。

新鮮出爐:材質屬性節點

持續不斷的更新改善了材質屬性的可延展性,使材質屬性更加易讀,且不易出現錯誤。

  • GetMaterialAttributes - 此節點是 BreakMaterialAttributes 的精煉替代品
  • SetMaterialAttributes - 此節點是 MakeMaterialAttributes 的精煉替代品
  • BlendMaterialAttributes - 這個新節點使材質屬性結構的混合更爲便捷。

Get 和 Set 節點的主要改良是引腳爲選擇性添加,與默認公開所有屬性的 Break 和 Make 節點不一樣。這使得圖表可避開須要手動鏈接每一個屬性引腳的老工做流程。選擇一個節點將在細節面板中顯示當前引腳的列表,可展開或移除此列表。例如,下圖中的材質函數抓取一個屬性集,而後將基礎色彩(Base Color)和粗糙度(Roughness)混合到一個光亮的紅色表面。

爲使圖表更加簡潔,這些節點利用許多後端變動,對項目可能須要添加的自定義材質屬性造成前向兼容。缺失的屬性將被自動檢測,用戶能夠對錯誤進行處理,在項目之間共享材質更爲可行。在節點上非顯式排列的屬性(包括材質圖表建立後添加的屬性)將經過主 Material Attributes 引腳傳遞。新引腳添加 Make 和 Break 節點後,全部圖表均須要手動更新。

新的 Blend 節點將實現使用一個遮罩的多個屬性集的混合,這是結合材質細節層使用時的常見操做。下圖實例平均地混合了紅色和綠色材質(定義爲函數),一個節點將爲結果應用透明層。

Blend 節點默認爲全部使用 Alpha 輸入的材質屬性執行線性插值。利用此節點的複選框可退出頂點/像素層面的混合,更易於控制純頂點或純像素遮罩數據的使用。與前文提到的 Get 和 Set 節點類似,Blend 節點將自動處理新屬性的添加或移除,使程序員在註冊屬性時指定自定義混合行爲。

新鮮出爐:材質中的預蒙皮本地位置

在新版本中,材質可訪問骨架網格體的參考動做位置,以在每一個頂點的輸出中使用。這可在動畫角色上造成局部效果。該節點可在靜態網格體之間共享,也可在返回標準本地位置的網格體之間共享。下面的圖表實例在局部空間中建立了一個網格圖案,它在動畫中和骨架網格體之間保持相對關係。

新鮮出爐:SEQUENCER 鏡頭導入/導出改良

影片錄製時能夠對每一個鏡頭進行幀處理。新版本中,在每一個鏡頭的開頭和末尾可多渲染主序列的幀。經過剪輯決定列表(EDL)便可將這些額外的幀剪入和剪出。此列表可在外部視頻編輯包中使用,調整鏡頭之間的剪輯。

新鮮出爐:攝像機升降架改良

新版本調整了攝像機升降架的行爲,可模擬物理升降架的運動。

  • 攝像機升降架繞 Z 軸和 Y 軸的旋轉量爲 0。
  • 添加升降架繞 Z 軸和 Y 軸旋轉量的鎖定開關。它們默認爲不鎖定,所以攝像機將和地面保持水平。

新鮮出爐:SEQUENCER 音頻錄製

在新版本中,錄製序列時可經過話筒錄製音頻。

新鮮出爐:POSE DRIVER 改良

Pose Driver 節點使骨骼基於一套「範例動做」驅動動畫的其餘方面。在此版本中,該節點可驅動骨骼變形以及變形目標。例如基於手臂的旋轉驅動護肩骨。此外還添加了使用驅動骨平移的選項(而不使用其方向)。已改良調試繪製,顯示每一個「目標」動做和骨骼當前與其之間的接近程度。

新鮮出爐:虛擬骨骼

新版本中加入了對骨架添加「虛擬骨骼」的功能。沒法對虛擬骨骼進行蒙皮,但其會在骨架上兩個現有骨骼之間被約束。骨架上每一個動畫的虛擬骨骼數據將自動生成。例如,可添加一個關節(手的子項),但其會受到手掌關節的約束。與套接字不一樣,此關節可做爲一個目標(即 IK 目標或查看目標)在動畫藍圖中使用,或在 AnimBP 中對其進行修改,以便以後使用。

這有助於改善角色迭代時間。以前的版本中,若是須要變動 IK 或瞄準的目標關節層級,須要在引擎外進行操做,DCC,而後導回全部動畫修復帶新關節的動畫數據。而利用虛擬骨骼可跳過這些步驟,在引擎中執行所有工做。然而這須要對動畫數據進行從新壓縮,將關節從新歸入動畫數據中。如需瞭解虛擬骨骼的更多實際使用,請查閱「Paragon 中使用的動畫技術」。它的出現讓從新定位目標或變動控制器參考幀變得更容易,用於 Paragon 中的定位和斜坡變形。

新鮮出爐:變形目標調試視圖模式

利用全新的變形目標調試視圖模式(Morph Target View Mode)可更容易地肯定每一個變形目標所影響的頂點。

新鮮出爐:子動畫蒙太奇

基於父蒙太奇建立子蒙太奇,以便替換動畫片斷,同時保持總體時間設置。可用於爲行動添加變量,同時保證其不會影響到遊戲進程。

新鮮出爐:MIDI DEVICE 插件

新版本包含與音樂硬件交互的全新「MIDI Device」插件。

這是一個簡單 MIDI 界面,從鏈接到電腦的設備上接收 MIDI 事件。當前只支持輸入。這是它在藍圖中的使用方法:

  • 使用插件 UI 啓用「MIDI Device」插件,而後重啓虛幻編輯器。
  • 在 Blueprint RMB 菜單中查找「MIDI Device Manager」。
  • 調用「Find MIDI Devices」選擇中意的設備。
  • 打開「Found MIDI Device」結構體查看可用內容。
  • 而後對所需設備調用「Create MIDI Device Controller」。將其保存在一個變量中。(將對對象的引用保存在變量中十分重要,不然它將被垃圾回收,沒法接收事件!)
  • 在 MIDI Device Controller 上將本身的事件綁定到「On MIDI Event」事件。存在至少一個要接收的新 MIDI 事件時,它將在每一個遊戲 Tick 上調用。
  • 對傳入事件的數據進行處理,使項目正常運行!

新鮮出爐:地形鏡像工具

新版本中的地形鏡像工具可將幾何體複製到鏡面平面,建立斜向對稱的多人遊戲地圖。

新鮮出爐:網格體材質槽導入改良

新版本中的材質流程已修改,可對靜態和骨架網格體中每一個材質的使用進行更大程度的控制並得到更多信息,改善導入網格體時材質排序的不一致。

列表中的每一個元素爲帶下列信息的材質槽

  • 槽名稱
    • 槽名稱用於在從新導入時匹配材質。網格體被從新導入時,將在 FBX 文件中尋找此名稱,以肯定匹配到現有材質的哪一個部分。在以前的版本中,這依賴於索引排序,容易出現順序混亂。
    • 在此修改前導入網格體的材質槽將設爲空。在此修改後導入網格體的材質槽將默認設爲導入的材質名。
  • 材質資源引用
  • 原始導入的材質名(在提示文本中)

在藍圖和 C++ 中,現可以使用材質槽名檢索材質槽(不使用硬編碼索引)。調用 Set Material By Name 在骨架網格體或靜態網格體組件上設置動態材質。如網格體上的材質排序發生變化,使用名稱查找(不使用索引)可確保遊戲代碼正常工做。

新鮮出爐:平臺 SDK 升級

在每一個更新版本中,咱們都將更新引擎,以支持平臺合做夥伴的 SDK 版本。

  • Xbox One:升至 August 2016 QFE 2
  • Playstation 4:升至 PSR SDK 4.008.061
  • HTML5:升至 Emscripten 1.36.13
  • macOS:現支持 10.12 Sierra, Xcode 8.1
  • iOS/tvOS:現支持 iOS10/tvOS10, Xcode 8.1

新鮮出爐:移動下載/補丁藍圖庫

全新移動補丁應用藍圖庫包含移動遊戲從雲端網站下載並安裝遊戲內容和補丁(而非從 App Store 上進行初始下載)的全部必備功能。

這些功能可肯定是否有更新遊戲內容、開始下載、跟蹤進程、處理錯誤,並在最後安裝成功下載的內容包。此外還包含檢查存儲空間和 WiFi 鏈接的功能,以便藍圖在這些狀況下提醒用戶。支持 Android 和 iOS。

新鮮出爐:KINDLE FIRE 的 AMAZON GAMECIRCLE 插件

新版本中包含全新在線子系統 GameCircle(Online Subsystem GameCircle)插件!

支持 GameCircle 成就、排行榜、好友和 Amazon 內購。啓用此插件後,便可在 Plugins 類目下訪問全新的 Amazon GameCircle 項目設置面板。針對 Fire TV 的 AndroidManifest.xml 變動可在此處啓用。

新鮮出爐:實時 GPU 分析工具

UE 4.14 包含一個實時 GPU 分析工具,可提供主要渲染類型的逐幀數據。輸入控制檯命令「stat gpu」便可使用。也可經過 Viewport Options 下拉菜單中的「Stat」子菜單將數據在編輯器中打開。

這些數據爲累積式,非層級式。所以不須要從事件樹向下尋找便可看到主要類型。例如,陰影投影爲全部光照的所有投影(在全部鏡頭中)的總和。

遊戲運行時,經過屏幕上的 GPU 數據便可簡單瞭解到 GPU 負載狀況。數據也可用於即時測量變化帶來的影響。例如修改控制檯變量時,即時修改編輯器中的材質、或修改並從新編譯着色器(從新編譯着色器已修改)。

遊戲運行時,GPU 數據可錄入到一個文件中,以便以後進行分析。和現有數據相同,可以使用控制檯命令「stat startfile」和「stat stopfile」即將數據錄入到一個 ue4stats 文件。在 Unreal Frontend 工具中打開文件便可查看數據。

使用 UnrealFrontend 對 GPU 進行分析。總共會顯示後期處理和基礎經過時間

數據在代碼中被聲明爲浮點計數器,如:

DECLARE_FLOAT_COUNTER_STAT(TEXT("Postprocessing"), Stat_GPU_Postprocessing, STATGROUP_GPU);

渲染線程上的代碼塊便可經過 SCOPED_GPU_STAT 宏(這些宏引用那些數據名)進行 instrument。這與 SCOPED_DRAW_EVENT 的工做方式類似。例如:

SCOPED_GPU_STAT(RHICmdList, Stat_GPU_Postprocessing);

未顯式 instrument 的 GPU 工做將包含在一個包羅 [unaccounted] 數據中。如數據很是高,則說明丟失的工做須要一些額外的 SCOPED_GPU_STAT 事件。與繪製事件不一樣,GPU 數據爲累積式。能夠爲相同數據添加多個輸入,這些輸入在幀上進行聚合。

在一些 CPU 受限狀況下,GPU 時間設置可能受到 CPU 瓶頸(氣泡)影響(此時 GPU 在等待 CPU 同步)。若是繪製線程時間很高,且出現異常狀況,則須要考慮這點。在 PlayStation 4 上,咱們將命令列表提交之間的時間從時間設置中移除,糾正了這些氣泡。在將來的版本中,咱們將把此功能延伸到其餘主流渲染 API 上。

新鮮出爐:合併 ACTOR 紋理圖譜改良(實驗性)

新版本中推出了一個新選項生成加權(二進制)圖譜紋理(替代每一個材質平均加權的圖譜紋理),從而改善了合併 actor 和組合材質時紋理空間的應用方式。

(左圖:平均加權的材質。右圖: 二進制法) 新功能首先計算單個材質的重要性(根據其採樣的最大尺寸紋理)。以後這些值用於計算材質應占據空間量,並迭代式地將每一個紋理添加到圖譜紋理。這使圖譜紋理對輸入材質更具備表明性,由於它在計算它在圖譜紋理中佔據的最終空間時會把原始紋理數據的大小考慮在內。

新鮮出爐:在 LINUX 上支持 ANDROID

因爲社區用戶呼聲較高,新版本已在 Linux 上支持 Android。設置所需 NDK 和 SDK 工具最簡單的方法是使用 NVIDIA 提供的 CodeWorks for Android(Linux 平臺)。此外須要安裝 OpenJDK 1.8;設置 JAVA_HOME 指向安裝。請注意:新版本還沒有在 Linux 上支持 Android Vulkan。

新鮮出爐:媒體播放器編輯器

新版本中,用戶可從電腦上拖放文件到媒體播放器的視口中,無需建立 FileMediaSource 資源便可預覽視頻文件。

  • 已添加一個解碼器性能數據標籤。輸出取決於用於播放的玩家插件。

新鮮出爐:移動 VR 多視圖

如今能夠在支持設備上使用移動多視圖通道!移動多視圖和桌面上的實例化立體,爲 CPU 上的立體渲染提供了一個優化通道。

如需使用此功能,在 Project Settings 下的 VR 部分將其啓用便可。爲使功能正常工做,應將 Android 編譯設置設爲 OpenGL ES二、禁用 Mobile HDR,並禁用實例化立體。當前版本中,此功能兼容基於 Mali 的主流 GPU。如打包時開啓了此功能但 GPU 不兼容,其在運行時將被禁用。

此功能仍在實驗性階段,咱們還須要驗證它與更多功能和設備之間的兼容性。

如上圖所示在 Project Settings 菜單中啓用移動多視圖,而後重啓編輯器使變動生效。

新鮮出爐:STEAMVR 和 PSVR 分層

新版本已支持 SteamVR 和 PSVR 分層!它的工做方式和 Oculus Rift 插件徹底相同——使用 Stereo Layer 組件。

新鮮出爐:VR 加載影片

引擎新版本支持 Oculus、GearVR、SteamVR 和 PSVR 上的加載影片。影片在渲染線程上運行,可掩蓋加載內容時的幀率小問題。如需使用啓動畫面,可設置一個紋理使用「Set Splash Screen」節點,或選擇在使用「Enable Auto Loading Splash Screen」節點加載地圖時使其自動出現。

新鮮出爐:PSVR 支持多個幀率目標

新版本支持 PSVR 的原生 90Hz 到 90Hz 投射和 120Hz 到 120Hz 投射!這意味着可選則更高的幀率運行,將延遲和投影穿幫最小化。引擎將把幀率鎖定在選擇上,但使用者仍需努力保證幀率的穩定!

新鮮出爐:WINDOWS 多點觸控

使用觸控屏時,將在 Windows 七、8 和 10 上生成觸控事件。擁有此功能後,便可在全新的 Windows 平板上實現觸控遊戲和體驗。此外,無需部署到目標設備便可對移動遊戲的觸控操做進行測試。

新鮮出爐:快速異步加載系統(實驗性)

打包版本現可以使用全新的事件驅動加載器(Event Driven Loader),效率遠高於以前使用的流送代碼。使用 EDL 後,遊戲的加載時間將縮短約 50%,多數狀況下加載速度極快。事件驅動加載器加載資源的代碼路徑統一。這意味着全部包均使用新的異步路徑,再也不使用舊的塊路徑。EDL 當前仍爲實驗性功能,默認爲禁用,但可經過項目設置輕鬆開啓。

新鮮出爐:GAME MODE 和 GAME STATE 類簡化

新版本中添加了全新 Game Mode Base 和 Game State Base 類,做爲現有 Game Mode 和 Game State 類的父項。全部遊戲必需的核心功能位於 Base 類中,而舊版本和射擊遊戲特有的功能位於 Game Mode/Game State 中。新建立的項目將繼承自 Base 類,而已建立的項目將默認使用舊版本中的類。此外,一些新函數已對藍圖公開。

這項修改是一個長期的更新工做,使舊的遊戲性類更容易被理解,並編入全部類型項目的子類。全部範例均已更新使用 Base 類(Shooter Game 除外),而 Shooter Game 將說明如何在舊的類中使用射擊遊戲特有的功能。新版本將繼續支持 Game Mode/Game State,使用者應將把適合自身遊戲的版本編入子類。

新鮮出爐:網絡複製加速

新版本中,從服務器到鏈接客戶端複製屬性的方式已進行內部重構。

咱們已對代碼進行修改,以便高效低在諸多鏈接之間高效地共享屬性複製工做。在此修改以前,咱們只共享無條件屬性(以 DOREPLIFETIME,而非 DOREPLIFETIME_CONDITION 註冊的屬性)的工做。而如今,咱們共享全部類型屬性的工做。這意味着屬性發生改變(須要被髮送)時須要執行檢查工做的頻率將大幅下降。

內部測試的結果顯示下降率已高達 40%。還有更多工做須要完善,但咱們同時也但願告知你們開發進度,分享好消息!

RELEASE NOTES

AI

  • New: Added an 「Enable AI System」 flag to the World Settings that controls whether the AI System will be created for the given map.

  • Bugfix: Fixed an issue with AI Sense Sight’s time slicing unintentionally skipping queue-aging if the given time limit was reached.

  • Bugfix: Fixed an issue basing whether the AI should turn or not by comparing the current desired rotation vs the last update's desired rotation. The AI should be turning based on whether or not the current desired rotation is different from the rotation of the Pawn.

  • Improvements for the consistency of loudness usage in AI Sense Hearing.

  • Minor cosmetic fix to EQS test scoring function’s preview.

  • Selecting Geometry trace mode will no longer project onto the Nav Mesh first in the Projected Points EQS generators.

BEHAVIOR TREE
  • New: Expanded the BT Decorator Is At Location function with an option to use AI Data Provider.

  • New: Multi-node comments are now supported in the Behavior Tree editor. This is similar functionality to the Blueprint editor.

  • Bugfix: Fixed an issue with BT Decorator Compare BB Entries function so that it works regardless of the order of the supplied BB keys.

  • Bugfix: Blackboard key synchronization mechanics correctly handle more edge cases and complex inheritance scenarios.

  • Bugfix: Fixed an issue in propagation of persistent Blackboard keys resulting in these keys missing or being doubled in child Blackboard assets.

  • Bugfix: Fixed an issue for derived Blackboard sometimes getting post-load mechanics run before their parents.

NAVIGATION
  • Bugfix: Aborting previous movement requests as part of requesting a new one no longer resets the agent’s current velocity.

  • Bugfix: Blueprint 「AI Move To」 function no longer uses the default AI Controller’s navigation filter.

  • Bugfix: Fixed navigation export for landscape not handling mirroring and async gathering correctly.

  • Bugfix: Fixed an issue with navigation export for the capsule component.  

  • Bugfix: Navlink’s 「Snap to cheapest area」 mode now works correctly with dynamic navmeshes.

  • Bugfix: Navmesh generation no longer gets stuck in an infinite loop.

  • Bugfix: Fixed an issue with parameters of vehicle RVO avoidance.

  • Bugfix: Fixed an issue with Path Following Component for 「Has Reached」 not using the Goal’s Radius when 「Use Nav Agent Goal Location」 is set to false. When 「Use Nav Agent Goal Location」 is set to true, we want to avoid using the Goal’s location on the navmesh, but instead the acceptability of a radius should be based on the Goal’s radius.

  • Path Following Component distinguishes between partial and full paths in terms of acceptance radius used. This will make partial paths behave as expected with non-trivial big acceptance radii.

  • Layer limit for navmesh generation has been increased.

  • Update Move Focus will only clear the focus if the path following component is idle. This keeps the AI rotated in the correct direction when movements get paused.

ANIMATION

  • New: Added 「Strip Animation Data On Dedicated Server」 option to Animation Settings. This will remove all compressed data from cooked server data. Disabled by Default.

  • New: Added 「Aim Offset Look At」 node. Aim Offset node that drives its inputs automatically from a Target Location and a Source Socket.

  • New: Added Conversion settings to the Alembic import process. This enables the following:

    • Inverting UV Channels.

    • Applying a conversion matrix to the Alembic File.

    • Presets for Autodesk Maya and 3DS Max.

  • New: Added 「LegIK」 Anim node, which supports two or more bones per limb with min compression rotational constraint.

  • New: Added logic to separate overlapping notifies onto separate tracks. Notifies can no longer end up hidden from the user by occupying the same time on the same track.

  • New: Added the option to copy selected Morph Target names to clipboard.

  • New: Added a start time to Montage Play node and Play Slot Animation as Dynamic Montage.

  • New: Added the ability to skip empty 「preroll」 frames when importing an Alembic file and improved the frame information for the Import Options UI.

  • New: The animation 「Sequence Length」 property can now be read in Blueprints.

  • New: Added the ability to open Anim Montage to open asset from the context menu of the segment.

  • New: Added ability for selected Morph Target to view the modified vertices while in the Persona.

  • New: Added option to now insert current pose to the Pose Asset with Insert Pose.

  • New: Added SmartName Deterministic Cooking:

    • SmartName discards GUID during cooking and DisplayName becomes the identifier during cooking.

    • The GUID created nondeterministic cooking causing patch size to become huge without any actual data change.

  • Bugfix: Fixed a crash when attaching slave components with differing bone counts.

  • Bugfix: Fixed a crash with retargeting Additive Animation Montage.

  • Bugfix: Fixed a crash when routing a wire through multiple re-route nodes in an Animation Blueprint.

  • Bugfix: Fixed a crash in 「Get Post Curve」 when importing a pose to pose asset.

  • Bugfix: Fixed a crash when retargeting Anim Blueprint with 「Allow remapping to existing assets」 was enabled.

  • Bugfix: Fixed a crash when calling 「Set Animation Mode」 on a component with no Skeletal Mesh.

  • Bugfix: Fixed an issue when re-creating a skeleton due to a merge conflict it will add all Skeletal Meshes back to the skeleton so that it recreates all hierarchy.

  • Bugfix: Fixed an issue with invalid bound calculation in Calculate LOD Count.

  • Bugfix: Ensure the runaway loop counter gets reset when processing parallel animation.

  • Bugfix: Fixed an issue for fast path struct copy being broken for Vectors.

  • Bugfix: Fixed an issue for warning triggered by calling 「Get Bone Transform」 before the master pose component has been registered

  • Bugfix: Fixed an issue where layered blend per bone odd/even connection counts alternately working/not working

  • Bugfix: Fixed an issue with offset of the floor mesh in Persona when Auto-Alignment was enabled.

  • Bugfix: Fixed an issue with pose flickering on LOD change when using 「Layered Blend by Bone」 node.

  • Bugfix: Fixed an issue to stop empty states being created when dragging montages into State Machines.

  • Bugfix: Fixed an issue with Anim Instance 「Is Running Parallel Evaluation」 check to correctly test if the Skeletal Mesh Component still references the Anim Instance being used.

  • Bugfix: Fixed an issue with 「generated」 string appearing for a Skeletal Mesh LOD that was previously auto-generated but had been reimported from an FBX.

  • Bugfix: Fixed an issue with displaying one more frame for an animation.

    • For example, for 30 frames, it was displaying 0-30, which is incorrect and should be 0-29.

    • To avoid confusion, now it doesn’t display key count. It will display the last frame number, so it will look different, but the data is still the same.

  • Bugfix: Fixed an issue with a number of cases where sub-instance animation instance functions weren’t being correctly passed through the main instance.

  • Bugfix: Fixed an issue with 「auto」 check box in the Morph Target panel.

  • Bugfix: Fixed an issue with functionality of 「show uncompressed animation」 option in Persona viewports.

  • Bugfix: Fixed an issue with entries in the Anim Curves tab losing 「auto」 state when hidden/reshown.

  • Bugfix: Removed errant asterisks in the tooltips on the 「Rotation Multiplier」 node.

  • Bugfix: Fixed incorrect tooltips on the 「Hand IK Retargeting」 node.

  • Bugfix: Fixed an issue in montages where the wrong section was updated with changes from a Details panel when clicking on a different section.

  • Bugfix: Fixed an issue when duplicating an Anim Sequence that has been layer-edited would apply the layer twice.

  • Bugfix: Fixed an issue where Geometry Cache objects would not be visible in Standalone (packaged) builds.

  • Bugfix: Fixed an issue with keyboard shortcuts for Pose Asset editor panel.

  • Bugfix: Fixed an issue with keyboard shortcuts in the Curve Viewer panel.

  • Bugfix: Fixed an issue with notify states not ending when the Animation Instance was cleared.

  • Bugfix: Fixed an issue with orphaned transition nodes being created when they were duplicated or pasted without two valid pin links.

  • Bugfix: Fixed an issue with Override Materials hanging around when setting Skeletal Meshes.

  • Bugfix: Fixed an issue with pin defaults on sub-instance nodes overwriting the defaults on the inner class.

    • The class defaults will now be copied out to the pin.

  • Bugfix: Fixed an issue with pose asset blending.

    • Normalization has been removed for weights that are less than one so the poses do not instantly snap.

  • Bugfix: Fixed an issue where Pose Asset was evaluating the curve in the wrong frame.

  • Bugfix: Fixed an issue where the Pose Asset editor list was not updating when changing the source animation.

  • Bugfix: Fixed an issue with 「Remove Linear Key」 for Additive Animations since DDC has been added.

  • Bugfix: Fixed an issue with 「Root Motion from everything」 calculating incorrect root motion when animations haven’t been ticking.

  • Bugfix: Fixed an issue with sample rate not applied for non-default sample rate when importing an animation.

  • Bugfix: Fixed some inconsistencies in IK editing in the viewports inside Persona when changing effector spaces.

  • Bugfix: Fixed an issue with split struct pins on animation nodes sometimes losing their links on editor restart.

  • Bugfix: Fixed an issue where sub-instance automatic properties would appear in the Details panel.

  • Bugfix: Fixed a typo in 「Root motion from everything」 accumulation code where we calculated root motion weight using the wrong variable.

  • Bugfix: Fixed an issue where Undoing and Redoing would force the Skeletal Mesh into T-pose.

  • Bugfix: Fixed an issue when importing Morph Targets with fixed frame count.

  • Bugfix: Fixed an issue with Blendspace triangulation.

  • Improved editor response during dragging on additive frame index (stop animation compression happening for each mouse move).

  • Non-POD structs can now be copied using the 'fast path' in animation blueprints.

  • Prevented invalid GUIDs from being saved into SmartName containers.

  • Removed save warning about empty animations from assets that contain curve data.

  • Animation Curve Cached UID list has now been moved to Bone Container from Anim Instance in preparation of supporting curve linking to bone feature, so that you could cull out for a certain LOD.

  • Changed 「Create Physics Asset」 in the context menu for Skeletal Meshes to enable creation of a Physics Asset without having to assign it to the Skeletal Mesh. This makes it easier to make new assets for Capsule Shadows.

  • Changed inline curve name editing to only change the name of that specific curve, instead of renaming the SmartName itself.

 

ANIMATION BLUEPRINT
  • Bugfix: Fixed a crash using anim debug with sub-instances that are preceded by branching nodes.

  • Bugfix: Fixed a crash when forcing ref pose during Anim Blueprint initialization when using sub anim instances.

  • Bugfix: Fixed a crash when using sub-instances in non-entry states.

TOOLS
  • New: Added Skeletal LOD workflow refactor.

    • Now we track source files for LODs to save time when reimporting LODs often.

AUDIO

  • New: Added a debug command to solo specific sound waves, sound cues, and sound classes.

  • New: Audio thread is now enabled by default.

  • New: Gameplay Statics’ 「Create Sound 2D」 and 「Spawn Sound 2D」 now have a boolean parameter that specifies the sound should persist across level transitions.

    • Note that the returned component must continue to be referenced by something (Game Instance is a good option) or else it will be garbage collected and the sound will stop.

  • New: Looping sounds are now searchable by the asset registry.

  • New: Making ability to suppress subtitles a UPROPERTY.

  • New: Added support for parsing .wav files with a WAVE_FORMAT_EXTENSIBLE format chunk.

  • New: Added support for pausing individual audio components.

  • Bugfix: Fixed a crash which would occur when copying and pasting an undefined custom sound node from one project to a project which doesn't have the custom node.

  • Bugfix: Fixed an issue for one-shot sound wave instances triggering unintentionally from active sounds when volume mix is 0.

  • Bugfix: Fixed an issue for sound cue delay not consuming startime correctly.

  • Bugfix: Fixed an issue with attenuation on 2D multi-channel sound sources.

  • Bugfix: Fixed an issue with concurrency resolution rule stop quietest with looping sound waves.

  • Bugfix: Fixed an issue with sound node distance cross fade for case of looping sounds.

  • Bugfix: Fixed an issue where Undo in Sound Cue editor does not undo looping changes.

  • Bugfix: Fixed various thread safety issues with occlusion on the audio thread.

  • Hooked up compression quality settings to AT9 files.

  • Prevent procedural sound waves from stopping if they generate 0 bytes of data.

  • Read Compressed Info calculates duration for ADPCM audio.

AUTOMATION

  • New: Added a json summary report file generation as part of all automated test summaries.

  • New: Functional tests now support warnings as errors on a per test basis.

  • New: Included .tps files in the installed build to make it easier for users to identify third party software in use. Also included source for additional programs to Installed Build.

  • New: Added Documentation/Extras in Installed Build.

  • Bugfix: Fixed an issue with Test Equal Add Error Message in Automation Test Base

  • Bugfix: Fixed issues with Mobile Device Interface in Installed Builds.

  • Bugfix: Fixed an issue with Android sessions not appearing in the Session Frontend.

  • Bugfix: Fixed support for PS4 in Installed Builds.

  • Bugfix: Fixed various connection reliability issues with TCP Message Transport used for automation testing on mobile devices.

  • Bugfix: Fixed various issues for PS4 deployment.

  • Bugfix: Fixed support for Xbox for Installed Builds created via Build Graph script.

  • Automation - Presets are now stored in json files stored in Config so they can be shared, and human readable. Working on screenshot automation, getting it where it needs to be to permit us to have repeatable tests for comparison.

  • Each session launched from the Session Frontend Launch tab now has a unique GUID and they will correctly appear as separate sessions in the Automation tab.

  • Excluded some more intermediates from the Installed Build.

  • Functional Tests now run correctly in non-editor build.

  • Functional tests will no longer move the camera if the user is using a debug camera.

BLUEPRINTS

  • New: Added a new 「Is Standalone」 node which returns true if the game is running in Standalone.

  • New: Added ability to change curves used by a Timeline at runtime.

  • New: Added an option in Editor Preferences Blueprint section to 「Display Unique Names for Blueprint Nodes」 rather than the node type.

  • New: Blueprint Nativization: Reduced size of the executable file.

  • New: Added ability to flag Components added via Blueprints as editor only.

  • New: Exposed 「Get Component By Class」 to Blueprints.

  • New: Exposed the method to "Is Any Rigid Body Awake" for primitive components to Blueprints. This enables a Blueprint to determine if Physics Simulation is being done on the object and fulfills a request to determine if an object is "awake" or "asleep".

  • New: Replication condition property flags are now exposed to Blueprints. This can be set in the Properties Details panel.

  • New: Single layout Blueprint is no longer an experimental feature. The option to disable it has been removed.

  • New: Widget and Animation rich diff tool is no longer experimental.

    • Some changes are not detectable by the diff tool, but they are mentioned in a warning to the user.

  • New: Enabled instances of Hierarchical Instanced Mesh Components to be moved around with the transform widget in the Blueprint Editor, just like Instanced Mesh Components!

  • Bugfix: Fixed a crash in the Blueprint Profiler when compiling or profiling that had the following:

    • Contains a loop.

    • Nested Macros.

    • Collapsed Nodes.

    • Called parent functions or events.

  • Bugfix: Fixed a crash caused when compiling a Blueprint after hot-reloading its base class.

  • Bugfix: Fixed a crash when compiling particularly cross-dependent Blueprints.

  • Bugfix: Fixed a crash when trying to pick a debug world for the Blueprint debugger.

  • Bugfix: Fixed a crash when implementing an interface to a child Blueprint and then implementing it with a parent Blueprint.

  • Bugfix: Fixed a crash that could occur when reparenting a child Blueprint class that had inherited its default scene root component from the parent class.

  • Bugfix: Fixed a crash that would occur on a right-click in the Blueprint editor’s component tree view after having copied one or more BSP actors to the clipboard.

  • Bugfix: Fixed a crash that could happen when pasting a copied 「Select」 node.

  • Bugfix: Fixed a crash on load in 「Remove Node and Promote Children」 when removing a corrupted SCS node if it has no parent link (the children are moved to the root node instead).

  • Bugfix: Fixed a rare crash in 「Get Default Value Visibility」 after removing a pin from a Blueprint node.

  • Bugfix: Fixed a crash when one attempts to generate an abstract class from a Blueprint.

  • Bugfix: Fixed a crash in FCDODiffControl when CDOs being compared had different numbers of properties.

  • Bugfix: Fixed a crash that could occur when pasting graph nodes with orphaned connections to a different graph.

  • Bugfix: Fixed a crash when deleting many Blueprint assets.

  • Bugfix: Fixed an issue where a function, created from collapsed nodes, cannot have a parameter of a weak pointer type.

  • Bugfix: Fixed an issue with assets referenced by a function’s local variables won’t be garbage-collected.

  • Bugfix: Fixed an issue where the Blueprint Editor viewport now correctly displays the result of an undo action that changes the default transformation of the Blueprint Actor.

  • Bugfix: Fixed an issue where changes in User Defined Structure will be properly applied in local variables, without resetting the values.

  • Bugfix: Fixed circular dependencies introduced by default values on User Defined Structs that are now loaded correctly. This fixes on cause of data resetting to default on load.

  • Bugfix: Fixed an issue where compiling a Blueprint would trigger the World Outliner to sometimes detach.

  • Bugfix: Fixed an issue where entering 「foreach」 in the Blueprint Editor context menu will not result in 「For Each Loop」 being the first selection.

  • Bugfix: Fixed an issue where moving a variable from a child class to a parent class would break variable Blueprint nodes.

  • Bugfix: Fixed an issue in the Blueprint context menu where options would be unavailable when you hid a sub-level.

  • Bugfix: Fixed an issue so that the 「Create Save Game Object」 node will now change its output type to match the class you select.

  • Bugfix: Fixed an issue that caused comment bubbles to display incorrectly when using Play-In-Editor.

  • Bugfix: Fixed an issue where functions could lose inputs after adopting them from an interface.

  • Bugfix: Fixed an issue that would cause split-pins on latent 「Gameplay Task」 nodes to lose connection.

  • Bugfix: Fixed an issue that could hang the editor indefinitely during Blueprint Compilation.

  • Bugfix: Fixed an issue that prevented the option to split a struct pin from appearing on a 「Get Variable」 node.

  • Bugfix: Fixed an issue that prevented you from ctrl-dragging pin links from macro nodes.

  • Bugfix: Fixed an issue that would cause subsequent latent nodes to fail to execute once one was running.

  • Bugfix: Fixed an issue that would prevent saving a Blueprint after compiling a component that it used.

  • Bugfix: Fixed an issue where Blueprints were not properly inheriting their associated config file.

  • Bugfix: Fixed an issue with rotation struct input pins where splitting them would cause each of the values to shift to the wrong axis.

  • Bugfix: Fixed an issue in which data loss could occur for inherited component default value overrides within a child Blueprint class after recompiling a Blueprinted component class.

  • Bugfix: Fixed an issue that could lead to data loss at runtime when choosing to enable the optimized Blueprint component instancing path for a cooked build.

  • Bugfix: Fixed an issue that could lead to per-instance data loss in Blueprint-constructed components after renaming component variables in the components tree view.

  • Bugfix: Fixed an issue that would lead to Blueprint class compile errors caused by missing client-only component class reference properties in an uncooked server-only context (e.g. UE4Editor.exe -server)

  • Bugfix: Fixed an issue where 「Custom Event」 was no longer the top option when searching the Blueprint menu for 「custom.」

  • Bugfix: Fixed the directions of parameters in functions like 「Get Overlap Infos.」

  • Bugfix: Fixed an error when output references parameters of Blueprint Native Event are not in a specific order.

  • Bugfix: Fixed failed 「ensures」 when pasting linked Anim Blueprint nodes.

  • Bugfix: Fixed issues that could lead to per-instance component data loss after reconstruction of a Blueprint class containing one or more 「Add Component」 nodes in the Construction Script.

  • Bugfix: Fixed issues with Object Library. It now stores 「Blueprint Generated Graph」 object instead of 「Blueprint」 object.

  • Bugfix: Fixed an out-of-order registration issue with native and/or non-scene components and Blueprint-constructed components.

  • Bugfix: Fixed an issue with 「Time Seconds To String」 format so it matches the comment.

  • Bugfix: Fixed a validation of incompatible pines issues. It will now generate an error.

  • Graphs in a Blueprint can properly be deleted even if they were once part of an interface on the Blueprint.

  • Inherited components in a child Blueprint class will no longer trigger a warning message when the original component has been removed from its parent class.

  • Moving a child component in a child Blueprint doesn't force a parent to become dirty anymore.

  • Nested Default Sub-objects no longer trigger an assertion failure in 「Static Allocate Object」 when used by a Blueprint type.

  • Reduced PIE startup time significantly when auto-recompiling a Blueprint class with multiple dependencies.

  • Removed warning that would complain about 「Make Struct」 nodes that didn't have any properties exposed, enabling Blueprint users to return default struct data.

  • 「Show World Context Object」 markup is now fully inherited. Previously only inherited for one level of a hierarchy.

  • Stale breakpoints saved in Blueprint assets no longer trigger a warning on load. Message moved to 'Display' channel.

  • Struct Ref Pins in 「Set Fields In Struct」 node can no longer be split when optional pins as this created ambiguous behavior.

  • Blueprint function 「Get Direction Vector」 has been renamed 「Get Direction Unit Vector」 to reflect details of its result.

  • Can no longer drag child actor from World Outliner to a Level Blueprint and create an invalid actor reference.

  • Default event nodes in child Blueprints now wire up parent call inputs so you can use them as is without breaking functionality.

  • Duplicating levels that have Blueprints with 「Knot」 nodes attached to events will no longer fail with a "Graph is linked to external private object" error.

  • EaseIn/EaseOut descriptions corrected to match actual behavior.

CORE

  • New: Added a config based system for specifying which classes should be stripped on dedicated server and client builds.

    • Class names can be specified in the project cooking settings in the editor

    • All engine classes that relied on 「Needs Load For Server」 or 「Needs Load For Client」 have been moved over to the config based system.

    • 「Needs Load For Server」 and 「Needs Load For Client」 still function as they previously did.

  • New: Added a new file into the ini hierarchy to begin fixing the Engine/Base > Project/Default > Engine/Platform > Project/Platform confusion.

    • We now have Engine/Base -> Engine/BasePlatform -> Project/Default -> Engine/Platform -> Project/Platform. However, Engine/Platform will soon be deprecated as we move things over to Engine/BasePlatform, that are safe to move.

  • New: Added ability for arrays of structs to specify a property to be the key.

    • So, with LODGroups, the Name key inside the struct can be the unique key, so when you have multiple .ini files in the hierarchy overriding the same LODGroup by name, it will replace the first with the second, instead of adding two entries with the same name. Set by @ArrayName=KeyPropertyName. Per Object Config sections need a little different handling, which uses * (see Base

  • New: Added new Module Types: "ClientOnly" and "ServerOnly"enabling better control of when modules are compiled and loaded.

    • Can be used to slim down server / client builds.

  • New: Added some extra information to an assert when 「Cpp Structs Ops」 has not been initialized.

  • New: Added the ability for plugins to reside outside of the Engine/Plugins and Game/Plugins directory.

    • This is useful for plugins that are shared across game teams, but don't want to be placed in Engine/Plugins.

  • New: Accepting comma in milliseconds separator when parsing Timespan.

  • New: Minor changes to pak file security delegate. Now all files that don't exist in the pak file will be passed through the security delegate, regardless of whether they exist on disc or not.

  • New: Only accept "log=<filename>" and "abslog=<filename>" command line values if the filename has a ".log" or ".txt" extension.

  • New: Refactored handling of some UI and rendering code when running headless (i.e. with -nullrhi switch).

  • New: Upgrading an existing UProperty from FVector to FVector4 is now seamless and preserves data properly.

  • Bugfix: Fixed a rare crash when async loading objects caused by linker being detached too early, before other package’s import has been fully processed.

  • Bugfix: Fixed a crash on cooker exit due to unpredictable destruction order of static tickable objects and their collection.

  • Bugfix: Fixed a crash with potential memory corruption when loading Data Tables. It sometimes would allocate less memory than was required.

  • Bugfix: Fixed a crash in PhysX cleanup if an exception occurred during shutdown.

  • Bugfix: Fixed a thread safety issue in the load module code that could crash if multiple threads were trying to load the same module at the same time.

  • Bugfix: Fixed an issue where 「Get All Assets」 would not return data about live objects when passing bIncludeOnlyOnDiskAssets=false.

  • Bugfix: Fixed an issue with task graph memory leaks.

  • Bugfix: Fixed an issue with TMap deserialization in struct serializer and updated unit tests.

  • Bugfix: Fixed an issue to display a meaningful error and shutdown cleanly if Core modules fail to load on engine startup.

  • Bugfix: Fixed an issue so that dynamic delegates can no longer get double bound when copying an Actor.

  • Bugfix: Fixed a potential race condition and minor memory leak in FMonitoredProcess. This could result in the editor hanging on startup.

  • Bugfix: Fixed an issue where 「Force Garbage Collection」 might not force a GC immediately if run on a server with no clients connected.

  • Bugfix: Fixed a memory corruption when instancing subobjects of a TArray property.

    • Fixed a memory overrun when reading an SSL certificate.

    • Fixed an invalid memory access when shutting down FInputBindingEditorModule.

  • Bugfix: Fixed an issue where duplicate log lines appear when commandlet 「Log To Console」 is set.

  • Bugfix: Fixed an issue with FAssetPtr remapping issues for duplicated packages, which was a case with operations like Level Save As and Level Duplicate.

  • Bugfix: Fixed an issue with Malloc Binned 「Get Allocation Size」 for aligned allocations, which caused crashes with the poison proxy.

  • Bugfix: Fixed an issue with Parse 「Value」 when there is whitespace between the command and the argument.

  • Bugfix: Fixed an issue with 「Is A」 race condition during async loading.

  • Bugfix: Fixed an issue where Unreal Build Tool would fail when trying to delete a module’s manifest file in a non-existent directory.

  • Bugfix: Fixed an issue where newline escape sequence wasn’t written to the pipe.

  • FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits.

    • This should fix some of the linker warning messages reporting wrong package name.

  • Invalidate string asset reference tags after finishing up loading of an async package.

    • Fixes some problems with asset refs not updating correctly after a package was loaded asynchronously

  • Lines of output text from FMonitoredProcess are no longer truncated at the default pipe buffer size, and are no longer returned with trailing CR characters on Windows.

  • Made sure Skeleton assets are loaded before 「PostLoad」 is called on them to avoid crashes when async loading animations.

  • Silently skip creating exports from a package where the outer is also an export and has been filtered at runtime during loading.

  • Thread safety fixes for the async log writer + made the async log writer flush its archive more often.

  • Thread safety fixes when using the async loading thread.

  • We now abort a directory watch if we lose access to the directory in question to prevent an infinite loop.

EDITOR AND TOOLS

  • New: Added a warning message to indicate that HLOD clusters do not have a valid proxy mesh, similar to the 「lighting unbuilt」 message.

  • New: Added a commandlet to enable command line importing of any asset type that the engine supports.

  • New: Added an ability to vsync the editor. This is disabled by default. Set 「r.VSyncEditor」 to 1 to enable it.

  • New: Added an option in the FBX importer to automatically convert the unit in the FBX file to Unreal Units.

  • New: Added asset cooking path length in their tooltips so that you can detect cooking path issue before you are cooking.

  • New Added checkbox for 「Show All Advanced Details」 config variable so that it will auto-expand all advanced property categories.

  • New added command line option to enable movie capture burnin.Use the commandline -UseBurnIn=yes.

  • New Added mesh simplification plugin picker to the Project Setting under Editor > Mesh Simplification. The menu to pick simplification plugins also contains a link to find other plugins in the Epic Games Launcher Marketplace.

  • New: Added metadata to remove 「reset to default」 button for certain properties.

  • New: added new shortcut 「Ctrl + Shift + B」 to build current level geometry.

  • New Added the ability to import grayscale Targa (.tga) files in the editor.

  • New Added the ability to search through all Editor Preferences and Project Settings at once. Use the selection in these windows at the top for 「All Settings.」

  • New: Added the possibility to preview a wave sound in the Content Browser from the thumbnail.

  • New: Added Undo/Redo functionality to the Editor Preferences and Project Settings windows.

  • New: Changed and unified saved shortcuts across all editors.

    • Save As is now Ctrl + Alt + S.

    • Save All is now Ctrl + Shift + S.

    • Save Current is now Ctrl + S.

  • New: Added shortcut Ctrl+Shift+Space to quickly rotate through different viewports (left, up, front, back ,etc).

  • New: Changed the FBX batch import workflow to let the user fix all missing source files before starting the FBX batch import process.

  • New: The Content Browser now supports hiding/toggling specific asset detail columns.

  • New: Added the ability for Ctrl + Middle Mouse drag will give options to switch to different viewports.

    • Drag to Left, Right, Up, and Down will match the viewport intuitively.

    • Drag to Up-Left is Front, Up-Right is Back, Bottom-Left and Bottom-Right are both for the Perspective viewports.

    • Dragging exceeding a certain distance will jump to that viewport directly whereas dragging a little will bring up a popup menu showing which viewport it’s going to switch to.

  • New: Added a new view option for 「Show C++ Classes」 in the Content Browser to enable you to hide the C++ classes you may not want to see.

  • New: The Engine version including branch name will now be displayed in the Title bar by default.

  • New: Extended 「Select all input nodes」 function to general Blueprint editor.

  • New: FBX Exporter now exports all LODs.

  • New: The Date Time fields in the editor are now displayed and entered in the local user’s timezone.

    • The time entered is saved into assets using the value convert

      再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!但願你也加入到咱們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

相關文章
相關標籤/搜索