07th-mod / 07th-mod/higurashi-patch-compiler

Ryukishi sprites and Backgrounds

Đang mở
#54 34 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
PHP
Star
7
Fork
1
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Currently our patch supports the PS3 and MG sprites but we removed the support for the original Ryukishi sprites. In this issue I'll write down the steps we need to take to add them back.

### 1. JSON file with sprite aliases

Both MG and Ryukishi sprites have fewer facial expressions than PS3. For MG sprites we solved it by addind certain sprites as multiple copies with different names which increases the patch size unnecessarily.

A better way would be to add a JSON file with a map of sprite aliases.

For Ryukishi sprites this would enable us to use the sprite names from vanilla and just link them to PS3 sprites using the json.

### 2. Fallback for sprites when LS is not active

I noticed that most cases of sprite duplication in CGAlt are cases like `me1a_akuwarai_a1_1` and `me1a_akuwarai_a1_2` being the same sprite. This is intentional as the sprite is different for PS3 sprite with LS disabled. For CGAlt there are also some cases where the sprites are different such as `oisi1_5_0` and `oisi1_5_2` in Watanagashi.

Solution: For CGAlt (and for Ryikishi sprites) if `sprite_X` does not exist try `sprite_(X-1)` and `sprite_(X-2)` (if X=2) as fallbacks before falling back to PS3 `sprite_X`.

### 3. Write the list of aliases

Next we need the linking for vanilla names (Ryukishi sprites) to our names (PS3 sprites). This will need to be done manually and will take some time because there are several hundreds of sprites for each arc. Of course we can use a json from one arc as a base for the next and generate a basefile automatically to insert the aliases into.

### 4. Engine changes

For the DLL this means to add another directory like current CG/CGAlt but for Ryukishi sprites. Unlike CGAlt this should not fallback to PS3 sprites - minor characters who don't have Ryukishi sprites simply won't have sprites instead of falling back to PS3.

Also we need a way for the user to configure which sprites they want to use. Since it's difficult for us to add a button to the config screen it would have to be another hotkey. Or possibly we can reuse the current hotkey for switching between sprites and just let it have a third value. There might be some compatibility issues with the config screen only having 2 values so it will need some testing.

### 5. Possible bugs

Our first patches had some issues with the engine freezing on some `WithFiltering` instructions if the file did not exist. Since then we made sure that no sprites are missing and it's likely the current engine won't actually freeze with all of our modding for LipSync. Still it needs some testing to check if it works ok since there will be missing Ryukishi sprite for the minor characters.

----

If you have any ideas or concerns please share. Also we need volunteers, especially for the third part to manually create the alias map.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Issue mô tả việc thêm lại sprite Ryukishi. Bắt đầu bằng cách kiểm tra các thư mục sprite hiện có (CG, CGAlt) và mã DLL của engine để hiểu logic tải sprite. Tìm kiếm các ví dụ về tệp alias JSON từ sprite MG. Công việc liên quan đến việc tạo bản đồ alias sprite, sửa đổi engine để xử lý thư mục sprite thứ ba và phím tắt cấu hình, và kiểm tra các phương án dự phòng cho sprite bị thiếu. 'Hoàn thành' có nghĩa là sprite Ryukishi được tải chính xác qua phím tắt mà không làm engine bị đóng băng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
php
Lĩnh vực
game-dev
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.