한영키를 누르기 싫어서 모드를 만들었습니다

Necesse 한글 입력 문제 해결기 — Korean IME Fix Mod

이 글의 목차

첫 기록을 무엇으로 할지 고민하다가 이것으로 정했습니다.

1. 문제 발견

예전에 Steam 창작마당에 모드를 하나 업로드했습니다.

Korean IME Fix Mod라는 이름의 모드죠.

이름에서 알 수 있듯이 한글 입력 시 게임에서 발생하는 문제를 수정하는 모드입니다.

Necesse라는 게임이 있는데 채팅을 치고 나면 항상 게임 단축키가 동작하지 않았습니다.

그래서 매번 한영키를 눌러야 하는 불편함이 있었죠.

2. 기존 해결 방법 조사

슬슬 불편함을 느낄 때쯤에 커뮤니티를 돌아다니면서 이에 관한 모드를 찾아봤고요.

이미 누군가가 저와 같이 불편함을 느껴서 이를 해결하는 방법을 올려놨습니다.

3. 기존 해결 방법 적용 실패

그리고 그걸 보고 문제가 해결됐으면 이 모드가 나왔을 리가 없겠죠.

하라는 대로 다 했는데 안 되니까 슬슬 열받기 시작하더라고요.

그래서 직접 모드를 만들기로 했습니다.

4. 문제 분석 및 재정의

지금 상황에서의 문제는 한글 입력 상태에선 게임 단축키가 동작하지 않는 것이죠.

그럼 대충 게임에서 한글 자체를 인식하지 못한다기보다는 문자 입력과 게임 조작에 필요한 키 입력을 처리하는 과정에 문제가 있는 것이라고 생각할 수 있었습니다.

그렇다고 한글 입력을 영어 입력으로 변환해서 단축키를 인식하게 만드는 식으로 해결하면 반쪽짜리 해결법인 건 불 보듯 뻔했습니다.

5. 해결 방안 설계

그럼 더 근본적인 해결법은 뭘까요?

정말 간단합니다. 문자가 아니라 키 입력 이벤트 자체를 기준으로 게임 조작을 처리하게 만들면 되는 겁니다.

키보드로 W를 눌렀다고 가정해 봅시다.

이때 화면에 어떤 문자가 입력되는 것과 실제로 W 키가 눌렸다는 사실은 서로 다른 문제입니다.

일반적으로 키보드 입력은 키가 눌리거나 떼어질 때 발생하는 키 이벤트(Key Event)와 그 입력을 통해 생성되는 문자 입력(Character Input)으로 구분할 수 있습니다.

한글 입력 상태에서는 W 키를 눌러도 ’ㅈ’이라는 문자가 입력되지만, 게임 조작에서 중요한 것은 ’ㅈ’이라는 문자가 아니라 W 키가 눌렸다는 사실이죠.

그러니까 게임 조작에 필요한 입력을 문자 입력 결과에 의존하지 않고, 키가 눌리고 떼어지는 이벤트를 기준으로 처리하도록 만들면 되는 겁니다.

물론 채팅창에서 문자를 입력하는 상황과 실제로 게임을 조작하는 상황은 구분해야겠죠.

이렇게 하면 원리상 한글뿐 아니라 히라가나를 입력하는 일본어 환경처럼 다른 입력기를 사용하는 상황에서도 동일한 접근 방식을 적용할 수 있습니다.

어떤 문자가 입력되느냐에 따라 게임 단축키가 영향을 받는 구조 자체를 피하는 것이니까요.

6. AI를 활용한 모드 구현

AI도 발달해서 코드를 일일이 작성하지 않아도 되고, 어차피 어떻게 해결하면 될지 이미 감은 잡았으니 실행만 하면 되는 상황이었습니다.

그래서 이걸 바탕으로 AI에게 모드를 만들어달라고 했고, 역시나 문제없이 동작했습니다.

완성한 모드는 이거고요. Korean IME Fix Mod (Steam 창작마당)

7. 적용 결과 및 결론

이제 채팅을 치고 나서 매번 한영키를 누를 필요도 없어졌습니다.

문제가 발생했을 땐 역시 문제 자체를 없애버리는 게 최고인 것 같습니다.

← 전체 글로 돌아가기