2 Các nghiên cứu liên quan
2.4 Những thiếu sót của các nghiên cứu trên
Có một vấn đề đã nảy sinh khi sử dụng hình nón tầm nhìn (vision cone) để mô phỏng vùng tầm nhìn của NPC. Khi người chơi ngay bên cạnh NPC người chơi vẫn không bị nhìn thấy, trong khi người chơi cách xa NPC lại bị phát hiện như được minh họa ở hình 5.
Còn đối với RSM và FEMSM thì cả RSM và FEMSM đều có thiếu sót. RSM ít đòi hỏi hơn khi nói về tốc độ xử lý, nhưng nó không cung cấp cơ chế để tính toán sự tương tác của âm thanh với các chướng ngại vật. Trong RSM, âm thanh vẫn có thể cảm nhận được qua các bức tường và các vật thể khác mà trong thực tế các vật thể này có thể cản không cho âm thanh đi qua. Điều này có thể được giải quyết bằng cách sử dụng một tia (raytrace) để phát hiện chướng ngại vật giữa nguồn và đích và sau đó áp dụng sự suy giảm độ lớn của âm thanh theo số lượng chướng ngại vật và độ cản âm của chúng.
Ngoài ra, các phương pháp tiếp cận RSM và FEMSM đều không xem xét đến tâm lý của con người tại thời điểm đó, cũng như những hạn chế về khả năng nghe của người đó. Trong các phương pháp này, để xác định xem NPC có nghe thấy một âm thanh cụ thể hay không, cường độ của nó được kiểm tra với ngưỡng của NPC. Tuy nhiên,
Hình 5: Vấn đề ở vision cone (McIntosh, 2015).
âm thanh có thể được đặc trưng bởi nhiều thuộc tính (cường độ, tần số, v.v. ...), vì vậy việc kiểm tra dựa trên cường độ khá đơn giản và, do đó, mô phỏng không thực tế về nhận thức thính giác của con người.
SV, so với RSM và FEMSM, mặc dù với một mục đích khác, nhưng biểu diễn âm thanh theo hướng thực tế hơn, có tính đến trạng thái tâm lý của người nghe. Nhưng cách SV biểu diễn âm thanh đã nằm ngoài tầm vực của luận văn này, vì nó nhằm mục đích giải thích âm thanh hơn là nhận thức âm thanh, đồng thời có nhu cầu khá cao về sức mạnh xử lý. Sự mô tả của SV về âm thanh siết chặt các mối quan hệ giữa các khía cạnh môi trường, thể chất và tâm lý. Việc đơn giản hóa sự mô tả này có thể đóng vai trò là nguồn cảm hứng cho việc mô tả âm thanh trong luận văn này trong tương lai, giúp em chuẩn bị tốt hơn để có thể đưa ra một mô hình nhận thức thực tế hơn.
Cuối cùng, đối với FSM nếu số trạng thái của NPC lớn thì việc quản lý các trạng thái và quá trình chuyển đổi giữa các trạng thái đó trở nên rất phức tạp và cồng kềnh và kết quả là tạo nên một "spaghetti" FSM như được minh họa ở hình dưới.
Hình 6: Một ví dụ về "spaghetti" FSM (Estrada, 2014).
Mặc dù HFSM có thể giải quyết vấn đề trên nhưng cả FSM và HFSM đều có một bất lợi đó là các trạng thái có quan hệ chặt chẽ với nhau, tức là, việc sửa đổi code cho trạng thái Nhàn rỗi sẽ ảnh hưởng trực tiếp đến việc liệu nó có còn đúng để trạng thái này được gọi từ code của các trạng thái khác hay không hoặc có thể có nghĩa là chúng ta
sẽ phải cập nhật ngữ cảnh để chuyển trạng thái trên tất cả các code của các trạng thái khác. Ví dụ nếu chúng ta sửa đổi code của trạng thái Nhàn rỗi để nhân vật thở gấp sau khi chạy khỏi kẻ thù, thì nếu nó không được gọi từ trạng thái Chạy thì nó sẽ không hợp lý.
3 Mô hình tìm đường đi (path-finding) cho NPC
Vì trong luận văn này, em sẽ tập trung nghiên cứu và thiết kế mô hình nhận thức, thị giác và thính giác cho NPC, nên mô hình tìm đường đi này em sẽ sử dụng hệ thống dẫn đường (navigation system) dựa trên NavMesh được xây dựng sẵn trong Unity. Hệ thống này sẽ giúp cho một nhân vật AI hay NPC có thể tìm đường đi trong màn chơi đồng thời tránh các vật cản và các nhân vật khác.