我的Uncharted 4開發雜記
我的Uncharted 4開發雜記

本文作者周明倫,在Naughty Dog擔任程式設計師,參與了最近上市的遊戲《秘境探險4:盜賊末路》開發工作。原文刊載於他的部落格「Ming-Lun "Allen" Chou」。《數位時代》經作者同意後編輯、刊登。

關於周明倫如何從一位小小電玩迷到加入Naughty Dog開發《秘境探險4:盜賊末路》的歷程,讀者可以閱讀這篇〈我的秘境之旅〉。

本文屬於My Career系列文,Here is the original English post. 本文之英文原文在此

Uncharted 4已經發售,終於可以分享我負責開發的部分了。我主要是負責單人模式的夥伴AI、多人模式的戰友AI、還有一些遊戲邏輯。沒有收錄到最終遊戲的部分和一些瑣碎的細工我就略過不提。

崗位系統

在本文開始前,我想要先談談我們用來指派NPC移動位置的崗位系統。這個系統的核心邏輯不是我負責的,我寫的是使用這個系統的客戶端程式。

崗位是可行走空間中的離散位置 大部分是用工具自動生成的,也有一些是設計師手動擺置的。

基於不同需求,我們設計不同的崗位平分系統(e.g. 潛行崗位、戰鬥崗位)。然後我們選擇評分最高的崗位,指派NPC移動過去。

圖說明

夥伴跟隨

夥伴跟隨系統是繼承自The Last of Us。基本概念就是,夥伴在玩家周圍找個跟隨點,這些可能的跟隨點從玩家位置扇狀分開,並且要滿足以下的路徑線段淨空條件:

  • 玩家到跟隨點
  • 跟隨點到前方投射點
  • 前方投設點到玩家

圖說明

攀爬是Uncharted 4的新功能,這是The Last of Us 沒有的。為了與現有的跟隨系統整合,我利用攀爬崗位讓夥伴可以跟著玩家一起攀爬。

圖說明

這個功能比我想像中的還要難搞。單純根據玩家的攀爬狀態來切換夥伴的攀爬狀態,結果不甚理想。只要玩家快速在攀爬與非攀爬的狀態之間切換,夥伴就會在兩個狀態間快速跳換。於是我加入了遲滯現象(hysteresis),只有在玩家切換了攀爬狀態,並且保持此狀態移動一定距離之後,夥伴才跟進。廣泛來說,遲滯現象是個解決行為跳換的好方法。

夥伴帶領

遊戲中的某些特定場景,我們要讓夥伴帶領玩家前進。我把The Last of Us的帶領系統移植過來,設計師使用spline曲線在關卡中標記他們想讓夥伴帶領玩家的大致路線。

圖說明

如果有多個帶領路線,設計師則會用腳本語言切換主要的帶領路線。

圖說明

玩家的位置投射到spline曲線上,再往前延伸設定為帶領參考點。當帶領參考點超越被標記為等待點的spline曲線控制點,夥伴會前往下個等待點。如果玩家走回頭路,夥伴只有在帶領參考點離此次推進至最遠的等待點一段距離,才會回頭。這也是利用遲滯現象來避免行為跳換。

我也把動態移動速度調整的功能整合進帶領系統。根據夥伴和玩家之間的距離,一些「速度平面」沿著spline曲線放置。

夥伴有三種移動模式:走路、跑步、衝刺。根據玩家撞到的速度平面,夥伴會選擇不同的移動模式。另外,夥伴的行進動畫速度也會基於玩家距離做微調,目的是避免切換移動模式的時後,有太突然的移動速度變化。

圖說明

夥伴掩體共用

在The Last of Us中,玩家和夥伴可以在各不離開掩體的狀況下重疊 我們稱這個為掩體共用。

圖說明

The Last of Us中的Joel伸手跨過Ellie和Tess按在掩體上
看起來很自然,因為夥伴的身型都比玩家嬌小,但是同樣的動作就不適合身型差不多的Nate、Sam、Sully、和Elena。而且Uncharted 4的遊戲節奏較快,讓Nate伸手去按掩體只會讓動作流暢性打折扣。
所以我們決定就單純讓夥伴靠緊掩體,玩家稍微繞彎避開夥伴。

圖說明

我用的邏輯很簡單,如果玩家位置往移動方向投射的點,落在夥伴掩體周圍的一個方框內,夥伴就會取消目前的掩體行為,並且快速靠緊掩體。

圖說明

救星戰友

我負責多人模式的戰友(sidekicks),而救星戰友是其中最特別的。單人模式中的NPC,沒有一個人的行為跟救星戰友一樣,他們會復甦被擊倒的同伴,也會複製玩家的掩蔽行為。

圖說明

救星戰友會嘗試複製玩家的掩蔽行為,並且盡量待在離玩家很近的地方
所以當玩家被擊倒的時候,他們就可以迅速跑過來復甦。如果玩家有裝備救星戰友的復甦包額外功能,他們會在採取復甦行動之前,朝被擊倒的復甦目標丟復甦包。復甦包丟擲基本上就是延用手榴彈的拋物線淨空測試和擲彈動作,只是我把手榴彈換成復甦包而已。

圖說明

隱蔽草叢

在隱蔽草叢中蹲行也是Uncharted 4才有的新功能,要實作這個功能,我們需要某種能夠標記場景的手段,遊戲邏輯才可以判斷玩家是否身處隱蔽草叢中。我們一開始是讓美術人員在Maya中標記背景模型的表面,但美術人員和設計師之間的溝通時間太長,很難頻繁改進關卡
於是我們決定用另外一種方法標記隱蔽草叢。

我在場景編輯器中的nav mesh增加了隱密草叢的額外tag,讓設計師可以直接在編輯器中精準標記隱蔽草叢。有了這個額外的標記,我們也可以用這個資訊來為隱蔽崗位評分。

圖說明

感知

Uncharted 4沒有像The Last of Us有聆聽模式,所以我們必須要找另外一種方法,讓玩家有辦法得知附近的敵人威脅,好讓玩家不會在未知的敵對環境中產生迷失感。

我利用敵人的感知資料,加入了威脅標示。當敵人開始注意(白色)、起疑(黃色)、和發現(橘色)玩家,這些標示會適時地提醒玩家。另外,我在威脅標示開始累積的同時播放背景雜音,以製造張力。當玩家被發現的時候,則播放大聲的提示音效,這些音效的安排和做用跟The Last of Us類似。

圖說明

調查

這是在我們送廠壓片前,我負責的最後一個功能。我平常在Naughty Dog是不參加正式會議的。不過在送廠壓片的前幾個月,我們每週至少開一次會,由Bruce StraleyNeil Druckmann主持,專注在遊戲的AI部分。幾乎每次開完會之後,調查系統都有需要更動的地方,前前後後總共經歷了好幾次大改。

會讓敵人起疑的因素有兩種:玩家和屍體。當敵人起疑了(起疑者),他會抓最近的同伴來一起調查,離起疑點較近的人會成為調查者,另外一個人則是看守者。起疑者可能會視調查者,也有可能是看守者。我們總共有兩組不同的對話,適用於兩種不同的情況(「那邊有異狀,我去看看」 vs. 「那邊有異狀,你去看看」)。

為了讓雙人調查看起來更自然,我使用了時域錯位的技巧,讓兩人的行動和威脅標示時間點錯開,否則兩個人的行為完全同步,看起來非常機械式、很不自然。

圖說明

如果調查者發現了屍體,他會通知全部的同伴開始搜索玩家,屍體也會被暫時標示,以讓玩家知道敵人為什麼進入警戒。

圖說明

在某些難度下,短時間內連續觸發調查,會讓敵人的感應力變敏銳。他們會更容易發現玩家,即使玩家躲在隱蔽草叢中也一樣。慘烈模式下,敵人永遠處於敏銳狀態。

對話動作

這也是我負責的最後幾個功能之一。對話動作系統負責操控角色,在對話的時候做出一些小動作 像是轉頭看其他人和肢體動作。

之前在The Last of Us,開發人員花好幾個月的時間,把整個遊戲所有的對話腳本手動加註上對話動作,我們可不想再做一次這種苦工。在這個開發階段,已經有部分對話腳本被手動加註好對話動作了,我們需要一個泛用型系統,可以幫沒有加註對話動作的腳本自動產生對話動作。

而我就是負責製作這個對話動作系統,動畫師可以調整參數,改變轉頭速度、轉頭角度、注視時間、反覆時間等。

圖說明

維持吉普車動量

開發初期遇到的問題之一,就是馬達加斯加的吉普車駕駛關卡 當玩家開車撞到牆或者敵人的載具,玩家的車就會旋轉失速以致脫離車隊而關卡失敗。

我使用的解決方法是,當玩家的車撞到牆或者敵方載具的時候,短暫地限制吉普車的最高角速度和線性速度的方向變量。這個簡單的方法相當有效,從此玩家就比較不容易旋轉失速而導致關卡失敗了。

圖說明

載具死亡

可駕駛的載具是首次在Uncharted 4登場,在這之前,所有的載具都是NPC駕駛、沿著固定軌道行進。

我負責載具死亡的部分,摧毀載具有幾種方式:解決駕駛、開槍射車、開車撞飛敵方機車、開車撞敵方吉普車導致旋轉失速。

基於不同的死法,載具死亡系統會選擇載具和乘客的死亡動畫來播放
死亡動畫會漸漸混入物理引擎控制的ragdoll系統,所以死亡動畫會不著痕跡地轉換成物理模擬的翻車。

圖說明

當玩家開吉普車撞飛敵方機車的時候,我使用機車在XZ平面上投影的bounding box和碰撞點,來判斷要使用四個撞飛死亡動畫中的哪一個。

圖說明

至於衝撞使得敵方吉普車旋轉失速,我是拿敵方吉普車與預設行進方向之間的旋轉量差來比較旋轉失速判定閾值。

圖說明

載具播放死亡動畫的時候,有機會穿透牆壁。我使用球體投射,從預設位置投射向載具實際位置。如果投射結果是與牆壁碰撞,則把載具稍微往牆壁的法向量移動。不一次完全修正誤差,是為了避免太過劇烈的位移。

圖說明

我另外實作了一種特別的載具死亡類型,叫做載具死亡提示。這些死亡提示是動畫師和設計師在場景中擺置好的客製化死亡動畫。每個死亡提示在載具行進軌道上都有個進入範圍。當一個載具在死亡提示進入範圍中死亡,則會開始播放死亡提示的特殊死亡動畫。之所以開發這功能,一開始是為了2015年E3展的超帥氣吉普車死亡動畫。

混色用的貝爾矩陣

我們想要消除攝影機切入看穿物體的瑕疵,特別是遊戲中的各種植物。於是我們決定要讓靠近攝影機的像素淡出。使用半透明像素並不是個好主意,因為非常消耗效能。我們使用的技巧,是所謂的混色dithering:[https://en.wikipedia.org/wiki/Dither](https://en.wikipedia.org/wiki/Dither)

使用混色技巧搭配貝爾矩陣(Bayer matrix)。利用一個預先決定的點陣模板來決定哪些像素可以捨棄而不渲染:https://en.wikipedia.org/wiki/Ordered_dithering

結果就是產生半透明的錯覺

圖說明

一開始使用的貝爾矩陣是個8×8矩陣,取自上述的Wikipedia頁面。我認為這個矩陣太小,會造成不美觀的帶狀瑕疵。我想要使用16×16的貝爾矩陣,但是網路上都找不到相關資料,於是我試著用逆向工程找出8×8貝爾矩陣的遞迴特性。

光用目測法,我想我應該可以直接解出16×16貝爾矩陣,但是我想要讓過程更有趣一點。我寫了一個工具,可以生成二的任何次方大小的貝爾矩陣。

換到16×16貝爾具陣之後,可以明顯看到帶狀瑕疵的改善。

圖說明

爆炸聲延遲

這個部份我其實沒有什麼大貢獻,但是我還是覺得值得一提。

在2015年E3展示中,Nate和Sully同時接收到高塔傳過來的爆炸聲和爆炸畫面,這是不合理的,因為高塔距離非常遠,爆炸聲應該會晚一點才被接收到,我在開展前幾週指出這點,美術團隊後來就在爆炸聲之前加上一小段延遲了。

繁體中文在地化

直到送廠壓片前幾週我才開始在遊戲中改用繁體中文字幕,而我找到了許多錯誤。大部分的錯誤都是英文直譯中文,而變成四不像的用語。我認為我沒有足夠的時間可以單槍匹馬全破一次遊戲又同時抓出翻譯錯誤,於是我請幾個QA部門的人分章節、用繁體中文模式遊玩,然後我陸續瀏覽他們的遊玩錄製影片。結果這個方法相當有效率,我成功地把我找到的翻譯錯誤建檔,而在地化小組也有足夠的時間修正翻譯。

結束

以上就是我對Uncharted 4開發上值得一提的貢獻,希望大家讀得愉快 :)

延伸閱讀:我的秘境之旅

往下滑看下一篇文章
橘子集團 Vyin AI × 女媧創造攜手推出「居家陪伴機器人」,開啟機器人大腦 RIaaS 商業應用新局!
橘子集團 Vyin AI × 女媧創造攜手推出「居家陪伴機器人」,開啟機器人大腦 RIaaS 商業應用新局!

隨著全球勞動力老化與新血招募困難,從製造、零售到醫療與長照,各行各業皆面臨同樣的缺工挑戰,面對人力不足,機器人逐漸走出工廠,進入醫院、門市與家庭。但當生成式 AI 讓機器人不再只是「會動」,而是開始「能懂」時,新的問題隨之而來——我們是否能信任它?

尤其在台灣,隨著2025年正式進入超高齡社會,長照體系首當其衝,人力不足、服務品質不均、家屬壓力沉重,AI 與機器人被期待成為新解方,但即便生成式 AI 浪潮席捲全球,各國際大廠持續精進自家大型語言模型,市場仍缺乏能直接面向C端消費者、大規模商用且精準可控的 AI。

「很多機器人廠商強調的是功能能做什麼,但如果長者不願意互動,再多的功能都沒有意義。」橘子集團策略長暨 Vyin AI 負責人陳冠宇指出,「接觸點不成立,後面所有服務都用不上。而那個接觸點,就是可信任的聊天與陪伴。」

這樣的觀察,也成為 Vyin AI 切入發展「機器人大腦即服務(Robot Intelligence as a Service, RIaaS)」的契機。

在9月底舉辦的台北國際照護博覽會中,Vyin AI 宣布攜手台灣機器人新創女媧創造,搶先展示共同打造的居家陪伴型 AI 機器人「Gilee 桔利 」。結合 Vyin AI 核心技術 Vyin Brain 智慧中樞與女媧創造的機器人互動設計,展現 AI 機器人從「任務驅動(task-based)」邁向「語意與情境驅動(context-based)」的可能性。

橘子集團
橘子集團旗下生成式 AI 新創 Vyin AI 攜手女媧創造,於 2025 台北國際照顧博覽會展示「可控 AI × 機器人」應用,透過居家陪伴機器人 Gilee 桔利,展現可控 AI 理解語意、感知情緒並標記風險,揭示機器人大腦即服務(Robot Intelligence as a Service, RIaaS)的未來方向。橘子集團策略長暨 Vyin AI 負責人陳冠宇(左)與女媧創造營運長張智傑(右),分享機器人特點。
圖/ 橘子集團

從長照產業切入 以「可控 AI 大腦」打造能被信任的陪伴

女媧創造耕耘陪伴型機器人多年,擅長機器外觀設計及互動體驗,但在長照領域的推廣仍多停留在試行階段。營運長張智傑表示:「要守護長者的健康、撫慰孤獨長輩的孤獨感,光靠形體與互動還不夠,更需要一個可靠的大腦。」

過去的照護型機器人大多停留在衛教知識宣導或生理監測階段,缺乏與使用者互動的能力。面對照護需求快速攀升與人力斷層,雙方都意識到,若 AI 要真正走進家庭與長照現場,「信任」將是唯一關鍵。而對 Vyin AI 而言,這正是可控 AI 發揮價值的最佳場域。

陳冠宇指出,自大型語言模型(LLM)問世以來,雖展現出驚人的語意生成、邏輯推理與知識應用能力,但其核心仍屬於機率預測模型,本質上是透過複雜的機率計算模擬人類語言分布,即使經過人為的情境工程(context engineering)的修正,仍難完全避免「AI 幻覺」的發生。「在一般應用場景中,幻覺頂多造成資訊錯誤,但在醫療與照護產業,錯誤的回答可能直接影響生命安全。」

相較之下,Vyin AI 研發的智慧中樞 Vyin Brain 採用獨創的仿生大腦架構,由「語言、知識、理解、動作」四大中樞分工協作,層層把關 AI 的思考與回應流程。另外可將醫療、零售、教育等專業領域的資料轉化為透明的知識圖譜,建立清晰的知識邊界,確保所有回應均具可追溯性、可驗證性與可解釋性,最大程度的消除 AI 幻覺風險,讓生成式 AI 在需要高度精準與信任的場景中得以安全落地。

橘子集團
台北國際照護博覽會中,桔利的初登場,引起大眾的好奇與關注,詢問與體驗絡繹不絕。
圖/ 橘子集團

讓機器人更像人:客製化設定與長期記憶,讓長輩感受理解

首度亮相的桔利,以活潑童語與長輩對話:「爺爺,今天有什麼開心的事嗎?」「奶奶,妳該吃高血壓的藥囉!」展區人潮絡繹不絕,將 Vyin AI 的展攤擠得水洩不通,中化銀髮總經理李宗勇及團隊親自體驗後,更是對桔利讚不絕口,直言這位 AI 金孫外型討喜,是長輩絕佳的陪伴者。

事實上,被設定為「10歲金孫」的桔利,不僅能理解長者的語意與意圖,陪他們閒聊、安排行程、提醒用藥,還能透過長期記憶與個人化設定,根據長者的個性、家庭與健康狀況調整互動內容,主動引導長者分享興趣、回憶過往,甚至向他們請益,讓長者在互動中感受到被理解、被需要,進而產生「情感價值」。

相較多數廠商強調的是「生理監測」功能,桔利更重視的是「情感陪伴」。負責桔利產品功能設計與規劃的產品經理 蔣欣諭 補充,在傳統華人文化中,子女常羞於直接表達愛與關懷,因此設計出「專屬家人的 AI 仿聲語音信」功能。

子女只需透過專屬 App 輸入文字訊息,桔利便能以 AI 仿聲技術,轉換成兒女或孫子的聲音唸給長輩聽。這項功能在現場引發驚喜與共鳴,它觸動的不只是科技的體驗,而是家人之間「說不出口的愛」。

在日常生活中,桔利也具備智慧照護的即時偵測能力。會在對話中持續判斷語氣與內容的變化,進行風險標記。若偵測到異常,會透過女媧的通報系統推播給家屬,並依照情況分級提醒,且所有對話內容都會被自動收錄於後台,以簡潔明瞭的儀表板呈現,讓家屬與照護人員能快速掌握長者近期的身心理狀況。

「我們設計桔利的目的,不是取代家人,而是成為家屬與長者之間的橋樑。」她說。

從長照出發,邁向多元 RIaaS 生態

桔利在照護博覽會的初登場,不僅引發長輩熱烈回應,也為 Vyin AI 與女媧創造的合作奠定良好開局。對團隊而言,這不只是一次成功的展出,更是「情感連結」價值的具體驗證,同時也證明雙方在軟硬整合上的實力。

「我們從長照出發,是因為這是最難的場域,能最大化檢驗技術的可控性與穩定度,凸顯我們技術的價值。」Vyin AI 負責人陳冠宇表示。

除了以可控 AI 大腦杜絕幻覺外,要讓機器人能像人一樣反應,關鍵不只是速度,更在於整合。要達到像人一樣的回應速度與精準度,必須同時整合語音辨識(ASR)、語意理解、知識調用與語音合成(TTS)四層技術。「這不只是速度問題,更是理解與反應的平衡,這種全鏈路整合能力,就是我們最重要的護城河。」

陳冠宇透露,目前雙方正持續開發的全鏈路版本,預計於明年第一季推出,屆時回應時間將縮短至三秒內,讓人機互動更自然流暢。於此同時,團隊正推進「機器人大腦即服務(RIaaS)」模式,將同樣的可控 AI 能力延伸至零售、教育與照顧產業等領域。

RIaaS:Robot Intelligence as a Service 機器人大腦即服務.jpg
橘子集團旗下 Vyin AI從長照出發,希望以最難的場域開始,最大化檢驗技術的可控性與穩定度,邁向多元 RIaaS 生態。
圖/ 橘子集團

以零售為例,Vyin AI 自研的 D-RAG(DistilGraph RAG) 技術,可自動整合商品規格、客服紀錄或保健品資訊等非結構化資料,轉化為可即時調用的知識圖譜,讓機器人能在銷售、客服或導覽場景中快速回應顧客問題,提供準確建議,甚至根據互動內容動態導購、推薦商品,並在適當時機「轉真人」接手,協助品牌提升轉換效率。

同樣的架構,也能延伸至教育、照顧產業與智慧導覽等多種場景,讓機器人化身銷售助理、賣場導覽員、教學助教,根據使用者需求與語境,自動生成可信任的回應與互動體驗。「只要運用 Vyin AI 解決幻覺問題,『機器人即服務』的時代就會正式來臨。」陳冠宇說

他進一步指出,全球市場已對 RIaaS 商業模式產生迫切需求,Vyin AI 憑藉可控 AI 大腦的技術優勢,正積極布局海外市場。「我們希望透過 RIaaS,把這套可控 AI 大腦服務化,讓各行各業都能快速導入可信任的 AI 機器人,不只是替代人力,而是打造溫度的互動,讓未來的人機合作更加順暢、緊密。」

立即了解更多 Vyin AI 解決方案

登入數位時代會員

開啟專屬自己的主題內容,

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

我還不是會員, 註冊去!
追蹤我們
一次搞懂Vibe Coding
© 2025 Business Next Media Corp. All Rights Reserved. 本網站內容未經允許,不得轉載。
106 台北市大安區光復南路102號9樓