Bài 3 lập trình game 2d với unity animation và điều khiển hành động nhân vật (animator)

14 828 0
Bài 3 lập trình game 2d với unity  animation và điều khiển hành động nhân vật (animator)

Đ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

Ở phần trước chúng ta đã biết cách tạo các game object, và các sprite cho các game object. Ở phần này chúng ta sẽ tìm hiểu cách tạo một animation và điều khiển các hành động của animation đó ví dụ như đi, đứng, chạy, nhảy...

Làm Game 2D Unity - Phần - Animation điều khiển hành động nhân vật (Animator) 20 January 2014 at 22:43 Chào bạn, Ở phần trước biết cách tạo game object, sprite cho game object Ở phần tìm hiểu cách tạo animation điều khiển hành động animation ví dụ đi, đứng, chạy, nhảy Trước tiếp, bạn chưa đọc phần trước, ta tham khảo lại Link viết trước: https://www.facebook.com/notes/hội-lập-trình-viên-game-đà-nẵng/làmgame-2d-bằng-unity-phần-2-tạo-dự-án-game-2d-sprite-và-gameobject/232425046929765 Dự án mẫu cho phần đây: https://www.dropbox.com/sh/b9uear8vzocr6kj/-SEOHSwc_c III Tạo đối tượng Game Object Sprite Animation Một animation hình ảnh động mơ tả đối tượng game Ví dụ: xe chạy, hay nhân vật Một animation Unity bao gồm nhiều hành động, hành động gọi clip Ví dụ: nhân vật có hành động đi, đứng, nhảy Có hai kỹ thuật để tạo animation (cả 2D 3D): kỹ thuật key frame kỹ thuật skeletal hay spine a Kỹ thuật tạo animation * Kỹ thuật key frame Đối với kỹ thuật key frame, người ta sử dụng sprite cho key frame hành động Mỗi sprite keyframe Để tạo chuyển động, ta vẽ key frame thời điểm đầu thay đổi key frame sau, có animation Đây phương pháp đơn giản để tạo chuyển động, lại tốn nhớ, ta phải tốn nhiều sprite cho nhiều chuyển động khác * Kỹ thuật skeletal hay spine hay xương Đối với kỹ thuật này, người ta chia đối tượng thành nhiều sprite, sprite phận đối tượng (giống khúc xương xương) Để tạo key frame mới, ta thay đổi sprite vị trí, độ lớn, xoay sprite thành phần có liên quan đến chuyển động Sau kết hợp key frame lại với kỹ thuật key frame để tạo thành animation Chúng ta xem sprite cấu tạo nên key frame ảnh 2D Spine Cách tốn thời gian hơn, lại hiệu quả, đặc biệt tiết kiệm nhiều nhớ ( Ngoài lề tí quy trình làm game chuyên nghiệp, cách tạo animation thuộc vai trò game designer, khơng phải lập trình viên Có thể bạn trình viên bạn đọc viết :D ) b Tạo animation Unity Do giới hạn tài nguyên thời gian nên viết hướng dẫn cách tạo animation theo kỹ thuật Key Frame Cách tạo animation theo skeletal tương tự Từ phần trước tạo Sprite sau: Bước 1: Tạo Empty GameObject đặt tên MainCharacter (Parent Object) Bước 2: Tạo đối tượng Empty GameObject nữa, đặt tên Animations, đối tượng MainCharacter (Đối tượng nên đặt vị trí 0,0,0) Bước 3: Thêm Sprite Render cho đối tượng Animations vừa tạo Rồi chọn sprite hiển thị mặc định cho Animation Kết sau: Bước 4: Chọn đối tượng MainCharacter cửa sổ Hierarchy, chọn Menu -> Window -> Animation Một cửa sổ Animation editor sau: * Hình chữ nhật đỏ nhỏ: nút play để xem trước animation * Hình chữ nhật đỏ lớn: danh sách clip thời aniamtion * Hình chữ nhật vàng: key frame Đầu tiên ta click vào danh sách clip chọn Create New Clip, ta đặt tên clip Running, save lại thư mục Animations Assets Bước 5: Ở cửa sổ Animation Editor, chọn Add Curve, chọn Animations (Đối tượng đối tượng MainCharacter) chọn Sprite Render, chọn Sprite (Đối với clip bất kỳ, bước bắt buộc phải có) Kết sau, mặc định tạo tối thiếu Key Frame Tiếp theo ta chọn key frame thứ 2, cửa sổ Inspector, component Sprite Render, ta tiến hành đổi sprite khác (RunningVolt1 thay RunningVolt0) Chọn nút bao quanh tròn đỏ, chọn Sprite khác từ cửa sổ Bây giờ, cần click đúp vào Key Frame (Thanh có vng màu vàng hình trước) để thêm key frame kéo thả key frame cho thời gian phù hợp để có chuyển động cần thiết Ngồi thay đổi sprite thay đổi Transform (Translate, Scale, Rotation) cho sprite key frame, cách thêm Curve Transform cho đối tượng Animation hình: Sau ta việc chọn key frame, đặt giá trị transform cho phù hợp theo ba trục x, y, z Tương tự ta tạo clip Jump (nhảy), Idle (trạng thái nghỉ) cho đối tượng Chú ý: - Ta thay đổi transform sprite render đối tượng Animation không thay đổi transorm sprite render đối tượng cha MainCharacter Giải thích: animation làm thay đổi transform sprite, nên thêm trực tiếp vào đối tượng cha, sau thêm thành phần vật lý, áp dụng phép transform vào bị sai, tác dụng - Đối với hành động nhảy không thay đổi vị trí key frame, làm thêm thành phần vật lý vào đối tượng cha, lúc nhân vật nhảy, hình ảnh nhảy lên vị trí để tính vật lý (theo đối tượng cha) nằm thấp hình ảnh > Khơng thực tế Đối với hành động nhảy này, ta cần chọn sprite tư nhảy mà - Một Clip bất kỳ, phải có tối thiểu key frame Như có clip cho animation đối tượng MainCharacter c Điều khiển hành động nhân vật - Animator Ở phần tìm hiểu cách tạo clip hay hành động animation Với animation ta có Controller (MainCharacter.controller) kèm theo [Hoặc chưa có, add thêm kéo thả clip vào :D) Phần ta hướng dẫn cách chuyển qua lại hành động máy trạng thái Ở cửa sổ Hierarchy chọn đối tượng MainCharacter, chọn Menu, chọn Window, chọn Animator, cửa sổ Animator xuất sau: (Hoặc click đúp vào MainCharacter.controller có kết tương tự.) Danh sách state, state tương ứng với clip Click chuột phải vào state Idle, chọn Set Default để thiết lập state mặc định cho đối tượng Chọn Make Transition, sau đưa chuột đến trạng thái đích Với transition vừa tạo, có nghĩa nhân vật từ trạng thái chuyển đổi trực tiếp qua trạng thái đích Kết thu ta gọi máy trạng thái hay sơ đồ chuyển đổi trạng thái Khi đối tượng load lên, trạng thái mặc định thiết lập, lúc chuyển qua trạng thái khác ?? Chúng ta tạo thêm tham số, dựa vào giá trị tham số để chuyển đổi trạng thái Chú ý: đơn giản, ta thiết lập trạng thái chuyển qua lại trực tiếp với Ta tạo tham số kiểu bool isJump, isIdle, isRunning để điều khiển Để thiết lập điều kiện cho transition, ta click chọn transition (transition chọn chuyển qua màu xanh), cửa sổ Inspector, mục thuộc tính Conditions (điều kiện) ta thiết lập giá trị tham số, để xác định lúc chuyển trạng thái Ở đây, chọn isRunning = true Ta thêm điều kiện khác (trường hợp chuyển đổi phụ thuộc nhiều điều kiện) cách nhấn dấu cộng dấu trừ để bỏ bớt điều kiện Vậy ta set giá trị tham số isRunning = true, trạng thái nhân vật chuyển sang Running Tương tự ta thiết lập isIdle, isJump cho transition khác Chú ý: Phần Script ta đề cập rõ, cách thiết lập giá trị tham số Cuối cùng, cửa sổ Hierarchy, ta chọn MainCharacter, cửa sổ Inspector, mục Animator, ta bỏ chọn Apply Root Motion Đến đây, biết cách xây dựng animation cho đối tượng game điều khiển qua lại đối tượng Ở phần hướng dẫn cho bạn biết cách tạo sử dụng Prefabs Script số xử lý Link phần tiếp theo: https://www.facebook.com/notes/hội-lập-trình-viên-game-đà-nẵng/làmgame-2d-bằng-unity-phần-4-prefab-script-và-một-số-xử-lý-cơ-bản/242866329218970 ... transform vào bị sai, tác dụng - Đối với hành động nhảy không thay đổi vị trí key frame, làm thêm thành phần vật lý vào đối tượng cha, lúc nhân vật nhảy, hình ảnh nhảy lên vị trí để tính vật lý... tế Đối với hành động nhảy này, ta cần chọn sprite tư nhảy mà - Một Clip bất kỳ, phải có tối thiểu key frame Như có clip cho animation đối tượng MainCharacter c Điều khiển hành động nhân vật -... Ngoài lề tí quy trình làm game chuyên nghiệp, cách tạo animation thuộc vai trò game designer, khơng phải lập trình viên Có thể bạn trình viên bạn đọc viết :D ) b Tạo animation Unity Do giới hạn

Ngày đăng: 02/10/2019, 21:21

Từ khóa liên quan

Mục lục

  • Làm Game 2D bằng Unity - Phần 3 - Animation và điều khiển hành động nhân vật (Animator)

Tài liệu cùng người dùng

Tài liệu liên quan