聞者落淚 | 圖1、圖2作者制作; 圖3見水印
是的,以上這些 慘無人性的圖均出自今年11月在 PlayStation 4 平臺發售的開放世界動作冒險游戲 《死亡擱淺》,它以令人震驚的視覺表現,充滿真實感的游戲體驗,以及獨特的背景設定吸引了無數玩家的目光。光是游戲發售首周就售出了 18.5 萬份,在日本、臺灣、韓國、意大利等地都獲得了銷售冠軍。
《死亡擱淺》宣傳圖 | 游戲官網
雖然媒體和玩家對《死亡擱淺》的評價呈兩極分化態勢, 但總體爭議都圍繞著游戲的“送快遞”玩法。游戲本身刻畫細致入微,令人不由置身其中的“真實感”,這一點得到廣大玩家的普遍承認。一方面,有的玩家認為,《死亡擱淺》的“劇情、音樂、畫面、氛圍渲染都是滿分神作的級別,單單一個游戲性略欠打磨罷了”;另一方面,有的玩家表示,這種“史上最細致的地貌,任何一小塊地形都能對你的行走產生影響”以及“背上沉重的貨物, 在復雜的地形間維持平衡”的真實性設定,“好像在故意刁難玩家一般”,讓游戲的難度變得相當“令人印象深刻”。
《死亡擱淺》游戲截圖 | 游戲官網
這種真實感要歸功于制作者使用的游戲引擎“Decima”。
一般來說,游戲引擎中包含了圖形渲染引擎、物理引擎與碰撞檢測系統、音效播放、腳本控制等多個子系統, 有的引擎(比如 Decima)還帶有一定程度的人工智能。
就《死亡擱淺》來說,除了角色動作大量采用真人動作捕捉技術,超細致地對游戲場景進行建模以外,最重要的是在背后運行著整個游戲世界的,開發者的“神秘魔法”: 物理引擎。
物理引擎是什么?
通俗地說, 物理引擎是一個模擬牛頓力學模型的計算機程序,根據給定物體的尺寸、質量、速度、摩擦力,甚至空氣阻力等變量,計算出這些物體在不同條件下的運動情況。
在游戲里, 物理引擎負責模擬出游戲場景中出現的所有可交互的實體,計算出它們彼此之間、它們和游戲場景本身(比如地形、建筑等不可互動的東西)之間的相互運動(以及碰撞、破碎等)情況,再將計算的結果通過游戲引擎的其他部分進行處理(比如生成圖像和聲音、修改比分、甚至改變場景元素等),最后才呈現在玩家的面前。
《EVERSPACE》游戲截圖 | 作者截圖
按照模擬精度的不同, 物理引擎一般分為 實時(real-time)物理引擎和 高精度(high-precision)物理引擎兩類 。
為了保證游戲的流暢與視覺效果的連貫,物理引擎需要在相當短的一個單位時間內(例如一幀≈1/60秒)計算出接下來一個單位時間內所有物體的運動情況。 由于計算機的運算能力有限,物理引擎往往必須在合理的范圍內降低精確度,以保證運算速度。比如,在建模時把所有可交互的實體當作均質的圓柱體/長方體來處理,射擊游戲中不計算子彈的飛行曲線,用半透明貼圖代替煙霧顆粒的布朗運動,在計算平方根倒數時用“魔法數” 0x5f3759df求一個近似值代替等等……我們一般就把這種引擎稱為 實時物理引擎。
《Destiny2》游戲截圖 | 作者截圖
相對地,為了保證 計算結果的精確性,建模時進行了 足夠細致的劃分,并設定對應的物理參數,讓計算機耗費更多的處理能力和處理時間,更精確地模擬物體的運動情況,這樣的物理引擎就是 高精度物理引擎,它常常 在科學研究和電腦動畫制作方面大顯身手。
ADAMS物理模擬器 | Youtube 視頻題圖
為了直觀地感受兩種物理引擎的效果,我們拿《魔獸世界》(World of Warcraft)做個例子:
上:《魔獸世界》游戲片頭動畫中的矮人形象,下:游戲角色創建頁面中的矮人形象 | 作者截圖
在片頭動畫中,這個矮人角色細致的發須在凌冽風雪的吹拂下不斷揮動。這看起來是用高精度物理引擎建模的,而且開發者預先完成了動畫的渲染工作,計算機只是簡單地播放渲染好的視頻流,不涉及任何游戲引擎的計算。在游戲內,經過三維建模時的簡化,實時物理引擎把整個胡須作為一個整體進行考慮,經過渲染器實時計算出角色的動作。
游戲里的“真實世界”
早在1972年11月,電子游戲史上第一個街機電子游戲《乓》(Pong)里就帶有一個簡單的實時物理引擎,負責計算那個代表小球的光點的移動速度和方向,以及在屏幕邊緣或是玩家控制的長條板上碰撞之后的反彈角度。
《乓》游戲界面 | giphy
隨著計算機運算能力的增長和顯示能力的提升,游戲中能呈現的內容也更加豐富,物理引擎能支撐的游戲玩法也變得五花八門。 有些游戲就把模擬真實世界的物理引擎作為其主要玩法。下面,我們一起來看看幾個有特色的電子游戲吧:
坎巴拉太空計劃(Kerbal Space Program)
《坎巴拉太空計劃》宣傳圖 | 游戲商店頁面
作為一個輕松愉快(并不)的航天發射模擬游戲,《坎巴拉太空計劃》的畫風比較清新明快,甚至還有點卡通, 但它的物理引擎相當硬核。
在游戲中,你可以使用各式各樣的部件,來“根據 現實中的空氣動力學和軌道物理學原理組裝能夠飛行的全功能航天器”,把你的小綠人送入軌道及太空中,并保證他們存活下來。
《坎巴拉太空計劃》游戲截圖 | 游戲商店頁面
當歐洲航天局的羅塞塔號在彗星上放出登陸器“菲萊”的時候, 果殼網友 WAVECHASER X 用《坎巴拉太空計劃》極為逼真地模擬出了羅塞塔號從地面發射到菲萊號登陸的全過程。
用《坎巴拉太空計劃》模擬的羅塞塔號任務。沒錯就是這么硬核。| WAVECHASER X 的視頻截圖
甚至連 SpaceX 的老板伊隆·馬斯克也半開玩笑地說,他也在這個游戲里測試 SpaceX 的宇宙飛船呢。
紅色派系(Red Faction Guerrilla)
《紅色派系》宣傳圖 | 游戲商店頁面
《紅色派系》是一個動作射擊游戲,它和其他射擊游戲的不同之處在于, 游戲中的幾乎一切建筑物、構筑物、掩體、路障都是可破壞的。游戲的物理引擎把建筑物的各種梁、柱、墻面結構都作為單獨的實體進行追蹤,爆炸時產生的大片碎塊和粉塵等粒子都能以非常真實的方式四散飛開。
《紅色派系》游戲截圖 | 游戲商店頁面
敵人守住了門口?沒關系,從墻上炸個洞進去!敵人火力太猛?還是沒關系,把整座房子端掉!
然而,炸炮樓這件事還有講究。在游戲中,你可不是像小兵張嘎一樣,把炸藥包往那一丟就完事了。你在游戲中也得 找準承重的梁和柱子,才能最大化炸藥的效率。
《紅色派系》游戲截圖 | 作者截圖
塵埃(Dirt)系列
《塵埃·拉力賽》宣傳圖 | 游戲商店頁面
《塵埃》系列是頂尖的越野賽車模擬競速游戲,作為世界拉力錦標賽(World Rallycross Championship)的官方指定游戲, 它的物理引擎在擬真方面做到了極致。
《塵埃4》游戲截圖 | 游戲商店頁面
游戲中的 50 多輛賽車都具有其特定的加速性能、慣量、重心和操控性,多變的天氣、不同的賽道路面, 甚至連輪胎花紋的選擇都會直接反映在操控的感覺之中。除了飆車漂移外,車輛之間的剮蹭,車輛和賽道設施的碰撞,甚至 連車身的磨損和破壞都被完美地模擬了出來。
《塵埃4》游戲截圖 | 游戲商店頁面
看我排水溝過彎呀嘿!
橋梁建造師(Bridge Constructor)
《橋梁建造師》宣傳圖 | 游戲商店頁面
在這個游戲里,你作為一名橋梁工程師,要利用有限的預算,在各種奇形怪狀、條件簡陋的地貌上建橋,方便車輛通過。
《橋梁建造師》游戲截圖 | 游戲商店頁面
在游戲中,你要考慮 材料自重、抗拉/壓強度、平衡性以及瞬時最大載荷等各種物理問題,還得想方設法節約經費(太摳門了吧)。好在最終測試的時候,你的橋最低只要能撐住兩輛小轎車活著通過就算過關(就算過關的同時橋馬上塌了也行)。
《橋梁建造師》游戲截圖 | 游戲商店頁面
但如果你有強迫癥,希望達到最大限度的支撐強度的話,那可要費不少腦子呢。
和現實并不完全相同的體驗
當然,根據游戲的玩法和設定不同,游戲里的物理引擎也不一定就得完全模擬現實世界。有些游戲里, 物理引擎帶給我們的是一個和現實并不完全相同的體驗,玩家可以體驗一個有著不同物理屬性的世界。
圍攻(besiege)
《圍攻》宣傳圖 | 游戲商店頁面
《圍攻》是一款以物理機械建造為基礎的沙盒式建造游戲。按官方說法,“玩家可以在游戲里建造中世紀的攻城機械,將巨型堡壘及寧靜村落夷為廢墟”。但玩家可建造的東西可并不局限在中世紀范圍里。事實上, 能夠限制你的只有你腦洞的大小。
在《圍攻》中建造機械 | 游戲商店頁面
從柴油朋克的噴火裝甲車,到兩足步行戰斗機甲,甚至星戰里天行者的飛梭賽車,你都能用這堆木頭、金屬塊,加上各種齒輪和皮帶傳送組件拼裝出來。
玩家制作并分享的《圍攻》機械 | 游戲創意工坊頁面
沒錯,在現實中,一個木頭上裝個風扇并不能讓它直接飛起來, 但現實中你也沒法享受開自己拼裝的 B-52 轟炸機把敵人堡壘炸平的快感啊~
人類:一敗涂地(Human: Fall Flat)
《人類:一敗涂地》宣傳圖 | 游戲商店頁面
《人類:一敗涂地》是一款特色非常明顯的,基于物理特性的解謎探索游戲。
游戲中,你操控的是一坨軟綿綿晃悠悠的白色人偶,跳也跳不高,跑也跑不快,除了從多高摔下來都不會有事以外,沒什么超能力。
《人類:一敗涂地》游戲截圖 | 作者截圖
游戲的物理引擎忠實地還原了每個物件,可以充分互動,你可以把任何想拿的東西拿起來(如果它沒有被固定在地上),爬到任何你軟綿綿的雙手能攀上的地方。但鬼畜的是, 你得用兩個鼠標按鍵獨立控制雙手的抓握和放松,并用鼠標的移動來控制手部的推拉用力,并想辦法解決制作者堆在你面前的一個又一個場景謎題。
《人類:一敗涂地》游戲截圖 | 作者截圖
對我來說,謎題沒什么難度,主要難度在控制這個東西……
蠟筆物理學(Crayon Physics)
《蠟筆物理學》宣傳圖 | 游戲商店頁面
這是個把“物理學”寫在標題中的游戲。《蠟筆物理學》是一個二維解謎游戲,你需要在關卡中用蠟筆畫出各種圖形,畫出的圖形會自動變成二維實體,通過與謎題中的其他物件產生物理碰撞,讓一個紅色小圓圈滾動到指定的目的地。
《蠟筆物理學》游戲截圖 | 游戲商店頁面
游戲里的各種物件在互相作用的時候,能很好地遵循牛頓定律。地面有摩擦力,有的謎題會用到鉚釘和連桿,根據你畫出的圖形的大小,生成的實體的重量也會不一樣……這個游戲世界的擬真度還真的挺高——除了它們都是蠟筆畫出來的之外。
《蠟筆物理學》游戲截圖 | 游戲商店頁面
驅動世界的引擎
在游戲世界之外,物理引擎(不管是高精度的還是實時的) 在現實世界的教育、生產、科研中都大有用武之地。
《互動物理學》(Interactive Physics)教學軟件截圖 | 軟件官網
在教學上,物理實驗模擬軟件本身幾乎就可以被看作是一個游戲。通過計算機仿真實驗,學生可以方便地在理想條件下重復許多物理實驗,直觀地進行分析和討論。像《宇宙沙盒》(Universe Sandbox)這樣的模擬游戲,就 幾乎可以直接當作天體物理模擬器,用來學習天文學、物理學方面的知識。
《宇宙沙盒》游戲截圖 | 游戲商店頁面
在飛行器和汽車的生產過程中,為了測試和優化設備的空氣動力學特性,往往需要在風洞中進行測試。然而,真實風洞的架設和使用成本都很高,而且難以長時間持續工作,也放不下特別巨大的飛機,人們開發出了 基于物理引擎的虛擬風洞測試軟件,以便在設計階段就能快速地迭代測試各種空氣動力學外形。
CFD 風洞模擬軟件對起落架的空氣動力學分析示意圖 | simscale
最后,在軍事和航天科研領域, 利用計算機物理引擎進行軌道計算、姿態調整,甚至利用行星/太陽的引力彈弓效應進行加減速等復雜計算都已經是司空見慣的事情了。在1989年8月,經過大量的預先計算和測試模擬,計算機精確地操縱旅行者2號,以最佳的軌道飛掠過海王星,同時還對海衛一進行了探測。按照美國國家航空航天局的說法,這偉大的成就離不開探測器上搭載的三臺雙冗余計算機的密切配合。
旅行者2號在空間中的飛行軌跡(粉色)以及幾大行星的相對位置(從內到外:太陽、地球、木星、土星、天王星、海王星)| 維基百科
嗯,這么說來,物理引擎不但驅動虛擬的世界,也驅動著我們的真實世界呢!
參考文獻
1. https://en.wikipedia.org/wiki/Physics_engine
2. https://en.wikipedia.org/wiki/Decima_(game_engine)
3. How Physics Engines Work, Burak Kanber, buildnewgames/gamephysics
4. https://bilibili/read/cv388
6. https://store.steampowered/
7. Virtual Wind Tunnel Online: Cloud-based Simulation, Meg Jenkins, https://simscale/blog/2019/06/virtual-wind-tunnel-online/
8. Computers in Spaceflight: The NASA Experience, https://history.nasa.gov/computers/Ch6-2.html
作者:歐剃
編輯:八云
一個AI
春節有的玩兒了


