Tài liệu tham khảo công nghệ thông tin ứng dụng trí tuệ nhân tạo trong xây dựng game
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ TRI THỨC
ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
KHÓA LUẬN CỬ NHÂN TIN HỌC
TP HCM, 2005
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ TRI THỨC
NGUYỄN THANH PHONG - 0112191
ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
TRONG XÂY DỰNG GAME KHÓA LUẬN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN TH.S BÙI TIẾN LÊN
NIÊN KHÓA 2001-2005
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 4
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Trang 5
LỜI CẢM ƠN
Em sẽ không thể hoàn thành luận văn nếu không có sự hướng dẫn và chỉ bảo tận tình của thầy Bùi Tiến Lên Em xin chân thành cảm ơn sự chỉ bảo của thầy
Em cũng rất cảm ơn các thầy cô trong khoa Công nghệ Thông tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, truyền đạt những kiến thức quý báu và tạo điều kiện cho em hoàn thành luận văn này
Xin chân thành cảm ơn sự giúp đỡ, động viên của của tất cả các bạn trong quá trình thực hiện luận văn
Em cũng muốn cảm ơn những người thân trong gia đình đã động viên, giúp
đỡ và tạo điều kiện để hoàn thành luận văn
Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nổ lực của bản thân, nhưng luận văn chắc chắn không tránh khỏi những thiếu xót Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của các thầy cô và các bạn
Sinh viên thực hiện Nguyễn Thanh Phong
Trang 6Mục lục
MỤC LỤC
Chương 1 GIỚI THIỆU 1
1 Lý do chọn đề tài 1
1.1 Các ngôn ngữ lập trình game 1
1.2 Phân loại game 2
1.2.1 Game hành động 2
1.2.2 Game nhập vai 3
1.2.3 Game đua xe 3
2 Mục đích của đề tài 3
Chương 2 CÁC THUẬT TOÁN TÌM ĐƯỜNG ĐI 4
1 Mô tả các thủ tục tìm kiếm rộng, sâu và sâu dần 6
2 Thuật giải tìm đường đi có giá thành nhỏ nhất AT 7
3.Tìm kiếm với tri thức bổ sung 8
4.Tìm đường đi trên đồ thị tổng quát 9
Chương 3 GAME ENGINE 12
I WED editor: 13
1 Những khái niệm cơ bản 13
a Giao diện người dùng 13
b Thanh Icon 15
c Mode 15
d Thiết kế một khung cảnh 14
e Hướng đối tượng 16
f Cửa sổ dự án 18
2 Các lệnh trong WED 19
2.1.Các lệnh trong các thực đơn 19
2.1.1 Thực đơn file 20
2.1.2 Thực đơn edit: 24
Trang 7Mục lục
2.1.3 Thực đơn mode 25
2.1.4 Thực đơn Object 29
2.1.5 Thực đơn Texture 32
2.1.5 Thực đơn View 33
2.1.6 Thực đơn help 34
2.2 Giao diện sử dụng 35
2.3 Cửa sổ dự án 36
2.3.1 Tab đối tượng 36
2.3.2 Tab Views 38
2.3.3 Tab Texture 38
2.3.4 Tab Resource 41
2.4 Cửa sổ Bookmark 41
2.5 Thuộc tính của khối 41
2.6 Thuộc tính của thực thể 43
3 Thiết kế một map 45
4 Thực thể 46
4.1 Thực thể mô hình 46
4.2 Thực thể Sprite 47
4.3 Thực thể Map 47
4.4 Thực thể Địa hình (terrain) 48
4.5 Bóng 48
4.5 Thuộc tính trong suốt 49
II CÁCH SỬ DỤNG MED 50
1 Trình thiết kế 50
1.1 Các thực đơn 50
1.1.1 Thực đơn File 50
1.1.2 Thực đơn Edit 53
1.1.3 Thực đơn View 55
Trang 8Mục lục
1.1.4 Thực đơn Options 56
1.1.5 Thực đơn Help 57
1.2 Toolbars 58
1.2.1 Toolbar File 58
1.2.2 Toolbar Edit 58
1.2.3 Toolbar Select 60
1.2.4 Toolbar Mesh 60
1.2.5 Toolbar các đối tượng cơ sở 61
1.2.6 Toolbar view 62
1.2.7 Toolbar Frame 63
1.2.8 Thanh trạng thái 64
2.Trình thiết kế Skin 64
2.1 Các thực đơn 65
2.1.1 Thực đơn File 65
2.1.2 Thực đơn Edit 66
2.1.3 Thực đơn View 67
2.2 Các Toolbar 68
2.2.1 Toolbar Skin 68
2.2.2 Toolbar Edit 68
2.2.3 Toolbar Paint 69
III SED, C-Script editor 70
1 Giao diện sử dụng 71
2 Soạn thảo 72
2.1 Lệnh Insert 72
2.2 Dòng chú thích 72
2.3 Nhảy đến một đoạn mã 72
2.4 Sử dụng danh sách các thành phần 73
Trang 9Mục lục
2.6 Soạn thảo thông minh 73
3 Cấu hình 74
4 Thực đơn 75
4.1 Thực đơn File 75
4.2 Thực đơn Edit 76
4.3 Thực đơn Options 76
4.4 Thực đơn Tools 77
4.5 Thực đơn Debug 77
IV Giao tiếp với các DLL 79
1 Bắt đầu với SDK 79
2 Sử dụng đối tượng C-Script trong một DLL 82
3 Sử dụng các hàm API 83
4 Lập trình một game trong C++ 87
Chương 4 CÀI ĐẶT 89
I Người chơi 89
1 Chuyển động vật lý 89
a Gia tốc, quán tính và lực ma sát 89
b Rơi từ trên xuống 93
2 Cách di chuyển camera theo người chơi 97
2.1 Tầm nhìn của người thứ nhất 97
2.2 Quay tự do tầm nhìn của người thứ 3 101
2.3 Cách để cho camera tránh chạm vào tường 106
II Xe tự động 108
Tránh chướng ngại vật trên đường đi 108
Trang 10Chương 1: Giới thiệu
sự lôi cuốn rất mạnh mẽ của nó Hầu như ai đã sử dụng máy tính đều đã giải trí bằng một số game nào đó trên máy tính Có thể nói Game là một thể loại phóng phú nhất trong tất cả các loại chương trình trên máy tính
Mặc dù các chương trình Game rất nhiều, nhưng để có thể viết ra được một game hay, có thể chơi được quả là một điều không dễ Tuy vậy, với niềm đam
mê về game máy tính, em cũng muốn tiếp cận với lĩnh vực này
Tại sao lại sử dụng ngôn ngữ 3D Game Studio để viết game?
Trang 11Chương 1: Giới thiệu
Với hàng trăm game đã được phát hành, 3D Game Studio xứng đáng là một ngôn ngữ lập trình game lớn Với 3D Game Studio, chúng ta có thể:
- Tạo ra một game đơn giản từ những script mẫu có sẵn
- Tạo ra các game thương mại viết bằng ngôn ngữ script
- Có thể sử dụng VisualC++ hoặc Delphi để kết hợp với 3D Game Studio
để viết game
Có rất nhiều tài liệu hướng dẫn lập trình game bằng 3D Game Studio Ngay
cả với những người chưa có kiến thức về lập trình, nhưng nếu theo từng bước hướng dẫn tạo một game hành động đơn giản thì cũng có thể hoàn thành nó trong một thời gian ngắn
Theo Dr.Dobb's Journal: “Đây là bộ công cụ tuyệt vời để nhanh chóng tạo
ra mẫu ban đầu và phát triển ứng dụng 3D” Chúng ta có thể sử dụng ngôn ngữ script trong 3D Game Studio để viết và phân phối một game thương mại Dưới đây là những game thương mại được làm bằng 3D Game Studio:
1.2 Phân loại game
Thể loại của game thì rất phong phú và đa dạng, ở đây chúng ta chỉ xét các thể loại game thường thấy nhất là:
1.2.1 Game hành động
Game hành động xuất hiện rất nhiều trong cả game 3D và game 2D Game loại này có đặc điểm chúng là tính co giật trong game, như trong game bắn
Trang 12Chương 1: Giới thiệu
súng Game hành động thường đơn giản hơn tất cả các loại game khác bởi vì những người bình thường dễ dàng biết cách chơi và chơi hay game này
1.2.2 Game nhập vai
Game nhập vai thường có hai đặc trưng là: sự thay đổi, phát triển nhân vật
và một câu chuyện mà trong đó nhân vật sẽ trải qua
1.2.3 Game thể thao
Game thể thao là sự thách thức cho các nhà thiết kế game Không giống như hầu hết các thể loại game khác, người chơi biết rất ít về nó, trong game thể thao người chơi biết rất rõ vì nó mô phỏng một môn thể thao có sẵn trong thực tế
2 Mục đích của đề tài
Tìm hiểu ngôn ngữ lập trình game trong 3D GameStudio:
- Tìm hiểu về WED, một chương trình thiết kế khung cảnh trong game
- Tìm hiểu về MED, một chương trình thiết kế các mô hình trong game
- Tìm hiểu về SED, trình soạn thảo dùng để viết các câu lệnh script để kết nối các mô hình được tạo ra trong MED, các khung cảnh được tạo ra trong WED và sử dụng những hàm có sẵn trong SED hoặc trong các DLL khác để tạo ra một game
Sử dụng thuật toán cổ điển A* tìm kiếm đường đi để một đối tượng có thể chuyển động theo một hướng mong muốn nào đó
Trang 13Chương 2: Các thuật toán tìm đường đi
Việc tìm “đường dẫn” từ trạng thái xuất phát (S0) đến trạng thái kết thúc (Sn) gồm có một số bước sau đây:
− Chọn không gian tìm kiếm thích hợp
− Tiến hành tìm kiếm có hệ thống và hiệu quả trong không gian tìm kiếm
− Sử dụng triệt để các nguồn tri thức liên quan trong quá trình tìm kiếm tương ứng với miền đối tượng cụ thể
Không gian tìm kiếm của một vấn đề cần giải trên máy tính thường được biểu diễn bằng đồ thị hay một dạng đặt biệt của đồ thị là cây Đồ thị là một tập hợp giữa các đỉnh và các cung nối giữa các đỉnh Các cung có thể được định hướng hoặc không định hướng, gán giá trị hoặc không gán giá trị
Cây là đồ thị định hướng đặt biệt có duy nhất một đỉnh mà không có cung nào hướng đến (gốc của cây), và mỗi đỉnh khác của cây chỉ có duy nhất một cung hướng đến
Sau khi bài toán hoặc vấn đề được biểu diễn lại dưới dạng đồ thị hoặc cây:
− Mỗi đỉnh là một trạng thái của quá trình giải bài toán
− Mỗi cung là tác động biến đổi quá trình từ giai đoạn này sang giai đoạn khác
Như vậy, việc giải quyết một bài toán cũng chỉ là tìm đường đi từ trạng thái ban đầu đến trạng thái mong muốn được biểu diễn qua hai đỉnh nào đó của đồ
Trang 14Chương 2: Các thuật toán tìm đường đi
thị hoặc cây tìm kiếm Nhiều bài toán phức tạp nếu giải quyết bằng phương pháp tìm kiếm ngẫu nhiên thì hầu như vô vọng vì số đường đi có thể sẽ tăng lên theo hàm mũ của số đỉnh Chính ở đây biểu lộ toàn bộ bản chất của trí tuệ nhân tạo khi giải quyết các vấn đề: Đó là nghệ thuật xử trí với các vấn đề lớn bằng cách giảm số lượng tìm kiếm
Các thủ tục tìm kiếm điển hình bao gồm:
− Tìm kiếm rộng: đường đi được tìm theo mọi hướng có thể ở mỗi bước
− Tìm kiếm sâu: đường đi sâu mãi theo một hướng đến khi nào không tiếp tục được nữa mới chuyển sang hướng khác
− Tìm kiếm sâu dần: kết hợp tìm kiếm rộng và tìm kiếm sâu trên cơ sở cho trước mức sâu n rồi tìm kiếm rộng ứng với mức sâu đó
− Tìm kiếm cực tiểu hóa giá thành: mỗi cung của cây (đồ thị) được gán giá thành và hướng tìm kiếm được xác định bởi việc cực tiểu hóa giá thành đường đi
− Tìm kiếm với tri thức bổ sung: hướng tìm kiếm được xác định với tri thức bổ sung ở mỗi bước
Trước hết các thủ tục tìm kiếm rộng, sâu và sâu dần sẽ được mô tả qua một
ví dụ Sau đó một số thuật giải tìm kiếm cực tiểu hóa giá thành và bổ sung tri thức sẽ được trình bày chi tiết
Trang 15Chương 2: Các thuật toán tìm đường đi
1 Mô tả các thủ tục tìm kiếm rộng, sâu và sâu dần
Tìm kiếm rộng: quá trình tìm kiếm sẽ lần lượt là A, B, C, D, E, F, G, H, I,
Trang 16Chương 2: Các thuật toán tìm đường đi
ứng với mức sâu 3: (A,E,K), (B,F), (C,G,L), (C,H,M), (D,I), (D,J,N)
2 Thuật giải tìm đường đi có giá thành nhỏ nhất
AT (Algorithm for Trees) với mỗi đỉnh n tương ưng số g(n) là giá thành đường đi từ đỉnh đầu tới n (g(n) có thể chưa xác định đối với các đỉnh thuộc
phần cây chưa hướng đến) Mỗi đỉnh n có thể là:
− Đỉnh đóng: nghĩa là đỉnh đã được xem xét;
− Đỉnh mở: là đỉnh giả định sẽ được xem ở bước sau;
− Đỉnh ẩn: là đỉnh mà hàm g(n) tương ứng chưa được tính đến và chưa được xem xét đến
Thuật giải AT gồm các bước sau:
Bước 1: Đầu tiên, mọi đỉnh n và mọi giá trị g(n) đều là ẩn Mở đỉnh đầu tiên
(coi đỉnh đầu tiên là đỉnh mở và đặt giá trị g tương ứng bằng 0)
Bước 2: Chọn đỉnh mở với giá thành g tương ứng nhỏ nhất Gọi đỉnh này là
N, nếu N là đỉnh mục tiêu thì đường dẫn tới N là đường đi có giá thành nhỏ nhất g(n) và vấn đề đã được giải Nếu không còn đỉnh mở nào thì cây biểu diễn vấn đề không có đường đi tới mục tiêu Nếu có từ 2 đỉnh trở lên cùng giá trị g nhỏ nhất thì kiểm tra trong số đó có đỉnh mục tiêu không? Nếu có thì chọn đỉnh mục tiêu đó và quá trình giải kết thúc Nếu không thì chọn tùy
ý một đỉnh trong số đó và gọi là N
Bước 3: Đóng đỉnh N và mở các đỉnh sau N (có cùng hướng đến N), với
mỗi đỉnh sau N gọi là s, ta tính:
g(s)=g(N)+(giá thành cung từ N tới s) Bước 4: Quay trở lại bước 2
Thuật giải AT đã được chứng minh là luôn luôn tìm được đường đi với giá thành nhỏ nhất nếu như tồn tại đường đó trên đồ thị và là thuật giải tối ưu theo nghĩa số đỉnh đóng trong quá trình tìm kiếm là ít nhất
Trang 17Chương 2: Các thuật toán tìm đường đi
3 Tìm kiếm với tri thức bổ sung
Thuật giải AT là thuật giải tìm kiếm đường đi tốt nhất đối với các cây chỉ có thông tin về đỉnh, cung và giá thành cung Nhưng trong nhiều trường hợp việc tìm kiếm đường đi sẽ được định hướng rõ thêm nếu sử dụng các tri thức thu được dựa trên những hiểu biết về tình huống vấn đề ở mỗi bước Các thủ tục tìm kiểm dựa trên 3 cách tiếp cận:
− Không tính đến các tri thức bổ sung ngoài thông tin về đỉnh, cung, giá thành
− Sử dụng tri thức bổ sung để tìm cách giải riêng biệt cho vấn đề mà bỏ qua việc xây dựng cây biểu diễn cho vấn đề
− Xây dựng biểu diễn vấn đề dưới dạng cây có tính đến tri thức bổ sung trong cấu trúc cây hoặc giá thành các cung
Ngoài ra có có cách tiếp cạn theo hướng xây dựng các thuật giải “vạn năng”, tìm kiếm đường đi với tri thức bổ sung Họ thuật giải này mang tên là
AKT(Algorithm for knowledgeable Tree search) Tri thức bổ sung ở mỗi đỉnh được tương ứng một giá trị Chẳng hạn đó là ước lượng giá thành đường
đi từ n đến mục tiêu (như vậy là ước lượng giá thành đường đi con chương biết đến)
Thuật giải AKT gồm các bước sau:
a) Đầu tiên, mọi đỉnh cũng như giá trị g, , là chưa biết Mở đỉnh đầu tiên (o) và gán g(0), sử dụng tri thức bổ sung để ước tính h(0) và tính
∧
h ∧f
)0()0()0
b) Chọn đỉnh mở có giá trị nhỏ nhất Gọi đỉnh này là N Nếu
N là mục tiêu thì đường tới N là đường đi có giá thành nhỏ nhất g(N) Nếu không tồn tại đỉnh mở nào thì cây không tồn tại đường đi tới mục tiêu Nếu có
)()(n h n g
f ∧
∧
+
=
Trang 18Chương 2: Các thuật toán tìm đường đi
từ 2 đỉnh mở trở lên cùng giá trị nhỏ nhất, hãy kiểm tra trong các đỉnh này
có chứa mục tiêu không? Nếu một trong các đỉnh này là mục tiêu thì vấn đề đã được giải quyết, còn không thì chọn tùy ý một trong các đỉnh này là N
∧
f
c) Đóng đỉnh N, mở đỉnh sau N Với mỗi đỉnh S sau N ta tính g(s)=g(N)+(giá thành cung từ N đến S) Sử dụng tri thức bổ sung ở bước này, ước lượng h∧(s) và gán cho f(s) giá trị f∧(s)=g(s)+h∧(s)
h∧ ≡ KT là thủ tục hoàn toàn tuyệt đối (các đỉnh đóng đúng là các đỉnh nằm trên đường đi ngắn nhất đến mục tiêu) Trong trường hợp không có tri thức bổ sung, h∧(n)=0 và AKT suy biến thành AT Ta thấy rõ ràng rằng giữa
và sẽ tồn tại các thuật giải với mức độ hiệu quả rất thú vị Nếu (với mọi n), A
0
=
∧
h h∧ =h h
h∧ ≤ KT sẽ bảo đảm tìm ra được đường đi giá thành nhỏ nhất và tối ưu theo nghĩa sử dụng số đỉnh đóng ít nhất so với mọi thuật giải cũng chỉ làm việc với các tri thức như vậy
Nếu h∧ >h (với mọi n, hoặc với một số đỉnh) AKT không bảo đảm tìm được đường đi giá thành nhỏ nhất nhưng đường đi mà AKT tìm ra vẫn dùng được trong nhiều trường hợp thực tiễn giải quyết vấn đề
4 Tìm đường đi trên đồ thị tổng quát
Các phần trên đã trình bày thuật giải tìm đường đi trên đồ thị dạng cây Tuy nhiên biểu diễn dạng cây nhiều khi sẽ lặp lại quá nhiều một trạng thái Điều đó
sẽ tăng thêm thời gian tim kiếm Để khắc phục cần nới bỏ điều kiện mỗi đỉnh chỉ có một cung hướng đến và do vậy phải nghiên cứu thuật giải tìm đường đi
Trang 19Chương 2: Các thuật toán tìm đường đi
trên một đồ thị dạng tổng quát Ta cũng có thể mở rộng thuật giải AKT thành thuật giải tổng quát A* như sau:
Bước 1: Đầu tiên, mọi đỉnh và các giá trị g, , đều xem như chưa biết,
mở đỉnh đầu tiên 0, gán cho g(0)=0, ước lượng và gán
∧
h ∧f
)0(
∧
h ∧f(0)= h∧(0)
Bước 2: Chọn đỉnh mở với giá trị nhỏ nhất và gọi là N Nếu N là mục tiêu thì đường dẫn tới N đã tìm được và g(N) là giá thành của đường đi đó Nếu không tồn tại đỉnh mở thì đồ thị đó không tồn tại đường đi đến mục tiêu Nếu có từ 2 đỉnh mở trở lên cùng giá trị và 1 trong 2 đỉnh đó là mục tiêu thì quá trình tìm đường đi cũng kết thúc, còn không thì chọn tùy ý một trong 2 đỉnh đó là N
∧
∧
+
= g h f
∧
f
Bước 3: Đóng đỉnh N và đối với mỗi đỉnh sau đó, ta tính g′(s)=g(N)+ (giá thành cung từ N đến S) Nếu đỉnh S đã mở và g(s)≤g′(s) thì bỏ qua S Ngược lại ta mở S và đặt g(s)=g′(s), tính h∧(s) và ∧f(s)=g(s)+h∧(s)
Bước 4: Quay về bước 2
Bây giờ chúng ta có thể dùng A* để tìm đường đi ngắn nhất giữa 2 thành phố dựa theo bản đồ giao thông với tri thức bổ sung có thể là khoảng cách đường chim bay từ điểm (thành phố) n tới mục tiêu (thành phố cần đến) Do khoảng cách đường chim bay bao giờ cũng nhỏ hơn khoảng cách đường giao thông nên với mọi n Thuật giải A* với tri thức bổ sung như trên sẽ tìm được đường đi ngắn nhất (hoặc giá thành nhỏ nhất) với mức độ hiệu quả càng cao nếu càng gần h(n)
)
(n
h∧
)()(n h n
Trang 20Chương 2: Các thuật toán tìm đường đi
là các trọng số cho biết vai trò của g và tham gia trong quá trình giải Ngoài
ra cũng cần thêm các ước lượng về giá thành (độ phức tạp) của việc xác định
và tập đỉnh đóng để có cơ sở đánh giá hiệu quả của thuật giải một cách đầy đủ
∧
h
∧
h
Trang 21Chương 3: Game Engine
Chương 3
GAME ENGINE
Có thể định nghĩa engine như một loại máy móc làm cho xe chạy, nó hoạt động bên trong, như chuyển năng lượng động lực vào trục xe làm xe chuyển động Người lái xe không quan tâm đến những gì xảy ra bên trong
Một engine 3D cũng được định nghĩa như vậy Khi chúng ta gọi một hàm khởi động và gởi một mô hình 3D đến graphic adapter (GA), engine 3D sẽ giao tiếp với GA và hiển thị mô hình 3D lên màn hình
Công việc của engine là làm những việc khó chịu ở cấp thấp như: giao tiếp với card đồ họa, biến đổi các mô hình, làm việc với các phép toán khó hiểu như phép biến đổi ma trận…
Các nhà lập trình game cũng giống như người lái xe, khi sử dụng một engine, họ không cần quan tâm một engine thực sự làm việc như thế nào, họ chỉ cần xác định đưa vào những gì, và engine sẽ đưa ra kết quả
Có rất nhiều định nghĩa khác nhau về engine Các nguyên lý tổng quát mà 1 engine phải có :
1 Quản lý dữ liệu trong vùng mà nó chịu trách nhiệm
2 Tính toán dữ liệu theo nhiệm vụ của nó
3 Xử lý dữ liệu đến instance sau của nó, nếu cần thiết
4 Nhận dữ liệu để quản lý và tính toán từ các instance có trước
3D GameStudio cũng là một game engine Nó bao gồm 3 thành phần sau: WED editor, MED, C-Script editor Chúng ta cùng tìm hiểu cách sử dụng của 3
bộ phận của 3D GameStudio
Trang 22Chương 3: Game Engine – Cách sử dụng WED
I WED editor
WED là một trình biên soạn Lập trình viên có thể sử dụng nó để tạo ra một thế giới ảo của game WED là công cụ để kết hợp lại toàn bộ các thành phần: level (được tạo ra bởi WED), các mô hình (được tạo ra bởi MED) và các mã lệnh (được viết trong SED) tạo ra sản phẩm cuối cùng
Với WED, chúng ta có thể tạo ra được một khung cảnh 3D hết sức dễ dàng
mà không cần phải có bất cứ kinh nghiệm gì về việc tạo hình 3D Với cả những người mới bắt đầu và những nhà thiết kế chuyên nghiệp, WED cũng sẽ là một công cụ rất cần thiết có thể tạo ra một khung cảnh 3D chuyên nghiệp một cách đơn giản và nhanh chóng
1.Những khái niệm cơ bản
a Giao diện sử dụng
Khi mở WED, màn hình giao diện sau sẽ xuất hiện:
Trang 23Chương 3: Game Engine – Cách sử dụng WED
Đây chính là môi trường mà chúng ta sẽ làm việc để tạo ra một game trong 3D GameStudio Tạo ra một game 3D, tức là đưa những đối tượng vào môi trường 3D này, và gắn các thuộc tính và hành vi mà chúng ta đã lập trình vào chúng, hoặc chọn từ một danh sách các hành vi đã được tạo sẵn
Đầu tiên, chúng ta cần chú ý đến 4 cửa sổ 2D và 3D Mỗi cửa sổ tượng trưng cho một khung nhìn ở mỗi góc khác nhau trong lúc thiết kế game Có thể cuộn một cửa sổ bằng cách click và rê chuột phải, và có thể phóng to, thu nhỏ bằng nút lăn
Khung nhìn 3D sẽ cho chúng ta thấy trước một game sẽ được thể hiện như
thế nào Chúng ta có thể chuyển khung nhìn 3D sang các dạng khung lưới,
đặc, kết cấu Trong mục Preferences chúng ta có thể chọn cách biểu diễn đồ
họa trong khung nhìn 3D Mục cuối cùng dùng để điều chỉnh độ sáng nền để cho ra một quang cảnh giống thực, nhưng vẫn không hoàn giống với sản phẩm cuối cùng
Trang 24Chương 3: Game Engine – Cách sử dụng WED
Khi click phải vào khung nhìn 3D và chọn GXL Properties, thì các đặc
điểm như độ sáng và tầm nhìn có thể được thay đổi
Chúng ta có thể tìm thấy thanh bar ở phía trên, phía dưới là dòng trạng thái và
phía trái là cửa sổ dự án Nó chứa các cửa sổ Objects, Views, Textures và
Resources
b Thanh Icon
Thanh bar này chứa những hàm thường dùng trong các menu, và chúng ta
có thể gọi một hàm bằng cách nhấp chuột Khi rê chút đến một Icon sẽ xuất hiện một dòng chữ gần con chuột để giải thích ý nghĩa của nút này Có thể cho
hiển thị hay ẩn đi các thanh bar File, Edit và View bằng cách chọn vào menu
View/Toolbar Ngoài ra, chúng ta có thể di chuyển từng thanh bar đến bất cứ
đâu trên cửa sổ Mặc định, sau đây là thứ tự của các nút trên thanh bar:
New, Open, Save, Copy, Paste, Undo, Build, Run, Select, Move, Rotate, Scale, Vertex Move, Edge Move, Face Move, Add Object, Delete Object, Snap on/off, Snap Mode, Snap Size, Axis Restriction, Eye Move, Eye Rotate, Eye Zoom, Camera Move, Camera Walkthru, Scope Up, Scope Down
c Mode
Chế độ Select: Nếu chế độ này được chọn, khi nhấn
nút trái chuột thì một khối, nhóm hoặc một đối tượng nào đó sẽ được chọn Nếu không chọn được đối tượng mong muốn, có thể là nó đang được phủ bởi một đối tượng khác, vì thế chỉ cần nhấn nút chuột trái tiếp đến khi nào chọn được thì thôi Chúng ta có thể chọn nhiều
Trang 25Chương 3: Game Engine – Cách sử dụng WED
quanh chúng, hoặc giữ phím [CTRL] trong khi chọn các đối tượng
Chế độ Move: Nếu chế độ này được chọn, thì có thể di chuyển một đối
tượng bằng cách nhấn nút trái chuột và rê nó đến vị trí mong muốn Hãy nhìn vào các khung nhìn để kiểm tra xem đối tượng có đến được nơi mong muốn hay không Cũng có thể di chuyển các đối tượng bằng các phím di chuyển
Chế độ Rotate: Nếu chế độ này được chọn, ta có thể quay các khối và các
nhóm được chọn bằng cách nhấn nút trái chuột và rê trái hoặc phải tùy theo ý muốn Trong mỗi khung nhìn, chúng ta chỉ có thể quay một đối tượng theo một hướng nào đó Cũng có thể quay các đổi tượng bằng các phím di chuyển
Chế độ Scale: nhấn và rê nút trái chuột để thay đổi kích thướt của khối và
nhóm đã chọn Nếu rê lên thì chiều cao của khối sẽ tăng lên, rê qua trái thì chiều rộng của khối sẽ được tăng lên Nếu giữ [CTRL] trong khi thay đổi kích thướt thì kích thướt theo chiều dọc và chiều ngang sẽ cùng thay đổi một lượng bằng nhau Khối sẽ được phồng ra hay co vào một cách đối xứng, vì thế chúng
ta cần phải di chuyển khối trở lại đúng vị trí sau khi thay đổi kích thướt của nó
Trang 26Chương 3: Game Engine – Cách sử dụng WED
WED xem tất cả mọi thứ đều là đối tượng Một đối tượng có thể là một thực thế, một khối, hoặc một nhóm các đối tượng Việc nhóm các đối tượng lại cho phép chúng ta xây dựng nên các cấu trúc như: cầu thang, một chiếc vòm, một chiếc cầu, hoặc một chiếc ghế từ những khối đơn giản Việc nhóm các đối tượng sẽ giúp chúng ta tạo ra được những căn phòng phức tạp và tạo ra một khung
cảnh (level) một cách nhanh chóng từ các cấu trúc
đó Như vậy, một khung cảnh sẽ được cấu tạo từ những cấu trúc phức tạp như các căn phòng trên, được tạo thành từ những cấu trúc đơn giản hơn, vì chính những cấu trúc này được tạo ra từ những đối tượng nhỏ hơn nữa hay chỉ ra từ các khối
Phương pháp thiết kế hướng đối tượng này sẽ dấu đi những thông tin không cần thiết với người dùng Với nó, chúng ta có thể xây dưng một khung cảnh từ những đối tượng có thực mà không cần phải sử dụng hàng ngàn các khối và đỉnh Phương pháp này
có tính dễ điều chỉnh và dễ mang chuyển Người sử dụng có thể tạo ra các cấu trúc khác nhau một cách độc lập, để từ đó tạo ra một thư viện các đối tượng phức tạp để có thể sử dụng lại sau này Vì thế chúng ta sẽ không phải mất thời gian để xây dựng lại những đối tượng tương tự nhau Điều này gợi ra một hướng khác là cách sử dụng các cấu trúc và đối tượng đã được tạo sẵn trong các thư viện
Với thực đơn Object, chúng ta có thể chèn một khối cơ sở (có nhiều loại
khác nhau), một đối tượng 3D đã được tạo sẵn, hoặc chèn vào các tài nguyên
Trang 27Chương 3: Game Engine – Cách sử dụng WED
ánh sáng (light) hoặc âm thanh (sound), camera, vị trí (positon), địa hình (terrain), mô hình 3D (model), các sprite 2D, các đường dẫn (path)
một đối tượng sẽ hiện ra một thực đơn và chọn Properties sẽ có thể thay đổi
được thuộc tính của các đối tượng Nếu nhấn vào dấu “+” các đối tượng trong nhóm này sẽ được mở ra, vì thế các đối tượng này có thể được chọn và sửa đổi một cách riêng biệt Đối tượng có thể bị khóa lại bằng cách nhấn phải chuột
và chọn Render Style/Disable
Views: nhấp phải chuột vào Views List vị trí các cửa sổ có thể được chọn,
lưu và gọi lại
Texture: Để tạo ra một khung cảnh trong đó các bức tường có một kết cấu xác định, chúng ta cần phải mở tập tin *.WAD chứa nhiều kết cấu khác nhau
Chọn thực đơn Texture / Texture Manager / Add WAD (hoặc nhấp phải vào kết cấu mặc định và chọn Texture Manager / Add WAD ) Chúng ta có thể chọn
nhiều tập tin WAD cùng lúc, và cũng có thể thêm một kết cấu nào đó đến vào một tập tin WAD Hình ảnh của các kết cấu trong tập tin WAD sẽ xuất hiện dưới thanh WAD tương ứng và có thể được cuộn lên bằng thanh cuộn được đặt
ở phía bên phải Nếu nhấp vào một thanh WAD nào đó, thì hình ảnh của tập tin WAD tương ứng sẽ được mở ra hoặc đóng lại
Khi nhập double chuột vào một kết cấu của một WAD thì kết cấu này sẽ được gắn vào đối tượng đang chọn
Trang 28Chương 3: Game Engine – Cách sử dụng WED
Nhấp phải chuột vào một kết cấu trong một WAD, một thực đơn xuất hiện, lúc này chúng ta có thể xóa kết cấu này khỏi WAD hoặc đổi tên của nó, và cũng có thể thay đổi các thuộc tính của nó Với thực đơn này chúng ta có thể thêm một kết cấu mới vào WAD từ các ảnh có dạng PCX, BMP hoặc TGA, và
cũng có thể đánh dấu các kết cấu thường dùng vào bookmarks, lưu WAD hoặc
mở texture manager
Cửa sổ Object sẽ hiển thị kết cấu của một đối tượng được chọn Trong cửa
sổ Texture chúng ta sẽ luôn luôn thấy hình ảnh và tên của một kết cấu mà con
chuột đang chỉ đến nó trong WAD Nếu đóng WAD lại hoặc di chuyển chuột ra
ngoài cửa sổ project, thì kết cấu được chọn cuối cùng vẫn được giữ trong cửa
sổ này
Kích thướt của các cửa sổ có thể được thay đổi bằng cách kéo rê chuột ở cạnh bên dưới của cửa sổ
Resources: danh sách tất cả các tập tin có liên quan đến việc thiết kết game
Nếu nhấp double vào một hành vi, thì mã nguồn sẽ được hiện thị ở một cửa sổ khác
Trang 29Chương 3: Game Engine – Cách sử dụng WED
Giao tiếp với những loại tập tin
mà nó có hỗ trợ Chúng ta có thể
mở tập tin MAP và QLE và các tập tin trung gian $$M, và lưu chúng với định dạng WMP
Trong phiên bản chuyên nghiệp, chúng có thể được lưu trữ trong định dạng MAP
Map properties: mở cửa sổ thuộc tính map
Add script: đưa những đoạn mã mẫu vào đoạn mã main
Build WMB: trước khi có thể sử dụng các khung cảnh được thiết kế trong
WED, phải chuyển từ định dạng thiết kế (WMP) đến định dạng WMB, là
định dạng mà engine có thể hiểu được Lệnh này đưa ra một hộp thoại cho phép chọn lựa những tùy chọn khác nhau để biên dịch tập tin thiết kế
(WMP)
Run level: bắt đầu engine và kết hợp mã nguồn với khung cảnh thiết kế
Chúng ta có thể chọn chế độ cửa sổ hoặc chế độ fullscreen, chế độ D3D
hoặc không Hoặc chúng ta có thể khởi động engine trực tiếp (chạy file ACKNEX.EXE) và kiểm tra level của mình Nó nằm ở thư mục BIN, và
Trang 30Chương 3: Game Engine – Cách sử dụng WED
chúng ta có thể tạo ra một đường tắt trên desktop để khởi động và gọi level của mình
Starter: Trong phiên bản chuyên nghiệp nó tạo ra một tập tin có định dạng
ACKNEX.WDF cho đoạn mã hiện tại ACKNEX.WDF xác định các thuộc tính bắt đầu của ứng dụng trước khi chuyển đến chế độ fullscreen: hiển thị một biểu tượng, hiển thị thông tin biên dịch…
Resource: Trong phiên bản chuyên nghiệp: tạo ra một thư mục con CD
trong thư mục WORK Bên trong có chứa một tập tin tài nguyên WRS đây
là tập tin nén và mã hóa tất cả các tập cần thiết cho game, một tập tin EXE
để khởi động nó, và tập tin WEDS.EXE cùng với một vài tập tin khác Tất
cả các tập tin trong thư mục CD có thể được phân phối tự do Nếu sự phân phối trình soạn thảo level là không được phép, WEDS.EXE,
WWMP2WMB.EXE và WEDS.DAT trong thư mục CD cần được xóa đi
Bằng không, các tập tin WMP và WAD trong game phải được kèm theo cho người dùng cuối WEDS là một phiên bản có giới hạn của WED Nó chỉ
được dùng để biên soạn level trong lúc phân phối game – nó không thể được dùng như là một phần mềm riêng biệt Nó sử dụng tất cả các thực thể
và hành vi tìm thấy trong tập tin tài nguyên Các đoạn mã trong các tập tin script không thể thay đổi được – đó luôn luôn là tập tin có chứa đoạn mã
chính Các tập tin WAD có thể được gọi đến như là thành phần bên ngoài, nhưng không thể sửa lại được RESOURCE, PUBLISH và STARTER thì
không được hoạt động Tất cả những đặc điểm còn lại WED có thể sử dụng được Tất cả những tập tin nằm trong dấu ngoặc góc (<>) trong mã nguồn,
và tất cả các tập tin nằm trong level được đưa ra bởi câu lệnh khai báo level
đều được đưa vào tài nguyên Tuy nhiên có một vài tập tin vẫn phải tuân theo các quy luật hiện tại và không thể được truy xuất từ tập tin tài nguyên:
Trang 31Chương 3: Game Engine – Cách sử dụng WED
các tập tin DLL, âm thanh và bất kì tập tin nào được truy xuất bằng lệnh
file_ đều phải được đưa vào bằng tay trong lúc phân phối game
Publish: tạo ra một thư mục con CD trong thư mục WORK, và sao chép tất
cả các tập tin cần thiết cho game vào đó Một tập tin EXE để bắt đầu game cũng được tạo ra, và có thể tự do phân phối Chú ý rằng tập tin EXE đã bị
khóa – nó không thể bắt đầu một game khác hoặc với một đoạn mã đã bị
thay đổi Toàn bộ thư mục CD có thể được chép vào CD-ROM để phân
phối Tất cả các tập tin được gọi đến cùng với dấu ngoặc góc (<>), và cùng
với dòng khai báo level, đều được đưa vào thư mục CD
Recent Files: hiển thị 4 tập tin map gần nhất để có thể mở nhanh hơn
Preferences: lệnh này để cho chúng ta có thể thay đổi một vài tùy chọn
trong WED Tùy chọn khác có thể được thay đổi trong tập tin
OPTIONS.SCR trong thư mục data
Map Properties
Mở một cửa sổ thuộc tính map, ở đây chúng ta có thể chọn hoặc tạo ra một tập tin script, chọn lựa màu, và chọn
lựa kích thướt quan hệ (Nexus)
với engine cho map Tập tin script phải nằm trong cùng thư mục với tập tin map Một tập tin script mới
có thể được tạo bằng cách nhấn vào nút New Kích thướt của nexus tùy
thuộc vào level lớn nhất trong game, và phải được tăng lên nếu thông điệp
nexus too small xuất hiện Bảng màu được đưa ra từ một tập tin PCX hoặc
BMP 8 bit hoặc từ một tập tin RAW được phát sinh trong qua trình build
Tất cả các kết cấu 8 bit cũng phải được sửa lại để phù hợp với nó Một bảng
Trang 32Chương 3: Game Engine – Cách sử dụng WED
màu thì luôn luôn rất cần thiết ngay cả khi màu của các kết cấu sử dụng là các màu thật, để duy trì khả năng của engine để chạy trong chế độ 8-bit Tất
cả các màu là các giá trị RGB có phạm vi giá trị từ 0 255 Ánh sáng bầu trời được phát ra bởi hộp bầu trời bao quanh level
Khi nhấn chuột vào nút new script,
một hộp thoại mới xuất hiện cho phép chọn lựa bất cứ loại script mẫu nào tìm
thấy trong thư mục template_6, hoặc
một script trống rỗng Theo phương pháp này chúng ta có thể chọn lựa những script mẫu cũ hay là mới hoặc thêm vào các mẫu script mặc định
Các script mẫu cũ được sử dụng trong hướng dẫn này Chúng chỉ dành cho những game bắn súng đơn giản, và không được đề nghị trong các game thương mại
Các script mẫu mới thì mềm dểo và mạnh hơn, có thể dễ dàng kết hợp với mã nguồn riêng của chúng ta và thích hợp với các game thương mại
Để thay đổi 4 màu sương mù (fog) Có thể thay đổi nó bằng
cách thay đổi biến fog_color
trong tập tin script
Trang 33Chương 3: Game Engine – Cách sử dụng WED
Để thay đổi ánh sáng mặt trời (sunlight), màu sắc ở xung quanh (ambient), vòm trời (sun azimuth), độ cao của mặt trời (sun elevation)
2.1.2 Thực đơn edit
undo: quay lại bước sau cùng cut: cắt phần đang chọn copy: sao chép phần đang chọn paste: dán
Select_None: bỏ chọn Delete: xóa phần đang chọn
Duplicate: Tạo ra một bản sao của đối tượng được
chọn Các đối tượng cũng có thể được nhân đôi bằng cách giữ phím [SHIFT]
và rê chuột, hoặc nhấn phím [INS] trong khi rê chuột
Hollow Block: hàm này chỉ dành cho các khối Nó làm trống rỗng đi một khối
đặc, phân ra nhiều khối mỏng hơn bao quanh một khu vực trống rỗng bên trong Lệnh này thường được sử dụng để tạo ra một căn phòng được cấu thành
từ nhiều khối hình lập phương
CSG Subtract: làm việc giống như một vật để cắt một cái bánh Nó khoét lỗ
bên trong các khối đặc bằng cách sử dụng đối tượng được chọn như là vật để cắt Nó xóa đi những phần của các khối khác mà giao với đối tượng được chọn Kết cấu của vật cắt được gán cho mặt phẳng bị cắt Hàm này được sử dụng để chặt đứt các mảnh từ các khối, hoặc tạo ra một lỗ trống giữa 2 căn phòng để
Trang 34Chương 3: Game Engine – Cách sử dụng WED
làm một cửa đi Hàm này chỉ có tác dụng cho các khối và không có tác dụng trên các nhóm và thực thể
Chế độ Object: chỉ những loại đối tượng có thể chọn và thay đổi được
All Objects: tất cả các đối tượng đều có thể được chọn và thay
của một thông điệp lỗi hoặc cảnh báo trong quá trình BUILD Chỉ tiến đến khối
có số được phát sinh ra trong quá trình build Nếu khối đó được chứa trong một nhóm thì tất cả nhóm sẽ được đánh dấu, và chúng ta có thể sử dụng lệnh scope
down và lặp lại lệnh Find Object để tìm kiếm lại khối này
2.1.3 Thực đơn mode
Một chế độ trong WED đưa ra cách thức hoạt động mặc định khác nhau của các nút chuột Có 11 chế độ soạn thảo khác nhau, đó là:
• Object Select
Trang 35Chương 3: Game Engine – Cách sử dụng WED
Object Select: chế độ này cho phép chọn một đối tượng để nhận một hành động
tiếp theo Để chọn đối tượng, đặt con chuột trên một đối tượng và nhấn nút chuột trái vào đối tượng cho đến khi đối tượng chuyển sang màu đỏ Quá trình chọn đối tượng đi từ đối tượng gần nhất đến đối tượng xa nhất nằm ở vị trí dưới con trỏ Chúng ta có thể chọn nhiều đối tượng bằng cách rê một hình chữ nhật xung quanh các đối tượng đó, hoặc giữ phím [CTRL] trong khi nhấn trái chuột vào các đối tượng Chế độ chọn đối tượng cũng được đưa vào trong các
chế độ Object Move, Object Rotate và Object Scales Để chọn các đối tượng
trong các chế độ này, hãy nhấn trái chuột và không di chuyển chuột
Object Move: Chế độ này cho phép thay đổi các đối tượng được chọn Để di
chuyển một đối tượng, nhấn trái chuột để chọn một đối tượng trong cửa sổ thiết
kế, rê nó đến vị trí mới và thả chuột ra Chúng ta cũng có thể di chuyển một đối tượng bằng các phím di chuyển Chúng ta chỉ có thể di chuyển đối tượng song
Trang 36Chương 3: Game Engine – Cách sử dụng WED
song với cửa sổ thiết kế Khi Snap được kích hoạt trên thanh bar, đối tượng chỉ
có thể di chuyển theo tọa độ gốc (World Snap), theo gốc tọa độ của một nhóm (Local snap), hoặc theo gốc tọa độ của riêng đối tượng (Delta snap) Nút Move
Restrict trên thanh bar hạn chế sự di chuyển theo hướng dọc và hướng ngang
Giữ phím [INS] trong khi di chuyển để tạo ra một bản sao của đối tượng ở vị trí của con chuột
Object Rotate: Chế độ này cho phép thay đổi hướng của đối tượng được chọn
Để quay một đối tượng, hãy nhấn trái chuột vào đối tượng đó trên cửa sổ thiết
kế, rê nút trái hoặc phải chuột và thả ra Việc này sẽ làm cho đối tượng quay theo hướng ngược chiều kim đồng hồ và cùng chiều kim đồng hồ trong mặt phẳng song song với cửa sổ Chúng ta cũng có thể quay các đối tượng bằng các phím mũi tên
Object Scale: Chế độ này cho phép thay đổi kích thướt của các đối tượng
Tương tự như Object Move và Rotate, chúng ta có thể thay đổi kích thướt của
một đối tượng bằng cách: chọn đối tượng, rê và thả chuột theo ý muốn Theo mặc định, tại một thời điểm, WED sẽ giới hạn chỉ thay đổi kích thướt theo hai chiều 2 chiều này được xác định bởi các trục của mặt phẳng song song với cửa
sổ Khi thay đổi kích thướt của một nhóm các đối tượng, chỉ kích thướt của các khối trong nhóm đó mới được thay đổi Các thực thể chỉ có thể thay đổi kích
thướt theo cách riêng Nút Axis Restriction trên thanh bar sẽ hạn chế sự thay
đổi kích thướt theo hướng dọc hoặc hướng ngang Nếu phím [CTRL] được giữ trong lúc rê chuột, thì kích thướt của đối tượng sẽ được thay đổi bằng nhau theo
2 hướng
Vertex Move: hàm này chỉ dành cho các khối hoặc cách đối tượng đường dẫn
(path) Nó cho phép thay đổi hình dạng của một khối bằng cách thay đổi vị trí của các đỉnh Trong chế độ này, các đỉnh của khối được chọn sẽ được hiển thị
Trang 37Chương 3: Game Engine – Cách sử dụng WED
mới Khi biên dịch map, tất cả các khối đặc phải có hình dạng lồi Chúng ta không thể thay đổi vị trí của một đỉnh mà làm cho khối có hình dạng lõm Điều này xảy ra khi chúng ta rê một đỉnh ra khỏi mặt phẳng của bề mặt Trong
trường hợp này, WED sẽ phát sinh ra một lỗi Nếu nhấn vào nút Ignore thì khối
có dạng không hợp lệ này sẽ bị giữ lại và việc này có thể tạo ra nhiều lỗi trong map – vì thế đừng nên mạo hiểm Bằng không WED sẽ chuyển khối trở lại trạng thái gốc
Face Move: Hàm này chỉ dành cho các khối Nó cho phép di chuyển một bề
mặt của một khối đến vị trí khác Trong chế độ này, các điểm màu vàng xuất hiện ở giữa tất cả các bề mặt của nó Để di chuyển một mặt, nhấp chuột phải
vào điểm màu vàng và kéo rê nó đến vị trí mới Khi sử dụng chế độ Snap, chuyển đến Delta Snap để tránh tình trạng làm méo mó các khối Di chuyển
một mặt có thể làm méo mó một khối, làm cho nó có hình dạng lõm không có giá trị Trong trường hợp này WED sẽ phát sinh ra một lỗi Nếu nhấn vào nút
Ignore thì khối có dạng không hợp lệ này sẽ bị giữ lại và việc này có thể tạo ra
nhiều lỗi trong map – vì thế đừng nên mạo hiểm Bằng không WED sẽ chuyển khối trở lại trạng thái gốc
Eye Move: Chế độ này thay đổi vị trí của con mắt ảo đang nhìn vào cửa sổ thiết
kế Theo mặc định, tất cả các tiêu điểm của 4 cửa sổ đều nằm tại một điểm trong không gian Nếu di chuyển một khung nhìn của một cửa sổ thiết kế, thì khung nhìn của tất cả các cửa sổ thiết kế khác sẽ tự động cập nhật theo tiêu điểm mới Để di chuyển vị trí tiêu điểm này, nhấn chuột trái và kéo rê chuột trong bất kì cửa sổ nào Sự di chuyển này chỉ nằm trong mặt phẳng song song với cửa sổ Để di chuyển tiêu điểm tiến tới và lùi ra trong trong khung nhìn 3D, nhấp phải và kéo rê chuột tới và lùi ra trong cửa sổ thiết kế 3D Chúng ta cũng
có thể dùng phím mũi tên để di chuyển vị trí của tiêu điểm
Trang 38Chương 3: Game Engine – Cách sử dụng WED
Eye Rotate: Chế độ này cho phép thay đổi hướng của khung nhìn trong cửa sổ
thiết kế 3D Có 2 cách thực hiện Cách thứ nhất là quay tròn khung nhìn xung quanh tiêu điểm thiết kế Vị trí của con mắt ảo thay đổi nhưng vị trí của tiêu điểm thiết kế thì không Vì thế cách thực hiện này sẽ không có tác dụng trong cửa sổ 2D Bằng cách nhấp trái và kéo rê chuột trong cửa sổ thiết kế 3D Mặc định, chế độ này sử dụng giao diện quả cầu thạch anh, thì hành động quay sẽ trông giống như việc quay một quả cầu thạch anh xung quanh tiêu điểm Nếu
tùy chọn Invert Mouse được kích hoạt trong cửa sổ cấu hình (config), thì chế độ
này sẽ sử dụng tương tác quay theo quỹ đạo Lúc đó, chúng ta sẽ di chuyển vị trí của con mắt qua trái và phải xung quanh vị trí tiêu điểm Cách thứ 2 là con mắt của khung nhìn 3D vẫn nằm ở vị trí đó, nhưng khung nhìn sẽ nhìn lên, nhìn
xuống, nhìn trái, nhìn phải Nếu tùy chọn View/Lock Views được chọn, chế độ
này sẽ đưa ra một tiêu điểm thiết kế mới dựa trên hướng của khung nhìn mới,
và cập nhật các khung nhìn 2D có liên quan Để quay khung nhìn, nhấn phải và kéo rê chuột trong cửa sổ thiết kế 3D
Eye Zoom: Chế độ này cho phép phóng to hoặc thu nhỏ khung nhìn 2D Nhấp
trái chuột trong bất kì cửa sổ nào và kéo rê chuột lên và xuống Trong khung nhìn 3D, chế độ này cho phép tăng và giảm khoảng cách giữa vị trí con mắt của khung nhìn 3D với vị trí của tiêu điểm
Walk-thru: Chế độ này cho phép di chuyển khung nhìn 3D trong toàn bộ khung
cảnh thiết kế sử dụng giống như camera Fly-thru Trong chế độ này, chúng ta
có thể sử dụng chuột để nhìn trái, phải, trên, dưới và di chuyển bằng cách dùng
các phím mũi tên hoặc nút phải chuột Giữ [shift] để nhân đôi tốc độ Phím [Home] và phím [End] cho phép di chuyển theo chiều dọc [Pgup], [PgDn],
Left/Right cho phép rẽ xung quanh trục chính Ấn phím [ESC], [SPACE], hoặc
[ENTER] bất cứ lúc nào muốn thoát khỏi chế độ WalkThrough
Trang 39Chương 3: Game Engine – Cách sử dụng WED
Grouping: Thực đơn con – Nhóm và giới hạn lại các đối
tượng, đây chính là đặc trưng hướng đối tượng của WED
Khi nhóm và giới hạn lại, chúng ta có thể xem nhiều nhóm như là những đối tượng có thực Chúng ta có thể nhóm các đối tượng bằng cách sử dụng các lệnh theo sau:
Add To: Sử dụng lệnh này để thêm những đối tượng được
chọn vào một nhóm Màu của các đối tượng được chọn sẽ chuyển sang màu da cam để chúng ta biết rằng đối tượng
đã được đánh dấu chuẩn bị gom thành nhóm
Finish: Lệnh này nhận ra các đối tượng đã được đánh dấu
hoặc được chọn và nhóm chúng lại thành một đối tượng mới
Ungroup: Lệnh này sẽ phân nhóm được chọn ra thành các đối tượng riêng
rẽ
Scope: Thực đơn con - việc này tương tự như tập hợp các thư mục trong một hệ
thống tập tin WED định nghĩa giới hạn của một đối tượng là tập hợp các thành phần con của nó Nếu chúng ta muốn thay đổi các thành phần con của một đối tượng, đầu tiên chúng ta cần phải nhảy tới phạm vi của đối tượng này WED
cung cấp 2 lệnh scope up và scope down để thực hiện các mục tiêu này Giới
hạn dưới cuối cùng là các bề mặt của một khối, trong khi giới hạn trên cùng thì luôn luôn là toàn bộ map
Scope up: lệnh này sẽ thoát ra khỏi phạm vi của một đối tượng Nếu phạm
vi hiện thời là toàn bộ level, và có nhiều đối tượng trong phạm vi hiện thời, WED sẽ tạo ra một phạm vi mới và đặt tất cả các đối tượng vào một nhóm mới Hàm này tương tự với lệnh chuyển về thư mục cha trong hệ thống tập tin
Trang 40Chương 3: Game Engine – Cách sử dụng WED
Scope down: lệnh này cho phép tiến vào phạm vi của một nhóm các đối
tượng Mặc định, tất cả mọi thứ, ngoài đối tượng được chọn sẽ không xuất
hiện trong cửa sổ thiết kế Scope down sẽ dấu đi những thông tin không cần
thiết, tức là dấu đi phần còn lại của khung cảnh mà chỉ làm việc với đối tượng được chọn Hàm này tương tự với lệnh chuyển về thư mục con trong
Add Primitive: Thực đơn con này cung cấp một vài khối cơ sở mà chúng ta có
thể sử dụng trong WED Những khối cơ sở này gồm có các loại: hình lập phương, hình cầu, hình tam giác, và các hình lăng trụ có số cạnh khác nhau
Add Prefab: Thực đơn con này đưa ra khoảng 500 loại đối tượng, được sắp
xếp vào một vài nhóm, được sử dụng trong WED Đồ đạc, cửa, xe cộ hoặc các kiến trúc có giá trị khác Các đối tượng được làm sẵn nằm trong thư mục
PREFAB và có thể được thêm vào bởi người dùng
Add Light: đặt một nguồn sáng tĩnh vào map Chúng ta có thể thay đổi màu sắc
(chỉ trong một vài phiên bản) và độ sáng bằng cách thay đổi các giá trị Red,
Green, Blue (từ 0 25) và phạm vi của nguồn sáng Nếu Red và Green được gán
là 0 thì ánh sáng có màu trắng thì độ sáng của nó được thay đổi bởi giá trị Blue
Add Sound: Đặt một tài nguyên âm thanh tĩnh (tập tin WAV) vào map Chúng
ta có thể điều chỉnh độ lớn và phạm vi của tài nguyên âm thanh
Add Position: Đặt một vị trí vào map Vị trí có thể được xác định trong lúc viết
mã Nếu không có thực thể người chơi, vị trí đầu tiên được sử dụng là vị trí bắt