III. TRÍ TUỆ NHÂN TẠO
4. ỨNG DỤNG AI VÀO XÂY DỰNG GAME TRÊN UNITY
a) Ứng dụng điều hƣớng và tìm đƣờng (Navigation and Pathfinding) vào
các đối tƣợng di chuyển trong game
Các đối tƣợng di chuyển trong game cần thêm thành phần Navigation Agent để có thể tìm đƣờng đi ngắn đến vị trí bất kỳ và tránh đƣợc các vật cản.
b) Ứng dụng FSM (Finite State Machine) vào điều khiển các đơn vị lính
Để lính có thể vận hành một cách tự động cần cài đặt FSM cho từng đơn vị lính. Ta cần xây dựng lớp AI cho lính và trong lớp AI có các trạng thái cơ bản nhƣ: tuần tra (Patrol), truy đuổi (Chase), tấn công (Attack), chết (Die). Các trạng thái đƣợc vận hành nhƣ sơ đồ bên duới:
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 95
Hình IV.63: Hình minh họa sơ đồ chuyển trạng thái
Chú thích sơ đồ:
o Target on sight: mục tiêu trong tầm nhìn.
o Lost/killed target: mục tiêu ngoài tầm nhìn, hoặc chết.
o Target on range: mục tiêu trong tầm đánh.
o Target out of range: mục tiêu ngoài tầm đánh
o Current Health <= 0: lính hết máu.
Trạng thái tuần tra (trạng thái đầu tiên khi lính đƣợc khởi tạo)
o Nếu không có mục tiêu trong tầm nhìn, lính sẽ đi theo điểm (waypoint) trên một trong các đƣờng đƣợc quy định trƣớc (top, mid, bot).
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 96
Trạng thái truy đuổi
o Nếu mục tiêu trong tầm đánh thì chuyển sang trạng thái tấn công.
o Nếu mục tiêu nằm ngoài tầm nhìn, hoặc bị tiêu diệt thì chuyển sang trạng thái tuần tra.
Trạng thái tấn công
o Nếu mục tiêu nằm ngoài tầm đánh và trong tâm nhìn thì chuyển sang trạng thái truy đuổi.
o Nếu mục tiêu nằm ngoài tầm nhìn hoặc bị tiêu diệt thì chuyển sang trạng thái tuần tra.
o Ngƣợc lại, hết thời gian chờ đánh thì tấn công mục tiêu.
Trạng thái chết (trạng thái xảy ra khi lính hết máu)
o Hủy đối tƣợng sau thời gian.
o Chia đều kinh nghiệm cho số tƣớng địch trong tầm nhìn.
c) Ứng dụng cây hành vi (Tree Behaviour) để máy điều khiển tƣớng trong
game
Để nhân vật có hành vi xử lý phù hợp với các tình huống có thể xảy ra trong game. Ta cần xây dựng cây hành vi cho nhân vật. Sơ đồ cây hành vi đƣợc xây dựng với nút gốc gắn với bộ thực hiện nhiệm vụ chọn lọc (Selector). Bộ chọn lọc sẽ gắn với các bộ thực hiện nhiệm vụ tuần từ (Sequence). Trong mỗi bộ tuần từ là một cây con thể hiện duới dạng sơ đồ thực hiện một hoặc nhiều hành vi. Các sơ đồ cây con: sơ đồ đổi đƣờng, sơ đồ trụ đƣờng, sơ đồ tấn công trụ, sơ đồ tham chiến, sơ đồ tấn công, sơ đồ mua trang bị ( sơ đồ mua trang bị cơ bản, sơ đồ mua trang bị cao cấp, sơ đồ mua trang bị chính), sơ đồ canh đòn đánh cuối diệt địch, sơ đồ tuần tra (sơ đồ tuần tra không tƣớng địch và có đồng minh, sơ đồ tuần tra không tƣớng địch và không có đồng minh, sơ đồ tuần tra có tƣớng địch và có đồng minh, sơ đồ tuần tra có tƣớng địch và không có đồng minh), sơ đồ sử dụng kỹ năng, sơ đồ trạng thái chết.
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 97
Chú thích ký hiệu trong sơ đồ:
Bộ thực hiện nhiệm vụ chọn lọc (Selector Task)
Bộ thực hiện nhiệm vụ tuần tự (Sequence Task)
Kiểm tra đièu kiện đẻ thực hiện nhiệm vụ tuần tự
Sơ đồ cây con
Bộ thực hiện nhiệm vụ thay đổi (Decorator Task)
Bộ thực hiện nhiệm vụ chọn lọc (Selector Task)
Đƣờng liên kết
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 98
Hình IV.64: Sơ đồ đổi đường
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 99
Hình IV.66: Sơ đồ tấn công trụ
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 100
Hình IV.68: Sơ đồ tấn công
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 101
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 102
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 103
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 104
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 105
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 106
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 107
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 108
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 109
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 110
SVTH:
Nguyễn Đức Trung 1101707
Trần Minh Trung 1101708 111
Hình IV.80: Sơ đồ trạng thái chết