我的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 Straley或Neil 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開發上值得一提的貢獻,希望大家讀得愉快 :)

延伸閱讀:我的秘境之旅

往下滑看下一篇文章
AI Ready成零售入場券!SHOPLINE年度大會:AI流量時代,品牌如何被看見?
AI Ready成零售入場券!SHOPLINE年度大會:AI流量時代,品牌如何被看見?

AI 正快速改變消費者探索商品、接觸品牌的方式,也為零售業帶來新的成長機會。然而,當 AI 從個人使用工具逐步走向企業營運,台灣零售業的轉型腳步仍有落差。財團法人人工智慧科技基金會《2026 台灣產業 AI 化大調查》顯示,台灣零售業的 AI 應用仍存在明顯差距,資源有限的中小企業尤其面臨挑戰。對照全球已有 62% 的企業開始布局 AI Agent、近五成運用 AI 投入高價值決策,如何將 AI 從單點工具導入,真正成為零售成長的助力,已成為品牌必須面對的課題。

全方位零售整合專家 SHOPLINE 於 9 月舉辦「AI-Verse Day 2026」年度大會,以「Where AI Meets Commerce」為主軸,邀集零售與科技業者,從流量獲取、數據應用到會員經營,探討 AI 落地零售場景的實戰路徑。服務全球累計逾 70 萬品牌的 SHOPLINE,也在會中宣布邁向 AI in Retail,推出官方 MCP(Model Context Protocol),進一步串聯零售數據與 AI 應用,協助品牌掌握新興 AI 流量入口,為下一階段的智慧零售布局做好準備。

SHOPLINE 預告:零售下一個流量入口是 AI

2026 年上半年,SHOPLINE 客戶 GMV 年增 20%,是電商大盤成長率的 2.5 倍。「這代表我們與品牌客戶一起把生意做大!」SHOPLINE 台灣總經理葉力維指出,從全球市場來看,尤其是以北美為主的 SHOPLINE 客戶,來自 AI 渠道的流量 PV 較去年同期成長 15 倍,訂單量更成長 35 倍;相較之下,台灣 AI 渠道流量 PV 約成長 2 倍,顯示 AI 導流的商業潛力正逐步浮現,台灣品牌仍有很大的成長空間。

當品牌越做越複雜,從多通路走向全域經營、數據與規模擴大,如何確保資料品質、打通資訊孤島,並兼顧資安與治理,成為 AI 能否真正落地的關鍵。為此,SHOPLINE 提出四大 AI 佈局方向:首先,建立 AI Ready 數據基礎,整合分散的零售資訊,為 AI 應用做好準備;其次,深化 MCP 布局,讓品牌能依照自身需求,自主選擇並串接不同的 AI Agent;第三,成立 AI 轉型委員會,將 AI 導入內部工作流程,推動服務模式從執行任務進一步升級為洞察客戶需求、提供策略建議;最後,擴大 AI 夥伴生態系,開放第三方開發者串接垂直領域的 AI 應用,讓品牌能更靈活地組合所需工具。

#4 SHOPLINE
圖/ 數位時代

「過去十年,SHOPLINE 陪伴品牌走過每一次通路變革。每一次流量入口的改變,其實都代表著品牌經營方式的改變;而下一個入口,就是 AI。」葉力維表示,當 AI 開始影響消費者探索商品、發現品牌與完成購買的路徑,品牌不能只停留在導入單一工具,更需要提前整備數據、串接應用並建立治理能力。接下來,能否做好 AI Ready 的準備,將成為零售品牌掌握下一波成長機會的關鍵。

SHOPLINE 推官方 MCP,助攻品牌落實 Agent Ready

品牌該如何做好 AI Ready 的準備?SHOPLINE 產品副總賴哲文指出:「人、貨、場的接觸點沒有改變,改變的是誰做決定、誰做執行、誰做判斷。」

當 AI 逐步介入零售場景,消費者、員工與企業的角色也隨之改變:做決定的是消費者,當消費者問 AI「我該買哪個品牌」,品牌能否出現在答案裡是第一個挑戰;執行的是員工,員工則可將部分執行工作交由 AI 處理,將更多精力投入判斷與決策;做判斷的是企業,AI 能否提供可靠的洞察與建議,關鍵仍在於數據品質,以及能否有效運用既有數據資產。

要讓品牌被 AI 理解與推薦,品牌經營也必須從傳統 SEO,進一步走向 AIEO(AI Engine Optimization),讓商品與品牌資訊具備良好的結構與可讀性,才能提高被 AI 採用、推薦及導流的機會。對此,SHOPLINE 提出三層 AI Ready 架構:以「AI Ready Data」整合高品質、可供運算的零售數據;透過「AI Ready Commerce」讓商品資訊與交易流程能被 AI 理解和銜接;再以「AI Ready Agents」串接品牌自主選擇的 AI Agent,逐步將數據基礎延伸至實際應用。同時,SHOPLINE 也透過第一方數據歸因,改善消費者身分碎片化、數據時效性不足與成效歸因不清等問題,讓原始數據能進一步支援 AI 分析與決策。

#3 SHOPLINE
圖/ 數位時代

在工具應用上,SHOPLINE 推出官方 MCP,涵蓋流量轉換、數據分析、商品管理與會員經營等場景。品牌可在 Claude 中透過輸入零售 skills,搭配 MCP Tool 的後台相關能力,進一步產出數據洞察報表與執行建議,讓 AI 從資訊整理延伸至實際的零售工作流程。為兼顧應用效率與資料安全,SHOPLINE 也設下三道防護機制,包括涉及資料寫入時須經人工核准、個人資料須取得授權才能存取,以及依照角色與需求進行權限分級。

「Agent Ready 就是入場券。」賴哲文強調,當 AI Agent 開始參與消費者決策與企業營運,品牌不只要讓 AI 看得懂商品,更要讓數據能被安全地運用、讓不同工具能順利協作。

除了產品之外,SHOPLINE 也致力發展 AI 開放生態圈,邀請各領域夥伴分享引流、口碑、營運與顧客經營的應用方向。此次大會邀請數聚國際、Tagnology、BUNNYWORK、beBit TECH 微拓科技,以及女性高效身體保養品牌 HYPHY,攜手展示 AI 如何串聯流量獲取、行銷轉換到顧客經營等零售場景。

Justar 運用真實發票數據,提升廣告投放效率

廣告投放端同樣面臨轉變。「市場愈來愈大,轉換效益卻愈來愈低。」紅門互動及Justar 數聚國際執行長張元溢分析,投放效率下滑,源於成長結構改變:影響消費者的場域更分散,找人的方式從興趣推測走向真實行為,素材也無法一套打完全場。

對此,Justar 運用 AI 結合電子發票數據,以 AI 廣告投放平台結合全台規模領先的雲端發票消費資料庫,涵蓋超過 20 億筆雲端發票、700 萬名消費者及 3,200 萬項商品。其「AI 廣告受眾推薦引擎」可依商品特性生成受眾輪廓(Persona),比對發票資料庫、找出真實買家作為種子受眾,而非僅依賴瀏覽紀錄或興趣標籤,再由 AI 自動擴充相似受眾、生成並優化素材,並依成效動態調整投放策略與預算配置。

張元溢強調,從真實種子到規模化放大,重點在於找到更多相似的人。同時觸及也須走出社群,延伸至 RMN 聯播網、社區 App 廣告與戶外媒體。他以「三人成虎」形容,藉創作者短影音加上跨場域廣告加深印象,才能為品牌實現「線上找到人,線下讓他記住你」的成效。

#2 SHOPLINE
圖/ 數位時代

BUNNYWORK 推 AI 營運特助,主動預警缺貨與滯銷也發掘成長機會

除了行銷之外,AI 也開始深入零售業的日常營運,協助品牌從事後處理走向事前預測。BUNNYWORK 創辦人周于如指出,電商營運常面臨幾大痛點:商品售罄後客戶問了才發現缺貨、補貨數量仰賴 Excel 與個人經驗判斷,滯銷商品也往往要到季末才浮現。「營運方式不同,留下的利潤差很多。營收決定你做多大,營運才決定你能留下多少利潤。」

針對這些痛點,BUNNYWORK 推出定位為「會思考的電商 AI 特助」的解決方案,目標是讓電商營運進入「自動駕駛」。傳統 ERP 只負責被動紀錄營運數據,BUNNYWORK 則讓 AI 24 小時主動盯盤:根據銷售數據提前發出缺貨預警、產出補貨建議單,並每日掃描商品銷售速度,一旦偵測到滯銷風險,即透過 LINE 推播提醒品牌及早規劃促銷、加速庫存去化與資金回流。除了提前規避風險外,AI 也幫助電商看見潛在機會:偵測到爆款潛力的商品,提醒品牌提早加碼備貨、調整廣告資源,把握成長時機。

至於 AI 為什麼能提供可靠的營運建議?背後仍取決於數據基礎。周于如解釋,ERP 串聯商品、銷售與庫存等不同環節的數據,並即時同步多通路的商品與庫存資訊,讓 AI 掌握完整且即時的營運全貌,同時降低超賣風險。「唯有建立乾淨、即時的資料基礎,AI 才能進一步辨識缺貨與滯銷風險、並發掘銷售成長機會,協助品牌提前應對、做出更精準的決策。」目前品牌平均約 7 天即可完成導入。

#1 SHOPLINE
圖/ 數位時代

精兵團隊導入 AI,解決流程瓶頸再創高成長

從流量獲取到營運效率,AI 的價值最終仍須回到顧客經營與商業成效。大會壓軸的高峰沙龍回到會員經營。beBit TECH 商務長譚學凱指出,OmniSegment CDP(顧客數據平台)能整合分散的顧客資料,建立 360 度顧客輪廓,進一步支援跨渠道的精準經營;旗下導購型 AI Agent「AgentBit」,提供對話式分眾,讓使用者與 AI 對話就能快速打包推播受眾,不再需要手動設定篩選條件;商品興趣預測則以 AI 學習客戶的行為軌跡,自動將高相關商品推送給高潛力買家;AI 智慧分析更只需透過問答,即時分析品牌檔期成效與提供優化建議,並能一鍵調整現有顧客旅程。透過 CDP 與 AI 功能加乘,大幅提升行銷團隊協作效率,並支援逾 2,000 種 OMO 跨通路智慧推播,協助品牌更有效地觸及目標客群。

#0 SHOPLINE
圖/ 數位時代

HYPHY 品牌共同創辦人林又立分享,品牌長期透過 LINE 經營千人會員社群,希望在規模化經營的同時,仍保有一對一對談的親切感與即時回覆的能力。導入 AgentBit 後,團隊能透過 AI 對話快速完成受眾分群,並取得具體的行銷優化建議,降低操作門檻。以單檔活動為例,LINE 發送量僅為原先的 15%,點擊率卻提升 227%,EDM ROAS 更提升至原先的 3.3 倍,展現 AI 協助品牌提升溝通效率與行銷效益的潛力。

對於資源有限、希望嘗試 AI 的品牌,林又立也分享了務實的做法:「不要一開始練跑就想著今天要跑全馬,先踏出第一步,把目標定在到達下一個電線桿就夠了。」與其一開始就追求全面轉型,不如從具體的營運需求出發,逐步找到適合 AI 發揮的場景。

活動尾聲,葉力維也提醒,品牌導入 AI 前,應先盤點內部工作流程,找出真正影響效率與成效的瓶頸,再思考如何運用 AI 改善。「那就是你最該導入 AI 的地方。把 AI 放在流程上,才是關鍵。」與其為了導入 AI 而導入 AI,先解決實際問題,才能讓技術真正轉化為營運成果。

登入數位時代會員

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

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

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