Tải bản đầy đủ (.doc) (22 trang)

báo cáo thực tập lập trình GAME tương tác bằng UNITY và lidar

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 22 trang )

1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

LẬP TRÌNH GAME TƯƠNG TÁC BẰNG
UNITY và Lidar

Công ty thực tập

: First Interactive

Người phụ trách

: Lê Phương Khanh

Thực tập sinh

: Hồ Nguyễn Minh Triết

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


2

TP. Hồ Chí Minh, tháng 2 năm 2020

Lập trình game tương tác bằng Unity


Hồ Nguyễn Minh Triết


3

LỜI MỞ ĐẦU

Ngày nay, ngành công nghiệp game là một bộ phận không thể thiếu của ngành công
nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành game đã và đang là nhân tố
kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp game non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hịa nhập với những cơng ty
hàng đầu về cơng nghệ trên thế giới. Vì thế các loại hình game mới đã xuất hiện, cụ thể là game
tương tác sử dụng công nghệ cảm biến, vừa mang tính giải trí, vừa hội nhập cơng nghệ tân tiến
của thế giới.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm game trong một môi trường chuyên nghiệp, em có dự định là sẽ thực
tập trong hè. Vì vậy, em quyết định chọn FIRST INTERACTIVE TECHNOLOGY - một môi
trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


4

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty FIRST INTERACTIVE TECHNOLOGY đã tạo điều
kiện cho em có cơ hội được thực tập tại công ty.

Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một game
tương tác. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng sức
để hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Lê Phương Khanh đã training Unity C#, công nghệ Lidar, hướng
dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong cơng việc, đến những khó khăn
việc làm quen với mơi trường mới.
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều
kiện em làm bài báo cáo này.
Hồ Nguyễn Minh Triết
<TpHCM, ngày tháng năm>

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


5

NHẬN XÉT CỦA KHOA

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


6

MỤC LỤC

MỤC LỤC.......................................................................................................................... 1
Chương 1: Giới thiệu công ty thực tập..........................................................................2
1.
Giới thiệu về công ty First.......................................................................................2
2.
Sản phẩm của công ty..............................................................................................2
Chương 2: Nội dung thực tập.........................................................................................3
1.
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty...........................................3
2.
Nghiên cứu kỹ thuật................................................................................................3
3.
Thực hiện project....................................................................................................7

4.
Lịch làm việc...........................................................................................................7
Chương 3: Chi tiết về project.........................................................................................9
1.
Giới thiệu về Game.................................................................................................9
2.
Thực hiện............................................................................................................... 11
3.
Kế hoạch................................................................................................................11
TÀI LIỆU THAM KHẢO..............................................................................................13
TỔNG KẾT....................................................................................................................14

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


7

Chương 1: Giới thiêu công ty thực tập

1. Giới thiệu công ty First:
FIRST INTERACTIVE TECHNOLOGY (Gọi tắt là FIRST) là agency
Marketing tại Việt Nam.
FIRST đã có hơn 15 năm kinh nghiệm trong lĩnh vực Marketing với việc xây dựng
và thực hiện rất nhiều kế hoạch truyền thông, quảng cáo cho các tập đoàn, đối tác lớn
trong và ngoài nước.
Sau một thời gian phát triển, với mong muốn đo lường chính xác kết quả các chiến
dịch Marketing, FIRST đã đưa vào nghiên cứu và ứng dụng các sản phẩm công nghệ
nhằm phục vụ riêng thị trường Marketing.
FIRST tự tin mang đến các giải pháp Marketing hiện đại, hiệu quả về mặt dữ liệu

thực tế, lẫn chi phí thực hiện. Bởi vì FIRST sử dụng nguồn nhân lực bản địa phát triển
các sản phẩm song hành cùng quốc tế trong lĩnh vực Marketing, tạo nên ưu thế cạnh
tranh, tính đột phát và thấu hiểu người tiêu dùng.
Đội ngũ nhân sự FIRST với hơn 50 cộng sự, thuộc các phòng: Sáng Tạo, Event,
Activation, Technology, R&D và Planner Strategy - đã có kinh nghiệm làm việc tại nhiều
Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


8

công ty đa quốc gia tại Singapore, Israel, Đức… cùng sự tư vấn của các giáo sư và cộng
tác của các bạn sinh viên thuộc TOP tại các trường đại học danh giá.
First tự hào vì đã xây dựng thành cơng một mơi trường văn hóa đặc trưng, tinh
thần làm việc hợp nhất và quan trọng hơn hết là cùng khách hàng tạo nên cộng đồng
Marketing hiện đại, hiệu quả, dẫn đầu xu hướng.
Trong 2 năm 2017 và 2018, công ty đã ra mắt các sản phẩm sử dụng những công
nghệ hiện đại nhất để phục vụ cho các chiến dịch Marketing như: Game AR, Game tương
tác Kinect, Gương chụp hình- Funkymir, Bộ chụp hình tách nền - Portable studio, Thiết
bị bảo vệ trẻ em - Kid Protection, Hệ thống quản lý dữ liệu và thay đổi nội dung trình
chiếu từ xa- Neural Display, Thiết bị chỉ đường trong tòa nhà- Way Finding…
Tất cả đã và đang nỗ lực từng ngày, để mang đến những giải pháp hiện đại nhất,
tốt nhất đến khách hàng. Và xây dựng một cộng đồng Marketing trẻ, năng động, đủ sức
cạnh tranh với thị trường quốc tế.
2. Sản phẩm của công ty
First không những cung cấp các giải pháp cộng nghệ phục vụ marketing, mà
còn là đơn vị thực hiện rất nhiều sự kiện, activation và đưa ra chiến lược truyền
thông cho rất nhiều thương hiệu trong và ngoài nước.
- Portable Studio
- Interactive Game: AR,VR, IOT

- Smart Showcase
- Wayfinding.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


9

Chương 2: Nội dung thực tập
Đợt thực tập em chủ yếu học phát triển một phần mềm, cụ thể ở đây là game trên
Unity3D kết hợp với công nghệ cảm biến Lidar.
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian : 4 tuần
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển
(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của
cơng ty .
Ngồi ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công
việc…
Kết quả : Hiểu thêm về công ty First, quá trình thành lập và phát triển. Có thêm các kỹ
năng về việc sử dụng email trong công việc, cách sử dụng các phần cứng kết nối với
Unity như Kinect, Lidar, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn.
2. Nghiên cứu kỹ thuật
2.1. Các công cụ làm việc
Thời gian : 2 tuần
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong q trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các cơng
cụ sẽ giúp ích cho trong công việc sau này. Một số phần mềm và trang web trong số

đó như Trello, Git, bitbucket - sử dụng trong làm việc nhóm, AdvanceIP – trình duyệt
IP để kết nối với Lidar. Unity3D – công cụ phát triển game, Resolume – phẩn mềm để
mapping và trình chiếu nội dung từ Unity qua máy chiếu.
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dung các IDE.
2.2. Tìm hiểu ngơn ngữ C# nâng cao
Thời gian : 2 tuần
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng
cho việc tối ưu trên Android.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính
như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình. Ngồi ra, thực tập sinh
cịn được hướng dẫn về cách thiết kế lớp cho các đối tượng game.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


10

-

Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu,
tránh rò rỉ bộ nhớ.
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả :

-

2.3.

Nâng cao kỹ năng lập trình với ngơn ngữ C#.
Có được những kiến thức quan trọng cho việc lập trình game sau này.
Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.

Lập trình Unity3D
Nội dung: Các kiến thức cơ bản về Unity3D để có thể làm ra một game đơn giản.
-

Khái niệm cơ bản về Unity.
Năm được các khái niệm cơ bản về môi trường của Unity trên Windows.
Ngồi ra, trainer cịn cung cấp cho thực tập sinh những khái niệm cơ bản trong
Unity như sử dụng inspector, hierarchy, import các packages, component, … để
tùy chỉnh cho game, là những khái niệm rất cơ bản và quan trọng trong lập trình
game Unity.

-

GameObject:
Là một object trong Unity, chứa các biến đặc trưng cho 1 object như name, tag, và
các hàm như Destroy(), SetActive(), GetComponent<>() để dễ dàng tùy chỉnh các
phần tử trong game.

-

Collider2D:

Sử dụng thư viện Physics của Unity, Component Collider2D cho phép 2
gameobject trong scene có thể va chạm hoặc tương tác với nhau, game sử dụng
Collider2D kết hợp với Raycast để nhận input từ tay người chơi tương tác với các
gameobject. Collider2D có nhiều dạng tương ứng với hình dạng của gameobject
như BoxCollider (hình vng, hình chữ nhật), CircleCollider (hình trịn),

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


11

PoligonCollider (hình đa giác). Ngồi ra cịn có một loạt các hàm OnTrigger(),
OnCollision() rất hữu dụng để xử lý va chạm.
-

Raycast:
Là một tia chiếu có thể tùy chỉnh điểm đầu và điểm cuối, được sử dụng để xác
định vị trí tương tác của tay người chơi.

-

Lidar:
Là bộ cảm biến sử dụng tia hồng ngoại để lấy thông tin của người chơi từ thế giới
thật. Thiết bị có 2 đầu, một đầu phát tia hồng ngoại và đầu còn lại thu tia phản xạ
lại từ thế giới thực, từ đó xác định được vị trí của người chơi.

-

Animator:

Một Component rất hữu dụng trong việc tạo animation mà Unity hỗ trợ.

Thực hiện :
-

-

Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành như tạo các gameobject, cho 2 gameobject va chạm, tắt
mở các game object, xử lý cách chuyển các scene trong Unity, cách cài đặt input
từ Lidar …
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

2.4.

Hiểu được những khái niệm cơ bản trong Unity.
Đã hoàn thành được một game đơn giản là chạm vào một gameobject thì nó biến
mất.

Phần mềm Resolume Arena 5:

Nội dung: kết nối Unity với Resolume, trình chiếu đa màn hình qua nhiều máy chiếu.
-

Sử dụng Resolume:
Tạo một composition mới, cho những background cần thiết vào một column
(những file hình hay video background cũng có thể cho vào Unity ln, nhưng sẽ

gây nặng game khơng cần thiết).

-

Kết nối với Unity:

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


12

o Import Plugins KlakSpout vào Unity: />o Sau đó Add component SpoutSender.cs vào MainCamera trong Unity.
o Nhấp tab Sources của Resolume -> Kéo file Spout vào trong một Column.
o Play Unity thì màn hình của Unity sẽ dc trình chiếu qua máy chiếu.
o Kết hợp nhiều màn hình Unity để kết nối với nhiều máy chiếu cùng lúc.
3. Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về C#, Unity, Lidar. Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp
dụng những kiến thức đã học để thực hiện một project game tương tác.
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc

Tuần

Cơng việc
-

1


2
-

4

-

Nhận xét của người
hướng dẫn

Tìm hiểu về cơng ty, Anh Vinh
cách tổ chức của
công ty.
Làm quen với các
công cụ làm việc
trong cơng ty.
Học cách trao đổi,
làm việc qua email.
Tìm hiểu ngơn ngữ Anh Lê Phương
lập trình C# nâng Khanh
cao

-

3

Người hướng dẫn

Mức
độ

hồn
thành

Tìm
hiểu
về Anh Lê Phương
Unity3D
Khanh
Thực hành một số
game cơ bản
Tìm
hiểu
Resolume

về Anh Phạm Văn Sĩ

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


13

-

5

6

7


8

Thực hành tạo một
video trình chiếu
trên Resolume.
- Kết nối Unity với
Resolume
Giai đoạn Alpha:
- Lên kế hoạch
- Viết Framework
- Tạo
các
lớp
GameOject
cần
thiết, import các
assets cần thiết cho
game.
- Sắp xếp vào scene
trên Unity.
- Add các component
cần thiết vào các
gameobject
Giai đoạn Alpha(tiếp):
- Viết các chức năng
nâng cao hơn.
- Tương tác với các
object.

Anh Lê Phương

Khanh

Anh Lê Phương
Khanh

Giai đoạn Beta:
Anh Lê Anh Tuấn
- Làm các animation
cần thiết.
- Báo cáo tiến độ với
leader để test game.
Giai đoạn Beta và giai Anh Lê Anh Tuấn
đoạn kết thúc, báo cáo :
- Kết
nối
với
Resolume.
- Fix bug, fix rị rì
vùng nhớ.
- Báo cáo cuối đợt
thực tập.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


14

Chương 3: Chi tiết về project


1. Giới thiệu về game
TƯƠNG TÁC CHUYỂN MÙA VÀ NHỮNG HIỆU ỨNG CỦA TỪNG MÙA.
Xuân – Hạ - Thu- Đông.
Nội dung game sẽ được chiếu lên tường là tổ hợp 4 bức tranh sinh động mơ tả
bốn mùa trong năm có ở Việt Nam, mùa xuân với mai vàng, cùng cánh đồng của
vụ lúa đông xuân ở miền nam, cảnh hoa đào ở phíá Bắc trong tiết trời lạnh giá.
Mùa hạ với những hàng cây hoa sao đặc trưng của Sài Gịn, lồi hoa gợi nhớ tuổi
học trò rất riêng biệt. Mùa thu với lá vàng rơi. Mùa đông lạnh lẽo trên rẻo cao ở
Tây Bắc.
1.1.

Quy tắc chung

Chạm vào icon mùa nào thì mùa đó sẽ xuất hiện layer đầu tiên và những icon như
cây, mây, đồi núi… để người chơi chạm vào và hoàn thiện bức tranh. Sau khi hồn
thiện bức tranh, thì các icon hiện tượng trong mùa xuất hiện để người chơi tương tác
trong mùa đó, ví dụ như mùa đơng có icon sấm sét, mưa…, mùa thu có icon lá rơi,
gió…, mùa mùa hạ có icon nắng, gió, mưa…Sau khi chạm icon hiện tượng nào thì
visual hiện tượng đó xuất hiện.
1.2.

Mùa Xn phía Nam: (hình minh hoạ bên dưới)

Cảnh đầu tiên: Layer đầu tiên mùa xuân xuất hiện, trong layer này sẽ có các
icon ruộng lúa, cành mai, mưa, sấm chớp, gió, Khi chạm vào icon ruộng thì
visual rng xuất hiện, chạm vào icon cành mai thì visual cành mai xuất
hiện, chạm vào sấm chớp thì visual sấm chớp xuất hiện. tất cả xuất hiện
ngẫu nhiên.
- Cảnh hai: phong cảnh đã có ruộng lúa và cành mai chưa có hoa, các icon
ruộng, cành mai biến mất, icon hoa nở xuất hiện thêm.

- Cảnh ba: sau khi người chơi hoàn thiện bức tranh mùa xuân thì các icon
ruộng lúa, cành mai, hoa nở biến mất, lúc này xuất hiện thêm các icon mùa
hạ, thu, đơng và mùa xn phía Bắc để người chơi có thể chuyển cảnh.
-

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


15

Hinh minh hoạ cảnh 1, 2, 3

1.3. Mùa Xuân phía Bắc: (theo hình minh hoạ bên dưới)
- Cảnh đầu tiên: có icon gió, mưa, cành cây.
- Cảnh hai: có icon mưa, hoa.
- Cảnh ba: có icon mưa, icon chim
- Cảnh bốn: có icon hoa rơi, mưa, xn phía Nam, hạ, thu và đơng

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


16

1.4. Mùa hạ: ( theo hình minh hoạ bên dưới)
- Cảnh 1: có icon cành cây, icon gió, sấm chớp, nền đất, con đường
- Cảnh 2: icon gió, sấm chớp, bụi cây, lá mọc.
- Cảnh 3: gió, sấm chớp, mưa, quả chị rơi (trong hình minh hoạ đang thiếu icon
mưa)

- Cảnh 4: gió sấm chớp, mưa, icon mùa xuân, mùa đơng, mùa thu xuất hiện
Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


17

1.5.

Mùa Thu: (theo hình minh hoạ bên dưới)

- Cảnh 1: có icon cành cây, nền đất, sấm chớp, gió, mưa, cây mọc
- Cảnh 2: có icon gió, mưa, sấm chớp, lá rơi
- Cảnh 3: gió, mưa, sấm chớp, mùa đơng, mùa xuân, mùa hạ

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


18

1.6. Mùa Đơng: (theo như hình minh hoạ)
- Cảnh 1: có icon mây, gió, ruộng bậc thang, cành cây, nền đất
- Cảnh 2: có icon mây, mưa, gió, hoa nở, chim, người
- Cảnh 3: có icon mưa, gió (hoa sẽ rơi), hoa nở, mùa xuân phía Bắc, mùa Xuân
phía Nam, mùa thu, mùa hè.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết



19

2. Thực hiện
-

Thực tập sinh: Hồ Nguyễn Minh Triết

Và sự giúp đỡ tận tình của team trainer Gameloft.

3. Kế hoạch
Giai đoạn Alpha:
-

-

Hồn thành chức năng của từng icon:
o Trơi từ trên xuống
o Tương tác thì chuyển cảnh, cây mọc, lá rơi,…
Làm các particle là rơi, hoa rơi
Xây dựng pattern, thứ tự xuất hiện và tương tác của các icon và các cảnh.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


20

Kết quả :
-


Các tính năng trên đã được thực hiện tốt.

Giai đoạn Beta:
-

Làm animation cho chim chóc và người, các background cây đung đưa, mây bay,


-

Báo cáo tiến độ hằng tuần cho lead designer để chỉnh sửa tốc độ rơi, số lượng của
icon, animation mượt chưa,…

-

Kết nối với Lidar và Resolume để test ngoài thế giới thực (cụ thể là dùng máy
chiếu lên tường và tương tác trên tường).

Kết quả : Đã hồn thành tồn bộ những tính năng trên, tuy nhiên chưa tối ưu.
Giai đoạn hồn thành:
-

Tối ưu hóa cách tương tác.

-

Được Lead Designer và trainer xác nhận hoàn thành dự án.

-


Nộp source code lên bitbucket.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


21

TÀI LIỆU THAM KHẢO

Assets:
Từ team artist của First.
Unity3D:
/>Lidar:
Source code và plugins Lidar của cơng ty.
Resolume:
/> />
Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết


22

TỔNG KẾT

Như vậy, chỉ trong vòng một tháng ngắn ngủi, em đã kịp hoàn thành một game tương tác
chạy trên nền tảng PC và được trình chiếu lên tường ở khu giải trí JP WORLD của Gigamall.
Game đã có khá đầy đủ các tính năng đã đề ra ban đầu. Game phát triển theo framework có tính
kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn.

Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer của First để em có thể hồn
thành game này. Cảm ơn thầy Nguyễn Hữu Thương đã giúp em hoàn thành bài báo cáo này.

Lập trình game tương tác bằng Unity
Hồ Nguyễn Minh Triết



×