Khóa luận Nghiên cứu và xây dựng thử nghiệm 3D Engine - Phần 8

Trong ví dụ ởhình vẽtrên, ta có hai đối tượng một là một khối hình chữnhật,

một là một khối capsule (hình trụvới hai đầu là hai bán cầu). Ta sẽdùng hai hình

hộp và capsule tương tứng bao bọc lại với cùng kích thước và khớp với vật thểcủa

Game. Bằng cách thực hiện nhưvậy ta tận dụng được tất cảcác tính năng vật lý do

NovodeX cung cấp và tất nhiên ta không hiển thịcác hình bao bọc trong Game mà

chỉdùng chúng nhưvật trung gian đểxửlý vật lý.

pdf17 trang | Chuyên mục: Mạng Máy Tính | Chia sẻ: dkS00TYs | Lượt xem: 1334 | Lượt tải: 1download
Tóm tắt nội dung Khóa luận Nghiên cứu và xây dựng thử nghiệm 3D Engine - Phần 8, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
không có lời 
giải đáp chỉ biết rằng vào lúc đó họ đã phát minh được cách mở cánh cổng vào thế 
giới song song. Điều này đã đặt ra một loạt câu hỏi, liệu có phải họ đã di chuyển 
toàn bộ dân cư của mình vào thế giới song song ấy như trái đất đang làm bây giờ 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 117 - 
hay không, các nhà khoa học vẫn mãi loay hoay tìm lời giải đáp, cho tới một 
ngày… 
 Trung tâm chỉ huy tại trái đất liên tục nhận được các tín hiệu không rõ ràng từ 
trạm nghiên cứu trên sao Hỏa, ít lâu sau thì người ta không thể nhận được bất kỳ 
thông tin phản hồi gì tại sao Hỏa nữa, thông điệp cuối cùng mà trung tâm trái đất 
nhận được là lời kêu cứu khẩn cấp của một người nào đó “no..o…h.el..p..m.e”. Để 
xác minh điều gì đã xảy ra cho căn cứ sao Hỏa, đội đặc nhiệm Bravo Team đã được 
thành lập. Các thành viên của đội đặc nhiệm được tuyển chọn vô cùng gắt gao từ 
lực lượng lính marine (lựu lượng tinh nhuệ nhất của trái đất). Nhiệm vụ của Bravo 
Team là tiếp cận trung tâm điều khiển chính trên căn cứ sao Hỏa, thiết lập thông tin 
liên lạc lại với trái đất và tìm hiểu điều gì đã xảy ra tại đó. Được hỗ trợ bởi tàu 
chuyên chở quân sự Dropship, Bravo Team đã nhanh chóng tiếp cận trạm nghiên 
cứu trên sao Hỏa. Cái mà họ nhận ra đầu tiên là chỉ là không khí yên lặng đến ghê 
người, hầu như không thấy một chút gì chứng tỏ là sự sống đã từng hiện diện ở nơi 
đây. Đến được trung tâm điều khiển chính, Bravo Team cẩn trọng đi vào, bạn chỉ là 
thành viên trong lực lượng hỗ trợ (Backup Team) nên được giao nhiệm vụ canh giữ 
cổng chính của trung tâm điều khiển. Biết bao nhiêu vũ khí tối tân hạng nặng đã đi 
cùng với lực lượng thâm nhập (Assault Team) chỉ để lại cho bạn một khẩu machine 
gun cũ kỹ với một vài băng đạn. Nhiệm vụ của bạn là phải luôn duy trì liên lạc với 
Assault Team để kiểm soát tình hình. Điều gì đến đã phải đến, bạn nghe thấy tiếng 
súng nổ, tiếng đỗ vỡ, tiếng la hét, rên rỉ trong bộ đàm… phút chốc mọi thứ đều im 
bặt, im như lúc ban đầu bạn đến đây vậy. Bạn không thích chuyện này, “điều gì đã 
xảy ra ?” trong đầu bạn cứ luôn quanh quẩn câu hỏi ấy. Quyết tâm tìm cho ra sự 
thật bạn quyết định tiến vào bên trong căn cứ. Với khẩu machine gun nắm chặt trên 
tay bạn đưa tay ấn nút mở cổng chính… 
 Cơn ác mộng đã bắt đầu… và có thể nó sẽ không bao giờ kết thúc… 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 118 - 
7.3. Các thành phần chính cần sử dụng 
 Nhiệm vụ chính của Game demo Dead Rising là dùng để minh hoạ các chức 
năng của Nwfc Engine. Nhưng nếu chỉ sử dụng Nwfc Engine thì ta chỉ có thể dựng 
hình 3D chứ không thể tạo thành ứng dụng Game hoàn chỉnh được. Chính vì lẽ đó 
ta sẽ sử dụng thêm các hệ thống khác bổ sung. 
 Hệ thống diễn hoạt: Sử dụng hệ thống diễn hoạt đã được giới thiệu và xây 
dựng ở chương 5. 
 Hệ thống vật lý: Sử dụng hệ thống vật lý đã được giới thiệu và xây dựng ở 
chương 6. 
 Hệ thống hạt (Particle System), trí tuệ nhân tạo (AI): Sẽ được trình bày ở 
chương sau. 
 Ngoài ra ta cần thêm các hệ thống phụ như hệ thống quản lý tập tin, hệ thống 
quản lý âm thanh. 
 Trong các hệ thống trên, hệ thống diễn hoạt và hệ thống vật lý được xây dựng 
mang tính đôc lập và tống quát cao nên được dùng ở nhiều ứng dụng khác nhau. 
Chính vì vậy chúng tôi đã trình bày như một phần riêng không liên quan đến ứng 
dụng cụ thể. 
7.4. Hệ thống các tập tin định nghĩa 
 Các tập tin định nghĩa (defination files) là hệ thống tập tin được phát triển từ 
định dạng tập tin Parameter của Engine. Hệ thống tập tin này có vai trò rất lớn trong 
Game vì hệ thống này giúp lưu trữ tất cả các thuộc tính và thông số của tất cả các 
đối tượng trong Game, từ người chơi (player), các con quái vật (monsters) cho đến 
hệ thống hạt (particle system), trí tuệ nhân tạo (AI)… Việc lưu trữ các thông số 
trong trò chơi trong các tập tin có ý nghĩa rất lớn trong việc chỉnh sửa và thay đổi 
sau này mà không cần phải biên dịch lại mã nguồn của toàn bộ chương trình. 
 Hệ thống tập tin định nghĩa trong Game Dead Rising được phân chia nhiều 
thành phần tùy theo chức năng sử dụng. 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 119 - 
7.4.1. Định nghĩa giao diện (GUI) 
 Tập tin định nghĩa giao diện cho phép người thiết kế đồ họa thiết kế và trình bày 
các đối tượng giao diện trên màn hình. 
mgun_hud 
{ 
 matlib "matlibs/gui/hud_lib.nmt" 
 panel ammo 
 { 
 material ammo_panel 
 rect [ 0 , 0 , 256 , 64 ] 
 align rb 
 color [ 0.39 , 0.57 , 0.64 , 1.0 ] 
 text_org [ 204 , 30 ] 
 } 
 panel ammo_filler 
 { 
 material ammo_filler 
 rect [ 0 , 0 , 128 , 64 ] 
 align rb 
 color [ 0.0 , 1.0 , 0.0 , 1.0 ] 
 text_org [ 0 , 0 ] 
 } 
 . . . 
} 
7.4.2. Định nghĩa hệ thống hạt (Particle System) 
 Tập tin định nghĩa cho hệ thống hạt lưu trữ các thuộc tính hình thành nên 1 hệ 
thống hạt đặc trưng. Tập tin định nghĩa giúp phân rã công việc của người thiết kế và 
người lập trình. 
blood_pray smoke 
{ 
 material blood_pray "matlibs/sfx/smoke_lib.nmt" 
 sprites 4 
 e_type point 
 e_size 0 
 e_cycletime 0.1 
 e_numpars 20 
 e_maxcycle 5 
 max_particles 200 
 c_size 8.0 
 c_speed 5.0 
 c_spin 0.0 
 c_life 2.0 
 c_dir [ 0.0, 1.0, 0.0 ] 
 c_sizevar 0.5 
 c_speedvar 0.5 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 120 - 
 c_spinvar 0.0 
 c_lifevar 0.5 
 c_dirVar 0.5 
 c_start_color [ 1.0, 1.0, 1.0, 1.0 ] 
 c_end_color [ 1.0, 1.0, 1.0, 0.5 ] 
 // smoke unique info 
 scale_speed 0.5 
 wind_force [ 0.0, -5.0, 0.0 ] 
 wind_distort 0.0 
} 
7.4.3. Định nghĩa màn chơi (Map level) 
 Tập tin này có nhiệm vụ định nghĩa các thực thể tĩnh (static entity) cho 1 màn 
chơi (cái hộp, cửa, items…) Có 3 loại thực thể có thể được định nghĩa: 
 entity. Định nghĩa thực thể tĩnh 
 door. Định nghĩa các cửa tự động 
 item. Định nghĩa các vật dụng có thể tương tác với người chơi như bình 
máu, hộp đạn 
entity 1 
{ 
 object tbox1 
 pos [ -183 , 66 , 79 ] 
 rot [ 0 , 120.219 , 0 ] 
} 
. . . 
door 1 23_1 
{ 
 object deldoor1 
 pos [0, 15.993, -151.98] [-85.962, 15.993, -151.98] 
 rot [ 0 , -90 , 0 ] 
 sensor_range 60 
 open_time 1.0 
 delay_time 1.0 
 sound 
 { 
 open "sound/door/open3.wav" 
 close "sound/door/close4.wav" 
 } 
} 
. . 
item 1 medkit 
{ 
 object medkit_large 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 121 - 
 pos [ -76.728 , 16.0 , -255.275 ] 
 rot [ 0 , 90 , 0 ] 
 affect_range 10.0f 
 sleep_time 60.0f 
 sound 
 { 
 affect "sound/voice/voc_yeah_right.wav" 
 } 
} 
. . . 
7.4.4. Định nghĩa đối tượng và AI 
 Giúp định nghĩa các tính chất của các thực thể động (npcs, monster, player ..) 
hellknight_a 
{ 
 body hellknight_b 
 particle gob_drop tongue3 
 rotate_speed 2.0 
 jump_height 35.0 
 extents [24, 55, 24] 
 skinwidth 0.1 
 slopelimit 45.0 
 stepoffset 10.0 
 mass 500 
} 
. . . 
 Định nghĩa các thuộc tính AI, âm thanh và hành động của NPCs 
hellknight 
{ 
 actor hellknight_a 
 // animation 
 idle_a idle2 
 sight_a roar1 
 move_a walk7 
 attack1_a leftslash 100 
 attack2_a turret_attack 100 
 pain_a headpain 
 death_a pain1 
 // AI attribute 
 sight_range 300 
 attack_range 60 
 max_health 2400 
 // sounds 
 sound 
 { 
 revive sound/hellknight/hk_chatter_01.wav 
 Chương 7. Giới thiệu Game demo Dead Rising 
 - 122 - 
 sight sound/hellknight/sight2_3.wav 
 attack1 sound/hellknight/chomp1.wav 
 attack2 sound/hellknight/chomp1.wav 
 pain sound/hellknight/hk_pain_01.wav 
 death sound/hellknight/die2.wav 
 } 
} 
7.4.5. Các định nghĩa khác 
 Ngoài ra Game còn sử dụng tập tin định nghĩa cho rất nhiều mục đính khác nhau 
như định nghĩa các vật thể dựng hình (render model), định nghĩa các thuộc tính vật 
lý cho vật thể, định nghĩa vũ khí, định nghĩa người chơi… 
 Việc triển khai hệ thống tập tin định nghĩa có ý nghĩa rất lớn trong việc mở rộng 
Game sau này như ta hoàn toàn có thể tạo 1 màn chơi (level) mới hay thêm vào các 
vật thể mới mà không phải sửa lại toàn bộ code của chương trình rất thuận lợi để 
phát triển các level editor sau này. 
7.5. Tóm tắt 
 Trong chương này, chúng ta đã được giới thiệu về Game demo Dead Rising 
cùng các thành phần liên quan. Chúng tôi cũng trình bày về hệ thống các tập tin 
định nghĩa giúp quản lý mọi thông tin của Game một cách thống nhất và cho phép 
thay đổi, mở rộng sau này. Trong chương tiếp ta sẽ xem xét đến 2 thành phần làm 
nên nét đặc trưng và lôi cuốn của Game demo Dead Rising là hệ thống hạt (Particle 
System) và AI. 
 Chương 8. Hệ thống hạt (Particle System) và AI 
 - 123 - 
Chương 8 Hệ thống hạt (Particle System) và AI 
 • Hệ thống hạt (Particle System) 
 • Trí tuệ nhân tạo (AI) 
 • Tóm tắt 
 Chương 8. Hệ thống hạt (Particle System) và AI 
 - 124 - 
8.1. Hệ thống hạt (Particle System) 
 Hiện nay hệ thống hạt đã trở thành không thể thiếu trong các ứng dụng Game. 
Hệ thống hạt có công dụng rất to lớn trong việc thiết kế các hiệu ứng cho bối cảnh. 
Hệ thống hạt trong Game thường được dùng để tạo các hiệu ứng như khói lửa, cháy 
nổ thời tiết và các hiệu ứng phức tạp khác như sấm sét, năng lượng, ánh sáng… 
 Hệ thống hạt là một tập hợp các hạt (particles) có các thuộc tính và hành động 
hoàn toàn độc lập với nhau. Nguồn phát ra các hạt được gọi là nguồn phát (emitter), 
nguồn phát có chức năng cung cấp cho các hạt các thuộc tính khởi tạo ban đầu. Sau 
khi được khởi tạo mỗi hạt sẽ tự mình hành động độc lập theo các thuộc tính của 
mình cho đến khi chết đi. 
 Mỗi hạt trong hệ thống khi dựng hình sẽ được biễu diễn bằng 1 đa giác (thường 
là tứ giác). Đặc điểm của đa giác này là luôn hướng về phía camera cho dù là 
camera ở vị trí hay hướng nào đi chăng nữa. 
 Căn cứ vào mức độ phụ thuộc của mỗi hạt vào camera (khi dựng hình), hệ thống 
hạt trong Game chia ra làm 2 loại: hoàn toàn hướng về phía camera (smoke particle 
system), hướng về camera nhưng bị ràng buộc trên phương của vận tốc (spark 
particle system). 
8.1.1. Smoke particle system 
Hình 8-1 Đặc điểm của 1 particle dạng smoke 

File đính kèm:

  • pdfthu_nghiem_3d_engine_8.pdf
Tài liệu liên quan