유니티 게임 한글화, 한글 패치 제작에 관한 강좌 작성 예정

현재 유니티로 제작된 게임의 한글화 방법과 한글 패치 제작 강좌를 업데이트하고 있습니다.


안녕하십니까, 낙원전자입니다.

슬라임 랜처, 봄버 크루를 한글화, 한글 패치를 제작한 경험을 토대로 유니티 게임을 한글화하는 강좌를 작성해보려 합니다. 강좌는 조금씩 시간이 되는 대로 업로드 할 예정입니다. 그 전에 본인이 직접 한글 패치를 만들어 보고 싶은데 방법을 모르겠다 하시는 분 있으시면, 한글 패치 툴을 제작하는 것을 도와드리면서 강좌에 추가할 예시를 더하고자 합니다.

본인이 유니티 게임의 한글 패치를 제작하고 싶은데 방법을 모르겠다 하시는분은 본 글의 댓글로 질문을 남겨주시면 답변해드리겠습니다.

감사합니다.

봄버 크루의 한글화 패치에 관한 선행 조사

안녕하십니까, 낙원전자입니다.

봄버 크루라는 게임을 한글화 하고싶어서 이것저것 건들여보았고, 슬라임 랜처를 한글화하면서 얻는 기술을 접목시켜 제가 슬라임 랜처의 한글패치를 처음 배포했을 때 버전에 따라서 패치를 새로 만들어주어야하는 것이 아니라 패치 프로그램 스스로 업데이트에 적응하여 패치를 할 수 있는 단계까지 왔습니다.

본 패치 프로그램 및 소스 코드만 있더라도 그 누구나 봄버 크루의 한글 패치를 제작할 수 있는 상태입니다.

그래서, 제가 한글화를 들어가기 전에 봄버 크루의 한글화를 팀 단위로 할지, 제가 개인적으로 진행할지에 대해서 선행 수요 조사를 하려고합니다. 참여 의사를 밝히고 싶은 분께선 12월 22일까지 본 글에 댓글을 남겨주시면되며, 참여하려는 분이 많으시면 공동으로, 적으시면 저 혼자 진행하는 것으로 하겠습니다.

감사합니다.

ps. 본 한글화는 제작사와 아무 관련이 없으며, 제가 개인적으로 진행하는 것입니다.

ps2. 현재 패치 프로그램과 소스코드를 보시려는 분께선 이 주소로 가시기 바랍니다 : https://github.com/dmc31a42/BomberCrewKoreanPatcher

슬라임 랜처 한글패치에 관한 공지사항

안녕하십니까.

긴 공백기간이 지나고 최근 슬라임 랜처 한글패치는 슬라임 랜처 버전에 관계없이 잘 적용되는 단계까지 왔습니다. 제가 예전부터 공언했던 슬라임 랜처 0.6버전 이후로 추가된 텍스트에 대한 번역, 이전에 번역됬던 번역들에 대한 검수를 지금부터 시작하려합니다.

하기전에 하시려는 인원이 많은지 먼저 수요조사를 해보고, 인원이 많다 싶으면 공동으로 진행하는 것으로, 인원이 적다 싶으면 단독으로 진행하는 것으로 방향을 정하려합니다.

하시고 싶은 의향이 있으신분은 본 글의 댓글로 알려주시면 감사하겠습니다. 집계일은 12월 22으로 생각하고 있습니다.

한글 패치의 다운에 관한 것은 이 주소로 : https://docs.google.com/spreadsheets/d/175KLg0m5yh3XhRbRDq1ddU8dybkCKo7bwHpcyfu5mFc
한글 패치 소스 코드를 보고 싶으신 분은 이 주소로 : https://github.com/dmc31a42/SlimeRancherKoreanPatcher
가시면 됩니다. 소스 코드에 대한 질문도 받고 있으니 다른 게임을 한글화하시려는 분들께선 참고하여주시면 감사하겠습니다.

 

슬라임 랜처 한글패치에 관하여

안녕하십니까. 예전에 슬라임랜처 한글패치 팀의 주도자 역할을 했던 DevilMayCry31a42입니다.
그동안 슬라임랜처도 정식발매했지만, 제가 바쁘게 이리저리 치이다보니 한글 패치 유지보수가 게을러 졌습니다.
이로 인해 많은 분들이 한글패치가 업데이트될때마다 혼란을 겪으셨으신 것에 대해서 죄송합니다.

이러한 문제를 해결하기 위하여 슬라임 랜처 한글패치에 큰 변화가 있을 예정입니다.

1) 슬라임랜처 데이터를 분석해서 각 버전에 맞게 패치 파일이 자동으로 수정되는 기능
2) 한글 번역 작업물을 인터넷에서 자동으로 다운받아 패치에 반영하는 기능
3) 1,2의 기능으로, 슬라임랜처의 버전이 올라감에 상관없이 원본 패치를 실행하기만 하면 오류없이 패치되는 기능
4) 한글 번역 작업물에서 기여자 부분 제거

1,2,3번에 대하여 이번주말까지 작업을 할 예정이며, 이 패치를 기반으로 0.5.0버전 이후 번역과 총 검수를 하고 패치에 사용된 소스와 방법등을 공개한 뒤 본 패치를 제 손에서 떠나보내려합니다.

검수 시작 예정
9월 25일(월)
검수자 신청 : 스팀 그룹 ‘Slime Rancher Korean’ http://steamcommunity.com/groups/slimerancherkorean 으로 와서 댓글로 신청을 해주시기 바랍니다. 위의 기능 수정 후 일괄적으로 확인할 예정입니다.

라즈베리파이 LIRC 활용 #1

서론

이번에는 A리모컨에서 신호를 받으면 똑같은 기능을 하는 B리모컨의 버튼을 송신하는 node.js 앱을 만들어보고, 재부팅했을 때에도 항상 돌아가게 서비스로 만드는 방법을 알아보도록 하겠습니다.

개발 환경

pi@raspberrypi:~ $ node –version
v4.2.1

pi@raspberrypi:~ $ forever –version
v0.15.3

pi@raspberrypi:~ $ forever-service –version
forever-service version 0.5.10

0.5.10

 

lirc_node

lirc_node는 node에서 lirc를 다루기 위한 모듈입니다. node.js가 설치되어있지 않다면 외부 블로그의 글 http://blog.xcoda.net/86 을 참고하여 설치를 하고 npm을 통해 lirc_node를 설치합니다.

pi@raspberrypi:~ $ npm install lirc_node
lirc_node@0.0.4 node_modules/lirc_node

그리고 새로운 node.js 프로젝트 파일을 생성하고 합니다.(저는 lirc_server.js로 짓겠습니다) 그리고 아래의 내용 중에서 ‘TIENA-custom’이 A 리모컨이고 ‘BRITZ-T3400’이 B 리모컨입니다. A 리모컨의 버튼 입력을 B 리모컨의 신호로 송신하는 코드입니다.

pi@raspberrypi:~ $ nano lirc_server.js
lirc_node = require(‘lirc_node’)

lirc_node.init();
lirc_node.addListener(function(data){
console.log(“Received ” + data.key + ” from remote ” + data.remote);
if(data.remote == ‘TIENA-custom‘){
lirc_node.irsend.send_once(‘BRITZ-T3400‘,data.key);
console.log(“Sending ” + data.key + ” to remote BRITZ-T3400″);
}
});

저장하고 텍스트 에디터를 종료한다음 실제로 실행해봅시다. 실행을 하면 아무것도 나타나지 않지만 리모컨으로 입력을 주면 반응합니다.

pi@raspberrypi:~ $ node lirc_server.js
Received KEY_VOLUMEUP from remote TIENA-custom
Sending KEY_VOLUMEUP to remote BRITZ-T3400
Received KEY_VOLUMEDOWN from remote TIENA-custom
Sending KEY_VOLUMEDOWN to remote BRITZ-T3400
Received KEY_MUTE from remote TIENA-custom
Sending  KEY_MUTE to remote BRITZ-T3400

실제로 송신하고 있는지는 휴대폰 카메라를 켜서 적외선 LED을 매우 근접해서 비추고 있으면 적외선이 나오는 것이 보라색 빛으로 나타나는 것으로 확인할 수 있습니다.

forever-service

이러한 리모컨 전달 앱은 라즈베리파이가 껐다 켜져도 시작할 수 있어야 쓸모가 있습니다. node.js 프로젝트를 서비스처럼 활용하기 위하여 forever-service 모듈이 있습니다. npm로 -g 옵션으로 /usr/lib/node_modules에 설치되도록 그리고 관리자 권한으로 forever-service와 종속 모듈인 forever을 forever, forever-service 순서대로 설치합니다.

pi@raspberrypi:~ $ sudo npm install forever -g
npm WARN optional dep failed, continuing fsevents@1.1.2
/usr/local/bin/forever -> /usr/local/lib/node_modules/forever/bin/forever
forever@0.15.3 /usr/local/lib/node_modules/forever
├── object-assign@3.0.0
├── path-is-absolute@1.0.1
├── colors@0.6.2
├── clone@1.0.2
├── timespan@2.3.0
├── optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)
├── cliff@0.1.10 (eyes@0.1.8, colors@1.0.3)
├── nssocket@0.5.3 (eventemitter2@0.4.14, lazy@1.0.11)
├── prettyjson@1.2.1 (colors@1.1.2, minimist@1.2.0)
├── winston@0.8.3 (cycle@1.0.3, async@0.2.10, stack-trace@0.0.10, eyes@0.1.8, isstream@0.1.2, pkginfo@0.3.1)
├── utile@0.2.1 (async@0.2.10, deep-equal@1.0.1, ncp@0.4.2, i@0.3.5, mkdirp@0.5.1, rimraf@2.6.2)
├── shush@1.0.0 (strip-json-comments@0.1.3, caller@0.0.1)
├── nconf@0.6.9 (ini@1.3.4, async@0.2.9, optimist@0.6.0)
├── flatiron@0.4.3 (director@1.2.7, optimist@0.6.0, prompt@0.2.14, broadway@0.3.6)
└── forever-monitor@1.7.1 (minimatch@3.0.4, ps-tree@0.0.3, broadway@0.3.6, chokidar@1.7.0)

pi@raspberrypi:~ $ sudo npm install forever-service -g
npm WARN deprecated swig@1.4.2: This package is no longer maintained
/usr/local/bin/forever-service -> /usr/local/lib/node_modules/forever-service/bin/forever-service
/usr/local/bin/get-forever-config -> /usr/local/lib/node_modules/forever-service/bin/get-forever-config
forever-service@0.5.10 /usr/local/lib/node_modules/forever-service
├── commander@2.3.0
├── async@0.9.2
├── shelljs@0.3.0
├── walker@1.0.7 (makeerror@1.0.11)
└── swig@1.4.2 (optimist@0.6.1, uglify-js@2.4.24)

node.js 앱을 서비스로 등록하기 위해서는 ‘sudo forever-service install -s node소스파일.js 서비스이름’ 과 같이 입력합니다. node소스파일.js는 소스의 경로(상대경로든 절대경로든 상관없습니다.) 서비스이름은 ‘/etc/init.d/서비스이름’ 할 때 그 이름입니다. 저는 소스파일이름과 서비스이름을 같게 쓰겠습니다.

pi@raspberrypi:~ $ sudo forever-service install -s lirc_server.js lirc_server
forever-service version 0.5.10

Platform – Raspbian GNU/Linux 9 (stretch)
foreverpath not found
lirc_server provisioned successfully

Commands to interact with service lirc_server
Start – “sudo service lirc_server start”
Stop – “sudo service lirc_server stop”
Status – “sudo service lirc_server status”
Restart – “sudo service lirc_server restart”

forever-service 모듈이 알아서 운영체제를 찾고 그에 맞추어 설정파일을 만들어줍니다. 어떻게 서비스를 시작/종료/상태확인/재시작을 하는지 명령어를 알려줍니다.

그리고, 이 서비스가 라즈베리파이가 부팅될 때 자동으로 실행되게 하기 위해 systemctl 명령어로 등록을 해줍니다.

pi@raspberrypi:~ $ sudo systemctl enable lirc_server
lirc_server.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable lirc_server

그리고 마지막으로 한가지 더 해야할 것이 있습니다. 기본적으로 forever-service로 만든 서비스는 터미널, GUI같이 그래픽이 불러져야 자동으로 시작합니다. 이를 라즈베리파이가 켜지기만 하면 자동으로 실행되기 위해서 아래의 파일을 삭제해줍니다. 강조 표시되어있는 부분을 본인이 만든 서비스이름으로 바꾸면 됩니다.

pi@raspberrypi:~ $ sudo rm /run/systemd/generator.late/graphical.target.wants/lirc_server.service

이제 재부팅해서 라즈베리파이에 터미널로 접속하지 않고도 A 리모컨의 버튼을 누르면 적외선 LED에서 불 빛이 나는지 확인해봅시다. 완전히 켜질때까지 시간이 조금 걸리니 1~2분 정도의 여유를 가지고 테스트 해보세요.

서비스를 삭제할 때

‘sudo systemctl disable 서비스이름‘ -> ‘sudo forever-service delete 서비스이름‘ 순서로 실행하면 삭제됩니다.

 

 

 

 

라즈베리파이 LIRC(적외선 송수신) 설정

서론

외국인을 위한 튜토리얼은 차후 작성할 예정입니다.
For english developer, I’ll release guide(tutorial) in english as soon as possible.

라즈비안과 lirc의 버전이 올라가면서 웹상의 많은 강좌들을 따라했을 때 제대로 작동하지 않는 문제점들이 있었습니다. 이에, 제가 라즈베리파이로 lirc 기능을 구현하면서 설정했던 방법을 강좌로 다루고자 합니다.

기존의 강좌와 다른점은 강조 표시를 하겠습니다.

계속 읽기 “라즈베리파이 LIRC(적외선 송수신) 설정”

ESXi+XPEnology 6.x with jun’s mod loader

  1. VM 생성/등록
    VM create/register
  2. 게스트 OS 제품군 :  Linux, 게스트 OS 버전 : 기타 Linux 3.x 이상
    Guest OS : Linux, Guest OS version : Other over Linux 3.x
  3. 스토리지 : 아무곳
    Storage : anywhere you want
  4. CPU , 메모리 : 원하는 대로, 기본 하드 디스크(하드 디스크 1) : 삭제, SCSI 컨트롤러 0 : LSI Logic SAS(아마 어느 것을 선택해도 될 듯), CD/DVD 드라이브 1 : 삭제
    CPU, memory : as you want, Default hard disk(hard disk 1) : remove, SCSI controller 0 : LSI Logic SAS(maybe don’t care), CD/DVD drive 1 : remove
  5. 완료 버튼 클릭
    Click finish
  6. https://mega.nz/#F!BtFQ2DgC!JgomNP3X8V9EuwxL4TXbng (in https://xpenology.com/forum/topic/6253-dsm-6xx-loader/ )에서 v1.02a 폴더에 있는 “DS3615xs 6.1 Jun’s Mod V1.02-alpha.zip” 을 받아 압축을 풀어놓는다.
    From https://mega.nz/#F!BtFQ2DgC!JgomNP3X8V9EuwxL4TXbng (in https://xpenology.com/forum/topic/6253-dsm-6xx-loader/ ), download “DS3615xs 6.1 Jun’s Mod V1.02-alpha.zip” in v1.02a Folder, and extract(unzip)
  7. 압축을 풀어서 synoboot.vmdk 파일을 esxi의 데이터스토어에 별도의 폴더를 만들어 업로드한다.(VM 폴더 안에 넣어두면 인식을 못함)
    after extract(unzip), upload synoboot.vmdk into seperated folder in datastore of ESXi(if put synoboot.vmdk into VM folder, cannot recognize)
  8. 6번 링크에서 최신의 부트로더(img)를 다운받아서(글 쓴 시점에서 v1.02b가 최신) 7번에서 synoboot.vmdk를 넣어둔 폴더에 업로드 한다.
    Download lastest bootloader(img) from 6th link, and upload synoboot.img into the folder that synoboot.vmdk is in.(ref. 7th step)
  9. 만약 시리얼번호, mac 어드레스 등을 변경해야한다면 OSFMount 프로그램으로 synoboot.img 파일을 열어 첫번째 파티션(GPT FAT16)을 열어서 수정한다.(상세사항은 댓글로 요청하면 추가함)
    if you have to modify SN, mac, open first partition(GPT FAT16) of synoboot.img by OSFMount, and modify(if want detail, please request in reply)
  10. ESXi Web client에서 Synology로 쓸 VM을 열고, ‘편집’을 클릭, ‘하드 디스크 추가’->’기존 하드 디스크 추가’를 클릭하여, 업로드한 synoboot.vmdk를 선택.
    Open the VM in ESXi Web client, click ‘edit'(configurate), click ‘add hard disk’->’add existing hard disk’, select the synoboot.vmdk what you upload.
  11. 추가한 하드 디스크를 > 버튼을 눌러 확장, 가상 디바이스 노드 : SCSI 컨트롤러 0, SCSI(0:0) 확인.
    extend added hard disk by clicking > button, check virtual device node : SCSI controller 0, SCSI(0:0).
  12. ‘네트워크 어뎁터 1’을 확장하여, 어뎁터 유형 : E1000으로 변경.
    extend ‘network adapter 1’, change adapter type : E1000.
  13. ‘하드 디스크 추가’->’새 하드 디스크’ 클릭, 추가한 하드 디스크 확장, 가상 디바이스 노드 : ‘SATA 컨트롤러 0’으로 변경, SATA (0:0)은 자동으로 설정됨. XPEnology에서 사용할 하드는 SATA로 설정되어있어야함.
    click ‘add hard disk’->’add new hard disk’, extend added hard disk, change ‘virtual device node’ to ‘SATA controller 0’, ‘SATA (0:0)’ will be changed automatically. hard disk used in XPEnology must be set as SATA.
  14. ‘VM 옵션’->’부팅 옵션’에서, 펌웨어 : EFI, BIOS 강제 설정 : 체크
    in ‘VM option(?, configuration)’->’boot option’, change firmware : EFI, BIOS force setting : checked.
  15. 저장
    save
  16. VM을 시작하면 EFI 설정화면으로 간다. ‘Enter setup’->’Configure boot options’->’change boot order’->change the order’ 엔터키 입력. +-키와 방향키를 사용하여 ‘EFI Virtual disk (0,0)’이 제일 위로 오게 한다.
    run VM, then EFI setting will show. Go to ‘Enter setup’->’Configure boot options’->’change boot order’->change the order’, then press ‘Enter’ key. using +- and arrow keys, set priority of ‘EFI Virtual disk (0,0)’ to be first.
  17. ‘EFI Virtual disk (0,0)’가 제일 위로 갔으면, Enter키로 저장’, ‘Commit changed and exit’->’Exit the Boot Maintenance Manager’로 첫화면으로 나온다. ‘EFI Virtual disk (0,0)’ 선택 후 엔터.
    if ‘EFI Virtual disk (0,0)’ is first, press Enter to save, follow ‘Commit changed and exit’->’Exit the Boot Maintenance Manager’, then boot menu will show. select ‘EFI Virtual disk (0,0)’ and press Enter.
  18. GRUB 부팅 화면에 VMWare/ESXi 란 단어가 나와도 흔들리지 않고 첫 번째 메뉴를 선택한다.(1초 이내에 키 입력이 없을 때 첫 번째 메뉴가 자동으로 선택된다.)
    Don’t select the menu containing ‘VMWare/ESXI’, just select first menu.(if there is no input in 1 second, first will be selected autometically)
  19. 이후로는 XPEnology 설정 하는 방법은 그대로.
    after it, follow other’s XPEnology setting