http://bfx.tw/module...?showtopic=7400
--------------------------------------
資料來源
http://bfeditor.gotf...opic.php?t=3809
* 做此步驟前, 請先建立 戰場區域限制
-- 過程一 : 地圖編輯器部分 --
1. 先在外掛管理員內, 載入單機編輯模式 (Tool > Add-in Manager > SinglePlayerEditor > autoload 或是 loaded)

原尺寸圖片連結
2. 啟動單機編輯 (左上角選單 - SinglePlayerEditor)

3. 載入你要編輯的地圖

4. 選擇顯示 "AI 路徑設定" (Render > AI > Toggle Draw AI), 同時將顯示改為改為"正上方"


5. 選擇上面的工具圖示 "StrategicAreas" (兩個框框型)

6. 在你希望BOT去攻擊的地方, 按下右鍵, 選"Create New Strategic Aeas"
註: 如果是在控制點附近, 就不用這樣劃, 直接到第九繼續做

原尺寸圖片連結
7. 輸入SA的名稱

* 此時請勿亂點! 因為很難點回來 :-( , 先去左邊的 TweakerBar 修改它的屬性

8. 重複上面的兩個動作, 直到把每個控制點的SA(Strategic Areas)都設出來
9. 點任意一個SA (或是控制點) (被點到會顯示為深藍色)
注意: 此步驟非常難點 ! 請多試幾次


10. 接著移到另一個SA (或是控制點), 按下滑鼠右鍵

原尺寸圖片連結
11. 先跟鄰近的點建立聯繫
Add Two-Way Neighbour :[甲] <-> [乙] 建立兩個點之間的聯繫(非AI路徑)
Add One-Way Neighbour :[甲] -> [乙] 建立甲到乙的單向聯繫(非AI路徑)
Remove All Neighbour 移除甲點跟其他點的所有聯繫(非AI路徑)

12. 重複上面的步驟, 直到所有點的聯繫都完成
13. 接著再任意一個點, 在它上面按右鍵, 選擇 Waypoint
Add Infantry Waypoint :[甲 <-> 某特定點] 建立兩地之間的步兵路徑
Add Vehicle Waypoint :[甲 <-> 某特定點] 建立兩地之間的載具路徑
Add Infantry Waypoint :[甲 <-> 任意點] 建立兩地之間的步兵路徑
Add Vehicle Waypoint :[甲 <-> 任意點] 建立兩地之間的載具路徑
Remove Infantry Waypoint :[甲 <-> 某特定點] 移除兩地之間的步兵路徑
Remove Vehicle Waypoint :[甲 <-> 某特定點] 移除兩地之間的載具路徑
Remove Infantry Waypoint :[甲 <-> 任意點] 移除兩地之間的步兵路徑
Remove Vehicle Waypoint :[甲 <-> 任意點] 移除兩地之間的載具路徑

原尺寸圖片連結
14.重複上面的步驟, 直到每個點都有路徑到其他點 (相連的兩個點, 只要在其中一個設就好)
弄好之後, 把地圖存檔
然後離開編輯器
-- 過程二 : 文字指令操作部分 --
1. 先到其他地圖目錄內, 將 AI 資料夾複製到你地圖目錄內
同時, 請確定你的地圖目錄內有 Overgrowth 目錄, 而且它裡面也包含 OvergrowthCollision.con
(如果你沒有使用到 Overgrowth, 請建立一個空白的同名文件)
2. 到 Python 官方網站 下載編譯器 http://www.python.org/download/
目前看到的是 2.4.2 版, 所以下載位置是 http://www.python.or...ython-2.4.2.msi
3. 下載並安裝 Python 編譯器
4. 用檔案總管開啟 BF2安裝目錄/NavMesh
5. 如果你的地圖不是支援 BF2, 你需要用筆記本編輯 GenerateNavmeshLocal.py
# Change the line below to the mod you are working on
#mod = "xpack" <-- 移除前面的 # , 並且將 xpack 改成你的模組目錄名稱(如: bf2)
6. 將 ExportGTS.con 與 saveQuadNoP4.con 複製到你安裝 BF2 的目錄中
7. 執行 NavMesh 目錄下的 CreateNavmesh.bat , 輸入你的模組名稱(mod name)以及地圖名稱(level name), 然後按下 Enter
8. 接著會自動開啟 bf2 編輯器, 產生檔案 (所需時間非常久! 最好把電腦放著去做其他的事情)
9. 開啟 3DS(3D Studio), 用匯入 obj(WaveFront object)檔, 將 /navmesh/work/output/下的 infantry.obj 與 vehicle.obj 匯入
9. 刪除多餘的 polies 與 vertices, 再把它匯出為同名的 obj檔到 /navmesh/output/目錄下
10. 執行 FixNavmesh.bat, 它會把你弄好的檔案處裡過, 放到 AIPathfinding 你地圖檔裡的 AIPathfinding 目錄下
11. 用單機執行那張地圖看看唄 :-D
關於 3DS 匯入 obj 檔的設定
----------------------------------------------
Settings for import to Max:
Check these boxes:
single, Rotate model, Texture coordinates, Normals, Unify, Obj smooth groups
Set Vertex scale to 1.0
----------------------------------------------
Settings for export from Max:
Group by 'Object' and Select 'Polygons' for faces
Set Vertex scale to 1.0, #Digits: 8
Check these boxes:
Use materials, Create material library, Rotate model, Texture coordinates, Normals, Smooth groups
----------------------------------------------
Settings for MTL export from Max:
Select 'Scene materials' and #Digits:8
no boxes checked
----------------------------------------------
如果過程中出了任何問題,
在 /BF2安裝目錄/bf2editor/logs/ 下有紀錄檔, 你可以檢查看看
一個基本的規則.
/NavMesh/work/地圖名稱/debug/islands/infantry 與 /vehicle 應該跟區域數有關係
如果它們大過於 1, navmesh 就必須再編輯.
本篇文章已被 kuo 於 2006 年 08 月 01 日 - 上午 11:38 編輯過