내 D&D 테이블을 위한 맞춤형 스트림 데크 구축: 맞춤형 SDK와 게임패드 통합 문제 해결

Linda Hamilton
풀어 주다: 2024-10-01 20:18:29
원래의
731명이 탐색했습니다.

Building a Custom Stream Deck for My D&D Table: Solving Gamepad Integration with a Custom SDK

저는 열정적인 Dungeons & Dragons 플레이어이자 기술 애호가로서 화면이 내장된 맞춤형 커피 테이블을 만들어 게임 설정을 향상시키기로 결정했습니다. 이 테이블에는 지도, 토큰이 표시되고 음향 효과가 재생되며 플레이어를 위한 아트워크도 표시됩니다. 이 모든 것은 Roll20과 유사하지만 더 나은 가격 모델과 광범위한 개방형 모듈 시스템을 갖춘 Foundry VTT라는 강력한 플랫폼을 통해 실행됩니다. 테이블탑 경험을 맞춤화하는 데 적합합니다.

설정을 향상하는 방법을 탐색하던 중 스트림 데크를 Foundry와 통합할 수 있는 모듈을 발견했습니다. 이러한 도구를 사용하면 매크로와 명령에 빠르게 액세스할 수 있어 게임 플레이가 더욱 원활해집니다. 하지만 스트림 데크의 가격(200유로!)을 보고는 그런 투자를 할 준비가 되지 않았습니다.

그러다가 몇 년 전에 제가 아케이드 기계를 만들었던 일이 생각났습니다. 기계가 해체된 지 오래되었지만 프로젝트에 사용된 버튼과 컨트롤러 보드는 여전히 남아 있었습니다. 약간의 창의력과 3D 프린터를 사용하여 버튼 슬롯이 있는 작은 상자를 인쇄하여 나만의 맞춤형 "스트림 데크"를 만들었습니다.

이제 하드웨어가 준비되었지만 이를 Foundry VTT와 통합하는 것이 쉽지 않았습니다. 버튼 누르기를 등록하기 위해 브라우저에서 Gamepad API를 사용하고 싶었지만 API가 입력을 처리하는 방식에 유연성이 부족하다는 사실에 충격을 받았습니다. 기본 접근 방식은 while(true) 루프를 사용하여 각 버튼이 눌려진 상태를 지속적으로 폴링하는 것이었습니다. 이것은 requestAnimationFrame을 사용하는 게임 루프에서는 잘 작동하지만, 제 목적으로는 비효율적이고 솔직히 어리석게 느껴졌습니다. 무한 루프에서 게임패드 상태를 지속적으로 확인하는 것이 아니라 이벤트 리스너로 버튼 누름에 단순히 응답하고 싶었습니다.

그래서 제가 오늘 공유하는 게임패드 SDK를 만들게 되었습니다.

이 SDK를 사용하면 개발자가 폴링 없이 버튼 누름, 놓기, 축 변경에 대한 이벤트 리스너를 직접 추가할 수 있어 프로세스가 단순화되었습니다. 또한 게임패드 연결 및 연결 해제 지원이 포함되어 있어 Foundry VTT와 같은 플랫폼이나 브라우저 기반 프로젝트와 쉽게 통합할 수 있습니다.

이 SDK를 사용하면 누구나 게임패드 상태를 수동으로 확인하는 번거로움 없이 브라우저 기반 앱에 맞춤 컨트롤러를 연결할 수 있습니다. 내 D&D 테이블의 경우 이제 몇 개의 버튼과 약간의 코드 덕분에 임시 스트림 데크를 사용하여 게임 내 매크로, 동작 등을 원활하게 제어할 수 있습니다.

관심이 있으시면 SDK를 확인해 보시고, 비슷한 문제를 해결하고 싶다면 언제든지 문의해 주세요!

Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk

위 내용은 내 D&D 테이블을 위한 맞춤형 스트림 데크 구축: 맞춤형 SDK와 게임패드 통합 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿