THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Một phần của tài liệu Tổng quan về Unity Engine (Trang 26)

Trong quá trình thiết kế môi trường, chúng ta có thể chia làm 4 công đoạn cơ bản nối tiếp nhau là:

- Dựng hình – Modelling: Thiết kế mô hình 3D mô phỏng các đối tượng từ thực tế hoặc trí tưởng tượng (kịch bản, ý tưởng).

- Thiết kế địa hình (terrains): Ở bước này, chúng ta tạo ra địa hình với mục đích phản ánh “phần nền” của môi trường như đất, sa mạc các, đồi núi, … Nhằm mục đích cuối cùng là làm “nền” để có thểđặt các đối tượng khác lên. Việc thiết kế địa hình (terrains) khi phát triển một trò chơi bằng Unity có 2 lựa chọn là: dựng địa hình bằng một ứng dụng dựng hình như mọi mô hình 3D khác hoặc sử dụng công cụ thiết kếđịa hình của Unity.

- Phối cảnh: Nhập tất cả các mô hình 3D đã được thiết kế và xuất bởi phần mềm dựng hình 3D vào Unity. Thực hiện các thao tác kéo thả, tủy chỉnh để xác định vị trí, kích thước của các mô hình trong cảnh.

Trang 27 CHƯƠNG 4. THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Hình 4.4. Môi trường của một cảnh trong demo.

- Áp dụng các hiệu ứng: Thiết kế và áp dụng các hiệu ứng thành phần của môi trường như ánh sáng, lửa, nước, khó bụi, … sao cho phù hợp với kịch bản bằng các hệ thống bức xạ hạt (Particles system) hay các hiệu ứng hình ảnh (Image effects) (Particles system và Image effects sẽ được đề cập cụ thể trong chương 3 - Hiệu ứng).

Việc thiết kế môi trường có thể ví von như việc xây nhà, trồng cây khi công việc chủ yếu của chúng ta là tạo ra các mô hình từ các phần mềm hỗ trợ và bố cục vị trí của chúng trong Unity.

4.2.2. Thiết kếđịa hình (Terrains)

Nhưđã được đề cập, việc thiết kếđịa hình khi phát triển Game với Unity sẽ cho ta 2 giải pháp lựa chọn là sử dụng Unity hoặc Modelling như các mô hình 3D khác.

Việc dựng hình cho địa hình như các mô hình khác là một công việc khá khó khăn và phức tạp bởi tính chất không đồng nhất vềđơn vị kích thước trong Unity với các phần mềm dựng hình 3D. Việc thiết kế các địa hình rộng lớn và phức tạp trong các

phần mềm dựng hình 3D rất khó kiểm soát, đồng thời các thao tác nhập xuất và chỉnh sửa địa hình sau khi đã nhập vào Unity sẽ trải qua nhiều công đoạn phức tạp gây mất thời gian và tạo ra nhiều rủi ro. Lựa chọn này thường được ưu tiên với những địa hình có các tính chất như diện thích nhỏ và ít phức tạp với mục đích cuối cùng là nhằm tối ưu hóa về mặt đồ họa của trò chơi.

Lựa chọn thứ 2 – sử dụng công cụ xây dựng địa hình được cung cấp sẵn của Unity là một lựa chọn cho hầu hết các dự án với lí do nhanh chóng, hiệu quả mà không phức tạp.

Terrains trong Unity cũng là một Game Object với Components cơ bản là Transform, Terrain và Terrain Collider. Trong đó Component Terrain là thành phần đặc biệt đáng chú ý. Đó thật ra là một script đã được xây dựng sẵn bởi Unity, script này hoạt động như một Editor có thể chạy trực tiếp trong quá trình thiết kế. Nó cung cấp cho chúng ta các công cụ:

Hình 4.5. Rise and lower the terrain height.

- Rise and lower the terrain height: Công cụ này cung cấp cho chúng ta tính năng thực hiện tạo độ cao hoặc sâu cho các khu vực trong địa hình.

Trang 29 CHƯƠNG 4. THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Hình 4.6. Set the terrain height.

- Set the terrain height: Cho phép chúng ta xác định chính xác độ cao.

Hình 4.7. Smooth the terrain height.

- Smooth the terrain height: Cho phép chúng ta làm cho địa hình được phẳng và liền mạch một cách tự nhiên hơn.

Hình 4.8. Paint the terrain texture.

- Paint the terrain texture: Với công cụ này, chúng ta có thể chọn nhiều texture sau đó vẽ phối hợp (sơn) lên bề mặt địa hình để tạo màu sắc, chất liệu cho địa hình.

Trang 31 CHƯƠNG 4. THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Hình 4.9. Place trees.

- Place trees: Giúp chúng ta đặt hàng loạt các cây một cách ngẫu nhiên về số lượng, kích thước và vị trí từ những mô hình cây mà chúng ta đã chuẩn bị.

Hình 4.10. Place plants, stones and other small foilage.

- Place plants, stones and other small foilage: Tương tự như Place trees, công cụ này cho chúng ta áp dụng đối với các thành phần nhỏ hơn trên địa hình như cỏ, những hòn đá nhỏ, …

Trang 33 CHƯƠNG 4. THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Hình 4.11. Setting for the terrain.

- Setting for the terrain: Cho phép chúng ta tùy chỉnh các lựa chọn chung cho địa hình như độ chi tiết của cây và các đối tượng, các thông số của gió tác động đến địa hình, …

Các công cụ trên đều được sử dụng chủ yếu qua các thao tác tùy chọn số liệu và dùng chuột vẽ trực tiếp vào cửa sổ Scene. Sau khi phối hợp sử dụng các chức năng trên, chúng ta đã hoàn thành địa hình một cách đơn giản và nhanh chóng. Trong suốt quá trình phát triển trò chơi, chúng ta hoàn toàn có thể chỉnh sửa địa hình cũng bằng những công cụ này.

Hình 4.12. Toàn cảnh một địa hình cơ bản được dựng trực tiếp bằng Unity.

Hình 4.13. Địa hình dưới góc nhìn của nhân vật.

Trang 35 CHƯƠNG 4. THIẾT KẾ MÔI TRƯỜNG VÀ NHÂN VẬT

Hình 4.14. Một mô hình nhân vật.

Việc thiết kế nhân vật cũng tương tự như giai đoạn đầu cùa việc thiết kế môi trường, đó là dựng mô hình 3D. Tuy nhiên khi phát triển về sau, việc thiết kế nhân vật không chỉ đơn giản là tạo ra một mô hình tĩnh không có khả năng tương tác mà nhân vật cần phải có thêm các yếu tố khác (sẽđược đề cập sau) như khả chuyển động (được thông qua quá trình thiết kế diễn hoạt), trí thông minh và khả năng tương tác với môi trường và các nhân vật khác (thông qua mảng lập trình).

Khác với thiết kế môi trường khi được hỗ trợ một phần bởi Unity, việc thiết kế mô hình nhân vật khá phức tạp khi gần như phụ thuộc hoàn toàn vào các ứng dụng dựng hình 3D, điều này đòi hỏi chúng ta phải có những kỹ năng cần thiết để đảm bảo nhân vật được thiết kế hoàn chỉnh và phù hợp với trí tưởng tượng (kịch bản).

Nhân vật là một trong những mô hình 3D cần được chăm chút và xây dựng chi tiết nhất trong quá trình thiết kế các mô hình 3D cho trò chơi.

5.1. CƠ BN V DI

5.1.1. Hot cnh (Animation)

Hoạt cảnh là một c

hình bất kỳ góp phần tạo nên các chuy ra bằng cách sử dụng h

những thay đổi của các mô hình trong c (thường là 24 hình/s) sẽ gây c

5.1.2. Din hot

Thuật ngữ diễn ho Game trong Unity, diễn ho là sử dụng các phần mềm thi Unity. Mỗi cách có một ư CHƯƠNG 5. DIN HOT N HOT nh (Animation) t cảnh chuyển động, trong cảnh có thể có m o nên các chuyển động trong cảnh. Hoạt cảnh th

ng hệ thống Frame làm căn bản chuyển động. Các frame mang a các mô hình trong cảnh xuất hiện trong khoảng th

gây cảm giác chuyển động.

Hình 5.1. Một hoạt cảnh thay đạn.

n hoạt nhằm chỉ việc thiết kế các chuyển động. Đ n hoạt được thực hiện đồng thời và kết hợp bở

m thiết kế diễn hoạt và sử dụng công cụ thiế t ưu điểm và chức năng riêng bổ sung cho nhau.

có một hoặc nhiều mô nh thường được tạo ng. Các frame mang ng thời gian đủ nhanh ng. Đối với phát triển ởi 2 cách khác nhau ết kế diễn hoạt của sung cho nhau.

Trang 37 CHƯƠNG 5. DIỄN HOẠT

Đối với phát triển Game, diễn hoạt có thể chia làm 2 loại: diễn hoạt một đối tượng và diễn hoạt cắt cảnh. Trong đó, diễn hoạt cho một đối tượng là việc tạo ra các hoạt cảnh cho một đối tượng bất kỳ (bao gồm nhận vật) nhằm làm tài nguyên cho việc thiết kế các hành động của các đối tượng theo các tình huống trong trò chơi. Ví dụ như thiết kế các hoạt cảnh mô phỏng chuyển động đi, chạy, nhảy của nhân vật phục vụ cho lập trình chuyển động cho nhân vật. Diễn hoạt hoạt cắt cảnh là việc kết hợp nhiều hoạt cảnh đơn lẻ của nhiều đối tượng trong môt cảnh nhằm mô tả một diễn biến nào đó được sắp đặt trong kịch bản của trò chơi.

Diễn hoạt đối tượng (diễn hoạt nhân vật) thường được thực hiện trong các ứng dụng hỗ trợ thiết kế diễn hoạt và được xuất ra kèm theo các mô hình 3D như một thành phần dữ liệu của mô hình cho phép lập trình viên truy xuất và sử dụng chúng. Trong khi đó diễn hoạt cắt cảnh thường được thực hiện trực tiếp trong Engine (Unity) bằng cách sử dụng dữ liệu hoạt cảnh của các đối tượng riêng lẽ kết hợp với một vài diễn hoạt khác được thiết kế trực tiếp bằng công cụ tạo diễn hoạt trong Unity để xây dựng nên một đoạn cắt cảnh, thông thường các đoạn cắt cảnh này được xây dựng thành một scene riêng để thuận tiện cho việc diễn hoạt và chia nhỏ màn chơi nhằm làm cho đoạn cắt cảnh được tập trung thiết kế chi tiết hơn.

5.2. THIT K DIN HOT BNG PHN MM CHUYÊN DNG

Việc thiết kế diễn hoạt trên các phần mềm hỗ trợ sẽ đòi hỏi nhiều kỹ năng và kinh nghiệm hơn so với diễn hoạt trong Unity. Đa số các phần mềm hỗ trợ thiết kế diễn hoạt đều dựa trên 2 thành phần cơ bản đó là: hệ thống khung xương và hệ thống frame. Hệ thống khung xương phổ biến là biped và bone, đây là những thành phần cần được gắn vào đối tượng (nhân vật) trước khi thực hiện diễn hoạt nhằm mục đích ràng buộc chuyển động của các bộ phận trên đối tượng với nhau cũng như nhằm làm chủ thểđiều khiển sự biến dạng của các thành phần được gắn với chúng trong đối tượng.

Khác với khung xương, hệ thống frame là một thành phần của hệ thống chương trình chứ không phải là một thành phần gắn với đối tượng. Hệ thống này bao gồm một timeline (đường thời gian) trên đó có chứa các frame là những nút chứa dữ liệu về vị trí

và góc xoay của các thành phần của đối tượng (hay của hệ thống xương) ứng với những thời điểm khác nhau.

Một số phần mềm hỗ trợ thiết kế diễn hoạt: Autodesk 3D Studio Max, Autodesk Maya, Autodesk Motion Builder, Blender, …

Việc thiết kế diễn hoạt được đề cập ở trên được làm trực tiếp bởi người thiết kế thông qua trí tưởng tượng và các phép thử. Ngoài cách này, chúng ta còn một cách thiết kế diễn hoạt khác đó là sử dụng công nghệ Motion Capture, công nghệ này cho phép chúng ta sử dụng các hệ thống khung xương và frame trong các phần mềm thiết kế diễn hoạt cùng việc kết nối giữa máy tính với máy camera và các cảm biến được gắn với một diễn viên diễn hoạt nhằm ghi lại các chuyển động của diễn viên sau đó lưu lại thành dữ liệu diễn hoạt được biết với tên gọi là Motion Capture Data mà chúng ta có thể sử dụng vào trong diễn hoạt của các nhân vật trong trò chơi. Cách diễn hoạt có ưu điểm rất mạnh là mô phỏng chuyển động trực tiếp từ thực tế vào nên chuyển động sẽ rất tự nhiên và gần như giống thật, tuy nhiên nó cần được đầu tư một khoảng chi phí khá lớn cho các thiết bị kỹ thuật hỗ trợ và thuê diễn viên diễn hoạt.

5.3. DIN HOT VI UNITY

Unity cung cấp khả năng thiết kế diễn hoạt tương tự như các ứng dụng hỗ trợ thiết kế diễn hoạt khác. Bao gồm hệ thống Keyframe và khả năng tùy chỉnh thuộc tính của các Frame. Tuy nhiên trong Unity không hỗ trợ hệ thống khung xương mà diễn hoạt sẽđược thực hiện trực tiếp trên đối tượng hoặc hệ thống khung xương được thiết kế từ trước trong các phần mềm hỗ trợ diễn hoạt.

Trang 39 CHƯƠNG 5. DIỄN HOẠT

Hình 5.2. Cửa sổ thiết kế diễn hoạt trong Unity.

Cửa sổ Animation trong Unity được truy xuất bằng cách vào menu Window/Animation. Tại đây, chúng ta thấy giao diện của cửa sổ thiết kế diễn hoạt (hay cửa sổ biên tập Animtion) tương tự như nhiều phần mềm hỗ trợ diễn hoạt khác. Cửa sổ cho phép chúng ta tạo ra các Animation Clip cho bất kỳ một đối tượng hay đối tượng con của một đối tượng nào đó đang được chọn trong scene, chúng ta có thể record, tạo ra các frame trên thanh time line, điều chỉnh vị trí và thuộc tính của các frame này, chạy thử animation, …

Hình 5.3. Animation event.

Khi thiết kế diễn hoạt trong Unity, chúng ta được Unity cung cấp cho một khả năng rất hữu ít đó là Animation Event, chức năng này cho phép chúng ta gọi và thực thi một hàm bất kỳ có trong script được gắn với đối tượng được diễn hoạt tại một điểm bất kỳ trên timeline.

Trang 41 CHƯƠNG 6. HIỆU ỨNG

CHƯƠNG 6. HIU NG 6.1. H THNG PARTICLES (PARTICLES SYSTEM) 6.1.1. Khái nim

Hình 6.1. Hiệu ứng khói, lửa – một ví dụđại diện cho particle.

Particles là một thành phần rất quan trọng và không thể thiếu trong các trò chơi. Có thể hiểu một cách đơn giản, particle là tâp hợp các hạt được đính kèm các hình ảnh, vật liệu với hình dáng và màu sắc cụ thể nhằm mô phỏng một hiệu ứng nào đó trong thực tế, ví dụ như hiệu ứng lửa, khói, hiệu ứng nổ của một vật nào đó… Particle trong Unity được giới thiệu dưới dạng một hệ thống bao gồm các Components đảm nhận các vai trò khác nhau.

6.1.2. Các thành phn (Components) trong Particle system: a. Particle Emitter a. Particle Emitter

Hình 6.2. Emitter component.

Trong bất kỳ một hệ thống Particle nào, emitter là thành phần phụ trách hình dạng của Particle. Trong Unity, có 2 loại emitter là Ellipsoid Particle Emitter và Mesh Particle Emitter.

Ellipsoid emitter là loại emitter được dùng phổ biến nhất cho các hiệu ứng như khói, bụi và các yếu tố môi trường được tạo ra trong một không gian xác định. Nó được gọi là Ellipsoid là vì nó tạo ra các hạt bên trong một hình cầu được kéo dài một cách thích hợp.

Mesh emitter tạo ra các hạt được gắn trực tiếp với một lưới 3D và có thể diễn hoạt dọc theo các đỉnh của lưới hoặc đơn giản là phát ra từ các điểm trên lưới. Nó được phổ biến hơn trong mục đích kiểm soát vị trí của các hạt, cho phép chúng ta kiểm soát hình dạng của particle theo chính xác hình dạng mong muốn.

Về thành phần, cả 2 đều có những thiết lập tương tự như sau:

Trang 43 CHƯƠNG 6. HIỆU ỨNG

- Năng lượng (Energy): Lượng thời gian mà hạt tồn tại trong thế giới trước khi tựđộng hủy.

- Emission: Số lượng hạt phát ra tại một thời điểm. - Vận tốc (Velocities): tốc độ của hạt khi di chuyển

b. Particle Animator

Hình 6.3. Animator component.

Particle Animator phụ trách về hành động của các hạt trong khoảng thời gian chúng tồn tại. Các hạt có một tuổi thọ và sẽ bị phá hủy sau đó. Ví dụ như lửa, Particle cần được diễn hoạt về sự thay đổi màu sắc, hình dáng của mỗi hạt trong thời gian sống của chúng

c. Particle Renderer

Hình 6.4. Renderer component.

Thành phần Renderer xác định sự xuất hiện của mỗi hạt. Particles là hiệu ứng hoạt cảnh những hình vuông (2D) sử dụng kỹ thuật billboarding để chúng luôn xuất

hiện đối mặt trước camera. Particle renderer trong Unity có thể được xuất hiện bởi nhiều cách khác nhau nhưng billboarding luôn thích hợp cho mọi trường hợp sử dụng.

Renderer cũng là thành phần đảm nhận việc xử lí các vật liệu được áp vào hệ thống. Giống như Particles được kết xuất bởi các hoạt cảnh 2D, áp dụng particle shader cho vật liệu trong thành phần renderer giúp chúng ta tạo ra những ảo ảnh hoạt cảnh 2D không theo dạng hình vuông bằng cách sử dụng kênh alpha (trong suốt) bao quanh textures.

6.2. HIU NG HÌNH NH (IMAGE EFFECTS)

Hiệu ứng hình ảnh (image effects) là các script được cung cấp bởi Unity nhằm thực hiện các xử lí điều khiển Render texture. Các hiệu ứng này được gắn vào camera và tùy chỉnh các thông số nhằm tác động trực tiếp đến quá trình kết xuất hình hỉnh của

Một phần của tài liệu Tổng quan về Unity Engine (Trang 26)