--------------------------------------------------------------------------------------------------------

https://mega.nz/file/YsV3QaDI#Nr2apJiFJibHv1R2vad8uuyIR1ovNthTWsbTUpHXdAU

※ 이 툴은 기본적인 기능은 전부 다 갖추어져 있으나

유리스 엔진의 버전이 워낙 다양해서 모든 버전에 대한 세팅이 되어 있지 않습니다.

혹시 이 툴로 ypf 파일 분해나 ybn 파일에서 텍스트 추출이 안된다면 댓글로 제보해 주세요.

그때마다 확인하고 업데이트하겠습니다.

--------------------------------------------------------------------------------------------------------

※ ybn이 아닌 txt 파일에 텍스트가 들어 있을 경우는 YsTextTool이 필요합니다.

https://arca.live/b/handtranslator/45054023

사용법은 간단합니다.
이 툴을 txt 파일들이 있는 폴더에 붙여넣고,
YSTextTool -xt 로 텍스트 일괄추출, 

YSTextTool -rt 로 텍스트 일괄교체를 할 수 있습니다.
-xt로 추출된 ~ext.txt 파일을 번역하면 됩니다.
참고로 선택지일 때는 [◆] 다음에 [::]가 붙는 것만 주의하시고,
이외에는 기존 텍스트 추출/교체와 똑같이 사용하면 됩니다.

--------------------------------------------------------------------------------------------------------

Ver 1.05

데이터 병합 시 버그가 생기는 현상을 해결했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.06

추출되는 텍스트의 간결화 및

유리스 엔진 상위/하위 버전의 추출/병합 버그를 해결했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.07

폰트 크기 관련 명령어 ( "es.FONT.SIZE.SET", ""es.TD.SIZE.SET" )의 값들을 추출하여

게임 내 폰트 크기 변경이 가능해졌습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.08

특정 게임 텍스트 추출/교체 버그를 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.09

개행 추출 기작을 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.11

텍스트 추출/교체 기작을 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.12

리소스 병합 시 .webp 파일을 인식하지 못하는 버그를 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.13

텍스트 추출 시 입력이 불가능한 일부 게임의 키를 등록했습니다.

(게임 : Maggot Baits -> 키 : __custom__maggot__ 으로 입력)

--------------------------------------------------------------------------------------------------------

Ver 1.14

텍스트 교체 시 버그를 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.15

텍스트 추출 시 필터링을 업데이트했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.16

설명문을 영어로 바꾸고 중국어 지원을 추가했습니다.

중국어는 [chs]로 적용할 수 있습니다.

다른 언어도 요청이 들어오면 추가할 계획입니다.

--------------------------------------------------------------------------------------------------------

Ver 1.17

텍스트 추출/교체 시 개행 필터링을 업데이트했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.18

기존에 -p 옵션으로 패킹하면 간헐적으로 잘 작동하지 않는 현상을 수정했습니다.

또한 텍스트 추출/교체 시 개행 필터링을 업데이트하고 lexer 역할을 하는 ybn 파일의 언어코드 범위를 한국어에 맞게 확장하는 기능도 추가했습니다.

월풀사 게임들처럼 일본어 언어코드의 범위를 벗어나면 출력이 아예 안 되는 게임들 같은 경우 유용합니다.

--------------------------------------------------------------------------------------------------------

Ver 1.19

일부 게임에서 텍스트 추출 후 리팩할 때 정상적으로 작동하지 않는 현상을 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.20

일부 게임에서 텍스트 추출/리팩 시 정상적으로 작동하지 않는 현상을 수정했습니다.

--------------------------------------------------------------------------------------------------------

Ver 1.21

일부 게임에서 텍스트 추출/리팩 시 개행문자가 출력/반영되지 않는 현상을 수정했습니다.

또한 YsTextTool도 동봉했으니, 사용법은 상단 설명을 참조해주세요.

--------------------------------------------------------------------------------------------------------



아무래도 글 링크와 내용이 너무 분산되어 있어서 이해가 어려운 분들이 많았던 것 같습니다.

그래서 이참에 싹 정리하려고 합니다.

목차는 다음과 같습니다.

--------------------------------------------------------------------------------------------------------

1. ypf 파일 언팩

2. ypf 파일 리팩

3. ycg 파일에서 png 추출 / 교체

4. 게임별 키값 추출

5. ybn 파일 텍스트 추출

6. 텍스트 번역 / 개행 자유 조절

7. ybn 파일 텍스트 교체

8. 유리스 게임 타이틀 변경 방법

9. 유리스 게임엔진 실행파일 한글출력 / 폰트 설정 방법

--------------------------------------------------------------------------------------------------------



1. ypf 파일 언팩

유리스 엔진은 버전이 워낙 다양해서 버전별로 ypf 분해 기작이 다릅니다.

그래서 꼭 버전을 신경써줘야 합니다.

일단 여기서는 '여장신사'를 예로 들겠습니다.


파일배치 및 pac 폴더 내부는 다음과 같습니다.


분해 명령은 다음과 같습니다.

ToolForYuris -x [분해할 ypf의 경로명] 입니다.


이 과정에서 저렇게 버전이 나오는데, 이 값을 꼭 기억해둬야 합니다.

게임별로 다 다르기 때문에 이걸 알아야 패킹도 제대로 할 수 있습니다.

'여장신사' 같은 경우는 479네요.


분해하면 Output 폴더가 생기고, 들어가면 다음과 같이 나옵니다.

위 이미지는 Output -> cg -> bg 폴더를 들어갔을 때 상태입니다.

이러면 정상적으로 분해가 된 겁니다.



2. ypf 파일 리팩

유리스 엔진은 버전이 워낙 다양해서 버전별로 ypf 분해 기작이 다릅니다.

그래서 버전별로 ypf 패킹을 신경써줘야 합니다.


합성 명령은 다음과 같습니다.

ToolForYuris -p [합성할 데이터가 들어 있는 폴더] [새로 합성할 ypf 파일명] [버전] 입니다.

위에서 알아낸 버전인 479를 넣고 합성해줍니다.



그러면 보다시피 ypf 파일이 새로 생깁니다.

이걸 pac 폴더에 있는 기존 ypf 파일과 바꿔치면 됩니다.

다른 ypf 파일들도 이런 식으로 처리할 수 있습니다.



3. ycg 파일에서 png 추출 / 교체

'여장신사' 같은 일부 유리스 게임은 이미지 데이터를 ycg 파일로 묶어 저장해두기도 합니다.

ycg 파일에도 이미지가 담겨 있으므로 이미지 추출 기작과 병합 기작을 넣었습니다.

설명이 헷갈리시는 분은 https://arca.live/b/smpeople/37020739 이쪽을 참조하셔도 괜찮습니다.


Output -> cg -> bg 폴더 내부입니다.

보다시피 ycg 파일 덩어리입니다.


이걸 필요한 데이터만 적당히 복사해서 다른 곳에 넣습니다.

저는 _ycg 라는 폴더를 만들어서 넣어놨습니다.


png 파일 추출 명령어는 ToolForYuris -xai [ycg 파일들이 든 폴더명] 입니다.

해당 폴더에 든 모든 ycg 파일에서 png 파일을 추출해줍니다.


보다시피 아주 깔끔하게 나왔습니다.

이제 이 이미지 파일을 변경해서 반영해 봅시다.


aozora.ext.png 파일을 이렇게 변경하고 싶다고 칩시다.

이렇게 저장한 후 일괄교체해주면 됩니다.


png 파일 교체 명령어는 ToolForYuris -rai [ycg 파일들이 든 폴더명] 입니다.

해당 폴더에 든 모든 ycg 파일에 대응되는 png 파일을 교체해 줍니다.

.ycg 파일에 대응되는 이미지 파일은 .ext.png 확장자가 붙습니다.


위 과정을 거쳤으면 aozora.ycg 파일은 변경한 이미지로 교체되었을 겁니다.

이 파일을 원래 경로에 덮어씌우고 ypf 파일로 합성해줍니다.


그러면 보다시피 아주 잘 반영됩니다.



4. 게임별 키값 추출 

모든 유리스 게임은 ybn 암호화에 쓰이는 고유한 문자열 키값이 있습니다.

하지만 등록된 값을 뒤져봐도 키를 찾을 수 없다면 게임에서 직접 추출해야 합니다.

이럴 때를 대비한 기능입니다.

이번에는 '여름의 사슬' 에 대해 살펴보겠습니다.

키값 찾기 명령어는 ToolForYuris -fk [실행파일명] 입니다.

키를 찾으면 저렇게 출력해 줍니다.

이 키값은 ybn 파일 텍스트 추출 / 교체 시 반드시 필요하므로 꼭 복사해둬야 합니다.



5. ybn 파일 텍스트 추출

유리스 게임엔진의 모든 텍스트는 ybn 파일에 저장됩니다.

그래서 ybn 파일 내부의 텍스트를 출력 및 교체할 줄 알아야 합니다.

위 '키값 찾기'와 연동됩니다.

※ ybn이 아닌 txt 파일에 텍스트가 들어 있을 경우는

https://arca.live/b/handtranslator/45054023
이 게시글을 참조하세요.


먼저 ybn이 들어 있는 ypf 파일을 분해하면 이렇게 뜹니다.

이 중에서 번역에 필요한 파일은 yst00000.ybn ~ 부터 숫자가 붙은 ybn 파일입니다.

'여름의 사슬' 같은 경우는 yst00221.ybn 까지 있었습니다.


그러니 yst00000.ybn ~ yst00221.ybn 파일을 복사하고 다른 폴더에 넣습니다.

이때 ToolForYuris.exe도 같이 복사해 넣어줍니다.

저는 _ybn 폴더를 만들어 거기다 넣었습니다.


그리고 cd로 _ybn 폴더로 옮긴 후 텍스트를 추출해 줍니다.

명령어는 ToolForYuris -xat [yst 뒤에 붙은 숫자 최대값] [키값] 입니다.

해당 폴더에 있는 모든 [yst + 숫자].ybn 파일의 텍스트 파일을 추출해 줍니다.

여기서는 yst00221.ybn 까지 있으니 221을 넣어주고 키값은 앞서 구한 키를 넣어주면 됩니다.


그러면 이렇게 추출됩니다.



6. 텍스트 번역 / 개행 자유 조절

이렇게 추출한 파일들 중 스토리 시작 스크립트인 yst00162.ext.txt 파일을 번역해보겠습니다.

추출한 텍스트 파일을 열어보면 이렇게 뜨는데,


일괄적으로 [jap] 을 [kor]로 바꾸고 그냥 번역하면 됩니다.



또한 텍스트의 개행 여부도 수정 가능합니다.

보다시피 '\r\n' 이 밑에 있는 텍스트는 저렇게 개행이 되어 출력됩니다.



여기서 '\r\n'을 일반 공백 ' '로 바꿔서 반영하면 개행이 되지 않고 저렇게 붙어 나옵니다.

개행을 공백으로 바꿀 때 장점은 반각으로 처리해도 텍스트가 깨지는 일 없이 안정적으로 출력된다는 장점이 있으나,

개행을 포기함으로서 텍스트가 일렬로 출력되기 때문에 시각적인 불편함을 유발한다는 단점이 있습니다.

어차피 개행을 공백으로 바꾸는 건 선택적인 사항이니 알아서 결정하시면 될 것 같습니다.



7. ybn 파일 텍스트 교체

이제 이렇게 번역한 텍스트 파일을 다시 ybn 파일에 반영해야 합니다.

명령어는 ToolForYuris -rat [yst 뒤에 붙은 숫자 최대값] [키값] 입니다.

사실 -xat에서 -rat로 바꾸면 됩니다.

각 ybn 파일에 대응되는 .ext.txt 파일로 텍스트를 교체해 줍니다.

이렇게 번역된 yst00162.ybn 파일을 원래 경로에다 덮어씌우고 ypf 파일로 합성합니다.


그럼 이렇게 잘 출력되는 걸 확인할 수 있습니다.



8. 유리스 게임 타이틀 변경 방법

게임을 번역하면 기본적으로 게임 타이틀도 한글로 변경되어야겠죠.

https://arca.live/b/handtranslator/36938320

원래는 여기다 같이 적고 싶었는데 이것만 해도 너무 길어서 본의 아니게 글을 쪼갰습니다;



9. 유리스 게임엔진 실행파일 한글출력 / 폰트 설정 방법

하지만 정작 이렇게 번역을 해도 십중팔구는 게임을 그대로 실행하면 글자가 와장창 깨져 나올 겁니다.

그럴 때는 https://arca.live/b/handtranslator/37003096 이 글을 참조해주세요.

이거도 마찬가지로 너무 길어서 글을 쪼갰습니다;


-----------------------------------------------------------------------------------------------------------------------

이거 설명서 쓰는데 1시간 반이나 걸렸네요;

혹시 궁금하신 거 있으시면 댓글 달아주세요.