2008. 8. 27. 19:16

마우스 가속

0) 시작하며

내가 FPS (First-person Shooter) 게임과 관련해 자주 하는 이야기가 있다. FPS 게임을 잘 하기 위해 필요한 것은 기본적으로 세 가지다 - 지식, 장비, 연습. 그리고 대부분의 사람들은 FPS 고수가 되기 위해 가장 중요한 것은 역시 ‘연습’ 이라고 생각한다. 물론 틀리지 않은 말이다. 하지만, FPS ‘초보’ 에서 ‘중수’ 로의 단계로 나아가기 위해 가장 중요한 것은 의외로 연습이 아니라 ‘지식’ 이다. 실제로 많은 게이머들이 간단하면서도 중요한 몇몇 지식을 알지 못해 더 발전하지 못한 채 연거푸 좌절의 쓴맛을 삼키고 있다.
 
그런 게이머들을 위해 이전부터 마음먹고 있던 것, FPS 를 '잘' 플레이하기 위한 기본적인 지식들을 정리하는 작업을 시작해 보고자 한다. 사실 '기본 지식' 이라는 범위 자체가 너무나도 방대한데다 나 역시 FPS 고수는 커녕 중수의 범주에도 들어갈까 말까 한 게이머인지라 주제 넘는다는 생각을 하지 않는 것은 아니지만, 그래도 많은 시행 착오를 거치고 있는 FPS 게이머 분들에게 조금이나마 도움이 되었으면 하는 바람으로 이 글을 쓰기 시작한다.
 
미리 밝히지만, 이 글은 FPS 고수가 되는 방법을 알려 드리기 위한 것이 아니다 (애초에 나 자신이 그런 정도의 레벨이 아니다). 어디까지나 FPS 초보에서 벗어나 중수 레벨을 달성하기 위한 목적에서 작성되는 것이다.
 
 

1) 마우스

FPS 뿐만 아니라 현대의 거의 모든 PC 게임의 기본은 마우스다. 때문에 시중에는 게이머들을 주 타겟으로 하는 고성능의 마우스들이 넘쳐난다. 하지만 어렴풋한 지식과 잘못된 설정 등으로 인해 적지 않은 사람들이 마우스의 성능을 100% 발휘하지 못하고 있다. 이번 챕터에서는 마우스와 관련한 여러 지식들, 그리고 FPS 게임을 위한 마우스 최적화 방법 등에 대해 알아 보도록 하자.
 

① 마우스 가속 (Mouse Acceleration)

기본적으로 마우스 포인터는 마우스가 물리적으로 움직인 거리를 기반으로 그 거리만큼 움직인다. 하지만 마우스가 실제 움직이는 속도까지 고려하여 마우스가 빨리 움직일 경우 포인터에 그만큼의 가속을 붙여 더 먼 거리를 움직이도록 하는 기능이 있다. 이것이 바로 마우스 가속이다.
 
일반적인 데스크톱 사용 환경에서, 특히 400DPI 이하의 마우스나 낮은 감도 (Sensitivity, 센시) 를 사용하는 사람들에게 이러한 가속은 꽤나 편리한 기능이다. 세밀한 움직임을 할 때는 마우스를 느리게 움직이면 되고, 멀리 있는 지점으로 포인터를 가져가려면 마우스를 빠르게 움직이면 된다.
 
하지만 적확한 포인팅을 계속해야 하는 FPS 게이머들에게 있어 이러한 마우스 가속은 그다지 좋은 기능이라고 할 수 없다. 마우스의 이동 거리뿐만 아니라 이동 속도까지 고려하면서 움직여야 하기 때문이다. 예를 들어 자신의 정면에서 정확히 오른쪽으로 90도 지점에 적이 있을 경우, 마우스 가속이 없다면 단순히 ‘마우스를 몇 cm 움직인다’ 라는 감각만 손에 익혀 두고 있으면 되지만, 마우스 가속이 붙어 있을 경우 ‘마우스를 얼마 정도의 속도로 몇 cm 움직여야 한다’ 라는 식의 감각을 익혀야 한다. 움직임이 속도의 제약을 받는 것이다. 따라서 플릭 샷 (Flick-shot) 같은 움직임은 거의 사용이 불가능하다. 거기다 심리적으로만 보아도 다급한 상황에 처해 버리면 당연히 마우스를 빨리 움직이게 될 것이고, 정확도는 더욱 떨어지게 된다.
 
따라서 되도록 이러한 마우스 가속은 꺼 주는 것이 좋다. 자, Windows XP 환경에서 마우스 가속 옵션은 [제어판] –[마우스] - [포인터 옵션] 탭의 ‘포인터 정확도 향상’ 이다. 이것이 켜져 있으면 마우스 가속 기능이 작동된다. 그럼 이 옵션의 체크를 꺼 주면 가속 문제는 해결되지 않을까?
 
 


↑ Windows XP 의 마우스 설정에서 '포인터 정확도 향상' 체크를 해제
 
 
그런데 이것이 보기보다 쉬운 일이 아니다. Windows XP / 2003 에는 마우스 가속과 관련한 버그가 있다. 일부 게임들, 특히 DirectInput 을 사용하지 않고 Win32 API 를 사용하는 게임들의 경우 마우스 설정을 변경 / 반영하기 위해 SystemParametersInfo() 함수를 호출하여 제어판의 마우스 설정 자체를 직접 바꾸는데, 이 API 에 버그가 있어 마우스 가속 옵션이 무조건 활성화되어 버리는 문제가 발생한다. 때문에 제어판 상에서 가속 옵션을 비활성화하더라도 실제 게임 상에선 여전히 가속이 붙게 된다.
 
이를 해결하는 방법은 두 가지가 있다. 하나는 일명 ‘CPL 패치’ 라고 불리는 레지스트리 파일 (실행 파일 형태인 것도 있음) 로, 마우스 가속을 보정하기 위해 Parent curve (== input curve) 를 수정하는 역할을 한다. 하지만 이 패치는 x • y 축 입력 값의 상관 관계를 무시해 버리기 때문에 부정확한 포인팅을 유발할 수 있으며, 가속 자체가 근본적으로 완전히 없어지진 않기 때문에 그다지 추천하지 않는다.
 
또 하나의 방법은 win32k.sys 파일을 수정하여 아예 마우스 가속 기능 자체를 없애 버리는 것이다. 그야말로 근본적이고도 완전한 대책이다. Acceleration Fix 같은 프로그램을 통해 손쉽게 해당 시스템 파일을 수정할 수 있으며, 이 패치를 하게 되면 ‘포인터 정확도 향상’ 옵션 자체가 전혀 동작하지 않게 된다. 단, WFP (Windows File Protection) 때문에 기껏 수정한 파일이 원상복구되어 버리는 경우가 있으므로 안전 모드 상에서 수행하는 것이 좋으며, Windows 업데이트를 수행할 때마다 계속적으로 체크를 하는 것이 좋다.
 
 


↑ AccelFix 를 실행한 모습. 현재 가속이 활성화 (ENABLED) 되어 있음을 알 수 있다.
 
 
적용에 앞서 한 가지 알아 두어야 할 것이 있다. 기존에 마우스 가속을 (알게 모르게) 사용하고 있던 사람이라면 이 가속이 없어짐으로 인해 마우스의 감도나 움직임에 상당한 차이를 느끼게 되며, 적응하는 데도 실로 오랜 시간이 걸리게 된다 (심지어는 수 주 이상이 걸릴 수도 있다). 하지만 이것은 적응해 볼 만한 가치가 충분하다. 일단 적응이 되고 나면 마우스의 반응 정도와 정확성이 점차 좋아지는 것을 느낄 수 있을 것이다.

http://blog.empas.com/mycoffee/22984229 (펌)