조이패드 대응

7.30

인풋매니저의 시스템은 각종 입력체계의 호환성이 좋다. 단, 이것은 방향키를 positive와 negative로 사용했을 경우다. 버튼이야 상관이 없지만, 이런 방향 입력 체계는 이제까지 써왔던 시스템과 충돌을 일으킨다. 지금까진 커맨드 입력을 위해 버튼을 누르는 방식을 사용했는데, 이걸 수정해야 할 것 같다. 이와 같은 정보는 아래블로그에 자세히 기술되어 있다.

https://gamecurry.tistory.com/27

방향키는 GetAxis()를 사용하고, 버튼은 조이스틱 버튼을 사용해야 한다. 일단 입력체계를 버튼이 아니라 Axis형태로 바꿔보자

요걸

요렇게

일단 버튼식에서 Axis형태로 바꾸는 건 크게 오래 걸리지 않았다. 그런데… 바꿔도 어쩐지 작동이 안된다. 무엇이 문제일까.

싶어서 살펴봤더니 이 프로젝트를 처음 시작할 때 InputManager를 설정하며 민감도를 0으로 맞춰놓았다. 일단 모르는 숫자는 전부 0으로 바꿔보았는데, 그러고도 잘 되니 이대로 고장난 채 있었던 것 같다. 이걸 0이상으로 돌려놓으면 된다.

조이패드 버튼은 A,B,X,Y 순으로 joystick button 0~3에 대응시키면 된다. A는 약펀치, B는 강펀치, X는 킥에 대응된다.

다 된 것 같으니 아내와 테스트. 이 짧은 영상을 찍는데도 버그가 3개나 나왔다.

7.31

조이패드 대응은 끝났지만 몇 가지 다듬을 것들이 있다. 현재 KO시 적용되는 줌블러는 멋있긴 한데, 피아식별이 힘들다는 단점이 있다.

줌은 히트영역이 중심이다. 따라서 가운데 부분은 줌이 약하다. 약한 김에 좀 더 약하면 안될까?length를 이용해 원을 만들고, 이를 적용치에 곱해주어 가운데 부분엔 왜곡이 덜하도록 수정해 준다.

박진감은 조금 떨어지지만, 그래도 이 쪽이 낫다. 더 선명하게 보일 수도 있으나 이 정도로 하자.

그래도 안보이는 건.. 뭐 어쩔 수 없다.

이제 빌드해보자. 에러가 없기를.

잘 돌아간다.

8.1

패드의 방향키를 아날로그 대응만 해놓았더니 디지털 방식의 방향키(옛날 방식)가 작동되지 않는다는 제보가 있었다. 게임 패드의 십자키가 이에 해당하는데, 문제는 격투게임의 조이스틱이 이 방식을 사용한다는 것이다. 시대가 흘렀어도 이 방식이 여전히 사용되고 있다니! 어쩐지 반가운 느낌이 들었다.

조이스틱은 아날로그만 구현했었는데, 그나마도 2P한정이었다. 이 참에 싹 정비를 해보자.

…버그 없네… 이상하다..

어쨌거나 버그는 없는데, 패드의 아날로그 스틱이 2개의 방향을 동시에 입력받지 못하는 문제가 있다. 이거 왜 이러지..

그래서 급하게 조이스틱 구입. 어제 오후에 주문했는데 오늘 아침에 배송이 왔다. 와..정말 빠르다. 예상대로 조이스틱은 디지털 방식이고, 0과 1밖에 받지 못한다. 대각선 입력이 잘 안되는 것은 패드의 문제였다. 스틱으로 하니 잘 된다.

오늘의 깨달음. 조이스틱 버튼은 joystick button 0~으로 된 키 값을 가지고 있다. 하지만 특정 조이스틱에 매핑하려면 아랫부분의 JoyNum을 지정하는 것으론 부족하고(애초에 저건 Type이 버튼이면 대응되지 않는다는 것을 뒤늦게 깨달았다.) 특정 조이스틱 번호를 기재해 주어야 한다. 때문에 joystick 1 button 0~이 된다. 2P는 자연스레 joystick 2 button 0~ 이 된다.

조이패드 대응”의 2개의 생각

댓글 남기기