Công cụ chuyển đổi bản đồ chơi từ OSU!Standard/osu!Taiko sang OSU!Mania đã được phát hành
Tác giả: HowieHz
Ngày: 16/06/2024
Trong bài viết này, chúng tôi sẽ giới thiệu một công cụ hữu ích giúp chuyển đổi các bản đồ chơi từ chế độ OSU!Standard và OSU!Taiko sang chế độ OSU!Mania, mở ra nhiều khả năng sáng tạo mới cho cộng đồng người chơi. Đây là một dự án mã nguồn mở (open-source), dành riêng cho những ai đam mê trò chơi âm nhạc.
Tính năng chính của công cụ:
- Chuyển đổi bản đồ chơi từ OSU!Standard sang OSU!Mania: Giúp người chơi dễ dàng trải nghiệm các bản đồ chơi phổ biến trong chế độ Mania.
- Đang phát triển: Chức năng chuyển đổi từ OSU!Taiko sang OSU!Mania để mở rộng thêm lựa chọn cho người dùng.
Nếu bạn muốn hỗ trợ dự án, hãy nhấn nút “star” trên trang GitHub của dự án. Sự ủng hộ của bạn sẽ tiếp thêm động lực để cải tiến công cụ này.
Trong quá trình sử dụng nếu gặp lỗi hoặc có ý tưởng mới, xin vui lòng tạo một Issue trên trang GitHub để thảo luận cùng nhóm phát triển.
Lý do tạo ra dự án
Mục tiêu chính của dự án này xuất phát từ niềm yêu thích trò chơi âm nhạc. Chúng tôi mong muốn mang đến một công cụ đơn giản nhưng hiệu quả cao, giúp tối ưu hóa trải nghiệm chơi game cho cộng đồng người dùng.
Mục đích sử dụng phần mềm
Đối với việc chuyển đổi từ OSU!Standard sang OSU!Mania:
- Hỗ trợ người mới làm quen cách phân bố phím tay trái sao cho hiệu quả nhất.
- Giúp nhà thiết kế bản đồ Mania tận dụng âm thanh từ bản đồ Standard mà không cần phải tự tạo lại.
- Phân tích kỹ thuật chơi và cấu trúc bản đồ.
- Thưởng thức trò chơi ở chế độ Autopilot với cảm giác mượt mà hơn.
Đối với việc chuyển đổi từ OSU!Taiko sang OSU!Mania:
- Cho phép nhà thiết kế bản đồ Mania sử dụng âm thanh từ bản đồ Taiko.
- Phân tích kỹ thuật chơi và cấu trúc bản đồ.
- Các ứng dụng khác đang được nghiên cứu thêm.
Loại bản đồ nào có thể được sinh ra?
Đối với việc chuyển đổi từ OSU!Standard sang OSU!Mania:
- Bản đồ phù hợp với cách phân bố ngón tay thông thường (low-density single-tap, high-density two-finger alternation).
- Bản đồ luyện tập single-tap (các tham số ví dụ: max-stack-count=1000000, min-stack-time-interval=0).
- Bản đồ luyện tập strong-dual (các tham số ví dụ: max-stack-count=1, min-stack-time-interval=1000000).
Đối với việc chuyển đổi từ OSU!Taiko sang OSU!Mania:
- Bản đồ phù hợp với cách phân bố ngón tay thông thường.
- Bản đồ chỉ chứa các nốt small red circle và small blue circle (các tham số ví dụ: max-stack-count=1000000, min-stack-time-interval=0).
- Bản đồ ép buộc sự luân phiên giữa hai ngón tay (các tham số ví dụ: max-stack-count=1, min-stack-time-interval=1000000).
Quy tắc chuyển đổi và loại bản đồ có thể tạo
Đối với việc chuyển đổi từ OSU!Standard sang OSU!Mania:
Quy tắc chuyển đổi:
- Notes từ chế độ Standard -> notes trong Mania.
- Sliders từ chế độ Standard -> sliders trong Mania.
- Spinners từ chế độ Standard -> sliders trong Mania.
Loại bản đồ có thể tạo:
- OSU!Mania 1k
- OSU!Mania 2k
- OSU!Mania 4k (sử dụng 2 lanes bên trái như 2k mà không cần skin interface).
Đối với việc chuyển đổi từ OSU!Taiko sang OSU!Mania:
Quy tắc chuyển đổi:
Red circles nằm ở bên trong, blue circles nằm ở bên ngoài.
- Small red circle (d) -> note trong Mania.
- Small blue circle (k) -> note trong Mania.
- Large red circle (D/O) -> note trong Mania.
- Large blue circle (K/X) -> note trong Mania.
- Long yellow bars (scrolling bars) -> slider trong Mania.
- Large long yellow bars -> slider trong Mania.
- Drum rolls (spinners) -> slider trong Mania.
Lưu ý:
- Việc chuyển đổi long yellow bars/large long yellow bars không hoàn hảo vì trong khi chơi Taiko, bạn cần đánh theo nhịp của dots trắng chứ không phải giữ liên tục.
- Việc chuyển đổi drum rolls cũng không hoàn hảo vì trong Taiko, bạn cần luân phiên giữa các phím đỏ và xanh.
Loại bản đồ có thể tạo:
- OSU!Mania 4k: Theo cài đặt kỹ thuật, các nốt sẽ được phân bổ từ trái sang phải theo thứ tự ddkk/kkdd/dkdk…
- OSU!Mania 5k: Từ trái sang phải gồm 5 lanes, mỗi lane tương ứng với một kiểu nốt cụ thể.
Giải thích chi tiết về cấu hình phần mềm
Đối với việc chuyển đổi từ OSU!Standard sang OSU!Mania:
Cài đặt cơ bản:
- Đặt lane ưu tiên cho phím thường xuyên sử dụng (main key).
- Đặt lane bắt đầu sinh notes (start key).
- Xóa SV khỏi bản đồ (Remove SV).
Cấu hình đặc biệt cho output Mania 2k/4k:
- Đặt lane bắt đầu interaction (trill start key).
- Khoảng cách thời gian nhỏ nhất giữa hai nốt để bắt đầu interaction (minimum jack time interval).
- Số lượng nốt liên tiếp trước khi chuyển interaction (maximum number of jack notes).
Hướng dẫn tải và sử dụng
Sử dụng qua file nhị phân chạy giao diện đồ họa:
Trên Windows:
Tải xuống file nhị phân mới nhất từ Releases và chạy chương trình obmc-latest-noconsole.exe
.
Trên MacOS & Linux:
Xem hướng dẫn chạy từ source code.
Sử dụng qua source code chạy giao diện đồ họa:
- Tải source code và di chuyển vào thư mục gốc của dự án.
- Cài đặt Python 3.12 và chạy lệnh sau:
|
|
Sử dụng qua file nhị phân chạy dòng lệnh:
Trên Windows:
Tải file nhị phân mới nhất từ Releases (obmc-latest.exe
) và chạy lệnh sau trong Command Prompt:
|
|
Trên MacOS & Linux:
Xem hướng dẫn chạy từ source code.
Vấn đề gặp phải trong quá trình phát triển
Đọc bản đồ từ chế độ Standard:
Cần xử lý dữ liệu slider một cách chính xác, đặc biệt là phần cuối của slider có thể bị bỏ qua.
Xuất bản đồ sang chế độ Mania:
Cách phân tách thông tin giữa thời gian kết thúc và sound effect group trong official wiki không chính xác. Dấu phân cách đúng là dấu hai chấm (:), không phải dấu phẩy (,).
Giải thích nguyên lý hoạt động của phần mềm
Cấu trúc chương trình:
Reader (bao gồm tiền xử lý) -> Processor (chuyển đổi dữ liệu) -> Generator (tạo văn bản có thể ghi trực tiếp vào file).
Cách phần mềm xử lý file .osu để tạo bản đồ Mania:
- Đọc thông tin bên ngoài [HitObjects] và lưu trữ dưới dạng osu_file_metadata.
- Đọc thông tin [HitObjects], tiền xử lý bằng hàm std_hit_objects_parser và lưu trữ dưới dạng parsed_hit_objects_list.
- Chuyển đổi parsed_hit_objects_list thành parsed_mania_1k_hit_objects_list.
- Loại bỏ SV theo cấu hình.
Chi tiết từng bước chuyển đổi từ Standard/Taiko sang Mania được giải thích chi tiết trong phần TODO.
Lộ trình phát triển (TODO)
Ưu tiên và dễ thực hiện:
- Hoàn thiện các tùy chọn xuất Mania 2k.
- Thêm chức năng chỉnh sửa tiêu đề bản đồ trong game.
Ưu tiên:
- Hỗ trợ chế độ dark mode cho web UI.
- Đọc env từ dotenv thay vì cài đặt thủ công debug flag.
Trì hoãn:
- Viết tài liệu tiếng Anh.
- Hỗ trợ ngôn ngữ tiếng Anh trong phần mềm.
- Tự động hóa quy trình build multi-platform binary thông qua GitHub Actions.
Dự phòng:
- Phát triển GUI program dựa trên CLI.
Nhật ký cập nhật
Xem chi tiết tại trang Releases.
Hy vọng rằng công cụ này sẽ mang lại giá trị lớn cho cộng đồng người chơi OSU!. Hãy thử nghiệm và góp ý để chúng tôi cải thiện tốt hơn!