Làm cách nào để tăng tỷ lệ pixel art mà không bị mờ trong GM Studio?


9

Tôi đang tạo một trò chơi trong Game Maker Studio sử dụng nghệ thuật pixel. Khi tôi khởi chạy trò chơi, tất cả các kết cấu mở rộng đều rất mờ. (Nó không xảy ra với những người nhỏ.)

Ví dụ: hình ảnh này

đẹp :)

ám trong trò chơi như thế này:

bị mờ :(

Có cách nào để thay đổi kích thước pixel nhỏ thành pixel lớn thay vì pixel bị mờ không?


không sử dụng nén mất dữ liệu cho kết cấu thay vào đó sử dụng bmp, gif hoặc png, tất cả đều hỗ trợ lưu trữ lossless
ratchet freak

Khi bạn có pixel art, bạn thường muốn tránh mọi thay đổi kích thước, vì pixel art luôn phải chịu đựng điều đó. Khi thay đổi kích thước không thể tránh được, nên sử dụng phép nội suy lân cận gần nhất để giữ vẻ giòn. Khi bạn muốn thay đổi kích thước, hãy sử dụng đồ họa vector thay vì đồ họa raster. Rất tiếc, tôi không thể giúp bạn điều đó vì tôi không quen với GMStudio.
Philipp

ví dụ thêm vào.
mpower 22/11/13

Tôi không biết các khả năng của nhà sản xuất trò chơi nhưng bạn sẽ muốn tắt tất cả tính năng lọc tỷ lệ và cho phép chia tỷ lệ lân cận gần nhất.
Appleshell

1
Nếu tôi nhớ chính xác, Spelunky ban đầu (được tạo trong Game Maker) có một DLL cho phép mở rộng quy mô tuyến tính. Nguồn có sẵn tại liên kết đó; có một cái nhìn
Anko

Câu trả lời:


13

Tìm thấy một giải pháp từ một số tài nguyên. Chuyển đến Cài đặt trò chơi toàn cầu, sau đó chuyển đến bất kỳ phần lướt web nền tảng nào (ví dụ: "Windows" hoặc "Android"), ở đó chọn phần lướt web có tiêu đề "Đồ họa" và tắt "Nội suy màu giữa các pixel". Chúc vui vẻ :)


Về mặt kỹ thuật này hoạt động, mặc dù nghệ thuật pixel có thể bị thay đổi do nhân rộng với hệ số không nguyên (ví dụ 2,5x)
liggiorgio

Bạn có nghĩa là họ không bận tâm để làm cho thiết lập mặc định?!? Tôi vừa kiểm tra và nó mặc định theo cách khác trong nhà sản xuất trò chơi 8.0. Đây chỉ là hạt .... Câu trả lời tuyệt vời btw.
dùng64742

5

Không ai muốn đối phó với việc phải tự mở rộng quy mô mỗi sprite; không chỉ là một không gian làm việc cẩu thả mà còn mang lại sự không chuyên nghiệp. Tôi đã tìm thấy một giải pháp khi tắt nội suy trong cài đặt trò chơi toàn cầu không hoạt động.

texture_set_interpolation(false);

:) Tôi hy vọng điều này sẽ giúp bạn trong nỗ lực trong tương lai của bạn.


Đây là giải pháp tốt nhất nếu nhắm mục tiêu nhiều nền tảng, bạn không cần phải nhấp vào "Nội suy màu giữa các pixel" cho mỗi nền tảng! Chính xác những gì tôi đang tìm kiếm.
Pickup Logan

1

Những gì tôi thường làm cho việc này là sử dụng photoshop hoặc GIMP (scale / Recent Neighbor)

Nhưng để làm điều đó trong trình soạn thảo sprite GM: S, tôi sử dụng lệnh Stretch thay vì chia tỷ lệ và đặt nó thành chất lượng POOR. Điều đó sẽ giữ cho loại cảm giác BlockyScreenie từ một trò chơi đang làm việc trên atm, sprite được mở rộng trong chính GM: S

Trên đây là một trò chơi tôi đang làm việc trên ATM, tôi đã làm điều đó!


Mặc dù điều này không hoạt động để tăng tỷ lệ trên một số độ phân giải nhất định, nhưng GM sẽ có thói quen nén họa tiết theo mặc định. Điều này cũng sẽ mở rộng quy mô khác nhau trên các độ phân giải khác nhau khi sử dụng chức năng kéo dài, điều này sẽ gây ra hiện tượng mờ mà chúng tôi đang cố gắng tránh. Tuy nhiên, +1 cho đề cập đến (Quy mô / Hàng xóm gần nhất).
Tom 'Blue' Piddock

1

Tắt chức năng tỷ lệ trong tab nền trong bản đồ. Nếu nó có vẻ ngoài tỷ lệ, hãy đảm bảo rằng kết cấu của bạn cho mặt sau có cùng kích thước với phòng / bản đồ bạn đang ở.

Hoặc sử dụng bài viết này ở đây để tạo một kịch bản nền sẽ nâng cao mặt bằng với (hy vọng) kết quả rõ nét.

Điều này sử dụng các bề mặt vì vậy nếu bạn cần thêm trợ giúp về điều đó - bài đăng này cung cấp nhiều thông tin.


BIÊN TẬP:

Quay trở lại với câu trả lời của tôi, tôi nhận ra rằng điều này không phải là khó khăn và cần nội dung hướng dẫn. Đây là:

BƯỚC 1 : Chọn thang đo bạn muốn. Sử dụng chế độ xem cho mỗi phòng và có cổng W và cổng H được chia tỷ lệ thích hợp. Vì vậy, ví dụ, nếu bạn đang sử dụng thang điểm 2 ... thì nó sẽ trông như thế này, trong trình chỉnh sửa phòng của GM.

Điều quan trọng là điều này phù hợp cho tất cả các phòng. Nếu bạn có nhiều phòng, có thể dễ dàng thực hiện việc này thông qua mã *. Tôi thích làm theo cách đó, bởi vì sau đó các giá trị không đổi và tôi có thể hỗ trợ nhiều thang đo khác nhau.

BƯỚC 2 : Tạo 3 tập lệnh, screen_init, screen_begin và screen_end. Đây là những gì diễn ra trong mỗi kịch bản ...

Trích dẫn từ: screen_init

// screen base(view_wview and view_hview)
screen_x = 0;
screen_y = 0;
screen_w = 320;
screen_h = 240;
screen_scale = 2;

// create a surface for the whole screen to be drawn on
screen = surface_create(screen_w,screen_h);

// this will destroy the screen object if surfaces are not supported on the graphics card, reverting to the viewport method
if screen = -1{instance_destroy();}

Trích dẫn từ: screen_begin

// this draws the surface on the screen
surface_reset_target();
draw_clear(0);
draw_set_blend_mode_ext(bm_one, bm_zero);
draw_surface_stretched(screen,screen_x,screen_y,screen_w*screen_scale,screen_h*screen_scale);
draw_set_blend_mode(bm_normal);
screen_refresh();

Trích dẫn từ: screen_end

// this sets surface 'screen' as the drawing target for everything in the game, so all drawing will be done on this surface and not on the game screen
surface_set_target(screen);

BƯỚC 3 : Bây giờ chúng ta có các kịch bản, nhưng chúng đi đâu? Tạo một đối tượng. Giống như, obj_screen, objScreen, o_screen hoặc bất cứ điều gì và làm như sau:

  • A) đặt screen_initscript trong sự kiện Tạo.
  • B) đặt tập lệnh screen_begin trong sự kiện Bước bắt đầu.
  • C) đặt tập lệnh screen_end trong sự kiện Bước cuối.

Và đặt đối tượng đó trong phòng đầu tiên và quan trọng nhất của trò chơi của bạn, đánh dấu nó liên tục và đảm bảo không có bản sao của nó.

Bạn đã hoàn thành và bây giờ có tỉ lệ đẹp, sắc nét = D


Tôi muốn mở rộng nó mà không làm mờ vì tôi yêu nghệ thuật pixel. Vì vậy, điều này không trả lời câu hỏi của tôi. Điều này có thể không?
mpower 22/11/13

Không có khả năng, studio Game Maker thực hiện mở rộng với thuật toán mở rộng xấu, điều này thường làm cho tỷ lệ mờ không mong muốn. Sử dụng hướng dẫn tôi vừa chỉnh sửa trong câu trả lời của mình để thử một nền rõ nét với tỷ lệ.
Tom 'Blue' Piddock

Bạn đã xem xét tỷ lệ trước kết cấu nền của bạn trong một chương trình đồ họa?
Philipp

Hai cách là tốt. Trước tiên, kết hợp một số tập lệnh ở đây. Thứ hai là chia tỷ lệ hình ảnh trước khi sử dụng chúng.
mpower

Tuyệt vời, rất vui vì nó đã giúp.
Tom 'Blue' Piddock

-2

Sử dụng texture_set_interpolation(false)để làm cho nó vẽ chúng như là.


Điều này có thể đúng, nhưng bạn có thể đi vào chi tiết nào nữa không? Chúng tôi thường tìm kiếm một chút chi tiết hơn, trong câu trả lời của chúng tôi.
Gnemlock
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.