Nhầm lẫn về kích thước Sprite trong không gian thế giới (Unity)


11

Tôi có một Sprite với độ phân giải 1080x1920. Và tôi cũng đặt Độ phân giải Chế độ xem trò chơi thành 1080x1920. Những gì tôi đã nghĩ là sprite (1080x1920) phải phù hợp chính xác trong Chế độ xem máy ảnh.

độ phân giải của hình ảnh là 1080x1920

Nhưng khi tôi kéo sprite đó, sprite sẽ được phóng to và đi ra khỏi chế độ xem camera.

xem màn hình, sprite là ra khỏi máy ảnh

Tôi cần phải điều chỉnh gì để đảm bảo sprite này phù hợp 100% trong chế độ xem camera. Tôi có thể đã thay đổi Sprite Transform Scale. Nhưng điều đó sẽ gây ra vấn đề bởi vì tôi có rất nhiều vấn đề khác để giải quyết và chúng nên tỷ lệ thuận.


Bạn đang nói về một sprite 3D? Hoặc UI 2D sprite?
TomTsagk

Một Sprite 2D .....
Faizan Khan

Câu trả lời:


19

Điều này có ý nghĩa khi bạn nhớ lại rằng các họa tiết không chỉ bị làm mờ pixel-pixel trên màn hình của bạn (điều này sẽ khiến cho cơn ác mộng trở nên giống nhau trên màn hình với các độ phân giải khác nhau, vì tất cả đều cắt nghệ thuật của bạn theo cách khác) , nhưng đúng hơn, chúng là một phần của thế giới 3D của bạn trong một hệ thống phối hợp trò chơi không biết thiết bị mà bạn có thể điều khiển.

Giống như mọi thứ khác trong thế giới trò chơi đó, phần kết thúc ánh xạ tới màn hình được xác định bởi cách bạn định cấu hình đối tượng Máy ảnh của mình.

Vì vậy, có bốn phần quyết định mức độ lớn của sprite của bạn được hiển thị:

  1. Các nguồn có độ phân giải của ma.

  2. Các Pixels per Unit đặt cài lựa chọn trong thanh tra nhập khẩu vào cài đặt.

    Điều này đặt một yếu tố chuyển đổi để chuyển đổi kích thước từ pixel trong không gian kết cấu sang các đơn vị trong không gian thế giới (nghĩa là không gian trong đó tất cả các tính toán trò chơi & vật lý của bạn xảy ra)

    Chiều cao tính theo đơn vị thế giới = Chiều cao nguồn tính bằng pixel / pixel trên mỗi đơn vị

    Nói chung, bạn nên chọn số này để phù hợp với một số số liệu trò chơi có liên quan trong trò chơi của bạn. ví dụ. nếu bạn có lưới ô vuông với khoảng cách 135 pixel, chọn Pixels trên Đơn vị = 135 sẽ làm cho mỗi ô của lưới của bạn chính xác rộng 1 đơn vị trong hệ tọa độ của trò chơi, giúp cho việc tính toán của bạn thuận tiện hơn.

  3. Các kích thước chính tả của máy ảnh của bạn.

    (Hoặc, nếu sử dụng máy ảnh phối cảnh, kết hợp trường quan sát của máy ảnh và độ sâu từ máy ảnh đến máy quay của bạn)

    Điều này xác định có bao nhiêu đơn vị trên thế giới mà máy ảnh của bạn có thể nhìn thấy, từ trung tâm của góc nhìn đến cạnh trên cùng.

    Một phần chiều cao máy ảnh Chiếm = Chiều cao tính theo đơn vị thế giới / (2 * Chỉnh hình máy ảnh. Kích thước)

    Vì vậy, nếu chúng ta chạy với giá trị 135 PPU, sprite cao 1920 pixel sẽ là 14.2222222 đơn vị trên thế giới, có nghĩa là chúng ta sẽ cần một máy ảnh có chiều cao 7.111111 để chụp toàn bộ vật từ trên xuống dưới (vì chiều cao camera được đo từ giữa ra)

  4. Các kích thước pixel độ phân giải màn hình cửa sổ / đầu ra của bạn.

    Theo mặc định, chế độ xem của máy ảnh sẽ lấp đầy màn hình theo chiều dọc, do đó, nếu màn hình / cửa sổ của bạn thay đổi về chiều cao, vùng cắt dọc của cảnh sẽ không thay đổi (một đối tượng ở cạnh trên hoặc cạnh dưới của màn hình sẽ không di chuyển hoặc được cắt ra, toàn bộ cảnh sẽ chỉ lớn hơn hoặc nhỏ hơn để lấp đầy chiều cao có sẵn).

    Vì vậy, số lượng đơn vị thế giới mà máy ảnh của bạn có thể nhìn thấy từ bản đồ từ trên xuống dưới cho đến số pixel trong cửa sổ / màn hình của bạn từ trên xuống dưới.

    Kích thước pixel đầu ra = Phần chiều cao máy ảnh chiếm dụng * Chiều cao của cửa sổ tính bằng pixel

    Vì vậy, nếu màn hình của chúng tôi cao 1920 pixel và nguồn sprite của chúng tôi sẽ lấp đầy chính xác chế độ xem của máy ảnh, thì nó sẽ được xuất ra trên toàn bộ 1920 pixel màn hình theo tỷ lệ 1: 1.


Tôi thực sự biết ơn bạn đã trả lời chi tiết !!!!
Faizan Khan

3
Tôi rất vui vì bạn thấy nó hữu ích! Tôi đã viết một vài câu hỏi và trả lời khác về cách làm việc với các kích thước sprite trong Unity cũng có thể giúp: về việc chọn kích thước sprite , phù hợp với sự xuất hiện của các họa tiết có kích thước khác nhau , trên nghệ thuật pixel mở rộng
DMGregory

1
Cảm ơn .... Tôi cũng đã theo dõi bạn trên Twitter ... Tôi cảm thấy rất tuyệt khi được tương tác với một số người làm việc tại UbiSoft :)
Faizan Khan
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.