[閒聊] 老遊戲《尾行》為何不再做?兼論虛幻引
尾行是款以「跟蹤」為遊戲核心的遊戲,
但只有在早期的遊戲機上出現,
為什麼最近高效能的主機沒有這類型遊戲呢?
覺得可能是市場和玩家需求的改變。
純粹以「尾行」為核心的遊戲類型,其玩家群體相對小眾,
容易與道德爭議或情色內容聯想在一起,
這對主流遊戲開發商來說風險較高。
現今的主流遊戲更注重動作性、故事深度、互動,以及更廣泛的玩家接受度。
另一個重要原因可能是市場和玩家需求的改變。
純粹以「尾行」為核心的遊戲類型,
其玩家群體相對小眾,而且容易與道德爭議
或情色內容聯想在一起,
這對主流遊戲開發商來說風險較高。
現今的主流遊戲更注重動作性、
故事深度、多人互動,以及更廣泛的玩家接受度。
因此,開發公司會將「跟蹤」這類玩法
融入到更豐富的遊戲框架中,
讓它成為整體體驗的一部分,而不是獨立存在。
在近年遊戲中,雖然不以「尾行」命名
,但包含大量跟蹤和潛入元素的遊戲有:
人中之龍、碧血狂殺2
虛幻引擎(Unreal Engine)中的AI偵測系統非常強大,除了你提到的聽覺和視覺偵測,還
有其他幾種方式可以用來製作「尾行」遊戲。
「完成尾行的女主角發現玩家」的功能。在虛幻引擎中,敵人AI的偵測組件有聽聲音與視覺
偵測,還有什麼嗎?這些組件用來製作尾行可能的使用方式有什麼例子呢?
如果是以Unity引擎,又該使用什麼方法?代替那些機制?
---
### Unreal Engine 的偵測機制與應用
Unreal Engine 的 AI 偵測組件主要整合在 **AIPerceptionComponent** 中,它包含了以
下幾種感官:
1. **視覺 (Sight)**:這是最直觀的偵測方式,透過 **可視性 (visibility)** 和 **視
野角度 (field of view)** 來判斷目標是否在視線內。
* **尾行應用**:你可以設定 NPC(非玩家角色)的視野角度和距離。玩家如果進入這
個範圍,就會被發現。例如,在轉角處偷偷觀察、躲在掩體後面,這些都可以利用視覺偵測
來實現。
2. **聽覺 (Hearing)**:這個感官用來偵測聲音事件。
* **尾行應用**:玩家走路、跑步、打破東西、觸發陷阱等動作都可以產生聲音事件。
你可以根據聲音的 **音量 (Loudness)** 和 **距離** 來決定 NPC 是否會被驚動。例如,
玩家如果跑得太快,NPC 就會回頭查看。
3. **傷害偵測 (Damage)**:當 AI 偵測到自身受到傷害時,會產生反應。
* **尾行應用**:雖然這在「尾行」中較少作為主要偵測手段,但可以作為特殊情況。
比如玩家不小心觸發了陷阱,導致 NPC 受傷,NPC 會立刻進入警戒狀態,而不是直接發現
玩家。
4. **團隊關係 (Team Perception)**:這個組件讓 AI 能知道其他 AI 偵測到了什麼。
* **尾行應用**:如果一個 NPC 發現了玩家,它可以廣播給其他附近的 NPC,讓他們
一起進入警戒狀態。這能模擬更真實的巡邏團隊。
5. **氣味或觸覺 (Sense of Smell / Touch)**:Unreal Engine 沒有內建獨立的「氣味
」感官,但可以透過 **藍圖 (Blueprint)** 或 C++ 程式碼自訂義。
* **尾行應用**:你可以自訂一個偵測組件,當玩家靠近某些特定物品(如發出氣味的
物品)時,AI 會產生反應。例如,玩家身上帶有某種氣味,即使沒有被看到,AI 也會循著
氣味接近。
---
### Unity 引擎的實作方式
在 Unity 中,雖然沒有像 Unreal 內建的 `AIPerceptionComponent` 那樣整合好的組件,
但可以透過**程式碼**和**物理引擎**的組件來實現類似的功能。
#### **視覺偵測**
* **Raycast(射線投射)**:你可以從 NPC 的眼睛位置發射一條或多條射線。如果射線擊
中了玩家,就表示玩家在視野內。你還可以結合 **視野角度(Field of View)** 的計算
,只在特定角度內發射射線。
* **實作範例**:使用 `Physics.Raycast()` 函式,檢查射線是否擊中玩家的 `Colli
der`。
* **SphereCast** 或 **OverlapSphere**:這兩個方法可以模擬 NPC 擁有一個球形視野範
圍。只要玩家的碰撞體進入這個球形範圍,就可能觸發偵測。
#### **聽覺偵測**
* **觸發器 (Trigger)**:你可以為玩家的移動設定一個觸發器。當玩家移動時,這個觸發
器會產生一個**虛擬的聲音事件**。
* **距離判斷**:讓 NPC 偵測是否有聲音事件在自己的半徑範圍內發生。你可以設定不同
的聲音類型(如走路、跑步)對應不同的偵測半徑。
* **實作範例**:當玩家跑步時,在玩家周圍創建一個 **`OverlapSphere`**,任何進
入這個範圍的 NPC 都會被「聽」到。
#### **其他進階機制**
* **自訂狀態機 (State Machine)**:你可以為 AI 敵人製作一個狀態機,包含「巡邏 (Pa
trolling)」、「警戒 (Alert)」、「追逐 (Chasing)」等狀態。當偵測到玩家時,AI 的狀
態就會切換。
* **NavMesh Agents**:這在兩個引擎中都很常用,用來控制 AI 的移動。你可以利用 Nav
Mesh Agents 來讓 AI 根據偵測到的資訊,導航到玩家的最後已知位置。
總結來說,無論是 Unreal Engine 還是 Unity,核心思想都是透過**程式碼**和**物理引
擎的偵測功能**來模擬 AI 的感官,並根據這些感官回饋來觸發 AI 的行為。Unreal Engin
e 提供了更完整的內建組件,而 Unity 則需要你透過腳本來自行建構這些邏輯。
你對在 Unity 中實現這些功能是否有更具體的想法或想了解的部分?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.244.242 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1754908356.A.E48.html
→
08/11 18:34,
1小時前
, 1F
08/11 18:34, 1F
推
08/11 18:36,
1小時前
, 2F
08/11 18:36, 2F
推
08/11 18:37,
1小時前
, 3F
08/11 18:37, 3F
→
08/11 18:37,
1小時前
, 4F
08/11 18:37, 4F
→
08/11 18:37,
1小時前
, 5F
08/11 18:37, 5F
→
08/11 18:42,
1小時前
, 6F
08/11 18:42, 6F
→
08/11 18:43,
1小時前
, 7F
08/11 18:43, 7F
推
08/11 18:50,
1小時前
, 8F
08/11 18:50, 8F
→
08/11 18:58,
1小時前
, 9F
08/11 18:58, 9F
推
08/11 19:00,
1小時前
, 10F
08/11 19:00, 10F
→
08/11 19:00,
1小時前
, 11F
08/11 19:00, 11F
→
08/11 19:01,
1小時前
, 12F
08/11 19:01, 12F
推
08/11 19:02,
1小時前
, 13F
08/11 19:02, 13F
噓
08/11 19:17,
57分鐘前
, 14F
08/11 19:17, 14F
C_Chat 近期熱門文章
PTT動漫區 即時熱門文章
39
125
22
28