包含5節(jié)視頻教程
關注8.0萬次
本系列包含Unity3D介紹、Unity3D導出人物、Unity3D導出場景、Unity3D導出動作、游戲測試最終完成一個簡單的游戲。是一套非常完整的Unity3D游戲制作教程。
虛幻引擎 4.14 版本包含一個針對 VR 進行優(yōu)化的全新前向著色渲染器,在游戲中啟用清晰的多重采樣抗鋸齒。全新的接觸陰影(Contact Shadows)功能可渲染出復雜物體的美麗陰影細節(jié)。此版本中還加入了一個全新靜態(tài)網格體自動 LOD 生成(automatic LOD generation)功能。此功能不需要第三方庫。
我們還簡化了動畫工具,以便提高生產效率,為Sequencer(UE4 的非線性動畫工具)添加了諸多新功能,并對載具、布料和動畫進行了改良。
移動開發(fā)者的好消息:現(xiàn)在可以在兼容的安卓設備上使用 Vulkan!此外我們還添加了多項全新移動渲染功能,如從場景色彩和深度進行讀取,以及在 UI 上繪制 3D 物體。
Windows 平臺上的 C++ 程序員現(xiàn)可使用 Visual Studio "15” 進行開發(fā)。仍然支持 Visual Studio 2015。
全新的前向著色渲染器結合了高精度 UE4 燈光功能和多重采樣抗鋸齒(MSAA)支持!前向渲染器擁有 MSAA 和啟用每個材質優(yōu)化的選項,非常適用于 VR。
前向渲染器的工作原理是將燈光和反射捕捉剔除到一個視錐空間網格。前向通道中的每個像素在對其產生影響的燈光和反射捕捉上迭代,對它們帶有的材質進行著色。靜態(tài)光照的動態(tài)陰影為提前計算,并被打包到屏幕空間陰影遮罩的通道中,以便高效利用多個陰影投射功能。啟用 Rendering Project 設置中的“Forward Shading”并重啟編輯器即可使用前向渲染器。
支持的前向渲染功能包括:
完整支持靜態(tài)光照。包括來自可移動物體的動態(tài)陰影,此陰影將和預計算環(huán)境陰影混合
混合的多個反射捕捉(帶視差矯正)
部分場景的平面反射,將合成到反射捕捉中
D-Buffer 貼圖
預計算光照和天光
無陰影的可移動光照
膠囊體陰影
兼容實例化立體
前向著色暫不支持以下功能:
屏幕空間技術(SSR、SSAO、接觸陰影)
投射陰影的可移動光照
動態(tài)陰影半透明度
從靜態(tài)光照獲取環(huán)境陰影的半透明度
光照函數(shù)和 IES 配置文件
透明覆蓋
D-Buffer 貼圖上的 MSAA、動態(tài)模糊、動態(tài)陰影和膠囊體陰影
前向渲染器支持多重采樣抗鋸齒(MSAA)和隨機采樣抗鋸齒(TAA)。在多數(shù)情況下 TAA 更為可取,因為它能移除幾何體鋸齒和反射鋸齒。在 VR 項目中,頭部追蹤引起的恒定亞像素運動會造成不必要的模糊。MSAA 方為更佳選擇。
選擇使用 MSAA 的項目將需要編譯內容,以減輕反射鋸齒!癗ormal to Roughness”功能有助于弱化細節(jié)法線貼圖上的反射鋸齒。靜態(tài)網格體的自動 LOD 生成可抹平遠處模型上的特征,有助于弱化小三角形導致的鋸齒。
在我們的測試中,使用 MSAA(替代 TAA)提高了約 25% 的 GPU 幀時。實際開銷將依內容而定。
在 Rendering 項目設置中設置默認抗鋸齒方法即可使用 MSAA:
控制臺變量“r.MSAACount”控制每個像素計算的 MSAA 采樣數(shù)!皉.MSAACount 1”擁有特殊含義并可返回隨機采樣抗鋸齒,便于在抗鋸齒方法之間切換。
性能
進行一些渲染時,前向渲染器的速度比延遲渲染器更快?稍诿總材質上禁用的功能可以實現(xiàn)最大的性能提升。默認情況如下:只有最近的反射捕捉應用時不帶視差矯正,除非材質使用高精度反射、高度霧按每個頂點計算、平面反射只應用到啟用的材質上。
在 Epic 最新的 VR 游戲《Robo Recall》上平衡這些選項。在使用 NVIDIA 970 GTX 顯卡的情況下,前向渲染器比延遲渲染器的速度快約 22%。
接觸陰影(Contact Shadows)可在物體上實現(xiàn)高細節(jié)動態(tài)陰影。
下圖中的常春藤只是一些扁平的片,但由于材質中輸出的 Pixel Depth Offset,其自身形成的陰影十分真實。
接觸陰影功能針對深度緩沖在屏幕空間中添加一個短光線投射,了解像素是否從給定光照被遮擋。這能夠在幾何體的連接點處形成銳化的細節(jié)陰影。通過其他算法所形成陰影的接觸點可能出現(xiàn)缺失或模糊,存在多種原因。通常這是由于缺乏分辨率或深度偏差。無論原因如何,全新的接觸陰影功能能夠以較小的開銷填補空缺。
接觸陰影可用于設置光照上的 Contact Shadow Length 屬性。此屬性控制屏幕空間中光線投射的長度。如設為 1,則光線投射將穿過屏幕。如設置的值較大,精度和性能將會下降。因此在實現(xiàn)需要的效果時請盡量將長度保持在最短。
接觸陰影的另一個使用情況是從任意光照的視差遮蔽映射獲得自陰影。這需要在材質中輸出像素深度偏移。此動畫顯示了一個視差遮蔽映射的表面,接觸陰影的長度設為 0.1。
虛幻引擎最新版本可以自動減少靜態(tài)網格體的多邊形數(shù)量來創(chuàng)建 LOD!
上面的動畫顯示了自動生成的五個 LOD。每個 LOD 的三角形數(shù)量均為上一個的一半。
自動 LOD 生成使用名為二次網格體簡化的功能。網格體簡化器將把生成的兩個頂點合并,以計算與邊緣發(fā)生重疊的視覺差的量。它將選取視覺影響量最小的邊緣,然后與之重疊。執(zhí)行此操作時,它將選取最佳位置放置新合并的頂點,并移除沿邊緣重疊的三角形。它將繼續(xù)以此方式重疊邊緣,直到達到所要求的三角形目標數(shù)量。
此網格體簡化器將維持 UV,包括生成的光照圖 UV、法線、切線和頂點顏色。UV 被維持后,則可使用相同的材質,且所有 LOD 均可共享相同的光照圖。
控制所生成 LOD 的高級設置在靜態(tài)網格體查看器中的 LOD Settings 下。
“LOD Group”包含預設列表?筛鶕椖吭 BaseEngine.ini 文件的 [StaticMeshLODSettings] 下進行修改。我們建議為項目設置好類別并盡量使用 LOD 群組,而不對每個 LOD 的細節(jié)進行控制。
需要注意一個重要設置:“Auto Compute LOD Distances”。因為算法了解每個邊緣重疊所添加的視覺差量,所以它可以用此信息決定可接受的距離誤差量。這意味著它也將自動為每個 LOD 計算所使用的屏幕尺寸。
如需了解每個 LOD 自動生成的細節(jié),可在 Reduction Settings 中進行查看。請注意:此功能當前只可用于靜態(tài)網格體,尚不支持網格體代理 LOD 生成。
最新版本現(xiàn)支持同一幾何體在多個光照設置下的預計算光照!這在 VR 和建筑視覺表現(xiàn)的使用實例中尤為重要,因為這些項目要求盡量高的精度和性能。
在上例中,定向光照、天空光照和天空盒已放置到一個名為 DayScenario 的光照情景關卡中。街燈已被放置到 NightScenario 中。
使用光照情景的方法:
限制:
在延遲渲染器中,全新的前向著色功能現(xiàn)可用于半透明表面,從多個燈光處獲得反射高光、從視差矯正反射捕捉獲得基于圖像的反射。
UE4 現(xiàn)支持下表面輪廓著色模型的全分辨率皮膚著色。這可生成表面細節(jié)(如毛孔和皺紋)的高保真度光照。
棋盤格渲染皮膚(左圖)、全分辨率皮膚(右圖)(注釋:頭部模型由 Lee Perry-Smith 創(chuàng)建)
表面細節(jié) - 棋盤格(左圖)、全分辨率(右圖)
之前,皮膚上的光照使用棋盤格圖案展示,一半像素包含彌散光照、另一半像素包含反射光照。光照在最終的下表面輪廓全屏通道中重組。此方法可生成下表面光照的良好效果(原始即為低頻),但它可能導致表面細節(jié)光照的保真度較低。
新方法將把包含彌散和反射光照信息的每個像素打包到 RGBA 編碼中。利用它可在最終的下表面輪廓全屏通道中重建全分辨率光照,通過隨機采樣抗鋸齒獲得表面細節(jié)的更佳效果和更穩(wěn)定的表現(xiàn)。
兼容性 全分辨率皮膚著色需要至少 64 位的場景色彩格式(帶完整透明通道)。默認的 FloatRGBA 場景色彩格式可正常使用,但不支持 FloatRGB 之類的 32 位表示。如場景色彩格式與全分辨率皮膚不兼容,則會退回以棋盤格為基礎的光照。使用 r.SSS.Checkerboard 控制臺變量可覆蓋此行為?梢允褂玫臄(shù)值為:
0:禁用棋盤格(全分辨率)
1:啟用棋盤格(舊行為)
2:自動(默認)-
如場景色彩像素格式支持,將使用全分辨率 限制 全分辨率皮膚著色是一個近似,但毫無意義。它在多數(shù)情況下均工作正常,但因編碼方法不同,特定材質特征可能出現(xiàn)問題。以下材質尤為如是:
這些特征將正常工作,但由于打包 RGBA 彌散/反射編碼的緣故,輸出與棋盤格之間可能存在差異。制作材質時可以解決特定問題:將不需要進行皮膚著色的區(qū)域的不透明度設為 0 即可。為進行著色,不透明度為 0 的像素將作為默認光照。
注解: 出于性能原因,以此方式對具有透明度的像素進行遮罩為可取之法——因為下表面后期處理將略過這些像素。
性能注意事項
如游戲擁有 64 位場景色彩格式,全分辨率下表面光照的處理速度通常比棋盤格更快(由于紋理提取數(shù)量更少)。而如果游戲擁有 32 位場景色彩,減少紋理帶寬所換取的性能益處較大(但這取決于硬件)。
使用反射捕捉時,引擎將混合來自反射捕捉的間接反射和來自光照圖的間接彌散。因為反射立方體貼圖只在空間中的一個點捕捉,這將有助于減少泄露,但光照圖會在所有接收物表面進行計算并包含本地陰影。
(左圖帶光照圖混合,右圖則不帶)
混合在不平表面效果較好。但在平滑表面上,來自反射捕捉的反射與來自其他方法的反射(如屏幕空間反射或平面反射)不相匹配。
十分平滑的表面上將不再進行光照圖混合。 粗糙度為 .3 的表面將獲得完整光照圖混合,粗糙度 .1 及以下的表面將逐漸淡出至無光照圖混合。這允許反射捕捉和 SSR 進行更好的匹配,過渡更不明顯。
下圖的鏡頭展示了前后的鏡面表面反射。注意 SSR 和反射捕捉之間墻壁反射的區(qū)別。在動態(tài)效果下穿幫尤其明顯,因為它將隨攝像機一同運動(由于存在 SSR 限制)。
這會對現(xiàn)有內容產生影響 - 在反射泄露在平滑表面的情況下,泄露將更為明顯。 為解決此問題,可放置更多反射探頭減少泄露。關卡最小應擁有一個大型球體捕捉。也可通過渲染項目設置恢復舊的光照圖渲染行為:
虛幻引擎 4.14 版本自然支持即將推出的 Visual Studio“15”。仍然支持 Visual Studio 2015?蓮微軟 Visual Studio 網站的“Preview”處獲取 Visual Studio“15”。
如您已安裝 Visual Studio 的多個版本,可在“Editor Preferences”的“Source Code”部分選擇使用的版本。
現(xiàn)在可以右鍵點擊關卡視口中的 actor 并將其當前狀態(tài)轉換為一個新的靜態(tài)網格體資源。這個方法甚至可用于骨架網格體,因此可以從擺好姿勢的角色上獲取網格體。
UE4 4.14 新增了對 NVIDIA Ansel 攝影的支持!Ansel 是 NVIDIA 退出的一款新工具,便于玩家在游戲中進行截圖。在 Ansel 模式中時,游戲將暫停,玩家可控制攝像機構圖,然后進行截圖。可抓取多種截圖,從 HDR 到 360 立體均可。在 NVIDIA 網站中查閱更多詳情。
Ansel 現(xiàn)已作為全新的 UE4 插件公開。在項目中啟用插件后,即可在 standalone 游戲會話中訪問 Ansel。
(在網頁瀏覽器中查看 Ansel 360 捕捉)
我們也在 Player Camera Manager 類上公開了函數(shù),以便游戲對 Ansel 捕捉行為進行自定義。游戲可能需要限制攝像機運動的距離、禁用 UI 元素、禁用/啟用特定的光照或后期處理效果,等等。感謝 Adam Moss 和 NVIDIA 提供實現(xiàn)。如要開始使用此功能,請查閱 Ansel 插件文件夾下的 ‘Ansel_integration_guide.html’ 文檔。官方 UE4 Ansel 文檔將不日推出。
纜繩組件插件已更新新特性,包括碰撞支持和附著物體或效果的套接字。
纜繩組件現(xiàn)包含以下新特性:
UMG 和 Slate 的字體現(xiàn)在擁有一個可應用的任選外框。
指定字體的控件可以變更外框設置、顏色、或外框所使用的材質。
外框上字體材質的使用方法與其他字體材質的使用方法相同,唯一的區(qū)別是對外框指定的材質只能應用到外框。字體材質可在外框上使用,創(chuàng)建出許多不同效果。
現(xiàn)可在 Details 面板中編輯 Map 與 Set 屬性!
Sets 和陣列相似,但無法在一個集中兩次擁有相同元素,且元素的排序無法保證。然而在一個 set 中進行查找確定其是否包含元素的速度十分之快。
Maps 擁有一個鍵和一個值,可在 details 面板中對這二者進行編輯。和 Sets 相同,所有的鍵必須獨一無二,元素的排序不保證留存。然而,元素值的查找速度非?欤ㄖ灰鞔_它是一個鍵)。
Noise 材質圖表節(jié)點包含數(shù)個適用于過程著色的函數(shù),生成一個單值(標量)結果。|
| | | | | |
| Cellnoise | Vector Noise | Gradient | Curl | Voronoi |
新的 Vector Noise 節(jié)點添加數(shù)個 3D 或 4D 矢量結果。這些函數(shù)存在運行時開銷,因此建議它們開發(fā)出一個查找后,使用 4.13 版本中加入的 Draw Material to Render Target 藍圖特性將所有或部分計算烘焙到紋理中。這些材質圖表節(jié)點允許過程查看在引擎中的最終資源上開發(fā),是用外部工具應用到引擎中資源、創(chuàng)建過程生成紋理的另一種方法。這些新函數(shù)包括
1.Cellnoise:為 3D 網格中的每個單元返回一個隨機色彩(即從數(shù)學下截斷應用至節(jié)點輸入)。特定位置的結果固定不變,是為材質增加隨機性的好方法。該 Vector Noise 節(jié)點的計算開銷極低,因此不需要將其烘焙到紋理中提升性能。
2.Perlin 3D Noise:用 3D 矢量輸出計算 Perlin Simplex Noise 的一個版本。每個輸出組件在范圍 -1 到 1 之間。同時計算三個 noise 通道的開銷比合并三個標量 noise 函數(shù)結果的開銷更低。
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 材質節(jié)點進行計算。標量 Voronoi noise 在 3D 空間中散布種子點并返回到最近點的距離。Vector Noise 版本返回 RGB 中最近種子點的位置,以及 A 中到該點的距離。尤其是配合 Cellnoise 使用后,這能形成每個 Voronoi 單元的一些隨機行為。下圖是一個簡單的石床材質,使用 Vector Noise / Voronoi 的距離組件調制一些表面的凹凸、混合裂縫中的苔蘚,以及種子位置和 Vector Noise / Cellnoise,用于變更每塊巖石的色彩和凹凸高度。
Perlin Curl 和 Perlin Gradient 可在倍頻中被一同添加(只作為常規(guī) Perlin noise 容器)。對于更復雜的表達式而言,有必要計算表達式結果的梯度。為進行協(xié)助,可放置表達式計算為一個材質函數(shù),并將其結合助手節(jié)點Prepare3DDeriv、Compute3DDeriv、或 GradFrom3DDeriv/CurlFrom3DDeriv 進行使用。它們使用位于四面體圖案中的基礎表達式的四個求值來近似這些基于導數(shù)的操作。例如,此網絡使用梯度從一個凹凸高度函數(shù)計算凹凸法線。
虛幻引擎現(xiàn)使用 NVIDIA PhysX 最新的 3.4 版本。這改善了剛體和場景查詢的性能和內存使用(尤其是多核性能)。
這個版本的 PhysX 支持運動物體上的連續(xù)碰撞檢測(Continuous Collision Detection)(CCD),可在高速運動的剛體之間形成精確的碰撞。在下方的 Robo Recall 測試關卡動畫中,玩家揮舞武器反彈迎面而來的子彈。
可立即在 UE4 中使用的新特性:
在未來版本中,我們將加入更多 PhysX 最新版本中擁有的新物理特性。
與動畫相關的工具被拆分為單獨的資源編輯器,無需再在多個模式中使用一個編輯器。
還進行了多項其他改良。每個編輯器的常用功能基本均顯示在視口和改良的骨架樹中。
資源快捷工具欄
使用改良的資源快捷工具欄可在共享骨架的相關動畫資源之間切換。
錄制移至傳送功能按鈕
之前的版本中,錄制通過工具欄上的一個按鈕進行。最新版本中,錄制按鈕已移至傳送功能按鈕中(與 Sequencer 相似)。
預覽場景設置
通過“Scene Setup”菜單即可在每個編輯器中編輯場景中的物體和它們的動畫。使用該功能可以應用預覽動畫、設置不同的預覽網格體(這是針對骨架或單個動畫),并附加額外的網格體。額外的網格體現(xiàn)可指定為單獨的純編輯器資源。這些資源將定義作為主網格體從屬進行驅動的一套骨架網格體。
在最新版本中,使用動畫編輯器中的全新專屬窗口即可便利地對動畫曲線進行調整。編輯時即可進行即時預覽。
在之前的版本中只能在動畫資源上配置曲線,而在最新版本中可在骨架上進行設置。
通過 Child Actor 模板即可自定義添加到藍圖的子 Actor 組件的屬性。
添加子 Actor 組件后,擁有 Actor 的藍圖編輯器的 Details 面板中便會出現(xiàn)一個可展開模板?蓮拇颂幵L問子 Actor 的全部屬性,包括公開變量。例如,Blueprint_A
這是一項重大改良。之前的版本中用戶被限制在子 Actor 組件的默認屬性中,只能通過游戲腳本進行更新。
現(xiàn)可指定動畫藍圖到骨架網格體。動畫藍圖在組件中被指派后,該骨架網格體將固定運行。無論網格體是在動畫工具中查看、只是一個 Sequencer 過場,或只是放置在關卡中,均可對固定應用的動畫動態(tài)或其他控制器進行設置。
這將使動態(tài)、控制器、IK 或其他動畫藍圖特性與網格體產生關聯(lián),無需在每個動畫藍圖中進行復制即可在此網格體上進行使用。
“后期處理”動畫藍圖也擁有其原生特性和藍圖更新步驟,因此參數(shù)可被讀取或計算,以便在動畫圖表中使用。
在新版本中可使用 VR 運動控制器創(chuàng)建并設計地貌,并繪制地形材質。
可在快捷菜單的“Modes”面板中打開地形編輯工具。然后從 UI 中選擇筆刷并開始繪制!長按運動控制器上的“Modifier”按鈕即可消除。
新版本中輪胎力的應用點已發(fā)生變化。之前的版本中,輪胎力的應用點位于載具的質量中心。新版本中輪胎力的應用點位于輪胎的質量中心,更容易實現(xiàn)車輛的載荷擺振。
此外我們還添加了簡單輪式載具移動組件(Simple Wheeled Vehicle Movement Component),無需復雜的引擎和傳動模擬即可實現(xiàn)車輪懸掛和輪胎摩擦。利用此組件可輕松在單個輪胎上應用扭矩。在新版本中,繼承自 Wheeled Vehicle Movement Component 的全部組件均可在任意組件上使用,無需依賴于 Wheeled Vehicle Actor。
已有內容的 Deprecated Spring Offset Mode 將自動設為 true,以維持之前的行為。變更 Suspension Force Offset 即可對此行為進行進一步調整。
在虛幻引擎 4.14 版本中可發(fā)布支持 Vulkan 的游戲。
新版本的移動渲染通道中已支持自定義深度。自定義后期處理材質現(xiàn)在可從場景深度、自定義深度以及場景色彩取樣。
需要后期處理,因此必須啟用移動 HDR。但在當前版本中,移動 MSAA 啟用時該功能無法正常工作。
在最新版本中,渲染場景進行捕捉時,移動設備支持輸出 Inverse Opacity 和 Depth 值的 Scene Capture Source 設置。
我們在引擎中加入了計算模型對模型布料蒙皮數(shù)據的功能。因此無需使用導出為 .apx 或 .apb 文件的渲染數(shù)據,而使用 UE4 已擁有的渲染數(shù)據。從 APEX 導出資源選取模擬模型,并在此模型上重新蒙皮渲染數(shù)據。這意味著最終數(shù)據的效果應和最初導入的數(shù)據一樣好。
這將帶來一些益處。之前法線可能存在顯示錯誤(見下圖),并且限制在一個 UV 通道上。全新蒙皮系統(tǒng)將這兩個問題一舉解決。
持續(xù)不斷的更新改善了材質屬性的可延展性,使材質屬性更加易讀,且不易出現(xiàn)錯誤。
Get 和 Set 節(jié)點的主要改良是引腳為選擇性添加,與默認公開全部屬性的 Break 和 Make 節(jié)點不同。這使得圖表可避開需要手動連接每個屬性引腳的老工作流程。選擇一個節(jié)點將在細節(jié)面板中顯示當前引腳的列表,可展開或移除此列表。例如,下圖中的材質函數(shù)抓取一個屬性集,然后將基礎色彩(Base Color)和粗糙度(Roughness)混合到一個光亮的紅色表面。
為使圖表更加簡潔,這些節(jié)點利用許多后端變更,對項目可能需要添加的自定義材質屬性形成前向兼容。缺失的屬性將被自動檢測,用戶可以對錯誤進行處理,在項目之間共享材質更為可行。在節(jié)點上非顯式排列的屬性(包括材質圖表創(chuàng)建后添加的屬性)將通過主 Material Attributes 引腳傳遞。新引腳添加 Make 和 Break 節(jié)點后,所有圖表均需要手動更新。
新的 Blend 節(jié)點將實現(xiàn)使用一個遮罩的多個屬性集的混合,這是結合材質細節(jié)層使用時的常見操作。下圖實例平均地混合了紅色和綠色材質(定義為函數(shù)),一個節(jié)點將為結果應用透明層。
Blend 節(jié)點默認為所有使用 Alpha 輸入的材質屬性執(zhí)行線性插值。利用此節(jié)點的復選框可退出頂點/像素層面的混合,更易于控制純頂點或純像素遮罩數(shù)據的使用。與前文提到的 Get 和 Set 節(jié)點相似,Blend 節(jié)點將自動處理新屬性的添加或移除,使程序員在注冊屬性時指定自定義混合行為。
在新版本中,材質可訪問骨架網格體的參考動作位置,以在每個頂點的輸出中使用。這可在動畫角色上形成局部效果。該節(jié)點可在靜態(tài)網格體之間共享,也可在返回標準本地位置的網格體之間共享。下面的圖表實例在局部空間中創(chuàng)建了一個網格圖案,它在動畫中和骨架網格體之間保持相對關系。
影片錄制時可以對每個鏡頭進行幀處理。新版本中,在每個鏡頭的開頭和末尾可多渲染主序列的幀。通過剪輯決定列表(EDL)即可將這些額外的幀剪入和剪出。此列表可在外部視頻編輯包中使用,調整鏡頭之間的剪輯。
新版本調整了攝像機升降架的行為,可模擬物理升降架的運動。
在新版本中,錄制序列時可通過話筒錄制音頻。
Pose Driver 節(jié)點使骨骼基于一套“范例動作”驅動動畫的其他方面。在此版本中,該節(jié)點可驅動骨骼變形以及變形目標。例如基于手臂的旋轉驅動護肩骨。此外還添加了使用驅動骨平移的選項(而不使用其方向)。已改良調試繪制,顯示每個“目標”動作和骨骼當前與其之間的接近程度。
新版本中加入了對骨架添加“虛擬骨骼”的功能。無法對虛擬骨骼進行蒙皮,但其會在骨架上兩個現(xiàn)有骨骼之間被約束。骨架上每個動畫的虛擬骨骼數(shù)據將自動生成。例如,可添加一個關節(jié)(手的子項),但其會受到手掌關節(jié)的約束。與套接字不同,此關節(jié)可作為一個目標(即 IK 目標或查看目標)在動畫藍圖中使用,或在 AnimBP 中對其進行修改,以便之后使用。
這有助于改善角色迭代時間。之前的版本中,如果需要變更 IK 或瞄準的目標關節(jié)層級,需要在引擎外進行操作,DCC,然后導回所有動畫修復帶新關節(jié)的動畫數(shù)據。而利用虛擬骨骼可跳過這些步驟,在引擎中執(zhí)行全部工作。然而這需要對動畫數(shù)據進行重新壓縮,將關節(jié)重新納入動畫數(shù)據中。如需了解虛擬骨骼的更多實際使用,請查閱“Paragon 中使用的動畫技術”。它的出現(xiàn)讓重新定位目標或變更控制器參考幀變得更容易,用于 Paragon 中的定位和斜坡變形。
利用全新的變形目標調試視圖模式(Morph Target View Mode)可更容易地確定每個變形目標所影響的頂點。
基于父蒙太奇創(chuàng)建子蒙太奇,以便替換動畫片段,同時保持整體時間設置?捎糜跒樾袆犹砑幼兞,同時保證其不會影響到游戲進程。
新版本包含與音樂硬件交互的全新“MIDI Device”插件。
這是一個簡單 MIDI 界面,從連接到電腦的設備上接收 MIDI 事件。當前只支持輸入。這是它在藍圖中的使用方法:
新版本中的地形鏡像工具可將幾何體復制到鏡面平面,創(chuàng)建斜向對稱的多人游戲地圖。
新版本中的材質流程已修改,可對靜態(tài)和骨架網格體中每個材質的使用進行更大程度的控制并獲得更多信息,改善導入網格體時材質排序的不一致。
列表中的每個元素為帶下列信息的材質槽
在藍圖和 C++ 中,現(xiàn)可使用材質槽名檢索材質槽(不使用硬編碼索引)。調用 Set Material By Name 在骨架網格體或靜態(tài)網格體組件上設置動態(tài)材質。如網格體上的材質排序發(fā)生變化,使用名稱查找(不使用索引)可確保游戲代碼正常工作。
在每個更新版本中,我們都將更新引擎,以支持平臺合作伙伴的 SDK 版本。
全新移動補丁應用藍圖庫包含移動游戲從云端網站下載并安裝游戲內容和補丁(而非從 App Store 上進行初始下載)的所有必備功能。
這些功能可確定是否有更新游戲內容、開始下載、跟蹤進程、處理錯誤,并在最后安裝成功下載的內容包。此外還包含檢查存儲空間和 WiFi 連接的功能,以便藍圖在這些情況下提醒用戶。支持 Android 和 iOS。
新版本中包含全新在線子系統(tǒng) GameCircle(Online Subsystem GameCircle)插件!
支持 GameCircle 成就、排行榜、好友和 Amazon 內購。啟用此插件后,即可在 Plugins 類目下訪問全新的 Amazon GameCircle 項目設置面板。針對 Fire TV 的 AndroidManifest.xml 變更可在此處啟用。
UE 4.14 包含一個實時 GPU 分析工具,可提供主要渲染類型的逐幀數(shù)據。輸入控制臺命令“stat gpu”即可使用。也可通過 Viewport Options 下拉菜單中的“Stat”子菜單將數(shù)據在編輯器中打開。
這些數(shù)據為累積式,非層級式。因此不需要從事件樹向下尋找即可看到主要類型。例如,陰影投影為所有光照的全部投影(在所有鏡頭中)的總和。
游戲運行時,通過屏幕上的 GPU 數(shù)據即可簡單了解到 GPU 負載情況。數(shù)據也可用于即時測量變化帶來的影響。例如修改控制臺變量時,即時修改編輯器中的材質、或修改并重新編譯著色器(重新編譯著色器已修改)。
游戲運行時,GPU 數(shù)據可錄入到一個文件中,以便之后進行分析。和現(xiàn)有數(shù)據相同,可使用控制臺命令“stat startfile”和“stat stopfile”即將數(shù)據錄入到一個 ue4stats 文件。在 Unreal Frontend 工具中打開文件即可查看數(shù)據。
使用 UnrealFrontend 對 GPU 進行分析。總共會顯示后期處理和基礎通過時間
數(shù)據在代碼中被聲明為浮點計數(shù)器,如:
DECLARE_FLOAT_COUNTER_STAT(TEXT("Postprocessing"), Stat_GPU_Postprocessing, STATGROUP_GPU);
渲染線程上的代碼塊即可通過 SCOPED_GPU_STAT 宏(這些宏引用那些數(shù)據名)進行 instrument。這與 SCOPED_DRAW_EVENT 的工作方式相似。例如:
SCOPED_GPU_STAT(RHICmdList, Stat_GPU_Postprocessing);
未顯式 instrument 的 GPU 工作將包含在一個包羅 [unaccounted] 數(shù)據中。如數(shù)據非常高,則說明丟失的工作需要一些額外的 SCOPED_GPU_STAT 事件。與繪制事件不同,GPU 數(shù)據為累積式?梢詾橄嗤瑪(shù)據添加多個輸入,這些輸入在幀上進行聚合。
在一些 CPU 受限情況下,GPU 時間設置可能受到 CPU 瓶頸(氣泡)影響(此時 GPU 在等待 CPU 同步)。如果繪制線程時間很高,且出現(xiàn)異常情況,則需要考慮這點。在 PlayStation 4 上,我們將命令列表提交之間的時間從時間設置中移除,糾正了這些氣泡。在未來的版本中,我們將把此功能延伸到其他主流渲染 API 上。
新版本中推出了一個新選項生成加權(二進制)圖譜紋理(替代每個材質平均加權的圖譜紋理),從而改善了合并 actor 和組合材質時紋理空間的應用方式。
(左圖:平均加權的材質。右圖: 二進制法) 新功能首先計算單個材質的重要性(根據其采樣的最大尺寸紋理)。之后這些值用于計算材質應占據空間量,并迭代式地將每個紋理添加到圖譜紋理。這使圖譜紋理對輸入材質更具有代表性,因為它在計算它在圖譜紋理中占據的最終空間時會把原始紋理數(shù)據的大小考慮在內。
由于社區(qū)用戶呼聲較高,新版本已在 Linux 上支持 Android。設置所需 NDK 和 SDK 工具最簡單的方法是使用 NVIDIA 提供的 CodeWorks for Android(Linux 平臺)。此外需要安裝 OpenJDK 1.8;設置 JAVA_HOME 指向安裝。請注意:新版本尚未在 Linux 上支持 Android Vulkan。
新版本中,用戶可從電腦上拖放文件到媒體播放器的視口中,無需創(chuàng)建 FileMediaSource 資源即可預覽視頻文件。
現(xiàn)在可以在支持設備上使用移動多視圖通道!移動多視圖和桌面上的實例化立體,為 CPU 上的立體渲染提供了一個優(yōu)化通道。
如需使用此功能,在 Project Settings 下的 VR 部分將其啟用即可。為使功能正常工作,應將 Android 編譯設置設為 OpenGL ES2、禁用 Mobile HDR,并禁用實例化立體。當前版本中,此功能兼容基于 Mali 的主流 GPU。如打包時開啟了此功能但 GPU 不兼容,其在運行時將被禁用。
此功能仍在實驗性階段,我們還需要驗證它與更多功能和設備之間的兼容性。
如上圖所示在 Project Settings 菜單中啟用移動多視圖,然后重啟編輯器使變更生效。
新版本已支持 SteamVR 和 PSVR 分層!它的工作方式和 Oculus Rift 插件完全相同——使用 Stereo Layer 組件。
引擎新版本支持 Oculus、GearVR、SteamVR 和 PSVR 上的加載影片。影片在渲染線程上運行,可掩蓋加載內容時的幀率小問題。如需使用啟動畫面,可設置一個紋理使用“Set Splash Screen”節(jié)點,或選擇在使用“Enable Auto Loading Splash Screen”節(jié)點加載地圖時使其自動出現(xiàn)。
新版本支持 PSVR 的原生 90Hz 到 90Hz 投射和 120Hz 到 120Hz 投射!這意味著可選則更高的幀率運行,將延遲和投影穿幫最小化。引擎將把幀率鎖定在選擇上,但使用者仍需努力保證幀率的穩(wěn)定!
使用觸控屏時,將在 Windows 7、8 和 10 上生成觸控事件。擁有此功能后,即可在全新的 Windows 平板上實現(xiàn)觸控游戲和體驗。此外,無需部署到目標設備即可對移動游戲的觸控操作進行測試。
打包版本現(xiàn)可使用全新的事件驅動加載器(Event Driven Loader),效率遠高于之前使用的流送代碼。使用 EDL 后,游戲的加載時間將縮短約 50%,多數(shù)情況下加載速度極快。事件驅動加載器加載資源的代碼路徑統(tǒng)一。這意味著所有包均使用新的異步路徑,不再使用舊的塊路徑。EDL 當前仍為實驗性功能,默認為禁用,但可通過項目設置輕松開啟。
新版本中添加了全新 Game Mode Base 和 Game State Base 類,作為現(xiàn)有 Game Mode 和 Game State 類的父項。所有游戲必需的核心功能位于 Base 類中,而舊版本和射擊游戲特有的功能位于 Game Mode/Game State 中。新創(chuàng)建的項目將繼承自 Base 類,而已創(chuàng)建的項目將默認使用舊版本中的類。此外,一些新函數(shù)已對藍圖公開。
這項修改是一個長期的更新工作,使舊的游戲性類更容易被理解,并編入所有類型項目的子類。所有范例均已更新使用 Base 類(Shooter Game 除外),而 Shooter Game 將說明如何在舊的類中使用射擊游戲特有的功能。新版本將繼續(xù)支持 Game Mode/Game State,使用者應將把適合自身游戲的版本編入子類。
新版本中,從服務器到連接客戶端復制屬性的方式已進行內部重構。
我們已對代碼進行修改,以便高效低在諸多連接之間高效地共享屬性復制工作。在此修改之前,我們只共享無條件屬性(以 DOREPLIFETIME,而非 DOREPLIFETIME_CONDITION 注冊的屬性)的工作。而現(xiàn)在,我們共享所有類型屬性的工作。這意味著屬性發(fā)生改變(需要被發(fā)送)時需要執(zhí)行檢查工作的頻率將大幅降低。
內部測試的結果顯示降低率已高達 40%。還有更多工作需要完善,但我們同時也希望告知大家開發(fā)進度,分享好消息!
朱峰社區(qū)網頁版(手機掃描-分享-添加到屏幕)
朱峰社區(qū)微信公眾號(微信掃一掃-關注)
未知用戶
2005-2025 朱峰社區(qū) 版權所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved
VIP