Điều hướng tìm đường dẫn lưới hoạt động như thế nào?


27

Tôi muốn hiểu làm thế nào điều hướng hoạt động, làm thế nào để thực hiện chúng và tại sao nó tốt hơn so với các loại hệ thống đường dẫn khác.


Điều này xuất hiện trong quá trình đi lang thang trên internet buổi sáng của tôi: aigamedev.com/open/reviews/alienswarm-node-graph Có thể đáng đọc :-)
coderanger

Hướng dẫn này có thể hữu ích cho người dùng Unity bắt gặp bài đăng này: binpress.com/tutorial/unity3d-ai-navmesh-navlation/119
MichaelHouse

Câu trả lời:


6

Nó cũng giống như tìm đường dẫn điểm, chỉ thay vì điểm theo cách bạn có đa giác đường và Bạn có thể suy ra một vài điều về điều hướng từ nó:

  • đa giác đường là khu vực nơi các thực thể có thể đi bộ một cách an toàn
    • các lĩnh vực khác có lẽ không nên được xem xét
    • điểm cần phải thực hiện bước nhảy đức tin vào không gian giữa chúng; nhớ các NPC bị mắc kẹt trong các bức tường? Đó là tại những nơi mà hai điểm tham chiếu không được kết nối trực tiếp.
  • Có khả năng ít nút hơn (vì đa giác lớn hơn)
    • Do đó, nó rất có thể nhanh hơn
    • Do đó, nó có khả năng yêu cầu bộ nhớ nhỏ hơn
  • Nó thực tế hơn (vì diện tích của đa giác chứa trong lý thuyết số lượng điểm vô hạn)
    • Tại đa giác Bạn có thể thực hiện một số hành vi đổ xô để tránh va chạm giữa các NPC

2

Nói chung, chúng được sử dụng với một số loại thuật toán A * nâng cao (có tính đến các liên kết nhảy hoặc bay để tìm đường dẫn 3D). Theo cách đó, nó không thực sự là một hệ thống khác với bất kỳ hệ thống nào khác, đó là cách tạo ra một mạng tìm đường thông thường trực tiếp từ môi trường hoặc địa hình cao (nói tốt, tương đối). Vì bất kỳ lý do gì, chúng tôi gọi chúng là đèn hiệu ở đây, nhưng ý tưởng là như nhau, một số quy trình tự động chạy trên mỗi bản đồ và tạo ra một tập hợp các kết nối đơn giản có thể chạy A * trên chúng theo khung thời gian hợp lý. Nếu bạn đã thử tìm đường dẫn dữ liệu cơ bản thô thì nó sẽ quá chậm cho một trò chơi vì mật độ của lưới.


Đây không phải là một biểu đồ điểm trừ ngoại trừ được thực hiện trên một lưới đơn giản? Tôi nghĩ rằng điều hướng cho phép bạn thực hiện đường dẫn trên đa giác.
Cháy

Biểu đồ đơn giản hóa cho phép bạn thực hiện đường dẫn đường dài, phạm vi ngắn thường được xử lý theo cách khác. Có vẻ như hệ thống của Valve sử dụng dữ liệu lưới cho cả hai, theo những cách khác nhau (định tuyến siêu âm so với các ràng buộc cục bộ).
coderanger

Một tập hợp các kết nối đơn giản không phải là một navmesh phải không? Tôi nghĩ rằng nó được gọi là navmesh bởi vì bạn thực hiện đường dẫn trên đa giác.
Cháy

Tôi không nghĩ rằng điều hướng địa phương và toàn cầu có liên quan ở đây.
Cháy

1
Một tập hợp các đa giác lân cận vẫn là một biểu đồ giống như các điểm mốc đã đặt và bạn có thể thực hiện A * trên đó theo cùng một cách. Sự khác biệt duy nhất là một khi bạn biết những đa giác nào bạn sẽ di chuyển qua bạn vẽ các đường khác nhau.
coderanger

0

Có nhiều cách bạn có thể làm điều đó. A * và như vậy là một lựa chọn tốt, nhưng thiếu tài liệu. Bạn có thể làm một cái gì đó như các nút địa điểm ngẫu nhiên trên bản đồ và kiểm tra xem các nút nào có thể nhìn thấy nhau và xây dựng một mạng lưới các nút nhỏ. Không phải là tối ưu nhất nhưng dễ hiểu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.