1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án Nghiên cứu phát triển game thực tại ảo Augmented Reality

103 1,7K 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 103
Dung lượng 13,07 MB

Nội dung

MỞ ĐẦU Ngày nay các sản phẩm công nghệ ngày càng gần gũi và gắn liền với con người,các khái niệm như PC,Laptop,smartphone,android,IOS đã không còn xa lạ với phần đông dân số.Người ta sử dụng các sản phẩm công nghệ này để làm việc,tìm kiếm thông tin,giải trí.Khoảng cách giữa các thiết bị phần cứng và cuộc sống ngày càng được rút ngắn nhằm mang lại những trải nghiệm thực tế nhất cho con người.Một trong số đó là công nghệ augmented reality( viết tắt là AR),công nghệ này mang lại những mô hình,vật thể,thông tin ảo căn cứ vào camera thiết bị.Hiểu 1 cách đơn giản,khi vật thể thật được thiết bị nhận diện,nó sẽ căn cứ vào đó để hiển thị các thông tin,các vật thể ảo xung quanh vật thể thật.Khoảng cách giữa thực tại và các mô hình ảo bị xóa nhòa,người dùng có cảm tưởng như các vật thể ảo hiện hữu ngoài đời thật,có thể tương tác,tìm hiểu,ngắm nhìn,động chạm vào chúngmang lại trải nghiệm rất mới mẻ và thú vị cho người dùng. Song song với đó,ngành công nghiệp game ngày càng phát triển,thu hút lượng khách hàng khổng lồ,mang lại doanh thu lớn cho các nhà phát triển game.Tuy nhiên,môi trường game ngày càng bão hòa khi lượng game xuất hiện càng nhiều,các ý tưởng game ngày càng bị khai thác cạn kiệt dẫn đến sự nhàm chán.Các game hiện nay cũng chủ yếu nhắm vào trải nghiệm cá nhân,người chơi game vận động rất ít,chủ yếu chỉ nhìn màn hình,ngồi 1 chỗ và thao tác bên cạnh thiết bị. Việc nghiên cứu 1 game áp dụng công nghệ AR sẽ mang lại sự mới mẻ cho người chơi game,cách chơi game truyền thống chỉ biết cắm cúi vào thiết bị mà không thể tương tác trực tiếp với các đối tượng trong game,với môi trường trong game không còn nữa.Người chơi sẽ được tương tác với các đối tượng ảo,vận động cơ thể,nâng cao trải nghiệm. Đồ án được xây dựng với mục đích tìm hiểu công nghệ AR,cách thức xây dựng game,vận dụng các công nghệ vào để làm 1 game tương tác với người chơi.

Trang 1

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Đề tài: “Nghiên cứu phát triển game thực tại ảo”

Hà Nội, tháng 11 - 2014

Trang 2

LỜI CẢM ƠN

Em xin chân thành cám ơn các thầy cô, cán bộ, công nhân viên của Khoa Công nghệ thông tin, các Khoa, đoàn thể khác của Học viện Công Nghệ Bưu Chính Viễn Thông đã tạo điều kiện tốt cho em thực hiện đề tài tốt nghiệp này.

Em xin gửi lời cảm ơn sâu sắc nhất đến Ts.Phạm Văn Cường, người thầy đã cho em định hướng và tận tình chỉ bảo cho em những ý kiến quý báu Thầy đã giúp đỡ và đi cùng em trong suốt thời gian thực hiện đề tài này, luôn gợi mở cho em cách tiếp cận vấn đề, hướng suy nghĩ độc lập, tìm tòi cái mới, thử thách bản thân với vấn đề mắc phải Tuy thời gian làm

đề tài là ngắn ngủi nhưng từ thầy em đã học hỏi được rất nhiều điều không chỉ về chuyên môn mà còn cả những kỹ năng cần thiết trong cuộc sống, giúp em nhìn nhận ra những khuyết điểm, thiếu sót của bản thân mình.

Em xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo đã giảng dạy em trong bốn năm rưỡi qua, những người đã truyền đạt cho em không chỉ kiến thức, kinh nghiệm quý báu,

mà cả những câu chuyện về cuộc sống, những bài học làm người ý nghĩa Những kiến thức quý báu đó sẽ là hành trang quan trọng giúp em hoàn thiện bản thân và vững bước trong tương lai.

Con xin gửi lời cảm ơn tới cha mẹ, ông bà và toàn thể đại gia đình đã nuôi dưỡng, giáo dục và cho con cuộc đời này.

Xin cảm ơn tập thể lớp D10CN2, D10CNPM2, các câu lạc bộ cùng toàn thể bạn bè, anh chị và các em dưới mái trường PTIT đã luôn là nguồn động viên, giúp đỡ to lớn với tôi trong những năm tháng ở giảng đường đại học.

Đề tài “Nghiên cứu phát triển game thực tại ảo” là một đề tài khá mới mẻ, mặc dù

em đã cố gắng hoàn thành trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em mong nhận được sự cảm thông và tận tình chỉ bảo, góp ý của thầy cô và các bạn để đề tài có thể được mở rộng, nghiên cứu kỹ hơn.

Em xin chân thành cảm ơn!

Sinh viên thực hiện

Nguyễn Hồng Đông

Trang 3

(Của giảng viên phản biện)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Điểm: ……….………(bằng chữ: … ……….)

…………, ngày tháng năm 20

CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN

(ký, họ tên)

Trang 4

(Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Điểm: ……….………(bằng chữ: … ……….)

Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?.

…………, ngày tháng năm 20

CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN

(ký, họ tên)

Trang 5

MỤC LỤC iv

DANH MỤC SƠ ĐỒ, HÌNH ẢNH v

DANH MỤC BẢNG viii

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN 2

1.1 Giới thiệu Augmented Reality: 3

1.1.1 Augmented Reality là gì? 3

1.1.2 .Một số định nghĩa liên quan đến Augmented Reality: 4

1.2 Một số sản phẩm ứng dụng công nghệ Augmented Reality 4

1.1.3 Star Walk, Distant Suns, SkyView và Night Sky: 4

1.1.4 Ứng dụng thử đồ: 5

1.1.5 SpecTrek Light 7

1.1.6 AR Basketball: 8

1.1.7 AR magical battle: 9

1.1.8 AR Concert with Miku 10

1.1.9 Layar: 12

1.3 Đánh giá : 14

1.4 Ý tưởng làm game 3D tương tác ảo: 15

CHƯƠNG 2: PHƯƠNG PHÁP VÀ HỆ THỐNG GAME 17

3.1 Các công nghệ sử dụng 18

3.1.1 Engine Unity: 18

3.1.2 Vuforia Augmented Reality SDK: 32

3.1.3 Csharp (C#) : 38

3.1.4 PHP : 38

3.1.5 Webservice 39

3.2 Phân tích và thiết kế: 40

3.2.1 Bài toán: 40

3.2.2 Khảo sát yêu cầu nghiệp vụ: 40

3.2.3 Phân tích hệ thống: 49

3.2.4 Thiết kế hệ thống: 49

3.3 Phát triển hệ thống 68

3.3.1 Cài đặt Vuforia SDK vào Unity: 68

3.3.2 Xây dựng Target: 70

3.3.3 Sử dụng MasterServer để đăng ký host : 80

3.3.4 Kết nối và lấy dữ liệu từ Web Service: 81

CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM 84

3.1 Các giao diện và cách sử dụng: 85

3.2 Chạy thử chương trình: 89

3.3 Kết luận và hướng phát triển: 92

Trang 6

DANH MỤC SƠ ĐỒ, HÌNH ẢNH

Hình 1.1 Sử dụng AR trong tìm kiếm thông tin 3

Hình 1.2 Ứng dụng xem các tròm sao trên ipad 5

Hình 1.3 Người dùng đưa camera lên bầu trời,ứng dụng sẽ tự xác định vị trí các chòm sao để dựng hình lên camera 5

Hình 1.4 Người dùng đăng nhập vào hệ thống,chọn sản phẩm 6

Hình 1.5 Khi muốn thử đồ,hình ảnh sản phẩm sẽ hiện lên trên camera như người dùng đang mặc đồ thật.Người dùng có thể thay đổi size,vị trí,màu sắc của sản phẩm trên người sao cho hài lòng nhất 7

Hình 1.6 Giao diện ứng dụng trên Android 7

Hình 1.7 Trò chơi sử dụng 1 tấm Marker để qua đó hiển thị 1 chiếc rổ ảo 8

Hình 1.8 Người chơi trượt tay trên màn hình để ném bóng vào chiếc rổ ảo này,mỗi cú ném chính xác sẽ được tính điểm 9

Hình 1.9 Tấm Marker để chơi game,người chơi cần có tấm Marker này đặt ở môi trường thực .9

Hình 1.10 Qua camera của ứng dụng,mọi vật thể 3D được dựng lên trên tấm Marker và thay đổi góc độ độ lớn theo vị trí camera so với Marker 10

Hình 1.11 Người chơi có thể tương tác với các mô hình 3D này như là chúng hiện hữu trong môi trường thực 10

Hình 1.12 Người chơi có thể tự chụp 1 mặt phẳng để ứng dụng hiển thị trên đó 11

Hình 1.13 Sau khi có mặt phẳng tham chiếu,ứng dụng sẽ dựng hình 3D lên chính mặt phẳng đó 11

Hình 1.14 Nhân vật được dựng lên trên bất kỳ mặt phẳng nào người dùng muốn 12

Hình 1.15 Thông tin các địa điểm,các update được hiển thị lên chính môi trường thực 13

Hình 1.16 Trải nhiệm đọc báo bằng Layar khi thông tin sống động hơn bao giờ hết 13

Hình 1.17 Giao diện thiết kế marker của Layar:người dùng có thể chọn ảnh ,text làm Marker,tùy chọn các tiện ích mở link,chơi video… trên tấm marker này 14

Hình 1.18 Ý tưởng game 15

Hình 2.1 Hình ảnh game Far Cry được xây dựng trên Cry Engine 18

Hình 2.2 Logo của Engine Unity 19

Hình 2.3 Giao diện Editor của Unity 20

Hình 2.4 Thanh công cụ trên của sổ Scene 21

Hình 2.5 Chọn đối tượng trong Unity 21

Hình 2.6.Cửa sổ Inspector hiển thị thông tin một đối tượng 22

Hình 2.7 Asset trong Unity 24

Hình 2.8.Các scene của Unity 24

Hình 2.9Kéo tài nguyên vào Scene để sử dụng 25

Hình 2.10.Các thành phần trong đối tượng Camera 26

Hình 2.11.Cách tạo file script mới 26

Hình 2.12 Một file script đang gắn vào đối tượng 27

Hình 2.13 Material và Shader 27

Hình 2.14 Tổng quan kiến trúc Unity 28

Hình 2.15 Chu kỳ sống của thành phần script 30

Hình 2.16 GUI thiết kế từ trình mặc định của Unity 31

Trang 7

Hình 2.18 Logo của Vuforia 32

Hình 2.19 Sơ đồ luồng dữ liệu của Vuforia SDK trong một môi trường ứng dụng 34

Hình 2.20 Mục tiêu hình ảnh 35

Hình 2.21 Mục tiêu hình trụ 35

Hình 2.22 Đa mục tiêu 36

Hình 2.23 Nút ảo 37

Hình 2.24 Theo dõi mở rộng để suy ra vị trí của vật thể ảo 38

Hình 2.25 Trao đổi trong ứng dụng webservice 39

Hình 2.26 Biểu đồ usecase tổng quan 41

Hình 2.27 Biểu đồ Usecase ViewLoginScene 41

Hình 2.28 Usecase ViewMenuScene 42

Hình 2.29 Usecase viewHighScoresList 42

Hình 2.30 Usecase GameManager 43

Hình 2.31.Usecase PlayGame 43

Hình 2.32 Quan hệ 3 thành phần trong game 50

Hình 2.33 LoginManager 51

Hình 2.34 Lớp MenuController 52

Hình 2.35 Class TennisScoreKeeper 54

Hình 2.36 Class TenisManager: 55

Hình 2.37 Class OtherPlayerController 56

Hình 2.38 Biểu đồ tuần tự usecase Login 57

Hình 2.39 Biểu đồ tuần tự usecase Resign 58

Hình 2.40 Biểu đồ tuần tự usecase HostAGame 59

Hình 2.41 Biểu đồ tuần tự usecase ViewServersList 60

Hình 2.42 Biểu đồ tuần tự usecase ViewScoresList 61

Hình 2.43 Biểu đồ tuần tự usecase PlayGame 62

Hình 2.44 Biểu đồ tuần tự usecase PauseGame 63

Hình 2.45 Biểu đồ hoạt động usecase Login 64

Hình 2.46 Biểu đồ hoạt động usecase Resign 65

Hình 2.47 Biểu đồ hoạt động usecase PlayGame 66

Hình 2.48 Biểu đồ hoạt động usecase ViewHighScoresList 67

Hình 2.49 Biểu đồ hoạt động usecase ViewServersList 68

Hình 2.50 Import SDK vào Unity 69

Hình 2.51 Đối tượng ARCamera và ImageTarget 69

Hình 2.52 Đối tượng ARCamera 70

Hình 2.53 Giao diện 1 database trong TargetManager 71

Hình 2.54 Giao diện thêm mới 1 Target 71

Hình 2.55Chọn Target cho ImageTarget 72

Hình 2.56 Sau khi set Target thành công,hình Target hiện lên màn hình Editor 72

Hình 2.57 Cấu hình Dataset cho Camera 73

Hình 2.58 Tạo mô hình hiển thị trên Target(1) 73

Hình 2.59 Tạo mô hình hiển thị trên Target(2) 74

Hình 2.60 Tạo mô hình hiển thị trên Target(3) 74

Hình 2.61 Target người dùng tự định nghĩa (1) 75

Trang 8

Hình 3.1 Bảng cơ sở dữu liệu tạo trên host 85

Hình 3.2 Các trang php yêu cầu 85

Hình 3.3 Thông tin kết nối cơ sở dữ liệu 85

Hình 3.4 Sửa thông tin kết nối 85

Hình 3.5.Màn hình Login/Resign 86

Hình 3.6 Màn hình Menu Game 86

Hình 3.7 Màn hình xem điểm cao 87

Hình 3.8 Màn hình Connect 87

Hình 3.9 Màn hình Connect with ip 88

Hình 3.10 Màn hình chơi game 88

Hình 3.11 Danh sách host game đang chạy 89

Hình 3.12 màn hình game 90

Hình 3.13 Button tự tạo Target 90

Hình 3.14 Tạo vợt từ tấm Marker 91

Hình 3.15 Thao tác đánh bóng bằng vợt 91

Hình 3.16 Có người chơi thắng 92

Trang 9

Bảng 2-1 Các usecase của hệ thống 40

Bảng 2-2 Các tác nhân của hệ thống 40

Bảng 2-3 Scenario của use case Login (Đăng nhập) 44

Bảng 2-4 Scenario của use case Resign (Đăng kí) 45

Bảng 2-5 Kịch bản use case ViewHighScoresList 45

Bảng 2-6 Scenario của use case HostAGame 46

Bảng 2-7 Scenario của use case ViewServersList 47

Bảng 2-8 Scenario của use case PlayGame (Chơi game) 48

Bảng 2-9 Các lớp thực thể 49

Bảng 2-10 Danh sách các lớp điều khiển 49

Bảng 2-11 Bảng CSDL scores 68

Trang 10

số.Người ta sử dụng các sản phẩm công nghệ này để làm việc,tìm kiếm thông tin,giảitrí.Khoảng cách giữa các thiết bị phần cứng và cuộc sống ngày càng được rút ngắn nhằmmang lại những trải nghiệm thực tế nhất cho con người.Một trong số đó là công nghệaugmented reality( viết tắt là AR),công nghệ này mang lại những mô hình,vật thể,thông tin ảocăn cứ vào camera thiết bị.Hiểu 1 cách đơn giản,khi vật thể thật được thiết bị nhận diện,nó sẽcăn cứ vào đó để hiển thị các thông tin,các vật thể ảo xung quanh vật thể thật.Khoảng cáchgiữa thực tại và các mô hình ảo bị xóa nhòa,người dùng có cảm tưởng như các vật thể ảo hiệnhữu ngoài đời thật,có thể tương tác,tìm hiểu,ngắm nhìn,động chạm vào chúng-mang lại trảinghiệm rất mới mẻ và thú vị cho người dùng.

Song song với đó,ngành công nghiệp game ngày càng phát triển,thu hút lượng kháchhàng khổng lồ,mang lại doanh thu lớn cho các nhà phát triển game.Tuy nhiên,môi trườnggame ngày càng bão hòa khi lượng game xuất hiện càng nhiều,các ý tưởng game ngày càng bịkhai thác cạn kiệt dẫn đến sự nhàm chán.Các game hiện nay cũng chủ yếu nhắm vào trảinghiệm cá nhân,người chơi game vận động rất ít,chủ yếu chỉ nhìn màn hình,ngồi 1 chỗ vàthao tác bên cạnh thiết bị

Việc nghiên cứu 1 game áp dụng công nghệ AR sẽ mang lại sự mới mẻ cho người chơigame,cách chơi game truyền thống chỉ biết cắm cúi vào thiết bị mà không thể tương tác trựctiếp với các đối tượng trong game,với môi trường trong game không còn nữa.Người chơi sẽđược tương tác với các đối tượng ảo,vận động cơ thể,nâng cao trải nghiệm

Đồ án được xây dựng với mục đích tìm hiểu công nghệ AR,cách thức xây dựng game,vậndụng các công nghệ vào để làm 1 game tương tác với người chơi

Nội dung của đồ án gồm những chương sau:

Chương 1: Giới thiệu công nghệ augmented reality và các ý tưởng

Nôi dụng của chương 1 tập trung giơi thiệu về công nghệ AR,các sản phẩm của côngnghệ AR đã và đang xuất hiện trên thế giới cũng như trình bày ý tưởng phát triển sản phẩm

Chương 2: Phương pháp và xây dựng hệ thống game

Nội dung của chương 2 sẽ tập trung trình bày các công nghệ liên quan để tạo ra 1 game

AR, cách xây dựng thệ thống,các vấn đề và cách giải quyết trong quá trình xây dựng game

Chương 3: Kết quả thử nghiệm và kết luận

Nội dung của chương 3 sẽ cho thấy sản phẩm,cách cài đặt và vận hành,tổng hợp những gì

đồ án thu được,rút ra những điểm được và chưa được,đề ra hướng phát triển của đồ án trongtương lai

Trang 11

CHƯƠNG 1: TỔNG QUAN Nội dung của chương này gồm có:

☞ Giới thiệu về công nghệ Augmented Reality

☞ Trình bày các ứng dụng của công nghệ Augmented Reality

☞ Trình bày ý tưởng và hướng phát triển

Trang 12

1.1 Giới thiệu Augmented Reality:

1.1.1 Augmented Reality là gì?

Trước khi nói tới Augmented Reality, chúng ta cần làm rõ khái niệm Virtual Reality(Thực tế ảo) VR là thuật ngữ dùng để miêu tả một môi trường mô phỏng bằng máy tính VRkhông phải là một phát minh mới, mà ngay từ năm 1962 Morton Heilig (Mỹ) đã phát minh rathiết bị mô phỏng SENSORAMA Tuy nhiên cũng như nhiều ngành công nghệ khác, VR chỉthực sự được phát triển ứng dụng rộng rãi trong những năm gần đây nhờ vào sự phát triển củatin học (phần mềm) và máy tính (phần cứng) Ngày nay VR đã trở thành một ngành côngnghiệp và thị trường VR tăng trưởng hàng năm khoảng 21% và dự tính đạt khoảng 3,4 tỷ $năm 2005 (theo Machover, 2004).Theo dự đoán của Gartner (tổ chức nghiên cứu thị trườngtoàn cầu), VR đứng đầu danh sách 10 công nghệ chiến lược năm 2009

Tại các nước phát triển, chúng ta có thể nhận thấy VR được ứng dụng trong mọi lĩnhvực: Khoa học kỹ thuật, kiến trúc, quân sự, giải trí, du lịch, địa ốc và đáp ứng mọi nhu cầu:Nghiên cứu- Giáo dục- Thương mại-dịch vụ Y học, du lịch là lĩnh vực ứng dụng truyền thốngcủa VR Bên cạnh đó VR cũng được ứng dụng trong giáo dục, nghệ thuật, giải trí, du lịch ảo(Virtual Tour), bất động sản Trong lĩnh vực quân sự, VR cũng được ứng dụng rất nhiều ởcác nước phát triển Bên cạnh các ứng dụng truyền thống ở trên, cũng có một số ứng dụngmới nổi lên trong thời gian gần đây của VR như: VR ứng dụng trong sản xuất, VR ứng dụngtrong ngành rôbốt, VR ứng dụng trong hiển thị thông tin (thăm dò dầu mỏ, hiển thị thông tinkhối, ứng dụng cho ngành du lịch, ứng dụng cho thị trường bất động sản ) VR có tiềm năngứng dụng vô cùng lớn Có thể nói tóm lại một điều: Mọi lĩnh vực "có thật " trong cuộc sốngđều có thể ứng dụng "thực tế ảo" để nghiên cứu và phát triển hoàn thiện hơn

Đa phần các môi trường tạo ra bởi VR chủ yếu là hình ảnh hiển thị trên màn hình máytính hay thông qua kính nhìn ba chiều, tuy nhiên một vài mô phỏng cũng liên quan các loạigiác quan khác khác như thính giác hay xúc giác

Hình 1.1 Sử dụng AR trong tìm kiếm thông tin

Trang 13

Được phát triển từ VR, Augmented Reality (AR) được hiểu là công nghệ cho phép conngười quan sát những vật trong thế giới thật thông qua một thiết bị điện tử nào đó Khi đóngoài những gì mắt thường ta nhìn thấy, thiết bị điện tử còn cho ta biết những thông tin khácliên quan đến vật đang được quan sát Tóm lại, trong khi VR thay thế hoàn toàn thực tại bởimột thế giới mô phỏng, AR chỉ bổ sung các chi tiết vào thế giới thực tại.

Công nghệ này thường được biết đến với các ứng dụng dẫn đường thế hệ mới, giúpngười dùng tương tác trực tiếp với môi trường xung quanh trên các điện thoại chạy iOS hayAndroid Nhưng AR không chỉ có thế, công nghệ thực tế tăng cường này mở ra một chân trờimới cho ngành công nghệ thông tin thế giới

Ở tầm cao hơn, công nghệ này còn có thể nhận diện được những cử chỉ trên khuôn mặtrồi từ đó đưa ra cách ứng xử cho phù hợp, toả mùi hương để xoa dịu hay phân tích giọng nói

để biết cảm xúc của họ Nghe có vẻ giống truyện khoa học viễn tưởng, nhưng mục đích của

AR là làm cho cuộc sống của chúng ta thật nhất đến mức có thể

Ở Việt Nam, tuy công nghệ này chưa được biết đến và ứng dụng nhiều nhưng cùng với

đà phát triển của nó trên thế giới, AR hứa hẹn sẽ là một công nghệ chủ đạo trên các thiết bị diđộng trong một tương lai không xa

1.1.2 .Một số định nghĩa liên quan đến Augmented Reality:

Vật thể ảo:Đây là các vật thể được xây dựng bằng đồ họa máy tính,là các vật thể không

có thật

Camera:Đây là thiết bị phần cứng bắt buộc phải có để nhận dạng vật thể,qua đó dựng

hình các vật thể ảo lên trên màn hình thiết bị

Target :đây là mục tiêu mà camera nhận diện,sau quá trình xử lý,Target được xác định

và phân biệt với các đối tượng khác.Target sau khi được nhận diện camera sẽ tính toánhướng,vị trí,độ nghiêng của Target qua đó thực hiện việc dựng các vật thể ảo lên trên mànhình

Marker:Đây là 1 cách để ứng dụng nhận diện Target,nhận diện bằng Marker có nghĩa

là trên bề mặt Target phải có những kí hiệu riêng,thông thường là các bức ảnh,trên đó đượcnhận diện các điểm chuẩn.Camera quét để tìm các điểm chuẩn trên Marker để kết luận đó làTarget

Markerless:Đây là cách nhận diện Target cao cấp hơn Market.Marker cần có khuôn

mẫu cố định,cần đối chiếu với 1 tập các điểm chuẩn có sẵn,Markerless thì lại dựa vào đặcđiểm môi trường nó thu nhận được để kết luận đó có phải là Target hay không

Tracker:Đây chính là bộ theo dõi chứa các thuật toán để camera phát hiện ra và theo

dõi vật thể

Dataset:Mỗi 1 target marker hay makerless đều cần có các dữ liệu đầu vào để Tracker

căn cứ vào đó nhận diện.Các dữ liệu đầu vào này gọi là Dataset

1.2 Một số sản phẩm ứng dụng công nghệ Augmented Reality

Để thấy được hướng phát triển cũng như những trải nghiệm khác biệt mà AugmentedReality mang lại,sau đây là 1 số ví dụ về các sản phẩm áp dụng Augment Reality đã và đangxuất hiện trên thế giới

1.1.3 Star Walk, Distant Suns, SkyView và Night Sky:

Áp dụng công nghệ la bàn (compass) và gia tốc kế (accelerometer),và không cần tấmMarker để định vị,các phần mềm kể trên thay đổi cách nghiên cứu truyền thống về thiên văn

Trang 14

học Sau khi đã được cài đặt, chỉ cần trỏ thiết bị lên bầu trời đêm, các ứng dụng này sẽ tựđộng kết nối đến hệ thống máy chủ, sử dụng các dữ liệu GPS và công nghệ nhận diện hìnhảnh, qua đó mô phỏng và đưa ra thông tin chi tiết về các chòm sao, hành tinh hay tàu khônggian theo thời gian thực.

Hình 1.2 Ứng dụng xem các tròm sao trên ipad

Hình 1.3 Người dùng đưa camera lên bầu trời,ứng dụng sẽ tự xác định vị trí các chòm

sao để dựng hình lên camera

Bằng các ứng dụng này,việc nghiên cứu thiên văn học trở nên trực quan và gần gũi hơncách thức đọc sách hay xem ảnh rất nhiều.Khi ta không phải tính toán vị trí tọa độ,hướng đểtìm vị trí các vật thể thiên văn nữa,tất cả đã được máy tính toán sẵn và hiển thị lên ngay trướcmắt

Trang 15

1.1.4 Ứng dụng thử đồ:

Chạy trên các trang website bán hàng hoặc các màn hình tại các cửa hàng,ứng dụng thử

đồ yêu cầu người dùng đứng trước webcam để có thể thử luôn sản phẩm.So với việc muahàng truyền thống,phải ra tận nơi,chọn đúng size để thử thì ứng dụng đã khến việc thử các sảnphẩm trở nên thuận tiện hơn bao giờ hết.Các trang phục ảo có thể thay đổi vị trí,size,màu sắcsao cho vừa vặn với người dùng nhất

Ứng dụng hoạt động theo nguyên tắc yêu cầu người dùng có 1 tấm Marker để xác định

vị trí ban đầu của người dùng,qua đó dựng lên hình sản phầm trên chính camera.Sau khingười dùng cầm tấm Marker để ướm cho trang phục ảo vừa với vị trí của mình đang đứng,họ

có thể bỏ tấm Marker ra và bắt đầu thử đồ.Ứng dụng còn nhận ra việc bàn tay người dichuyển để bắt các sự kiện trên nút bấm ảo,giúp người dùng đứng xa camera vẫn có thể chỉnhđược màu sắc,size,loại sản phẩm

Công ty chuyên nghiên cứu về vấn đề này có thể kể đến zugara

Website: http://zugara.com

Hình 1.4 Người dùng đăng nhập vào hệ thống,chọn sản phẩm

Trang 16

Hình 1.5 Khi muốn thử đồ,hình ảnh sản phẩm sẽ hiện lên trên camera như người dùng đang mặc đồ thật.Người dùng có thể thay đổi size,vị trí,màu sắc của sản phẩm trên

người sao cho hài lòng nhất.

Ứng dụng giúp người dùng gần như được thử đồ ngay tại nhà mà không cần trực tiếp racác cửa hàng.Người dùng sẽ chủ động hơn,tiết kiệm thơi gian hơn trong việc lựa chọn,thử cácsản phẩm.Sau khi thử sản phầm vừa ý,có thể yên tâm mua hàng online rất nhanh gọn và tiệnlợi.Đồng thời phía người bán hàng không mất mặt bằng để người mua thử sản phẩm,khôngmất công nhập nhiều size sản phẩm,lại có thể nhận đặt hàng nhanh chóng.Đây là ứng dụng rấthay cho cả người mua lần người bán

1.1.5 SpecTrek Light

Link Android : https://play.google.com/store/apps/details?id=com.spectrekking.light&hl=vi

Hình 1.6 Giao diện ứng dụng trên Android

Trang 17

Người chơi ban đầu được cung cấp 1 bản đồ chính là nơi người chơi đang ở Sử dụngGPS ,trò chơi xác định các vị trí các con ma ảo trên bản đồ,làm như đang có các con ma tồntại thật xung quanh khu vực người chơi đang ở vậy.Người chơi sau đó đi đến các điểm có con

1.1.6 AR Basketball:

Game chạy trên nền di động Android và IOS

Trò chơi không khác nhiều so với game 3D truyền thống,nhiềm vụ người chơi đơn giản

là hất bóng vào rổ.Mỗi cú ném chính xác sẽ được công thêm điểm

Điểm khác biệt đó là ứng dụng sử dụng camera sau của thiết bị để nhận diện tấmmarker, qua đó hiển thị lên 1 cái rổ,người chơi dùng ngón tay để hất bóng vào rổ.Trò chơimang lại cảm giác tương tác thật hơn nhiều so với các game 3D truyền thống, khi mà cảmtưởng chiếc rổ hiện lên trên chính mặt bàn của mình

Hình 1.7 Trò chơi sử dụng 1 tấm Marker để qua đó hiển thị 1 chiếc rổ ảo

Trang 18

Hình 1.8 Người chơi trượt tay trên màn hình để ném bóng vào chiếc rổ ảo này,mỗi cú

ném chính xác sẽ được tính điểm 1.1.7 AR magical battle:

Đây là 1 sản phẩm game trên Android

Link: http://appvn.com/android/details?id=com.fairylogic.game.ARMagicalBattle

Game thuộc dạng thủ trụ,trong bạn sẽ phải bắn hạ kẻ thù để bảo vệ thành trì củaminh,game còn có 1 số nâng cấp hộ người chơi như : mua lính,tăng skill,nâng cấp nhà v v.v Yêu cầu:Android2.2+

Bạn khởi động game và chĩa camera vào tấm hình tham chiếu AR Marker,mọi hình ảnh

sẽ hiện lên như tương tác ngoài đời thật vậy

Hình 1.9 Tấm Marker để chơi game,người chơi cần có tấm Marker này đặt ở môi

trường thực

Trang 19

Hình 1.10 Qua camera của ứng dụng,mọi vật thể 3D được dựng lên trên tấm Marker và

thay đổi góc độ độ lớn theo vị trí camera so với Marker.

Hình 1.11 Người chơi có thể tương tác với các mô hình 3D này như là chúng hiện hữu

trong môi trường thực

Game vận dụng công nghệ thực tại ảo,hiển thị các mô hình trên tấm Marker.Khi thayđổi vị trí thiết bị,góc nhìn các mô hình 3D căn cứ vào đó cũng thay đổi vị trí tọa độ theo,saocho ta có cảm giác như chúng đứng cố định trên tấm Marker.Kết hợp với đồ họa 3D đẹpmắt,Game cho người chơi cảm giác rất chân thực,là 1 trải nghiệm game 3D khá ấn tượng,chắcchắn sẽ thu hút hơn các game 3D đơn thuần

1.1.8 AR Concert with Miku

Trang 20

Hình 1.12 Người chơi có thể tự chụp 1 mặt phẳng để ứng dụng hiển thị trên đó

Quá trình tạo Marker:Đầu tiên người dùng chụp lại 1 mặt phẳng

Hình 1.13 Sau khi có mặt phẳng tham chiếu,ứng dụng sẽ dựng hình 3D lên chính mặt

phẳng đó

Trang 21

Ứng dụng sẽ căn cứ vào tấm Marker tự tạo này để hiển thị nhân vật

Hình 1.14 Nhân vật được dựng lên trên bất kỳ mặt phẳng nào người dùng muốn

Hiển thị được trên các mặt phẳng khác nhau,không bó hẹp trong phạm vi 1Marker ,người dùng cũng chủ động hơn khi không phải mang theo mình tấm Marker của nhàsản xuất mà có thể tạo ra Marker từ bất kì đâu.Thử tưởng tượng bạn có thể dùng ứng dụng,tạo

ra 1 vũ công ảo ở bất kì đâu,sẽ sống động hơn so với các thưởng thức ca nhạc trên video bìnhthường rất nhiều

1.1.9 Layar:

Homepage: https://www.layar.com/

Android:https://play.google.com/store/apps/details?id=com.layar

IOS: https://itunes.apple.com/us/app/layar-augmented-reality/id334404207?mt=8

Layar là ứng dụng chạy trên iOS, Android, BlackBerry and Google Glass

Layar là phần mềm android mua sắm và cung cấp nhiều thông tin giải trí, du lịch hấpdẫn và tiện ích nhất giựa trên công nghệ thực tại ảo Với Layar bạn sẽ được khám phá nhiềuđiều thú vị xung quanh cuộc sống của chúng ta,thưởng thức mọi thứ 1 cách trực quan và dễdàng hơn rất nhiều

Trang 22

Hình 1.15 Thông tin các địa điểm,các update được hiển thị lên chính môi trường thực

Hình 1.16 Trải nhiệm đọc báo bằng Layar khi thông tin sống động hơn bao giờ hết

Các chức năng chính của phần mềm Layar:xem tạp chí trở nên sống động hơn với chứcnăng xem video trực tiếp,dễ dàng mua sắm các mặt hàng cần thiết với danh sách các siêu thị,cửa hàng gần nhất,chia sẻ nhiều thông tin hữu ích thông qua các trang web và mạng xã hộikhác nhau,tìm các phương tiện công cộng như: máy ATM , nhà hàng, quán ăn, công viên.tìmkiếm logo và nhà sản xuất trên các tạp chí, báo và các tài liệu khác,hỗ trợ thêm chức năngquét mã vạch QR - mã vạch sản xuất các hàng hóa,cập nhật các địa điểm tham quan bằngcách trailer, tìm hiểu thông tin, bình luận, đánh giá

Một chức năng đặc biệt của phần mềm Layar đó là search layar Khi bạn dùng chứcnăng này, bạn sẽ tìm kiếm dễ dàng các địa điểm mua sắm, vui chơi, giải trí hấp dẫn, các rạpchiếu phim, các quán ăn, đồ uống rất gần vị trí của bạn Ứng dụng Layar có thể giúp bạn đặtphòng nhà nghỉ trước, đặt vé xem phim trước, chỉ đường hướng dẫn các bạn đến các địa điểmnhanh chóng và thuận tiện nhất

Trang 23

Đối với các doanh nghiệp,bên thứ 3,muốn sử dụng Layar như 1 phương tiện quảngcáo,hiển thị hình ảnh,video… lên sản phẩm của họ,Layar cung cấp cho họ bộ công cụ để tựthiết kế marker cho riêng mình:

Hình 1.17 Giao diện thiết kế marker của Layar:người dùng có thể chọn ảnh ,text làm Marker,tùy chọn các tiện ích mở link,chơi video… trên tấm marker này.

Rõ ràng Layar là 1 sản phẩm đã mang đến cho người dùng 1 tập công cụ để khai thác thế giới với thông tin và màu sắc phong phú và đầy đủ hơn rất nhiều bình thường.Layar cũng biến mình thành 1 kênh quảng cáo cực kỳ hấp dẫn thu hút nhiều đối tác khi cung cấp cho các doanh nghiệp phương án giới thiệu sản phẩm của họ 1 cách chân thực trên các đồ vật thông thường.Các doanh nghiệp đối tác với Layar,chỉ sau vài thao tác sẽ được quảng cáo sản phẩm của họ,thậm chí là miễn phí,một cách rất độc đáo và hấp dẫn so với cách quảng cáo trên

truyền hình hay báo chí

1.3 Đánh giá :

Các ứng dụng augmented reality đã có mặt ở rất nhiều các mặt cuộc sống,thông tin trởnên trực quan,giải trí trở nên sống động,các sản phẩm công nghệ trở nên có tính tương tác caohơn

Trải nghiệm augmented reality mang lại cho người dùng là rất tích cực.Khoảng cáchgiữa thực tế và công nghệ trở nên gần lại.So với các ứng dụng truyền thống,khi mà mọi thứchỉ hiển thị trên màn hình thiết bị và không thể tương tác với môi trường,các ứng dụngaugmented reality dù là đơn giản nhưng mang lại cảm giác thực tế và thu hút hơn nhiều cácsản phẩm truyền thống.Chính trải nghiệm mới mẻ này là điểm khác biệt lôi kéo được sự chú ýcủa người dùng đến các sản phẩm augmented reality

Các sản phẩm augmented reality muốn mang lại tương tác chân thực nhất trong môitrường thường xoay quanh các mô hình 3D.Việc xây dựng sản phẩm 3D áp dụng công nghệaugmented reality là vấn đề đáng được nghiên cứu và phát triển

Trang 24

1.4 Ý tưởng làm game 3D tương tác ảo:

Áp dụng công nghê augmented reality cùng với các mô hình 3D sẽ mang lại trải nghiệmchân thực cho người dùng.Chúng ta sẽ nghiên cứu cách tạo ra 1 sản phẩm game 3D mà trong

đó người chơi có thể sử dụng vật thể thực tương tác với các đối tượng 3D ảo

Các ứng dụng trên chủ yếu sử dụng tấm Marker có sẵn,các tấm Marker cũng chủ yếuđịnh vị những đối tượng tĩnh-Điều này giúp tấm Marker được nhận diện chính xác hơn,tuynhiên lại giảm tính tương tác khi mọi mô hình 3D có vẻ chỉ chuyển động cứng trên 1 mặtphẳng cố định

Ta sẽ phát triển 1 game với tấm Marker là vật thể động,tuy khó khăn hơn trong việcnhận dạng,nhưng sẽ tăng tính tương tác cho sản phẩm

Đồng thời sẽ sử dụng công nghệ Marker tự định nghĩa để thuận tiện hơn cho ngườidùng

Các sản phẩm trên đề cập chưa mạnh về tính tương tác giữa nhiều người dùng vớinhau,chỉ mang tính trải nghiệm cá nhân.Ta sẽ áp dụng chế độ multiplayer vào sản phẩm gamenày để 2 người chơi có thể tương tác với nhau

Các sản phẩm trên có những sản phẩm phải chạy trên thiết bị PC hoặc những thiết bị tạicửa hàng khá bất tiện,ta sẽ hướng đến phát triển các sản phẩm trên nền tảng di động,nền tảngAndroid và IOS

Ý tưởng là tạo ra 1 sản phẩm game có thể vận dụng công nghệ augmented reality,khôngnhững người chơi tương tác được với máy mà người chơi còn có thể tương tác với người chơikhác:1 sản phẩm game 3D multiplayer áp dụng khả năng nhận diện đồ vật của công nghệaugmented reality

Ở đây ta sẽ xây dựng game đánh bóng bàn,người chơi sử dụng camera của thiết bị.Khicamera được bật lên,1 bàn chơi ảo cùng 1 bóng bàn ảo sẽ hiện lên.Người chơi cầm 1 tấmmarker đứng trước camera,camera sẽ nhận diện tấm marker để dựng hình vợt bóng bàn.Ngườichơi sẽ cầm tấm marker để đánh bóng bàn.Người chơi game sẽ chơi qua mạng với người chơikhác,đánh bóng bàn 1 đấu 1,luật chơi như môn bóng bàn truyền thống

Trang 25

Hình 1.18 Ý tưởng game

SpecTrek Light

Star Walk

Thử đồ

AR Basketball

AR magical battle

AR Concert with Miku

Trang 26

CHƯƠNG 2: PHƯƠNG PHÁP VÀ HỆ THỐNG GAME

Nội dung của chương này gồm có:

☞ Giới thiệu các công nghệ sử dụng

☞ Phân tích và thiết kế hệ thống

☞ Phát triển hệ thống

Trang 27

3.1 Các công nghệ sử dụng

3.1.1 Engine Unity:

3.1.1.1 Giới thiệu về Game Engine:

Game Engine là một phần mềm được viết cho mục đích thiết kế và phát triển videogame Chức năng cốt lõi của Game Engine phần lớn nằm trong công cụ dựng hình (kết xuất

đồ họa) cho các hình ảnh 2 chiều (2D) hay 3 chiều (3D), công cụ vật lý (hay công cụ tính toán

và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động (Animation), trí tuệ nhân tạo,phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị, và kết nối mạng

Lý do chọn Engine Unity:

Hiện nay, chúng ta có rất nhiều Engine như: Cry Engine, Unreal Engine, SourceEngine, ID Tech Engine, Unity Engine và những cái tên khác như RenderWare Engine, GameBryo Engine và các Engnie mã nguồn mở: Orge Engine, Panda3D Engnine, jMonkeyEngine, Trong đó Source Engine và ID Tech Engine là các lão làng trong ngành côngnghiệp Game, Cry Engine và Unreal Engine là hai tân binh đáng chú ý nhất do những thànhcông đáng kể của họ trong những năm gần đây Về mặt đồ họa, Cry Engine được đánh giá cao

và hầu như không có đối thủ, hình ảnh 3D của Cry Engine cho chất lượng chân thực minhchứng qua các tựa game như Far Cry hay Crysis,

Hình 2.19 Hình ảnh game Far Cry được xây dựng trên Cry Engine

Tuy nhiên, Cry Engine rất kén chọn vì chỉ những máy cấu hình thật cao mới có thể đápứng được Bên cạnh đó, Unreal Engine cũng cho chất lượng đồ họa không kém, mà không đòihỏi cấu hình quá cao Các hệ máy laptop mua cách đây 4-5 năm trở lại đa số là dùng được.Các Engnie khác được kể tên ở trên thay nhau vị trí top 10 sau Cry Engnine và UnrealEngine

Nếu có tiền, có nhiều kinh nghiệm và có một nhóm làm việc chuyên nghiệp, lúc đó

ta mới nên nghĩ tới Cry Engine hay Unreal Engnie Còn nếu muốn sử dụng mã nguồn mởcho tiết kiệm thì ta phải cần nhiều thời gian và sức lực hơn để tìm hiểu Orge Engine hayPanda Engine, Vì thế lựa chọn sáng giá nhất cho các tân binh trong lĩnh vực làm game, có ít

Trang 28

kinh nghiệm, ít tiền, nhưng không muốn phải bỏ quá nhiều công sức tìm hiểu lại những gìngười khác đã làm chính là Unity Engine.

Về mặt đồ họa, Unity không so sánh được với Cry Engine nhưng đủ làm hài lòngnhững người dùng phổ thông Unity không đòi hỏi máy cấu hình cao, thêm nữa Unity đặc biệtchú ý đến sự tiện dụng Việc làm game, làm phim sử dụng Unity Engine so với các Enginecòn lại dễ dàng hơn rất nhiều vì đối tượng mà Unity hướng đến chủ yếu là những người dùngkhông chuyên sâu Chúng ta có thể kéo thả, kế thừa, viết Script, tổ chức các thành phần,import – export các tài nguyên (model, texture, mesh, ) đóng gói các đối tượng hoàn chỉnh

và chia sẻ nó một cách dễ dàng với Unity

Cuối cùng là về vấn đề thương mại, Unity cung cấp bản miễn phí cho các ngườidùng cá nhân và các công ty có thu nhập dưới 100.000 USD Chúng ta có thể tạo các ứngdụng, các mô hình, các Game cho riêng mình hoặc bán nó trên Unity Store mà không lo vềvấn đề vi phạm bản quyền Nếu muốn bán sản phẩm của mình trên Unity Store thì chúng taphải trả 30% hoa hồng Nếu có nhu cầu cao hơn, sử dụng bản Pro, chúng ta sẽ phải trả 1.500USD, tương đương khoảng 32 triệu VNĐ với rất nhiều tính năng cao cấp và tiện dụng

3.1.1.2 Engine Unity

Unity là một 3D Game Engine, là một công cụ thiết kế Game dành cho PC, Mac vànhiều hệ máy di động khác

Giới thiệu chung

Hình 2.20 Logo của Engine Unity

+ Nhà phát triển: Unity Technologies

+ Phiên bản mới nhất: 4.5

+ Được viết bởi ngôn ngữ C++

+ Phát triển Game cho các hệ điều hành: Windows, Mac OS X (tạo và đónggói), Nintendo Wii, iPhone/iPad, Xbox 360, Android, Sony PlayStation 3 (chỉ đóng gói; cầngiấy phép bổ sung cho từng nền tảng)

+ Giấy phép: Độc quyền

+ Website: www.unity3d.com

Unity được sự hỗ trợ của Just-In-Time Compilation (JIT), sử dụng thư viện mãnguồn mở C++ Mono Bằng việc sử dụng JIT, những Engine như Unity có thể tận dụng lợithế của tốc độ biên dịch Ngoài thư viện Mono, Unity cũng tận dụng chức năng của những thưviện phần mềm khác vào chức năng của nó, như Engine mô phỏng vật lý PhysicX của Nvidia,OpenGL và DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm thanh Tất cả các thư việnnày được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity, vì vậychúng ta không cần phải lo lắng về việc học thế nào để sử dụng chúng một cách riêng lẻ

Trang 29

Unity có một cộng đồng người dùng rất lớn mạnh, luôn chia sẻ những Plugins, công

cụ của họ dưới phần mềm gói bổ sung

S l ơ lược sự hình thành và phát triển của Unity ược sự hình thành và phát triển của Unity ự hình thành và phát triển của Unity c s hình thành và phát tri n c a Unity ển của Unity ủa Unity

Hình thành:

Phần lõi của Unity ban đầu được viết bởi Joachim Ante vào năm 2001 Sau đó công tyđược hình thành vào năm 2005 và bắt đầu với phiên bản 1.0 Đến năm 2007, Unity được nânglên phiên bản 2.0 Unity bắt đầu hỗ trợ iPhone vào năm 2008 Vào tháng 6/2010, Unity chínhthức hỗ trợ Android và cho ra đời phiên bản 3.0 có hỗ trợ Android vào tháng 9/2010 Có thể

thấy tốc độ phát triển của Unity khá nhanh.

Giải thưởng:

Unity đã đoạt được nhiều giải lớn với những giải chính sau:

+ Năm 2006, Unity đạt "Best Use of Mac OS X Graphics" tại Apple's WWDC Đây làlần đầu tiên một công cụ phát triển game đạt được chất lượng do giải thưởng uy tín này đưa

ra

+ Năm 2009, Unity Technologies có tên trong "Top 5 công ty game của năm" doGamasutra tổ chức + Năm 2010, Unity đoạt giải Best Engine Finalist do Develop Magazinebình chọn, giải Technology Innovation Award của Wall Street Journal ở thể loại phần mềm

Khách hàng:

Unity được trên 250.000 người đăng ký sử dụng gồm Bigpoint, Cartoon Network,Coca-Cola, Disney, Electronic Arts, LEGO, Microsoft, NASA, Ubisoft, Warner Bros, cáchãng phim lớn nhỏ, các chuyên gia độc lập, sinh viên và những người đam mê

S nét v giao di n c a Unity ơ lược sự hình thành và phát triển của Unity ề giao diện của Unity ện của Unity ủa Unity

Giao diện Unity, giống như nhiều môi trường làm việc khác, layout có thể tùy chỉnh.Layout của Unity bao gồm nhiều tab khác nhau và có thể bật tắt Chúng ta hãy xem xét mộtcách bố trí giao diện Unity điển hình:

Hình 2.21 Giao diện Editor của Unity

Trang 30

Như hình trên chúng ta thấy có 5 khung khác nhau:

 Scene [1] – nơi xây dựng trò chơi

 Hierarchy [2] – danh sách các đối tượng trong một cảnh game

 Inspector [3] – màn hình cài đặt cho tài nguyên/đối tượng đang được chọn

 Game [4] – cửa sổ xem trước game, chỉ hoạt động ở chế độ chơi (khi nhấn

Play)

 Project [5] – danh sách các tài nguyên trong project, đóng vai trò như một thư viện

Cửa sổ Scene và Hierarchy:

Cửa sổ Scene là nơi chúng ta sẽ xây dựng toàn bộ các đối tượng trong game Cửa sổcung cấp nhiều góc nhìn khác nhau, có thể nhìn dạng phối cảnh hoặc dạng song song Chúng

ta có thể kéo thả đối tượng trên cửa sổ này, di chuyển, xoay…

Hình 2.22 Thanh công cụ trên của sổ Scene

Cửa sổ Scene cũng kèm theo bốn nút điều khiển tiện lợi như hình trên Truy cập từ bànphím bằng cách sử dụng các phím Q, W, E, và R Các phím thực hiện các hoạt động sau đây:+ Công cụ bàn tay [Q]: công cụ này cho phép di chuyển trong cửa sổ Scene, xoay gócnhìn, phóng to, thu nhỏ góc nhìn

+ Công cụ di chuyển [W]: Công cụ này dùng để di chuyển một đối tượng

+ Công cụ xoay [E]: Công cụ này cho phép chúng ta xoay nhân vật theo một trục nào đótrong không gian

+ Công cụ tỷ lệ [R]: Công cụ này cho phép chúng ta tăng giảm tỷ lệ kích thước của đốitượng

Khi chọn một đối tượng trong cửa sổ Scene, đối tượng này sẽ được tự động chọn trongcửa sổ Hierarchy và ngược lại

Hình 2.23 Chọn đối tượng trong Unity

Inspector:

Inspector sẽ hiển thị tất cả thông tin, các thành phần trong đối tượng game đang chọn,

và cho phép điều chỉnh các biến của các thành phần này Có thể xem cửa sổ này như cửa sổProperties khi design giao diện Winform trên Visual Studio

Trang 31

Hình 2.24.Cửa sổ Inspector hiển thị thông tin một đối tượng

Cửa sổ Game:

Cửa sổ này sẽ hiển thị những gì có trong cửa sổ Scene và sẽ hoạt động khi nhấn nútPlay Trong cửa sổ này chúng ta có thể chọn các kích cỡ hiển thị khác nhau để build cho cácloại máy khác nhau Chúng ta có thể chơi thử game trên cửa sổ này khi đã nhấn nút Play Lưu

ý rằng khi cửa sổ này hoạt động rồi thì mọi chỉnh sửa trên cửa sổ Scene và cài đặt cho các đốitượng chỉ là tạm thời và khi nhấn nút Stop, cửa sổ này về lại trạng thái tĩnh thì mọi chỉnh sửatrước đó là không còn

Cửa sổ Project:

Cửa sổ Project thể hiện nội dung bên trong thư mục Assets của project chúng ta Khithêm tài nguyên vào thư mục Assets ngay lập tức chúng sẽ tự động được cập nhập vào projectUnity của chúng ta

Các đ c đi m và tính năng c a Unity ặc điểm và tính năng của Unity ển của Unity ủa Unity

Rendering (kết xuất hình ảnh)

Giống như tất cả các Engine hoàn chỉnh khác, Unity hỗ trợ đầy đủ khả năng kết xuấthình ảnh cùng nhiều hỗ trợ cho phép áp dụng các công nghệ phổ biến trong lĩnh vực 3D nhằmcải thiện chất lượng hình ảnh

Một số hỗ trợ:

- Unity cung cấp 100 Shaders với đầy đủ các loại phổ biến nhất

- Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer

- Hỗ trợ LOD

Lighting (Ánh sáng)

Unity cung cấp nhiều giải pháp đa dạng cho phép chúng ta áp dụng ánh sáng một cáchtốt nhất vào môi trường trong trò chơi với nhiều loại nguồn sáng như ánh sáng có hướng(Directional Light), ánh sáng điểm (Point Light) ,

Một số công nghệ và kỹ thuật về ánh sáng được Unity hỗ trợ: Lingtmapping, RealtimeShadows, hiệu ứng Sunshafts và Lens Flares

Terrains (địa hình)

Trang 32

Unity cung cấp một công cụ rất tốt khả năng này với tên gọi là Terrains Tools cho phépchúng ta thiết kế địa hình với các công cụ vẽ dưới dạng Brush có nhiều thông số tùy chỉnh đểtạo và lát Texture cho địa hình Cùng với Terrains Tools là Tree Creator, một công cụ mạnh

mẽ cho phép chúng ta tạo ra cây cối với hình dạng, kích thước và kiểu cách đa dạng

Substances (Texture thông minh)

Substances cho phép các trò chơi và các ứng dụng sáng tạo sử dụng tất cả các sức mạnhcủa nó để cung cấp những trải nghiệm độc đáo cho người dùng cuối:

- Được tạo ra ngay trong khi game được tạo

- Cung cấp nội dung tải về nhỏ

- Sử dụng sức mạnh của các textures động tạo ra các hiệu ứng hình ảnh độc đáo

Substances được xử lý giống như các bitmap khác trong Unity: chỉ cần kéo và thả nótrong project là đã có thể sẵn sàng sử dụng ngay Substances có kích thước tự nhiên nhỏ hơnbitmap nên khi sử dụng Substances thay cho bitmap sẽ làm giảm đáng kể kích thước củagame cuối cùng

Physics (Vật lý)

PhysX là một Engine mô phỏng và xử lý vật lý cực kì mạnh mẽ được phát triển bởi nhàsản xuất card đồ họa hàng đầu thế giới NVIDIA Unity đã tích hợp Engine này vào để đảmnhận mọi vấn đề về vật lý

Pathfinding (Tìm đường)

Đây là tính năng mới mẻ từ phiên bản Unity 3.5 Với các phiên bản trước, để phát triểnkhả năng tìm đường cho trí thông minh nhân tạo (AI), nhà phát triển phải hoàn toàn tự xâydựng cho mình một hệ thống tìm đường riêng biệt

Audio (Âm thanh)

Unity tích hợp FMOD – công cụ âm thanh thuộc hàng mạnh nhất hiện nay, hỗ trợ chúng

ta nhập và sử dụng nhiều định dạng tập tin âm thanh khác nhau

Programming (Lập trình)

Unity được viết trên nền C++, tuy nhiên để sử dụng Unity, người dùng chỉ cần biết 1trong 3 ngôn ngữ là C#, JavaScript, hoặc Boo, với JavaScript là đơn giản và dễ sử dụng nhất,tuy nhiên với 1 số hạn chế nên C# được đa số chuyên gia ưa chuộng hơn, ngôn ngữ Boo đượccho là tốt nhất, tuy nhiên do ngôn ngữ được rất ít người sử dụng, nên gần như không bao giờthấy tài liệu hoặc code liên quan đến Unity được viết bằng ngôn ngữ Boo

Networking

Networking cho phép chúng ta tạo ra các trò chơi trực tuyến (online), hỗ trợ đầy đủ giúp

ta tạo nên các khía cạnh phổ biến trong Game online như hệ thống điểm kinh nghiệm, chat vàtương tác với thời gian thực,

Tài nguyên (model, âm thanh, hình ảnh, ) được tải vào trong Unity và tự động cậpnhật nếu tài nguyên có sự thay đổi Unity hỗ trợ các kiểu định dạng từ 3DS Max, Maya,Blender, Cinema 4D và Cheetah3D

Trang 33

Các khái ni m c b n trong Unity ện của Unity ơ lược sự hình thành và phát triển của Unity ản trong Unity

Asset:

Đây là kho tài nguyên cho việc xây dựng game trong một project của Unity Các tàinguyên này có thể là hình ảnh, âm thanh, hoặc một mô hình 3D có sẵn Unity sẽ tham chiếuđến các tập tin chúng ta sẽ sử dụng để tạo ra các tài nguyên cho trò chơi Đây là lý do tại saotrong bất kỳ thư mục chứa project sử dụng Unity thì tất cả các tập tin tài nguyên phải đượclưu trữ trong một thư mục con tên là Assets

Hình 2.25 Asset trong Unity

Scene

Trong Unity, chúng ta có thể xem Scenes là các màn chơi, cấp độ chơi riêng lẻ, hoặccác vùng của nội dung trò chơi Ví dụ như Main menu, Options, About …

Bằng cách xây dựng trò chơi với nhiều cảnh, chúng ta sẽ có thể phân phối thời gian tải

và thử nghiệm các phần khác nhau của trò chơi riêng lẻ một cách nhanh chóng và chính xác

Trang 34

Hình 2.26.Các scene của Unity

Game Object

Khi một tài nguyên được sử dụng trong một scene, khi đó chúng ta có thể coi tài nguyênnày là một “Game Object” mới Mỗi GameObject phải chứa ít nhất một thành phần, đó làthành phần “Transform” Transform chứa các phép để biến đổi góc quay, tỷ lệ hay tịnh tiếncủa đối tượng

Hình 2.27Kéo tài nguyên vào Scene để sử dụng

Component

Component là các thành phần trong một Game Object của Unity Bằng cách đính kèmcác thành phần vào cho một đối tượng, chúng ta có thể áp dụng ngay các phần mới của game

Trang 35

engine vào đối tượng Thông thường các thành phần này được Unity xây dựng sẵn như ánhsáng, camera, particle, hiệu ứng vật lý…

Hình 2.28.Các thành phần trong đối tượng Camera

Script

Script là thành phần quan trọng nhất trong Unity, có thể xem scripts như là linh hồn củagame Chúng ta có thể viết kịch bản cho game bằng C#, Java Scripts, hoặc Boo (một dẫn xuấtcủa ngôn ngữ Python) Theo nhiều người đã sử dụng Unity thì code bằng C# sẽ giúp gamechạy nhanh hơn và giúp kiểm soát code tốt hơn do tất cả các biến phải được khai báo rõ ràng.Mặt khác ngôn ngữ C# rất tiện dụng để lập trình, nên em dùng ngôn ngữ C# để viết kịch bản

cho game Mỗi file script C# là một class bắt buộc kế thừa từ lớp MonoBehaviour, có tên

class phải trùng với tên file script

Hình 2.29.Cách tạo file script mới

Trang 36

Một đoạn script muốn thực thi được thì nó phải được gắn vào một đối tượng

Hình 2.30 Một file script đang gắn vào đối tượng

Prefab

Hãy tưởng tượng Prefab là một cái thùng rỗng, mà bên trong nó chúng ta có thể chứađựng các thành phần hay đối tượng khác nhau, chúng ta có thể viết kịch bản cho hành độngcủa Prefab (khởi tạo, di chuyển, hay hủy đối tượng) Chúng ta có thể sử dụng đối tượng nàynhiều lần trong trò chơi, và cũng có thể sử dụng lại cho project khác Prefab cho phép chúng

ta lưu trữ cá đối tượng, toàn bộ thành phần bên trong và cấu hình hiện tại

Trang 37

Ki n trúc Engine Unity ến trúc Engine Unity

Kiến trúc tổng quan:

Engine Unity hỗ trợ cho chúng ta UnityAPI để viết script game UnityAPI là API lậptrình game trong Unity rất mạnh UnityAPI chứa các đối tượng và phương thức hỗ trợ hầu hếtcác đối tượng và các loại thành phần trong Unity Trong một scene thường có nhiều đối tượnggame Mỗi đối tượng này có thể có hoặc không có đoạn script nào gắn lên đó Nếu muốn gắn

script vào đối tượng, ta bắt buộc phải kế thừa class đó từ lớp MonoBehaviour của UnityAPI

và tên class phải trùng với tên file script Mỗi script khi gắn lên đối tượng game đều được đốitượng game xem như một thành phần bên trong và được cấp phát vùng nhớ khi chạy game

Hình 2.32 Tổng quan kiến trúc Unity

Bên trong UnityAPI chứa rất nhiều lớp hỗ trợ lập trình game, trong đó có một số lớpquan trọng như :

MonoBehaviour: tất cả các script muốn gắn vào một đối tượng game bắt buộc phải kế

thừa từ lớp này

GameObject: lớp cha của tất cả các thực thể trong scene.

Component: lớp cha của tất cả các thành phần có thể gắn vào đối tượng.

o Transform: giúp thay đổi vị trí, xoay, biến đổi tỉ lệ mô hình.

Input: hỗ trợ lập trình với chuột, cảm ứng đa điểm, cảm biến gia tốc.

Camera: giúp lập trình camera.

Light: giúp tạo ánh sáng trong game.

Projector: giúp chiếu texture lên bề mặt vật thể.

Trang 38

ParticleEmitter: hỗ trợ tạo các hiệu ứng particle đẹp mắt.

Audio: hỗ trợ lập trình với âm thanh.

Animation: chạy chuyển động của mô hình nhân vật.

Rigidbody: giúp tạo hiệu ứng vật lý liên quan đến trọng lực như bóng nẩy, lăn,

CharacterController: giúp điều khiển nhân vật di chuyển theo độ cao địa hình.

Collider: hỗ trợ lập trình va chạm giữa các vật thể.

GUI: giúp lập trình giao diện người dùng trên Unity.

Chu kỳ sống của thành phần Script gắn trên đối tượng Game:

Chu kỳ sống của một thành phần script được tính kể từ khi scene được chạy cho đếnlúc scene bị tắt hoặc chuyển sang scene khác Trong script của Unity có 1 số chức năng đượcgọi theo thứ tự để thực thi lệnh:

 Reset:được gọi để khởi tạo các thuộc tính của script khi nó lần đầu tiên được gắn vào đối tượng và khi lệnh Reset được sử dụng

 Trong lúc khởi tạo:

bắt đầu và cũng ngay sau khi một prefab được khởi tạo (Nếu một GameObject không được active trong quá trình khởi tạo, Awake không được gọi cho đến khi

nó được active, hoặc một chức năng trong bất kỳ script gắn liền với nó được gọi)

 OnEnable: (chỉ được gọi là nếu các đối tượng đang active): Chức năng này chỉ được gọi sau khi đối tượng được kích hoạt Diễn ra khi một thể hiện

MonoBehaviour được tạo ra, chẳng hạn như khi 1level được nạp hoặc một

GameObject với các thành phần script được khởi tạo

Trước khi frame đầu tiên update:

 Start: được gọi trước khi cập nhật khung hình đầu tiên chỉ khi các scriptđược kích hoạt

thể được gọi nhiều lần mỗi khung hình nếu tỷ lệ khung hình thấp và cũng có thể không được gọi tại mỗi khung hình nếu tỉ lệ khung hình cao.Tất cả các tính toán vật lý và cập nhật xảy ra ngay lập tức nên đặt trong FixedUpdate Khi áp dụng tính toán chuyển động bên trong FixedUpdate, bạn không cần phải nhân giá trị của bạn với Time.deltaTime(Thời gian dựng khung hình) Điều này là do

FixedUpdate được gọi theo 1 chu kì thời gian cố định

lực chính để cập nhật khung hình

Update đã hoàn tất Bất kỳ tính toán được thực hiện tại Update sẽ hoàn tất khi bắt đầu LateUpdate

sự kiện GUI Sự kiện Layout và repaint được xử lý đầu tiên, theo sau là sự kiện bàn phím / chuột cho mỗi sự kiện đầu vào

Trang 39

 OnDisable:Được gọi ngay trước khi script bị vô hiệu(Disable).

 OnDestroy:Được gọi ngay trước khi script bị Destroy

Tùy theo trạng thái của scene mà sự kiện tương ứng sẽ được gọi

Hình 2.33 Chu kỳ sống của thành phần script

Trang 40

3.1.1.3 Plugin NGUI củaUnity:

Unity có riêng bộ GUI (Graphical User Interface) để thiết kế các Button,Label với khảnăng tùy biến ở mức khá Tuy nhiên khả năng tương thích đa màn hình trên các thiết bị cầmtay cũng như khả năng thiết kế hiệu ứng động là rất kém

Hình 2.34 GUI thiết kế từ trình mặc định của Unity

Giải pháp thường là sử dụng chính các GameObject để làm giao diện người dùng đểthuận lợi hơn trong việc scale các đối tượng cho phù hợp các kích cỡ màn hình,cũng như dễdàng tạo hiệu ứng Animation cho các đối tượng này.Ngoài ra cũng có thể sử dụng các Plugincho Unity chuyên về thiết kế giao diện người dùng.Một trong số đó là NGUI.NGUI cũng xâydựng GUI từ các GameObject,nhưng được quản lý chuyên nghiệp hơn

Ngày đăng: 23/07/2015, 09:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w