Zh-tw/Nodegraph: Difference between revisions
< Zh-tw
Jump to navigation
Jump to search
(→編輯) |
(→編輯) |
||
Line 13: | Line 13: | ||
一個地圖可以有兩個Nodegraph存在(不過兩個Nodegraph都會被存在同一個AIN檔裡):一個作用於飛行的NPC上,另一個則是用來走路、駕駛或是執行其他只能在地面上移動的NPC才能做的行動。一般來說NPC可以從中選擇一種Nodegraph,但是當前沒有這樣行動的已知例子。 | 一個地圖可以有兩個Nodegraph存在(不過兩個Nodegraph都會被存在同一個AIN檔裡):一個作用於飛行的NPC上,另一個則是用來走路、駕駛或是執行其他只能在地面上移動的NPC才能做的行動。一般來說NPC可以從中選擇一種Nodegraph,但是當前沒有這樣行動的已知例子。 | ||
'''Air nodes(空中節點)'''會懸掛在任何它被放置的地方,但是'''Ground nodes(地面節點)'''會在編輯時自動落在地面上,除非有特別設定過<code> | '''Air nodes(空中節點)'''會懸掛在任何它被放置的地方,但是'''Ground nodes(地面節點)'''會在編輯時自動落在地面上,除非有特別設定過<code>「Keep editor position」</code> Flag。 | ||
== 構成要素 == | == 構成要素 == |
Revision as of 01:50, 20 August 2010
Nodegraph被設計者用來幫助NPC的AI規劃活動路徑,Nodegraph包括人工放置的Nodes(節點)與自動在Node間形成的Links (連結)。每個獨立的Node代表NPC實際上可以移動到的地方,Nodegraph的連結則會在編輯時自動產生,但可以用連結控制工具來調整。AI會驅使NPC順著連結從一個節點移動到另一個節點,不過不一定會精確地到達Node的位置,也不一定會走直線路徑。
- 一個節點可能會有「Hint(指示節點)」協助,像是「蹲下掩護」之類的,來幫助NPC在某些特定的位置做出反應。詳情參見Hint nodes
- Counter-Strike:Source 的 BOT 也有類似的東西,叫做 Navigation Meshes(網狀導航).
編輯
Nodegraph會在地圖載入時自動編輯且存入AIN檔,除非本來就有與地圖相對應的AIN檔存在。在建立過程中,Source引擎的AI系統將會在所有節點間(小於720單位)繪製直線和計算哪些種類的NPC Hull可以在所有路徑中移動。可動的物件像是實體物品以及門都會在程序中被忽略。AIN檔輸出之後會保存在「<遊戲名稱>\maps\graphs」
一個地圖可以有兩個Nodegraph存在(不過兩個Nodegraph都會被存在同一個AIN檔裡):一個作用於飛行的NPC上,另一個則是用來走路、駕駛或是執行其他只能在地面上移動的NPC才能做的行動。一般來說NPC可以從中選擇一種Nodegraph,但是當前沒有這樣行動的已知例子。
Air nodes(空中節點)會懸掛在任何它被放置的地方,但是Ground nodes(地面節點)會在編輯時自動落在地面上,除非有特別設定過「Keep editor position」
Flag。
構成要素
以下是建立Nodegraph的要素:
- 地面節點
info_node
info_node_hint
info_node_climb
- 空中節點
info_node_air
info_node_air_hint
- 連結控制
info_node_link
info_node_link_controller
建立
放置節點
map_edit
指示節點
曲線除錯
連結控制
NPC的使用方式
當NPC試圖建立路徑,他會依照以下規則來使用Nodegraph:
- 找尋距離NPC的位置最近的節點
- 找尋距離NPC想到的位置最近的節點
- 確認兩點間有連接起來,並且找尋最佳路徑
- 使用 moveprobes 來確認NPC可以抵達目標節點
- 使用 moveprobes 來確認NPC可以利用目標節點到達他想到的位置