Chuyển đến màn hình cảnh và chọn trình phát của bạn. Mở cửa sổ hoạt ảnh. Để bắt đầu hoạt ảnh, bạn cần một trình tạo hoạt ảnh và một clip hoạt hình.
Chọn trình phát và đi tới Hoạt ảnh -> Hoạt ảnh dưới Cửa sổ
Bạn cần một người làm phim hoạt hình và một đoạn phim hoạt hình.
Chọn Tạo, tạo một thư mục cho hoạt ảnh và lưu hoạt ảnh trong Player_Idle.
Dòng thời gian xuất hiện trong đó có thể định vị các hình ảnh động.
Kéo các hình ảnh động vào cửa sổ hoạt ảnh. Các khung được thêm vào:
Bây giờ nhân vật sẽ được hoạt hình quá nhanh. Nó là cần thiết để điều chỉnh các hình ảnh được phát mỗi giây.
Để hiển thị tỷ lệ mẫu, hãy chọn cài đặt từ cửa sổ hoạt ảnh và chọn "Hiển thị tỷ lệ mẫu"
Bây giờ là 60.
Thay đổi nó thành 12.
Sau đó hoạt ảnh không chạy nhanh như vậy nữa.
Hình ảnh có thể được di chuyển trên dòng thời gian bằng cách sử dụng kéo và thả hoặc xóa bằng Xóa.
Toàn bộ điều này cũng hoạt động cho các hoạt ảnh khác, chẳng hạn như đi bộ từ nhân vật.
Để thực hiện việc này, hãy chọn: Tạo Clip mới
Lặp lại động tác cúi người và nhảy.
Nếu bạn không có nhiều sprite khi nhảy và ví dụ: chỉ có 2 sprite, bạn có thể đặt giá trị mẫu thành 2.
Trong thư mục hoạt ảnh, bộ điều khiển hoạt ảnh có hiển thị biểu tượng khác với hoạt ảnh:
Nó xác định khi nào hoạt ảnh được phát.
Trình tạo hoạt ảnh mở ra với một cú nhấp đúp:
Ở đó nó được xác định hoạt ảnh nào được phát. Hoạt ảnh có thể được kéo và thả trực tiếp từ dự án vào trình tạo hoạt ảnh.
Player_Idle được kết nối với một mũi tên màu cam và được đánh dấu màu cam vì đây là hoạt ảnh bắt đầu. Khi bạn bắt đầu trò chơi, “hoạt ảnh nhàn rỗi” sẽ phát liên tục. Với nút chuột phải bạn có thể “Đặt làm lớp Chọn “Trạng thái mặc định” và tạo hoạt ảnh khác làm hoạt ảnh ban đầu.
Khi bạn bắt đầu chạy, hoạt ảnh sẽ chuyển sang hoạt ảnh tương ứng. Nhấp chuột phải vào Player_Idle và chọn Make Transition. Điều này tạo ra một kết nối từ Player_Idle đến Player_Run.
Nếu bạn chọn kết nối, bạn có thể chỉnh sửa thời điểm diễn ra sự thay đổi từ hoạt ảnh này sang hoạt ảnh khác.
Đối với điều đó bạn cần một điều kiện. Bạn cũng cần một tham số để điều này hoạt động.
Tạo một "phao".
Nó thể hiện tốc độ của người chơi.
Sau đó, bạn chèn điều kiện:
Ví dụ: bạn chỉ định rằng hoạt ảnh thay đổi khi tốc độ lớn hơn 0.01:
Khi nhân vật di chuyển, nó bắt đầu với hoạt ảnh khác.
Hủy kích hoạt "Có thời gian thoát".
Thay đổi thời lượng chuyển đổi thành 0.
Hoạt ảnh của cuộc chạy sẽ kết thúc khi nhân vật dừng bước. Tạo một quá trình chuyển đổi khác trở lại trạng thái không hoạt động.
Chọn điều kiện ở đây là hoạt ảnh thay đổi khi tốc độ nhỏ hơn 0.01.
Tại đây, hãy tắt "Has Exit Time" và đặt thời lượng chuyển đổi thành 0.
Các thay đổi bây giờ được thực hiện trong tập lệnh:
Chúng ta có 2 tập lệnh cho một nhân vật: CharacterController xử lý vật lý di chuyển nhân vật và tập lệnh PlayerMovement, cho biết khi nào nhân vật di chuyển và ở tốc độ nào.
Đầu tiên hãy mở tập lệnh PlayerMovement. Trước tiên, chúng tôi muốn có quyền truy cập vào trình tạo hoạt ảnh:
Unity thêm trình tạo hoạt ảnh vào trình phát khi tạo hoạt ảnh. Nó đề cập đến bộ điều khiển hoạt họa, từ đó thiết lập mối quan hệ với người chơi. Trình tạo hoạt ảnh phải được điều khiển bởi tập lệnh PlayerMovement:
người làm phim hoạt hình công cộng;
Quay trở lại Unity và bạn sẽ thấy rằng trường Animator hiện xuất hiện trong Tập lệnh chuyển động của người chơi. Sau đó, thành phần hoạt họa được kéo vào đó từ cửa sổ thanh tra.
Bất cứ khi nào chúng ta viết trong Script Animator, chúng ta sẽ truy cập vào thành phần animator.
Trong chức năng cập nhật, bây giờ bạn có thể truy cập trình tạo hoạt ảnh và thành phần được liên kết:
animator.SetFloat ("Tốc độ", Mathf.Abs (ngangMove);
Hàm Mathf.Abs đảm bảo rằng giá trị chuyển động của nhân vật của bạn luôn dương.
Nếu bạn bắt đầu trò chơi của mình trong Unity ngay bây giờ, Unity sẽ phát hoạt ảnh của nhân vật của bạn khi bạn bước đi. Khi bạn dừng, hoạt ảnh không hoạt động sẽ được kích hoạt.
Bây giờ là về nhảy: Đối với điều này, chúng tôi sử dụng tùy chọn “Bất kỳ trạng thái nào” trong trình hoạt họa. Bất kể hiện đang phát hoạt ảnh nào, khi nhân vật nhảy, anh ta sẽ chuyển sang hoạt ảnh đó.
Một điều kiện được yêu cầu cho việc này để nhân vật không nhảy mọi lúc: Bây giờ cần có một tham số khác.
Gọi đây là: IsJumping và đặt điều kiện “IsJumping” thành true.
Chúng tôi không muốn thời gian thoát và chúng tôi đặt thời lượng chuyển đổi thành 0.
Nhân vật sẽ có thể quay trở lại trạng thái "nhàn rỗi" từ hoạt ảnh đến nhảy. Một kết nối khác sẽ được tạo.
Điều kiện "IsJumping" được đặt thành false và Tốc độ thành Nhỏ hơn 0.01.
Một kết nối khác được tạo từ bước nhảy để chạy. Việc chuyển sang chạy có các điều kiện bổ sung:
IsJumping = false và Tốc độ> 0.01
Đối với cả hai, chúng tôi đặt thời gian HasExit thành false và thời lượng thành 0.
Bây giờ tập lệnh cho các hoạt ảnh được điều chỉnh:
animator.SetBool ("IsJumping", true);
Chúng tôi chuyển đến PlayerMovementScript rằng nhân vật ngừng nhảy khi tiếp đất:
khoảng trống công khai OnLanding ()
{
animator.SetBool ("IsJumping", false);
}
Bây giờ chúng ta có thể thêm một OnLandEvent mới trong Unity:
Bạn chèn một OnLandEvent và chọn trong PlayerMovement: OnLanding ()
Sau đó Unity phát hoạt ảnh nhảy trong khi nhảy và khi nhân vật tiếp đất thì nó sẽ kết thúc.
Unity luôn phát hoạt hình rất ngắn. Hủy kích hoạt "Có thể chuyển sang tự" để hoạt ảnh được phát đầy đủ:
Bây giờ hoạt ảnh để cúi người được thêm vào.
Kết nối Idle với Crouch:
Thêm điều kiện: Tạo một tham số mới: IsCrouching
Nếu Crouching IsTrue, hãy để nhân vật cúi mình:
Chỉnh sửa lại ExitTime và thời lượng. Kết nối lại.
Nếu bạn hủy kích hoạt thời gian thoát và đặt thời lượng cho hoạt ảnh thành 0, hãy kéo dài thời gian thoát trước và chỉ hủy kích hoạt sau đó, nếu không, rất nhiều cảnh báo sẽ chuyển đến bảng điều khiển. Tạo một kết nối khác từ hoạt ảnh đang chạy.
Tạo một kết nối quay lại khác:
IsCrouching là sai và Tốc độ> 0.01
Thêm một OnCrouchEvent khác.
Đối với điều này, chúng tôi cần một chức năng khác trong tập lệnh PlayerMovement:
public void OnCrouching (bool isCrouching)
{
animator.SetBook ("IsCrouching", isCrouching);
}
Bây giờ hãy thêm sự kiện Crouch. Quan trọng: Tập lệnh phải đứng trước lớp công khai BoolEvent [System.Serializable]. Nếu không, CrouchEvent sẽ không xuất hiện trong cửa sổ Unity Inspector:
Thêm lại tập lệnh PlayerMovement. Trong PlayerMovement Script, chọn OnCrouching từ phần trên.