스카이림 번역보관소


MCM 등의 스크립트를 TesVTranslator로 번역하다 보면 위 스샷처럼 자물쇠+보라색줄로 표시되어 번역이 불가능한 줄이 있습니다.

이런 줄들은 스크립트에서 변수로 사용되기 때문에 번역하면 오류가 발생하므로 번역이 원천금지된 부분입니다.


그런데 간혹 스트링(게임내에서 텍스트로 출력되는 부분)이 변수와 똑같게 짜여진 경우 TesVTranslator가 이 둘을 구분하지 못하고 일괄적으로 번역을 금지시키기도 합니다. 이런 경우 .psc (소스 파일)이 있다면 문제되는 부분을 수정해서 컴파일하면 번역이 가능해집니다.

이 글은 이렇게 모드 스크립트 번역시 변수와 스트링이 같아 번역이 불가능한 경우의 psc 수정/컴파일 방법입니다.


  • 참고 : TesVTranslator 모드 번역시 주의점 (http://renn.tistory.com/494)
  • 필요 : 수정할 스크립트 소스(.psc), Notepad++ , TesVTranslator , SKSE & SkyUI의 스크립트 소스(.psc) (bsa 추출 필요)
  • 예시 모드 : Skyrim Unbound
  • 수정할 스크립트 : data/scripts/source/skyrimunboundmcmscript.psc (bsa 추출 필요)



1. Notepad++로 PSC 수정하기



윈드송님이 문의하신 Inn 부분은 이렇게 Array 변수로서의 Inn과 텍스트로 출력되는 Inn이 똑같기 때문에 이대로는 번역이 불가능한 상태입니다. Inn뿐만 아니라 이런 부분이 많이 있는데, 변수를 바꾸는 건 복잡하고 까다로우니까 텍스트로 출력되는 부분(스트링)만 바꾸는 게 편합니다. 수정해야 할 부분은 아래와 같습니다.


event OnPageReset ~ endevent 사이


여기가 MCM 화면으로 표시되는 레이아웃이고, 텍스트로 출력되는 부분은 아래에 해당됩니다.


AddHeaderOption("텍스트") ;타이틀(대분류) 이름

AddToggleOption("텍스트", ...) ;토글 옵션 이름

AddMenuOption("텍스트", ...) ;메뉴 옵션 이름

AddSliderOption("텍스트", ...) ;슬라이더 옵션 이름


여기서 Inn의 경우 "Inn"을 "@Inn" 등으로 원래 이름과 분명하게 구분되도록 바꿔주면 됩니다. 하나하나 일일이 바꾸는 게 번거롭다면 Notepadd++의 기능을 활용해서 event OnPageReset ~ endevent 사이 구간을 선택한 뒤 일괄변경하면 편리합니다. (@ 부분은 나중에 TesVTranslator로 pex를 열어 @만 지우고 저장한 뒤 pex를 다시 불러오면 기존에 만든 사용자사전도 그대로 적용할 수 있습니다)



수정한 뒤에는 그대로 저장하면 됩니다.





2. CK툴로 PSC 컴파일하기


모드 오거나이저 사용자의 경우 CK툴로 컴파일하려면 먼저 준비작업이 필요합니다. 아래 글을 참고하세요.



CK툴로 모드를 불러온 뒤(이때 반드시 SKSE, SkyUI의 스크립트 소스 psc 파일들도 같이 불러와야 합니다), Object Window에서 수정할 스크립트가 링크된 부분을 찾아갑니다. 아까 수정한 스크립트는 MCM 스크립트이므로 MCM 부분을 찾으면 되는데, Character - Quest 트리를 선택한 뒤 FormID 순으로 정렬하면 모드로 추가된 항목만 모아볼 수 있습니다. (Count에서 *표시) 여기서 MCM으로 짐작되는 항목을 더블클릭해서 창을 띄운 뒤 탭 메뉴의 Scripts를 찾아갑니다.


※ CK툴을 쓰지 않고 Notepad++로 직접 컴파일할 수도 있지만 여러모로 CK툴을 쓰는 쪽이 더 낫습니다.

※ CK툴로 해당 모드를 꼭 로딩하지 않고 스크립트만 컴파일할 수도 있지만 역시 모드를 불러와놓고 작업하는 쪽이 여러모로 좋습니다.

※ papyrus util 모드를 기반으로 하는 모드는 papyrus util의 스크립트 소스까지 같이 불러와야 합니다.



Scripts 탭에서 링크된 MCM 스크립트(수정할 스크립트)를 마우스 우클릭한 뒤 Edit Source를 클릭하면 아래처럼 컴파일러 창이 열립니다.




여기서 File - Save나 Build - Compile을 선택하면 스크립트가 컴파일되며 psc와 동일한 이름의 pex 파일이 생성됩니다. 이때 위 스샷처럼 반드시 Compilation succeeded라는 문구가 떠야 합니다. (실패할 경우 어떤 줄의 어떤 구문이 문제라는 표시가 주루룩 뜨게 됩니다)

pex 생성 경로는 date/scripts 폴더 안입니다. MO의 경우에도 모드가 설치된 폴더 안에 pex 파일이 이미 있으면 overwrite 폴더가 아니라 해당 모드 폴더 안에 생성됩니다.




3. TesVTranslator로 PEX 번역하기


이렇게 만든 pex 파일을 TesVTranslator로 열어보면 변수와 스트링(텍스트 출력 부분)이 구분된 것을 볼 수 있습니다. 이제 원하는 대로 번역하시면 됩니다.





scripts_SKSE172_SkyUI.7z (컴파일에 필요한 SKSE SkyUI 소스)

skyrimunboundmcmscript.7z (번역가능하게 수정된 Skyrim Unbound MCM pex)


  • BlogIcon 윈드송 2015.06.28 18:32 신고

    헐 정말 감사합니다. 역시 고수는 남다르군요. 그런데 제가 쓰는 Unbound랑 달라보이네요. 그동안 업데이트가 되었단 말인가...

    1. BlogIcon 윈드송 2015.06.28 18:46 신고

      업데이트되었을 뿐만 아니라 보이스 파일까지 추가됬네요. 좋군요.

    2. BlogIcon renn 2015.06.28 18:58 신고

      스팀으로 이사갔길래 다시 받았어요 ㅎㅎ 이대로 해보시고 막히는 부분 있으면 댓글 주세요.
      그리고 SkyUI psc 파일들도 꼭 source 폴더 안에 풀어놓고 CK툴을 여셔야 합니다. 모든 mcm 스크립트는 ski configbase 소스가 필요하기 때문에 안그러면 컴파일이 되지 않아요.

  • 그가 돌아왔다.. 2015.06.28 21:03 신고

    감사합니다!
    가끔 오역이나 아예 안되있는 번역이 있어서 수정하고 싶었는데.. 정말 좋은 정보네요.

    1. BlogIcon renn 2015.06.29 22:25 신고

      스크립트 번역이 안되는 경우는 이외에도 몇가지 있는데
      MCM 일부가 번역 안되는 건 이 방법으로 해결이 될 거예요.
      도움되시면 좋겠네요 ㅎㅎ

  • BlogIcon 윈드송 2015.06.29 17:44 신고

    Notepad++는 쭈욱 사용하던 거라서 쉽게 이해했는데 CK Kit 부분은 그대로 따라했는데 계속 에러가 뜨네요...
    SkyUI와 Unbound 모두 BSA 압축을 풀어서 제 위치에 넣고 SkyUI와 Unbound 모두 활성화시켜서 연 뒤에
    File - Save나 Build - Compile을 선택하니 무조건 Compile 에러가 뜹니다 MO로도 해보았지만 마찬가지네요.

  • BlogIcon 윈드송 2015.06.29 20:16 신고

    C:\Program Files (x86)/Steam/steamapps/common/skyrim/Data/Scripts/Source/
    ski_configmanager.psc(61,1): RegisterForModEvent is not a function or does not exist

    표시되는 부분도 전부 폴더 안에 잘 놓여있는데 원인을 모르겠네요.

    번역을 해다 놓았는데 왜 사용하질 못하니 : (

    1. BlogIcon renn 2015.06.29 22:26 신고

      아참 SKSE 스크립트 소스도 같이 불러오셔야 합니다. SKSE SkyUI 둘다 넣고 해보세요.

    2. BlogIcon renn 2015.06.29 22:41 신고

      네네

    3. BlogIcon 윈드송 2015.06.29 22:49 신고

      에러 내용을 살표보면 SkyUI의 PSC 파일을 읽지 못하는 것 같은데
      외국 웹이랑 공식 포럼을 아무리 뒤져도 방법을 못 찾겠네요.

    4. BlogIcon 윈드송 2015.06.29 22:54 신고

      SKSE 소스 파일말인가요?

      SKSE 소스 파일, SkyUI 소스 파일, Sky Unbound 소스 파일 모두
      Data/Scripts/Source 폴더 안에 있는 걸 확인했고

      CK툴 새로 설치도 해보고 Data 폴더 안에 있는 스크립트 파일
      풀어도 보고 모든 과정을 다 거쳤는데 compile 에러가 뜨네요.

      그냥... renn님이 수정하신 Unbound 파일을 보내주실 수 있을까요?
      5시간째 이것만 하니까 너무 허무하네요.

      아니면 제가 번역한 파일 보내드려도 될까요... 안될 놈은 뭘 해도 안 되나 봅니다 하아...

    5. BlogIcon renn 2015.06.30 00:31 신고

      제가 글에 뭘 빼먹고 썼는지 모르겠네요 ㅠㅠ
      수정한 pex는 글 맨 아래에 올려두었으니 받아보세요.
      스크립트 수정해서 번역하는 동지가 생겼구나 하고 기뻤는데 아쉽네요 ㅠㅠ

    6. BlogIcon 윈드송 2015.06.30 00:44 신고

      일단 주신 pex로 작업하고 문제는 천천히 알아봐야겠습니다.
      오늘만큼은 컴퓨터 앞에 더 앉아있으면 화병날 듯 하네요 : )

  • BlogIcon 윈드송 2015.06.30 19:01 신고

    맙소사... 업로드하신 psc로 하니까 컴파일이 되네요. 이게 어찌된 영문인지;; 제 스크립트가 망가졌었나 봅니다.

    1. BlogIcon renn 2015.07.01 19:48 신고

      다행이네요 ㅎㅎ