Làm cách nào để tôi tự vẽ một phần của bảng sprite?


9

Tôi đang làm việc trong Unity và tôi thấy rằng nhà làm phim hoạt hình không hoạt động cho những gì tôi đang cố gắng làm trong trò chơi 2D của mình. Tôi muốn xây dựng một hình ảnh động cụ thể, sử dụng các tấm sprite và có thể sử dụng lại cùng một hình ảnh động với các họa tiết khác có cùng kích thước và kích thước của các ô. Sau một số nghiên cứu, tôi thấy rằng nó là không thể.

Thay vào đó, tôi đang cố gắng tạo kịch bản hoạt hình của riêng mình, nhưng tôi không hiểu làm thế nào để nói với Unity chỉ vẽ một phần của sprite. Một cái gì đó giống như trong XNA, nơi bạn chỉ có thể hiển thị một hình chữ nhật cụ thể của một sprite bằng cách sử dụng tọa độ bắt đầu và kết thúc.

Làm cách nào để tôi tự vẽ một phần của bảng sprite?


3
Điều này có thể có trong Unity mà không cần sao chép dữ liệu hoạt hình, với một chút hack. Thực tế, bạn chơi hoạt hình A bằng cách sử dụng spritesheetA, sau đó trong lateUpdate, bạn trao đổi mỗi SpriteRenderer's Sprite thành tương tự từ spritesheetB. Có một video Unity về kỹ thuật này; Tôi sẽ đăng nó dưới dạng câu trả lời nếu tôi có thể tìm thấy nó sau này và giải thích chi tiết. Điều này sẽ cho phép bạn sử dụng toàn bộ sức mạnh của hệ thống hoạt hình gốc của Unity mà không phải tự viết từ đầu.
DMGregory

Bạn nên thử Spine hoặc một số phần mềm hoạt hình xương khác. Nó có khả năng giao diện cho phép bạn duy trì hoạt ảnh xương tương tự, nhưng trao đổi và thay đổi giao diện khi cần. Cá nhân tôi sử dụng Spine vì nó đơn giản, có hướng dẫn và nó có một thời gian chạy thống nhất làm cho mọi thứ trở nên siêu đơn giản. Nhược điểm là nó tốn tiền, nhưng phiên bản cơ bản cung cấp cho bạn mọi thứ bạn cần để làm hoạt hình. Phiên bản pro chỉ làm cho nó dễ dàng và nhanh chóng hơn.
Savlon

sử dụng mặt nạ nếu bạn làm việc trên UI
virtouso

Câu trả lời:


1

Tôi nghĩ rằng có thể có một cách tiếp cận đơn giản hơn trong đó bạn có thể làm điều này và vẫn sử dụng Unity Mecanim cho hoạt hình.

Các bước: -

1) Bạn có thể lập trình các họa tiết 2D kết cấu từ hình ảnh một cách lập trình và vì nó là một lưới nên sẽ không khó để làm điều đó. Trong câu trả lời sau đây, người dùng đã tạo ra bộ cắt sprite của riêng mình và lưu vào thư mục (tùy chọn khác chỉ lưu nó trong một biến). Bạn không cần toàn bộ mã, chỉ cần kiểm tra hàm GetSprites () và bạn sẽ có ý tưởng :)

http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html

2) Một khi bạn có thể làm điều đó, sau đó duy trì một mảng các sprite mà bạn đã nhận được từ bước 1.

3) Bây giờ bạn cần tạo một tệp hoạt hình của các họa tiết này có thể được cắm vào mecanim. Để làm điều này, bạn cần có chức năng Set Curve của Unity (kiểm tra liên kết được cung cấp bên dưới). Một khi bạn có clip tùy thuộc vào việc bạn có lưu nó để sử dụng trong tương lai hay chỉ để nó trong một biến cho phiên bản trò chơi hiện tại mà thôi.

http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html

Hy vọng điều này giải quyết nghi ngờ của bạn :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.