Hướng dẫn về Unity Cinemachine và Timeline

Cinemachine là gói dành cho Unity cung cấp cho các nhà phát triển khả năng kiểm soát máy ảnh chuyên nghiệp và nâng cao khả năng tạo các đoạn cắt cảnh đậm chất điện ảnh.

Hướng dẫn này sẽ bao gồm các chủ đề sau:

  • Lắp đặt máy chiếu phim
  • Thiết lập máy ảnh của người thứ ba
  • Tạo đoạn cắt cảnh theo dòng thời gian

Lắp đặt máy chiếu phim

Để cài đặt Cinemachine, hãy làm theo các bước dưới đây:

  • Trong Unity đi tới Cửa sổ -> Trình quản lý gói

Menu quản lý gói Unity

  • Thay đổi gói thành "Unity Đăng ký"

Đăng ký quản lý gói Unity

  • Chọn "Cinemachine" từ danh sách rồi nhấp vào "Install"

Máy quay phim bây giờ đã sẵn sàng để sử dụng.

Thiết lập máy ảnh của người thứ ba

Dưới đây tôi sẽ hướng dẫn cách thiết lập camera góc nhìn thứ 3 bằng Camera ảo của Cinemachine.

Máy ảnh ảo là phiên bản nhẹ của máy ảnh Unity, không tự hiển thị mà chỉ được sử dụng làm điểm tham chiếu cho Máy ảnh chính.

Để làm ví dụ cho hướng dẫn này, tôi sẽ sử dụng Bộ điều khiển của người thứ ba, ngoại trừ việc không thiết lập Xung đột máy ảnh và không di chuyển Máy ảnh bên trong hệ thống phân cấp người chơi:

Sharp Coder Trình phát video

Như bạn có thể thấy người chơi đang di chuyển nhưng camera không theo dõi.

Thiết lập máy ảnh của người thứ ba bằng Cinemachine thực sự dễ dàng:

  • Vào GameObject -> Cinemachine -> Virtual Camera để tạo camera ảo mới

Cinemachine tạo camera ảo

  • Đặt tên cho camera ảo "TPS Camera"
  • Chọn Camera TPS và trong CinemachineVirtualCamera gán biến Theo dõi (trong trường hợp của tôi, nó sẽ là đối tượng "CameraParent", nằm bên trong hệ thống phân cấp trình phát và biểu thị góc xoay theo chiều dọc)
  • Đặt giá trị nội dung thành "3rd Person Follow"
  • Đặt Bỏ qua thẻ thành "Player", đồng thời chọn đối tượng gốc của trình phát và đặt thẻ của nó thành "Player" (nếu có bất kỳ trình thu thập dữ liệu con nào trong hệ thống phân cấp trình phát, hãy đảm bảo thay đổi thẻ của chúng thành "Player")
  • Tinh chỉnh các giá trị khác trong CinemachineVirtualCamera như Khoảng cách camera, Phía camera, Độ lệch vai và Giảm xóc cho đến khi bạn hài lòng với kết quả.
  • Đặt giá trị Aim của CameraParent thành "Do nothing"

Giá trị thành phần CinemachineVirtualCamera

Máy ảnh bây giờ sẽ theo dõi người chơi:

Sharp Coder Trình phát video

Tạo đoạn cắt cảnh theo dòng thời gian

Ở đây tôi sẽ hướng dẫn cách tạo một đoạn cắt cảnh bằng cách sử dụng Dòng thời gian Unity's.

Dòng thời gian là trình chỉnh sửa tích hợp cho phép nhà phát triển tạo các đoạn cắt cảnh bằng cách tạo hoạt ảnh cho máy ảnh cũng như bằng cách sử dụng hoạt ảnh hiện có (ví dụ: bước đi của nhân vật), cùng với các sự kiện và tín hiệu bằng cách sắp xếp chúng theo cách tuần tự.

Gói Cinemachine bổ sung thêm một số tùy chọn cho trình chỉnh sửa Dòng thời gian, chẳng hạn như khả năng chuyển đổi giữa các Máy ảnh ảo.

Để tạo một đoạn cắt cảnh, hãy làm theo các bước dưới đây:

  • Tạo một GameObject mới và gọi nó "TimelineManager"
  • Mở cửa sổ Dòng thời gian bằng cách đi tới Cửa sổ -> Trình tự -> Dòng thời gian

Menu dòng thời gian theo trình tự cửa sổ Unity

  • Chọn "TimelineManager" Đối tượng và trong cửa sổ Dòng thời gian, bạn sẽ thấy tùy chọn để tạo thành phần Giám đốc và nội dung Dòng thời gian, hãy nhấp vào nó.

Cinemachine tạo thành phần Giám đốc và nội dung Dòng thời gian

  • Sau khi tạo thành phần Giám đốc và nội dung Dòng thời gian, bạn sẽ thấy cửa sổ Dòng thời gian trống (đảm bảo đối tượng TimelineManager được chọn để có thể chỉnh sửa nó).

Cửa sổ dòng thời gian của Cinemachine

  • Bây giờ chúng ta có thể bắt đầu thêm các thành phần vào dòng thời gian bằng cách nhấp chuột phải vào cửa sổ.

Tạo thành phần dòng thời gian

Như bạn có thể thấy, cửa sổ Timeline có nhiều tùy chọn khác nhau:

  • Nhóm theo dõi - đây là nhóm có thể chứa các hành động theo dòng thời gian và rất hữu ích cho việc tổ chức.
  • Theo dõi kích hoạt - phần này xác định đối tượng chỉ nên hoạt động trong khung thời gian đã đặt.
  • Bản nhạc hoạt hình - phần này sẽ phát một hoạt ảnh cụ thể trong khung thời gian đã đặt.
  • Bản nhạc âm thanh - phần này sẽ phát âm thanh cụ thể trong khung thời gian đã đặt.
  • Control Track - một track có các clip kiểm soát các yếu tố liên quan đến thời gian trên GameObject.
  • Theo dõi tín hiệu - điều này cho phép thực hiện nhiều hành động khác nhau trên một đối tượng trò chơi cụ thể tại một thời điểm cụ thể (ví dụ: kích hoạt tập lệnh chuyển động của người chơi hoặc gọi một chức năng cụ thể khi dòng thời gian đạt đến một khung nhất định, v.v.)
  • Bản nhạc có thể phát - bản nhạc có các clip là bản nhạc có thể phát tùy chỉnh.
  • Cinemachine Track - điều này cho phép kết hợp giữa nhiều máy quay ảo cinemachine.

Với mục đích của hướng dẫn này, tôi sẽ chỉ sử dụng Animation TrackSignal Track.

Cài đặt

  • Tạo một máy ảnh ảo khác và đặt tên là "CutsceneCamera" và đặt giá trị "Priority" của nó ở trên một cấp trên "TPS Camera" (ví dụ: 11)
  • Nhấp chuột phải vào chế độ xem dự án -> Tạo -> Tín hiệu và đặt tên cho nó "DisablePlayer"

Unity Tạo tín hiệu dòng thời gian

  • Sao chép tín hiệu "DisablePlayer" và đổi tên thành "EnablePlayer"

Nội dung tín hiệu dòng thời gian thống nhất

  • Tạo một GameObject mới trong cảnh và đặt tên cho nó "SignalReceiver"
  • Đính kèm thành phần SignalReceiver vào đối tượng "SignalReceiver"
  • Bấm "Add Reaction" 2 lần
  • Gán "DisablePlayer" cho phản ứng đầu tiên và "EnablePlayer" cho phản ứng thứ hai

Tín hiệu dòng thời gian thống nhất Thêm phản ứng

"DisablePlayer" sẽ kích hoạt camera cắt cảnh, tắt camera của người chơi và tập lệnh điều khiển người chơi và sẽ được đặt ở đầu dòng thời gian.

"EnablePlayer" sẽ tắt camera cắt cảnh, kích hoạt camera của người chơi và tập lệnh điều khiển người chơi và sẽ được đặt ở cuối dòng thời gian.

  • Nhấp vào (+) để thêm vị trí phản ứng, sau đó chỉ định đối tượng có tập lệnh hoặc thành phần cần được kích hoạt/hủy kích hoạt.

Mẹo: Để tạo tín hiệu ngược lại, bạn chỉ cần thiết lập phản ứng cho "DisablePlayer" sau đó nhấp vào biểu tượng Bánh răng -> Nhân bản, thay đổi tín hiệu thành "EnablePlayer" và đảo ngược các hộp kiểm.

Tín hiệu trùng lặp thống nhất

Thiết lập phản ứng tín hiệu dòng thời gian thống nhất

  • Chọn đối tượng "TimelineManager" sau đó trong cửa sổ Timeline thêm track tín hiệu mới bằng cách nhấn chuột phải -> Signal Track sau đó gán đối tượng "SignalReceiver" cho nó.
  • Kéo và thả nội dung tín hiệu "DisablePlayer" ở đầu dòng thời gian và "EnablePlayer" vào khung bạn muốn đoạn cắt cảnh kết thúc:

Xem trước tín hiệu dòng thời gian thống nhất

Điều này sẽ làm cho tập lệnh điều khiển trình phát và camera bị vô hiệu hóa ngay từ đầu và sau đó được kích hoạt lại khi dòng thời gian kết thúc.

Cuối cùng, chúng ta sẽ tạo một hoạt ảnh máy ảnh đơn giản.

  • Nhấp chuột phải vào Timeline -> Animation Track sau đó gán "CutsceneCamera" (điều này sẽ yêu cầu thêm thành phần Animator vào đối tượng nếu không có)
  • Bấm vào nút ghi

Bản ghi clip hoạt hình dòng thời gian của Unity

  • Di chuyển "CutsceneCamera" một chút để khung hình chính được áp dụng, sau đó di chuyển tay cầm khung Dòng thời gian đến cuối và cuối cùng, di chuyển máy ảnh đến vị trí mới rồi nhấp vào dừng Ghi.

Dòng thời gian cắt cảnh của Unity Cinemachine

Hãy nhấn play và xem kết quả:

Sharp Coder Trình phát video

Đoạn phim cắt cảnh được phát ở đầu trò chơi.

Bài viết được đề xuất
So sánh môi trường phát triển 2D và 3D trong Unity
Hướng dẫn sử dụng gamepad cho Unity
Triển khai các khái niệm lập trình hướng đối tượng (OOP) trong Unity
API tập lệnh Unity và Unity Pro
Hướng dẫn về âm thanh trong Unity
Cách vẽ cây trên địa hình trong Unity
Chọn Skybox phù hợp cho môi trường của bạn trong Unity