Ở Viêt Nam, ngày nay với sự phát triển mạnh mẽ của kinh tế, kéo theo thu nhập của người dân tăng lên đáng kể, từ đó làm gia tăng nhu cầu về các phương tiện cá nhân như ô tô, mô tô, xe đạ
Trang 1Trước tiên, em xin gửi lời cảm ơn chân thành và sâu sắc nhất tới cô
giáo – Th.s LƯU THỊ BÍCH HƯƠNG, người đã tận tình hướng dẫn, truyền
đạt cho em những kiến thức và kinh nghiệm quý báu trong quá trình em làm
đề tài này
Em xin chân thành cảm ơn các quý thầy, cô giáo trong khoa Công nghệ thông tin đã tận tình giảng dạy, trang bị cho em những kiến thức cần thiết trong suốt quá trình học tập và nghiên cứu tại khoa
Con xin gửi lòng biết ơn chân thành và sâu sắc nhất tới Bố, Mẹ và các anh chị, những người đã động viên, khích lệ và là chỗ dựa tinh thần vững chắc cho con trong suốt thời gian qua
Tôi xin chân thành cảm ơn tới các bạn trong nhóm phát triển dữ liệu3D trong suốt thời gian qua để tôi có thể hoàn thành được luận văn này
Cuối cùng, tôi xin gửi lời cảm ơn tới bạn bè đã động viên và giúp đỡ tôi trong suốt thời gian học tập tại trường
Mặc dù em đã nỗ lực hết sức, xong do thời gian có hạn và trình độ chuyên môn còn hạn chế, nên không thể tránh được những thiếu sót và có một
số vấn đề em chưa có điều kiện nghiên cứu và làm sâu, chi tiết hơn nữa Vì vậy em rất mong được sự góp ý của các thầy giáo, cô giáo và các bạn
Em xin chân thành cảm ơn!
Sinh viên
Đinh Xuân Hợp
Trang 2LỜI CAM ĐOAN
Tên tôi là: ĐINH XUÂN HỢP
Sinh viên lớp: K34-CNTT, Trường ĐH Sư Phạm Hà Nội 2
Tôi xin cam đoan:
1 Đề tài “Xây dựng Game hỗ trợ dạy luật giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học” là kết quả nghiên cứu của riêng tôi, dưới sự
hướng dẫn của cô giáoTh.sLƯU THỊ BÍCH HƯƠNG và tham khảo một số
nguồn tài liệu nước ngoài trên Internet
2 Khóa luận hoàn toàn không sao chép từ các tài liệu có sẵn nào
3 Kết quả nghiên cứu không trùng với các tác giả khác
Nếu sai, tôi xin hoàn toàn chịu trách nhiệm!
Hà Nội, ngày 20 tháng 4 năm 2012
Người cam đoan
Đinh Xuân Hợp
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỞ ĐẦU 5
CHƯƠNG 1: PHÂN TÍCH YÊU CẦU 11
1.1 Tình hình thực tiễn 11
1.1.1 Giải pháp hiện tại 12
1.1.2 Giải pháp hỗ trợ 13
1.2 Chương trình mô phỏng dạy luật giao thông 13
1.2.1 Mục tiêu 13
1.2.2 Yêu cầu 14
1.2.3 Công cụ và ngôn ngữ lập trình 14
1.2.4 Khó khăn 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.1 Tổng quan về thực tại ảo 15
2.1.1 Các lĩnh vực ứng dụng của thực tại ảo 15
2.1.2 Phân loại thực tại ảo 17
2.2 Công nghệ 3D và Scene Graph 19
2.2.1 Khái niệm Scene Graph 19
2.2.2 Cấu trúc của một Scene Graph 19
2.2.3 Các tính năng của một Scene Graph 20
2.2.4 Cách scene graph render 22
Trang 42.3 Các công cụ sử dụng trong hệ thống 23
2.3.1 Giới thiệu Unity3D 24
2.3.2 Ngôn ngữ thực hiện 50
2.3.3 Các công cụ thiết kế 57
CHƯƠNG 3: KHÁI QUÁT CHUNG HỆ THỐNG 58
3.1 Mô tả hệ thống 58
3.2 Yêu cầu 58
3.3 Ý nghĩa, mục đích của hệ thống mô phỏng 59
3.4 Các chức năng chính của hệ thống 60
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 62
4.1 Phân tích hệ thống 62
4.1.1 Khảo sát 62
4.1.2 Phân tích hệ thống 64
4.2 Thiết kế giao diện 76
4.2.1 Hình ảnh khi xe gặp biển báo 76
4.2.2 Hình ảnh cảnh báo cho người điều khiển xe khi có tín hiệu đèn 76
4.2.3 Hình ảnh người điều khiển xe vượt đèn đỏ 78
4.2.4 Hình ảnh người điều khiển xe vượt đèn đỏ đúng luật 78
4.2.6 Hình ảnh cấm xe tải qua cầu 79
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80
TÀI LIỆU THAM KHẢO 82
Trang 5Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính Đồ họa máy tính hay kỹ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ thuật tạo hình ảnh từ các mô hình toán học mô
tả các đối tượng hay dữ liệu lấy được từ các đối tượng trong thực tế
Con người đã tiến từ việc mô phỏng bằng hình ảnh và hình vẽ đơn giản như hình dưới
Trang 6Cho đến ngày nay công việc này được thay thế bằng nhiều công nghệ khác nhau ở đây chúng ta có thể xem ví dụ hình ảnh minh họa về thế giới 3D như hình dưới:
Ngày nay trên thế giới và các nước phát triển các chương trình mô phỏng 3D trong nghiên cứu khoa học vũ trụ, y học, giao thông, xây dựng, học tập, giải trí… không phải là hiếm nó giúp các công việc khó khăn và tốn kém trở lên dễ dàng, giảm chi phí đến mức tối thiểu nhất
Ở Viêt Nam, ngày nay với sự phát triển mạnh mẽ của kinh tế, kéo theo thu nhập của người dân tăng lên đáng kể, từ đó làm gia tăng nhu cầu về các phương tiện cá nhân như ô tô, mô tô, xe đạp điện,… trong khi đó cơ sở hạ tầng như đường xá và các hệ thống biển báo còn thiếu hay đã bị hư hỏng chưa thể tu sửa ngay được; mặt khác, ý thức chấp hành luật giao thông của mọi người khi tham gia giao thông là rất kém, một phần do sự ảnh hưởng của lối sống công nghiệp hiện đại dẫn đến người ta bất chấp tất cả, phần lớn là do chưa được giáo dục, đào tạo bài bản về luật giao thông trước khi cấp giấy phép điều khiển Các hình thức đào tạo chủ yếu là qua loa, do số lượng các trung tâm đào tạo còn ít và hạn chế về cơ sở vật chất, trong khi đó số lượng người tham gia đăng ký là rất lớn, dẫn đến chất lượng chưa được tốt Một lý
do khác là do chưa được học về luật giao thông, cũng như hệ thống biển báo đường bộ khi còn nhỏ, khi vẫn còn ngồi trên ghế nhà trường Ngày nay, việc
Trang 7học luật giao thông đã được đưa vào trong giảng dạy ở một số cấp học, như mẫu giáo, tiểu học,… xong vẫn chỉ dừng lại ở mức hướng dẫn lý thuyết, xem tranh ảnh, không có thực hành xử lý tình huống, phản xạ giao thông trên thực địa, vì để thực hiện được điều đó là rất khó do kinh phí, tính an toàn,… và đặc biệt là với các em nhỏ thì không thể thực hành xử lý tình huống ngoài thực tế được;từ đó, các tiết học về luật giao thông sẽ không gây được sự chú ý, thích thú của các em
Xuất phát từ những hạn chế trên, tôi nhận thấy hầu hết các trường ở các bậc học bây giờ đều có trang bị máy vi tính, cùng với những tiến bộ trong công nghệ mô phỏng 3D, ngày nay có rất nhiều engine hỗ trợ việc biểu diễn, thiết kế mô hình và các hiệu ứng đồ họa Chính vì vậy, tôi quyết định lựa chọn đề tài “Xây dựng Game hỗ trợ dạy luật giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học”
Khi quyết định chọn đề tài mô phỏng 3D là thực sự muốn đóng góp một phần nào vào nền công nghệ 3D còn non trẻ ở nước ta, và cũng góp phần nhỏ vào việc giáo dục tăng ý thức cũng như sự hiểu biết về luật giao thông của mọi người Tôi lựa chọn Unity3D là engine để xây dựng Game mô phỏng lái xe để dạy luật giao thông đường bộ trong môi trường 3D Game sẽ cố gắng
mô phỏng một cách đơn giản và thuận tiện nhưng cũng đầy đủ các tính năng cần thiết cho phương tiện bốn bánh và hai bánh để người sử dụng có thể trải nghiệm và học hỏi Với những chức năng chính của một phương tiện bốn bánh: chân ga, chân phanh, còi và những mô phỏng vật lý cơ bản như trọng lực, quán tính, va chạm, tương tác với địa hình, còn với phương tiện hai bánh:
Di chuyển tiến (bàn đạp–xe đạp), phanh tay, chuông và những mô phỏng vật
lý cơ bản như các va chạm, lực quán tính, trọng lực, tương tác với địa hình Game mong sẽ tiến đặt những bước đầu trên con đường trở thành một phần mềm hoàn thiện ứng dụng cho một chương trình mô phỏng giáo án thực hành học luật giao thông qua trò chơi trên máy tính
Trang 81.2 Mục đích
Tìm hiểu một số khái niệm về thực tại ảo; giới thiệu về phần mềm làm Game thời gian thực; xây dựng ứng dụng Game hỗ trợ dạy luật giao thông cho lứa tuổi mẫu giáo và tiểu học dựa trên phần mềm làm Game thời gian
+ Trình bày được khái niệm về thực tại ảo
+ Trình bày, giới thiệu được các công cụ lập trình trong Game
+ Các đối tượng trong Game phải được gắn các yếu tố động lực học như ngoài đời thực; các va chạm; có địa hình, sân bãi, hệ thống biển báo thích hợp; có hệ thống đèn tín hiệu hoạt động độclập và chính xác
+ Giao diện Game phải sinh động, giống với ngoài thực tế nhất có thể,các hệ thống biển báo, đèn tín hiệu, nút giao cắt phải dễ nhìn; các dòng thông báo phải đúng, rõ ràng
3 Phương pháp nghiên cứu
3.1 Phương pháp nghiên cứu lý luận
Nghiên cứu thông qua việc đọc các tài liệu tiếng anh về các phần mềm
đồ họa, các ngôn ngữ lập trình trên internet, với ý thức hiện tại của người dân
Trang 9khi tham gia giao thông, và tình hình dạy luật giao thông ở các cấp học tại Việt Nam
3.2 Phương pháp chuyên gia
Tham khảo một số tài liệu về thực tại ảo để thiêt kế Game thời gian thực, đáp ứng yêu cầu thực tiễn trong việc phát triển Game hiện nay
3.3 Phương pháp thực nghiệm
Thông qua việc trực tiếp tham gia giao thông và quan sát hoạt động tham gia giao thông của mọi người; tình trạng dạy luật giao thông hiện nay ở một số cấp học; và cùng với xu thế phát triển chung của tin học mô phỏng, đồ họa 3D
4 Đối tượng và phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
Đề tài này, tôi sẽ đi sâu vào xây dựng một ứng dụng Game giao thông
hỗ trợ dạy luật giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học
4.2 Phạm vi nghiên cứu
Luận văn dừng lại ở việc giới thiệu sơ lược về phầm mềm lập trình Game thời gian thực; và phát triển ứng dựng Game giao thông cho học sinh lứa tuổi mẫu giáo và tiểu học
5 Ý nghĩa thực tiễn của đề tài
Khi đề tài hoàn thành có thể ứng dụng thực tiễn vào trong giảng dạy ở các cấp học, xa hơn nữa có thể dùng cho các cơ sở đào tạo cấp giấy phép lái
xe, và nếu phát triển cao lên có thể mở rộng tích hợp dạy lịch sử trong Game,
có thể kết nối với phần cứng giúp người học có được cảm giác như đang điều khiển phương tiện thật và tương tác với thế giới ảo đã được xây dựng sẵn
6 Cấu trúc của khóa luận
Ngoài phần mở đầu sẽ đề cập tình hình hiện tại những ưu điểm cũng như các điểm bất cập hiện có từ đó đưa ra được các giải pháp, tính cấp
Trang 10thiết,thực tiễn của chương trình, cũng như khó khăn gặp phải và kết luận, khóa luận bao gồm 4 chương
Chương 1: Phân tích yêu cầu hệ thống sẽ đề cập tình hình hiện tại và giải pháp những ưu cũng như các điểm bất cập hiện có từ đó đưa ra được tính cấp thiết và thực tiễn của chương trình, cũng như khó khăn gặp phải
Chương 2: Sẽ bắt đầu với cơ sở lý thuyết phục vụ cho hệ thống này Bản báo cáo sẽ trình bày rõ các khái niệm về công nghệ đồ họa, 3D và Unity.Các công cụ được sử dụng trong hệ thống cũng sẽ được trình bày trong chương này Các công cụ chính sử dụng cho hệ thống có thể được liệt kê ra ở đây là: JavaScript, một ngôn ngữ kịch bản phát triển ứng dụng mạnh mẽ của Sun Microsystems; Unity3D hỗ trợ cho việc phát triển các ứng dụng không gian 3 chiều; Autodesk 3dmax, công cụ thiết kế các mô hình vật thể 3 chiều mạnh mẽ… Trong phần này chúng ta điểm qua cách sử dụng sơ lược khái niệm và công dụng của những chương trình được sử dụng để xây dựng bài khóa luận này và đi vào việc giới thiệu về Unity3D
Chương 3: Sẽ là bước hình dung ban đầu và cơ bản của hệ thống
Chương 4:Chúng ta sẽ đi sâu vào phân tích, luồng đi và cách xử lý trong từng chức năng của hệ thống Đồng thời mô tả cách xử lý dữ liệu cho
Trang 11CHƯƠNG 1: PHÂN TÍCH YÊU CẦU
Chương này sẽ đi phân tích tình hình thực tiễn, các giải pháp hỗ trợ, mục tiêu, yêu cầu, cũng như những khó khăn gặp phải khi xây dựng chương trình
Qua quá trình tìm hiểu thực tế và tình hình thực tế hiện tại khi tham gia giao thông,thì ý thức chấp hành luật của mọi người khi tham gia giao thông là rất kém, việc tuân thủ hoặc nhận thức được các biển báo tín hiệu là không nhiều, vẫn còn những trường hợp không chấp hành tín hiệu đèn đỏ, lấn đường đánh võng Từ thực tiễn đó, ý tưởng xây dựng một Game giao thông 3D mô phỏng lái xe (ôtô, xe đạp) nhằm hỗ trợ dạy luật giao thông cho lứa tuổi mẫu giáo và tiểu học, với các chức năng cơ bản trong hoạt động lái xe nhằm đưa ra một giải pháp thực tiễn và có khả năng ứng dụng, có thể đưa vào ứng dụng thực tiễn trong dậy học luật giao thông cho mọi lứa tuổi và cũng có thể trong các trường đào tạo lái xe ôtô, xe máy ở các trung tâm học lái xe, nhằm hình thành và tạo một thói quen, một văn hóa giao thông ngay từ khi các em còn nhỏ, vẫn còn đang ngồi trên ghế nhà trường
1.1 Tình hình thực tiễn
Ở Việt Nam, những năm gần đây nền kinh tế phát triển mạnh mẽ, thu nhập của người dân tăng lên đáng kể ở mọi vùng miền, đặc biệt ở các thành phố lớn; dẫn tới các phương tiện bốn bánh, hai bánh không còn là xa xỉ Ngày càng nhiều người có điều kiện mua xe ô tô, xe máy,…; việc tất yếu xảy ra là nhu cầu tham gia giao thông trên đường của các loại xe này ngày càng tăng.Do đó, việc được học cũng như dạy luật giao thông là cần thiết, và từ trước việc học luật cũng như học các loại biển báo chỉ được thực hiện tại các trung tâm đào tạo và cấp giấy phép lái xe; ngày nay đã đưa vào trường học ở
Trang 12còn hạn chế và ở mức hình thức Vậy để khắc phục được những nhược điểm
và hạn chế trên quả thực là một vấn đề, vì chưa được học luật giao thông ngay
từ nhỏ, vì chất lượng chưa tốt nên đồng nghĩa với tai nạn giao thông không đáng có, không chỉ với người điều khiển phương tiện mà còn gây nguy hiểm cho những người tham gia giao thông khác
1.1.1 Giải pháp hiện tại
Việc dạy luật giao thông của các trung tâm đào tạo lái xe hay ở các trường học thông thường đào tạo với hình thức:
- Sử dụng tranh ảnh trực quan để giảng dạy các tình huống và luật giao
thông đường bộ
- Đối với các trung tâm dạy lái xe thì cho học viên thuê xe tập lái và tập
tại các bãi tập và được hướng dẫn tập ngoài thực địa
- Tại các trường học thì việc học luật, biển báo tín hiệu giao thông là
hoàn toàn trên lý thuyết, tranh ảnh
Những giáo trình này có một số nhược điểm nhất định:
- Thứ nhất đó là thời gian và tiền bạc: Đối với các trung tâm dạy lái xe, người học phải bỏ ra 2 tháng thực tập lái xe tại các bãi tập (số lượng không nhiều) với các tình huống giả định (khó xây dựng) với số lượng xe tập có hạn
để có thể điều khiển xe một cách tương đối thuần thục (tiền thuê sân bãi, giáo viên hướng dẫn, xe và xăng xe người học phải chi trả), các loại biển báo, tín hiệu giao thông tại các bãi tập không hoàn toàn đầy đủ Sau đó người học tiếp tục được thực tập lái xe trên đường thật với giáo viên hướng dẫn khoảng 3 tháng Đối với các trường học thì hầu hết đã có máy tính, nhưng các tiết học
về luật giao thông hầu như không được học sinh hưởng ứng, việc dạy cũng nhàm chán, qua loa, việc mua tranh ảnh biển báo bằng giấy, bìa cũng tốn kém
không bảo quản được lâu
Trang 13- Thứ hai: Điều kiện vật chất không phải là điều dễ đáp ứng (do giá thành cao), đặc biệt là cấp học tiểu học, mẫu giáo sẽ dễ bị các em xé, nghịch
hỏng, hay vứt đi các loại biển tranh ảnh mô tả
- Thứ ba: Có thể gây nguy hiểm do người học chưa đủ kỹ thuật và kiến thức gây ra tai nạn khi tập lái đối với các trung tâm đào tạo lái xe Hoặc có thể gây nguy hiểm cho học sinh và đặc biệt khó có thể có những tình huống thực
tế cho các học sinh cấp thấp như mẫu giáo, tiểu học
1.1.2 Giải pháp hỗ trợ
Nếu có thể xây dựng được một chương trình mô phỏng (không phải là khó khăn trong thời đại ngày nay) lái xe trong môi trường 3D để đưa xen kẽ vào các giờ giảng dạy lý thuyết, hay tiết thực hành có thể giúp các học viên, học sinh có hứng thú tiếp thu một cách nhanh hơn cách điều khiển phương tiện và cách xử lý tình huống, học các loại biển báo, luật giao thông với giá
rẻ, an toàn và thuận tiện Từ đó giúp giảm thời gian thực tập và gánh nặng về
cơ sở vật chất do có thể dễ dàng tạo ra phương tiện cũng như sân tập, đối với học sinh sẽ tạo cho các em có được những trải nghiệm thực tế, hứng khởi với các tiết học về luật giao thông, dần dần hình thành phản xạ ngoài thực tế Với tính năng an toàn cao cho dù có mắc sai lầm (thậm chí sai lầm chết người) khi
Trang 14- Đảm bảo tác động lên phương tiện ảo
- Phạm vi phục vụ chủ yếu cho lứa tuổi mẫu giáo, tiểu học, ngoài ra có thể sử dụng cho mọi lứa tuổi khác kể cả giáo viên dạy luật giao thông
- Về công nghệ phải đảm bảo có thể dễ dàng tương thích với các máy tính tầm trung
- Tương tác giữa các đối tượng trong môi trường 3D
- Mô phỏng các lực tác động lên phương tiện
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này sẽ đi giới thiệu và đưa ra một số khái niệm về thực tại ảo, 3D, và các công cụ xây dựng cũng như lập trình được sử dụng để làm Game
2.1 Tổng quan về thực tại ảo
Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá không gian
ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại để xây dựng
một thế giới mô phỏng bằng máy tính–môi trường ảo (Virtual Environment)
Trong thế giới ảo này, người sử dụng không còn được xem như người quan sát bên ngoài, mà đã thực sự trở thành một phần của hệ thống
Mục tiêu của phần tổng quan này là đưa ra một số nét tổng quát về công nghệ Thực tại ảo, trong đó bao gồm: Một số nét chính trong lịch sử hình thành, các lĩnh vực ứng dụng, phân loại hệ thống, các phương pháp và công
cụ phần mềm phổ biến tạo ra mô hình thực tại ảo
2.1.1 Các lĩnh vực ứng dụng của thực tại ảo
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhưng do nhiều lý do về mặt công nghệ (cơ sở phần cứng phát triển, nghiên cứu, chi phí), phải mất nhiều thời gian và nỗ lực để thực tại ảo có được những thành tựu như ngày nay Hiện tại, đây vẫn là lĩnh vực công nghệ nhiều tiềm năng xét về khía cạnh ứng dụng Một số lĩnh vực ứng dụng chính có khuynh hướng
phát triển mạnh mẽ nhất trong thời gian gần đây
a Kiến trúc và thiết bị công nghệ
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là thiết kế kiến trúc và thiết kế thiết bị công nghệ Khả năng mô hình hoá thế giới thực của công nghệ Thực tại ảo dường như đáp ứng một cách tự nhiên
Trang 16mục tiêu của ngành thiết kế kiến trúc: Đưa ra mô hình trực quan nhất có thể
về hình ảnh công trình mong muốn trong tương lai
Khả năng mô hình hoá bằng hình ảnh lập thể của công nghệ Thực tại ảo cho phép người thiết kế thể hiện được một cách trực quan nhất ý tưởng thiết
kế của mình, đánh giá cơ bản về hiệu năng của thiết bị dựa trên những thử nghiệm mô phỏng trên thiết bị ảo, từ đó có những hiệu chỉnh cần thiết trước khi thiết bị thực sự được sản xuất
b Trong lĩnh vực giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của các môi trường Thực tại ảo Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo khía cạnh lợi ích về tài chính Rất nhiều công ty đang sản xuất ra các trò chơi
có sử dụng các nguyên lý Thực tại ảo Số lượng người bị cuốn hút theo các trò chơi như vậy, đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm
năng thương mại to lớn của công nghệ Thực tại ảo trong lĩnh vực này
c Trong giáo dục và đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp những đặc tính làm cho bản thân nó có những tiềm năng vượt trội so với các công nghệ đa phương tiện truyền thống khác: Cho người sử dụng cảm nhận
sự hiện diện của mình trong môi trường do máy tính tạo ra bằng khả năng tương tác, tự trị của người dùng trong môi trường ảo, cũng như bằng những phản hồi tức thời, trực quan từ phía môi trường ảo tới các giác quan của người
sử dụng
d Trong y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công nghệ Thực tại ảo.Cho đến nay, lĩnh vực nổi bật trong y học áp dụng thành
công công nghệ Thực tại ảo là giả lập giải phẫu
e Trong khoa học công nghệ quân sự
Trang 17Sự phát triển mạnh mẽ của khoa học công nghệ quân sự, với sự ra đời rộng rãi của các loại vũ khí hiện đại đã đưa đến các phương thức tác chiến hiện đại, các mô hình chiến tranh trong tương lai càng ngày càng trở lên phức tạp hơn Không gian chiến trường đa chiều, đa hướng công kích với rất nhiều mũi tấn công tàng hình, bí mật, bất ngờ, từ trên vũ trụ, trên không, trên mặt đất, trên đại dương và dưới đại dương với sức công phá rất lớn, độ chính xác cao và có tính hủy diệt mục tiêu rất nghiêm trọng Thông thường khi đào tạo, huấn luyện trong điều kiện thực tế, chúng ta đã sử dụng nhiều mô hình mô phỏng, các khí cụ, phương tiện huấn luyện như các mô hình cắt bộ là những công cụ mô phỏng đơn giản đầu tiên giúp người chiến sỹ, học viên hiểu được tính năng, cấu tạo và thông qua lời giảng của cán bộ huấn luyện, đã hiểu được
cơ bản những vấn đề cần truyền đạt
2.1.2 Phân loại thực tại ảo
a Hệ thống thực tại ảo không có tính nhúng
Là những hệ thống có khả năng cung cấp mức độ hiện thực thấp nhất
Sử dụng hệ thống máy tính để bàn, môi trường ảo được quan sát thông qua một khung nhìn là một màn hình có độ phân giải cao Việc tương tác với môi trường ảo có thể được thực hiện thông qua các phương tiện truyền thống như bàn phím, chuột, Trackball hoặc tiên tiến hơn, sử dụng các thiết bị tương tác lập thể như Spaceball hay Datagloves
b Hệ thống thực tại ảo bán nhúng
Hệ thống bán nhúng là một thể hiện khá mới trong công nghệ Thực tại ảo.Sự phát triển của các hệ thống Thực tại ảo dạng này dựa trên các công nghệ đã được phát triển trong lĩnh vực mô phỏng bay Hệ thống bán nhúng
cho người dùng có cảm nhận nhiều hơn về sự hiện diện trong không gian ảo
so với các hệ thống không có tính nhúng, và cũng chiếm ưu thế hơn về mặt cảm nhận phạm vi không gian ảo Ngoài ra, thông qua việc sử dụng một số
Trang 18loại kính mắt đóng mởđồng bộ với hệ thống đồ hoạ, người sử dụng có thể quan sát được các hình ảnh nổi lập thể
Trang 19c Hệ thống thực tại ảo nhúng toàn phần
Hệ thống Thực tại ảo nhúng toàn phần cung cấp cho người sử dụng những trải nghiệm trực quan nhất trong môi trường ảo.Những hệ thống như vậy có thể được xem như bước tiến xa nhất trong công nghệ Thực tại ảo cho tới thời điểm này Có một loại thiết bị chuyên biệt gắn liền với sự phát triển của các hệ thống dạng này đó là các Thiết bị hiển thị đội đầu(HMD) và găng tay dữ liệu (DataGloves) Các thiết bị đó cho phép người quan sát được nhúng hoàn toàn trong một thế giới ảo mà ở đó anh ta có thể quay 3600 và tương tác với vật có cảm giác như tương tác với vật thật
2.2 Công nghệ 3D và Scene Graph
Để có thể xây dựng một ứng dụng mô phỏng không gian ba chiều, thì Scene Graph là công nghệ được sử dụng rộng rãi nhất.Phần này sẽ phân tích cho chúng ta thế nào là một Scene Graph, cấu trúc của Scene Graph và phương thức hoạt động của nó
2.2.1 Khái niệm Scene Graph
Scene Graph là một cấu trúc dữ liệu được sử dụng để tổ chức các yếu tố tạo nên một cảnh.Nó có thể là một cây hoặc một mạch đồ thị hở
2.2.2 Cấu trúc của một Scene Graph
Các Scene Graph chứa đựng các nút bao gồm như hình dạng, ánh sáng, máy ảnh, ô tô Các mối quan hệ giữa cha và con được gắn kết như cấu trúc cây nhị phân Cấu trúc này rất quan trọng vì nó cho biết phạm vi ảnh hưởng đến render một cách có hiệu quả
Cây Scene Graph được bắt đầu bằng một nút gốc trên cùng Phía dưới nút gốc, các nút nhóm quản lý địa hình và trạng thái render điều khiển ngoại hình của chúng Nút gốc và các nút nhóm có thể không có hoặc có nhiều nút
Trang 20Ứng dụng sử dụng các nút nhóm dùng để tổ chức và quản lý khung
cảnh Giống như một cây trong một khu rừng, bắt đầu từ nút gốc (scene node)
và di chuyển ra bên ngoài đối với những chiếc lá (car, light, camera…)
Không giống như hầu hết các cây mọc ngoài thực tế, các cây này thường được hiển thị với các nút gốc ở phía trên và các cành ở phía dưới
Một nút là một phần của cây có thể có các nút khác hoặc lá bên dưới nó,các nút có số lượng không xác định các nút con của nó, một chiếc lá không thể có các nút khác hay lá dưới nó
Scene Graph nằm ở mức trung gian, được dựng trên đỉnh của các API cấp thấp để cung cấp khả năng tổ chức khônggian và các tính năng khác cần thiết cho một ứng dụng 3D chất lượng cao
2.2.3 Các tính năng của một Scene Graph
Scene graph đưa ra các tính năng quản lý trạng thái và địa hình có trong các thư viện API render cấp thấp, đồng thời cung cấp thêm các tính năng khác, như là:
Tổ chức không gian – Cấu trúc cây Scene Graph tự điều khiển một cách tự nhiên để quản lý không gian trực quan
Phân loại – Hiển thị các phân loại hình nón và thắt nút trên máy chủ, khiến làm giảm việc nạp toàn bộ hệ thống bằng cách không xử lý địa hình, không hiển thị lên ở hình ảnh đã được render cuối cùng
Hình 1.1: Một Scene Graph
Trang 21LOD – Tính toán khoảng cách mắt nhìn – vật trên các địa hình cho phép các vật thể có thể được render một cách có hiệu quả bằng cách thay đổi
độ chi tiết của level Xa hơn nữa, portions của khung cảnh có thể được nạp từ đĩa khi chúng nằm trong một khoảng cách góc nhìn nhất định, và có thể được xóa khỏi bộ nhớ khi chúng nằm quá khoảng cách đó
Translucency – Render một cách hiệu quả và hoàn thiện của những địa hình trong suốt (không đục) cần tất cả các địa hình trong suốt được render sau tất cả các địa hình không trong suốt Ngoài ra, địa hình trong suốt phải được sắp xếp theo thứ tự chiều sâu và được render theo thứ tự từ sau ra truớc Những thao tác này thông thường được hỗ trợ bởi scene graph
Tối giảm hóa các thay đổi trạng thái – Để tăng tối đa hiệu quả ứng dụng, cần phải tránh những thay đổi trạng thái dư thừa không cần thiết.Scene graph thường sắp xếp địa hình bằng các trạng thái để tối giảm hóa các thay đổi trạng thái, và các chức năng quản lý trạng thái của OpenSceneGraph triệt tiêu tất cả các thay đổi trạng thái
File I/O – Scene graph là một công cụ rất hiệu quả cho việc đọc và lưu các dữ liệu 3D trên đĩa Một khi chúng được nạp vào hệ thống, cấu trúc dữ liệu scene graph nằm trong cho phép ứng dụng có thể dễ dàng điều khiển các
dữ liệu 3D động.Scene graph có thể coi là bộ trung gian tức thời để chuyển đổi từ định dạng này sang định dạng khác
Các tính năng cao cấp khác – Các thư viện scene graph thường cung cấp các tính năng cao cấp ngoài các tính năng thường tìm thấy ở các API cấp thấp, như là hỗ trợ hoàn toàn ký tự, hỗ trợ các hiệu ứng render (như là hiệu ứng particle và shadow), tối ưu hóa render, hỗ trợ vào ra file mô hình 3D, truy cập đa nền tảng đến các thiết bị vào và bề mặt render
Hầu hết tất cả các ứng dụng 3D cần một số trong các tính năng nói trên Kết quả là tất cả các lập trình viên muốn viết chương trình trực tiếp trên các thư viện API cấp thấp thường được sắp xếp lại để thực hiện rất nhiều trong số
Trang 22các tính năng trong ứng dụng của họ, làm tăng chi phí phát triển Sử dụng một
bộ scene graph nào đó đã hỗ trợ hoàn toàn các tính năng đó sẽ cho phép ta
phát triển ứng dụng liên tục và mạnh mẽ
2.2.4 Cách scene graph render
Một ứng dụng scene graph thông thường cho phép ứng dụng lưu trữ địa hình, trong suốt quá trình tất cả các địa hình được lưu trong scene graph được gửi đến phần cứng.Tuy nhiên,những ứng dụng này thiếu rất nhiều các tính năng được nói đến trong phần trước.Để cho phép các cập nhật địa hình động, lựa chọn, sắp xếp và render một cách có hiệu quả, các scene graph thường cung cấp nhiều hơn một traversal Thực tế, có 3 loại quá trình:
Update – Quá trình cập nhật (đôi khi được coi như duyệt ứng dụng) cho phép ứng dụng có thể thay đổi scene graph, cho phép các khung cảnh động Các cập nhật được hoàn thành hoặc trực tiếp từ ứng dụng hoặc từ các hàm trả
về trỏ tới các nút bên trong scene graph.Ví dụ như là một ứng dụng sẽ sử dụng các quá trình cập nhật để thay đổi vị trí của một phi thuyền trong một giả lập lái phi thuyền, hoặc cho phép các tương tác của người dùng sử dụng thiết bị đầu vào
Cull – Trong suốt quá trình chọn lọc, các thư viện scene graph sẽ kiểm tra dung lượng giới hạn cho tất cả các nút nằm trong khung cảnh Nếu một nút
lá nằm trong khung nhìn, thư viện scene graph sẽ thêm vào một tham chiếu đến nút lá địa hình vào danh sách render cuối cùng Danh sách này được sắp xếp bằng những mô hình đặc và những mô hình trong mờ, và địa hình trong
mờ được sắp xếp xa hơn bằng chiều sâu
Draw – Trong quá trình vẽ (đôi khi được coi như là quá trình render), scene graph sẽ duyệt qua danh sách địa hình được tạo ra trong suốt quá trình chọn và đưa ra các lệnh gọi hàm đồ họa API cấp thấp để render địa hình đó
Hình 1.2 biểu thị các quá trình này
Trang 23Hình 1.2: Các quá trình scene graph
Render một scene graph thông thường cần 3 quá trình Trong (a), quá trình cập nhật thay đổi địa hình, trạng thái render, hoặc các tham số nút để bảo đảm scene graph được cập nhật trong frame hiện tại Trong (b), quá trình duyệt chọn lọc kiểm tra khả năng nhìn thấy được và các địa hình và tham chiếu trạng thái trong một cấu trúc mới Trong (c), quá trình vẽ duyệt qua đồ họa render và đưa ra các lệnh đến phần cứng đồ họa
Thông thường, ba quá trình này được thực hiện đồng thời cho mỗi khung được render Tuy nhiên, trong một số các tình huống render cần nhiều khung nhìn liên tiếp của cùng một khung cảnh Stereo rendering và hệ thống
đa hiển thị là hai ví dụ.Trong các trường hợp này, quá trình update được thực hiện một lần mỗi frame, nhưng quá trình chọn và vẽ được thực hiện một lần mỗi view của mỗi frame (hai lần một frame cho stereo rendering đơn giản, và một lần mỗi card đồ họa cho mỗi frame ở hệ thống đa hiển thị).Điều này cho phép hệ thống đa xử lý và các đồ họa có thể xử lý scene graph song song.Quá trình duyệt chọn lọc bắt buộc phải xử lý chỉ đọc để cho phép truy cập đa luồng
2.3 Các công cụ sử dụng trong hệ thống
Qua phần trên, ta đã nắm được các cơ sở lý thuyết cơ bản một cách tổng quan về một scene graph Để có thể xây dựng hệ thống của chúng ta với công nghệ scene graph đó, ta cần phải sử dụng một số các công cụ khác nhau
để lập trình cũng như thiết kế
Trang 242.3.1 Giới thiệu Unity3D
Unity3D là một phần mềm cho phép ta sản xuất ra các sản phẩm Game 3D thời gian thực (realtime), cho phép phát triển các Game đa nền từ PC, MAC, cho tới iPhone, iPad…
2.3.1.1 Tổng quan về giao diện Unity3D
a Giao diện Unity3D khi khởi động
b Cửa sổ Project
Mỗi Project của Unity đều chứa một thƣ mục Assets Nội dung của thƣ mục này đƣợc hiển thị trong project view Đây là nơi chứa tất cả các assets để tạo Game của bạn nhƣ Scenes,Scripts, 3D models, Textures, Audio file, Prefabs,Material…
Trang 25Khi click chuột phải lên bất kỳ assets nào trong project view bạn có thể chọn Reveal in Explorer (hoặc chọn Reveal in finder trong MAC) sẽ nhìn thấy nó trong thư mục hệ thống của bạn
Ghi chú: Chúng ta không nên di chuyển asscets bằng cách sử dụng Windows Explorer (hay Finder trong MAC), vì nó sẽ phá vỡ cấu trúc siêu dữ liệu của assets với nhau Và luôn sử dụng project view để cấu trúc assets của mình
Để thêm assets vào project của
mình,chúng ta có thể kéo thả bất kỳ file
nào vào trong project view hoặc vào công
cụ Assets -> Import new Assets
Scenes cũng được lưu trữ trong
Project view, và đây là một level độc lập
mang tính cá nhân Như Example Islands
Scene được hiển thị trong lần đầu chạy
Unity.Để tạo một scene mới Control+N (command+N ởMAC), lưu Scene chọn Control+s (Command+S ở MAC)
Một số assets game cần được tạo bên trong Unity Để làm được điều đó bạn chọn hình tam giác nhỏ nằm bên phải Create trong cửa sổ project (hoặc click chuột phải trong project view) sau
đó chọn assets cần thêm
Trang 26Bạn có thể thêm các asset, và đổi tên các asset Nếu muốn thu gọn hay
mở rộng một thư mục thì bạn có thể giữ phím Alt, thì tất cả các thư mục con
và sẽ được mở rộng và thu gọn
c Hierarchy (Hệ thống phân cấp)
Hierarchy chứa các GameObject hiện
thời Một số có thể trỏ trực tiếp tới những file
assets như 3Dmodels, một số khác đại diện
cho Prefabs-những đối tượng đã được tùy
biến, dùng để làm các công việc khác nhau
sau này trong game của mình Bạn có thể
chọn và parenting object trong hierarchy.Một
object có thể được thêm vào hay loại bỏ trong
scene, và ta có thể thấy nó mất đi hay xuất
hiện trong hierarchy
Parenting: Có thể hiểu là thư mục chứa hay gốc, bất kỳ một
GameObject nào muốn làm con thì ta chỉ việc kéo thả đối tượng đó vào trong đối tượng dự tính làm parenting trong hierarchy và nó sẽ kế thừa chuyển động
và quay của Parenting
d Toolbar
Toolbar chứa 5 loại control cơ bản, mỗi loại giữ một vai trò quan trọng trong editor
với Scene view, như quay trái, phải, lên trên, xuống dưới, phóng to thu nhỏ đối tượng
Trang 27B: Transform Gizmo Toggles: Dùng cho việc thể hiện Scene view
chạy Game ngay trong Editor để kiểm tra
thực hiện trong Scene view
Views
e Scene
Là nơi bạn Design Game của bạn.Đối tượng Maneuvering và Importanting trong Scene view (chuyển động và điều khiển) là hai trong số các chức năng quan trọng của Unity
Góc bên phải của Scene là Scene Gizmo, nó thể hiện
hướng nhìn trong không gian của Camera trong Scene View
hiện thời, cho phép thay đổi góc nhìn trực quan và nhanh chóng
Click lên biểu tượng nhánh hình nón để chuyển qua các góc nhìn khác nhau có thể xem ở chế độ Isometric mode (đẳng cự, mặt cắt 2 chiều) để
Trang 28chuyển về chế độ 3D bạn click vào hình vuông ở trung tâm hay giữ phím shift + click để chuyển đổi chế độ nhìn
Khi xây dựng một game, bạn sẽ đặt rất nhiều đối tượng vào trong Game của bạn Bạn có thể dùng các công cụ Transform Tools ở Toolbar để dịch chuyển, xoay, phóng to thu nhỏ từng đối tượng Khi bạn chọn một đối tượng trong Scene View, xung quanh nó sẽ có những thay đổi tương ứng với từng chế độ trong Transform Tools.Ví dụ ở chế độ Rotate Tool, xung quanh đối tượng sẽ có những cái vòng tròn, để xoay đối tượng, bạn chỉ đơn giản click lên từng vòng và xoay.Để có giá trị chính xác, bạn có thể chỉnh chi tiết ở
bảng Inspectorbằng các số cụ thể
Scene View Control Bar
Là thanh điều khiển Scene View cho phép bạn xem màn hình game với nhiều chế độ - Đã phủ vật liệu, Khung lưới(wireframe), RGB, Overdraw vv Bạn cũng có thể xem (và cả nghe) những hiệu ứng ánh sáng, âm thanh, những thành phần động sẽ có trong game v v ngay tại Scene
f Game view
Đây là cửa sổ cho phép bạn chạy thử Game của mình ngay trong chế độ Design
Trang 29Game View được rendered từ những Camera trong game Đó là những
gì được nhìn thấy khi hoàn tất, khi Game được xuất bản Bạn sẽ cần ít nhất là một, hoặc nhiều hơn số lượng Camera để quyết định những gì mà người chơi
sẽ nhìn thấy khi họ chơi Game
Play mode
Sử dụng những nút trên Toolbar để control Editor Play Mode, và xem trước game của bạn sẽ như thế nào khi chơi Trong chế độ Play, mọi giá trị thay đổi sẽ được lưu tạm, và bị xoá khi thoát khỏi chế độ Play.Editor UI sẽ tối
đi để cảnh báo bạn về điều này
Game view control bar
Danh sách đổ xuống đầu tiên trong thanh điều khiển Game View
là “Aspect Drop-down” Tại đây, bạn có thể thay đổi nhiều tỉ lệ khung hình khác nhau (ví dụ: 16:9, 4:3 ) Nó dùng để kiểm tra xem Game của bạn như thế nào trên các loại Monitor khác nhau
Trang 30Phía bên tay phải là nút“Maximize on Play”, khi đƣợc bật, Game View
sẽ mở rộng 100% màn hình của cửa sổ Editor Window, để có một cái nhìn tốt hơn khi bạn ở chế độ Play mode
Cũng ngay cạnh bên phải là nút Gizmos.Khi bật lên, mọi Gizmos xuất hiện trong Scene View cũng sẽ đƣợc thể hiện trong Game View
Cuối cùng là nút Stats Nó thể hiện Rendering Statistics window, cung cấp những thông tin hữu ích nhƣ tốc độ khung hình, lƣợng bộ nhớ sử dụng v v dành cho Optimizing Graphics Performance
Game View thống kê Game của bạn
Trang 31g Inspector
Games trong Unity đƣợc tạo ra
bởi tập hợp rất nhiều GameObject,
trong đó bao gồm Meshes, Scripts,
âm thanh, hay những đối tƣợng
Graphic nhƣ nguồn sáng v v
Inspector sẽ hiển thị mọi thông tin về
đối tƣợng đang làm việc một cách chi
tiết, kể cả những Components đƣợc
đính kèm và những thuộc tính của
nó.Tại đây, bạn có thể điều chỉnh,
thiết lập mọi thông số chức năng của
những mối liên kết
GameObject-Component
Mọi thuộc tính thể hiện trong
Inspector đều có thể đƣợc tùy biến một cách trực tiếp.Ngay cả với những biến trong Script cũng có thể đƣợc hiệu chỉnh
mà không cần xem mã.Bạn có thể dùng Inspector để thay đổi giá trị ngay lúc chạy để trải nghiệm thứ gì tuyệt nhất cho GamePlay của bạn Trong Script, nếu bạn định nghĩa một giá trị là Public cho một kiểu đối tƣợng (nhƣ GameObject
Trang 32hay Transform), bạn có thể drag-drop một GameObject hay một Prefab vào trong Inspector để gán giá trị cho nó
Click vào dấu hỏi bên cạnh tên của mỗi Component trong Inspector để
load trang Component Reference
Thêm Components từ menu
Component
Bạn có thể click lên icon hình bánh răng nhỏ xíu (hoặc right-click lên tên của Component) để xuất hiện context menu dành cho những thiết lập của Component
Inspector cũng sẽ hiển thị mọi thông số Import Setting của asset đang làm việc
Click Apply để import lại asset của bạn
Trang 34Sử dụng Layer drop-down để gán cách render Layer cho một GameObject Sử dụng Tag drop-down
để gán một tag cho GameObject
Prefabs:
Nếu một Prefab đƣợc chọn, một số nút sẽ đƣợc thêm vào trong Inspector, đây cũng là một thành phần quan trọng trong Unity
Các loại Views khác nhƣ:
* The Console hiển thị những log về chỉ thị, cảnh báo, và lỗi phát sinh
* The Animation View dùng để làm đối tƣợng hoạt hình trong scene
* The Profiler có thể đƣợc sử dụng để kiểm tra và tìm ra hiệu suất cổ chai trong Game của bạn
* The Asset Server View dùng để quản lý những project sử dụng hệ thống server chứa Asset của Unity
* The Lightmapping View dùng để quản lý hệ thống ánh sáng trong Unity
* The Occlusion Culling View có thể đƣợc sử dụng để quản lý Occlusion Culling nhằm cải thiện hiệu suất
Trang 35Tùy biến không gian làm việc:
Bạn có thể tùy ý thay đổi cấu trúc của các Views bằng cách draging những tab tới những nơi bạn muốn Đặt cạnh một View nào đó, nó sẽ
click-tự phân chia windows ra, đặt ra ngoài nó sẽ click-tự động tạo thành một windows riêng
Vi ews có thể được đặt bên cạnh bên, hay bên dưới bất kỳ cửa sổ nào
Các tab cũng có thể kéo ra ngoài cửa sổ chính và được sắp xếp theo ý thích người dùng Nếu cần thiết, bạn cũng có thể cho nó nằm ngang hàng với các Views khác trong cửa sổ chính
Trang 36Cửa sổ biên tập động tương tự như của sổ biên tập chính, ngoại trừ có thanh công cụ
Bạn cũng có thể lưu lại những thiết lập về cấu trúc của các Views, bằng cách click vào menu dropdown Layout ở thanh Toolbar, chọn Save Layout Đặt tên cho nó và sau đó bạn dễ dàng gọi nó ra bằng cách chọn nó trong dropdown menu
Trang 37Một Layout đã hoàn toàn được chỉnh sửa
Bất kỳ lúc nào bạn cũng có thể right-click lên một tab của bất kỳ view nào để xem những tính năng khác nhƣ Maximize hay thêm vào một tab mới trong cùng một cửa sổ
Trang 38Quản lý Asset:
Workflow - tiến trình công việc, đại ý là khi bạn import hoặc tạo ra asset, bạn không cùng một lúc tạo ra toàn bộ, mà là theo trình tự, tùy theo nhu cầu, theo kịch bản, bạn import hoặc tạo ra asset theo thứ tự
Tạo một Asset thô:
Unity hỗ trợ import hầu như tất cả các định dạng 3D model hiện nay Khi một đối tượng hay vật thể 3D được import hoặc tạo ra trong Unity, nó đều được gọi là asset Lấy ví dụ bằng 3Dmax, sau khi tạo xong một model, chúng ta bắt đầu import nó vào Unity
Danh sách file 3D Unity hỗ trợ import:
+ Maya + Cinema 4D + 3Ds Max + Cheetah3D + Modo + Lightwave + Blender
+ Và các kiểu file như FBX, dae, 3DS, dxf và obj Import:Khi lưu trữ asset, nên lưu trong thư mục Assets đặt trong thư
mục Project của bạn Lúc mở project, Unity sẽ tự động dò tìm và import tất cả vào trong Project
Unity cho phép ta import các gói models FBX vào để sử dụng, sau khi import vào ta có thể chỉnh sửa theo ý Ngoài ra ta cũng có thể export ra các gói ngay trong Unity
Import Settings:
Trang 39Khi bạn chọn một asset trong Project View, những thông số import cho asset sẽ hiển thị ở Inspector Mỗi loại asset sẽ có mỗi kiểu thông số khác nhau
Thêm Asset vào trong Scene:
Chúng ta chỉ cần click-drag các khung lưới được vẽ trong 3D (mesh) từ Project View vào cửa sổ Hierarchy hoặc Scene View để thêm nó vào trong Scene.Khi thêm một mesh vào trong scene, tức là bạn đã tạo ra một GameObject có Mesh Renderer Component.Tương tự khi thêm vật liệu (texture), hoặc âm thanh, bạn cũng phải gán nó vào một GameObject đã có sẵn trong Scene hay Project
Sử dụng các kiểu Assets khác nhau
Mối liên hệ giữa một số kiểu assets thông dụng:
+ Một Texture được áp cho một Material
+ Một Material được áp cho một GameObject (với một Mesh Renderer Component)
+ Một Animation được áp cho một GameObject (với một Animation Component)
+ Một file âm thanh được áp cho một GameObject (với một Audio Source Component)
Tạo một Prefab:
Prefabs là một tính năng hữu ích trong Unity, nó là một bộ sưu tập của một hoặc nhiều GameObject và Components mà có thể được dùng lại nhiều lần trong scene Nhiều đối tượng riêng biệt có thể được tạo ra chỉ bằng một Prefab, được gọi là intance
Lấy ví dụ những cái cây trong game Ta tạo ra một Prefab cho cây, sau
đó có thể thêm nó vào trong game để tạo thành một vườn cây Bởi vì tất cả cây đều cùng một Prefab, nên sau này, nếu bạn cần thay đổi màu lá, màu vỏ cây v v cho toàn bộ vườn cây, bạn chỉ cần đơn giản hiệu chỉnh thông số
Trang 40trong Prefab, sau đó áp nó cho toàn bộ đối tượng bằng cách chọn
GameObject->Apply Changes to Prefab từ menu chính
Thật dễ dàng và nhanh chóng, Prefab sẽ giúp bạn tiết kiệm rất nhiều thời gian trong việc quản lý và hiệu chỉnh asset
Tức là Prefab như là một khung sườn, một khuôn mẫu đã được đúc sẵn, xây dựng sẵn Nghĩa là khi Prefab thay đổi, tất cả những bản sao sẽ được cập nhật theo Có nhiều cách để thay đổi, như bạn có thể thay đổi chính từ Prefab gốc, hoặc từ những bản sao của nó rồi áp ngược lại cho toàn bộ Prefab
Để tạo ra một Prefab từ một GameObject trong scene, đầu tiên, khởi tạo trước một Prefab mới trong Project View, đặt tên cho Prefab đó theo ý thích bạn, sau đó, click và drag đối tượng GameObject mà bạn muốn nó trở thành một Prefab vào trong Prefab, tên của GameObject sẽ chuyển sang xanh dương
Cập nhật Assets:
Sau khi đã làm quen với việc import, thay đổi, và liên kết asset trong một Prefab.Giờ bạn muốn có một chút thay đổi với asset? Chỉ cần double-click nó trong Project View Chương trình chỉnh sửa tương ứng sẽ chạy và bạn có thể chỉnh sửa theo ý thích, khi hoàn tất, chỉ cần save nó lại, Unity sẽ tự động nhận biết sự thay đổi và import lại asset đó một cách nhanh chóng Những asset liên kết trong Prefab cũng sẽ thay đổi theo
Ví dụ bạn thêm một bảng hiệu trong game bằng file Photoshop Double-click lên nó, Photoshop sẽ chạy, bạn chỉnh sửa bảng hiệu trong Photoshop, sau đó lưu lại Quay lại Unity, bạn sẽ thấy nó đã thay đổi, thật tiện lợi
Optional - Đính thêm Labels cho Assets
Thêm labels cho những asset quả không là một ý tưởng tồi nếu bạn muốn giữ nó ngăn nắp, nhằm làm cho việc tìm kiếm và quản lý, sử dụng nó
dễ dàng hơn