UDN
Search public documentation:

GKeySDKKR
English Translation
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 인풋 / 아웃풋 > 언리얼용 로지텍 게이밍 G-키 SDK

언리얼용 Logitech Gaming G-Key SDK


문서 변경내역: Christophe Juncker 작성. 홍성진 번역.

개요


Logitech Gaming G-key SDK 를 통해 Logitech 게이밍 마우스와 키보드의 전용 G-key와 마우스 버튼의 현재 상태를 구할 수 있습니다.

DLLBind 를 사용하면 UDK 게임에 쉽게 통합시킬 수 있습니다.

Logitech Gaming Software (버전 8.30 이후)가 실행중일 때만 작동합니다.

이 문서 말미에 파일로 첨부된 SDK 를 확인해 보시기 바랍니다.

SDK 기능에 대한 상세 내용은 SDK 의 Doc\LogitechGamingGkeySDK.pdf 파일을 참고해 주세요.

질문이나 남겨주실 말씀은 이메일 cjuncker@logitech.com 이나 lbyrne@logitech.com 로 보내 주시기 바랍니다.

UDK 게임에 G-key SDK 작동하게 만들기


UDK 다운로드에 포함되어 있는 "UDKGame" 에 Logitech SDK 가 작동되도록 만드는 방법은 단계별로 알아봅니다.

단계


  • UDK 를 다운로드 (http://www.unrealengine.com/ko/udk/) 합니다.
  • 다음 두 개의 Unreal Script 파일을 만들어 UDK 의 Development\Src\MyMod\Classes 폴더에 복사합니다:

TestDLLGameInfo.uc
class TestDLLGameInfo extends GameInfo;

defaultproperties
{
   PlayerControllerClass=class'TestDLLPlayerController'
}

TestDLLPlayerController.uc
class TestDLLPlayerController extends PlayerController
   DLLBind(LogitechGkey);

dllimport final function bool LogiGkeyInitWithoutCallback();
dllimport final function bool LogiGkeyIsMouseButtonPressed(int buttonNumber);
dllimport final function string LogiGkeyGetMouseButtonString(int buttonNumber);
dllimport final function bool LogiGkeyIsKeyboardGkeyPressed(int gkeyNumber, int modeNumber);
dllimport final function string LogiGkeyGetKeyboardGkeyString(int gkeyNumber, int modeNumber);
dllimport final function LogiGkeyShutdown();

exec function LogiInit()
{
   local bool ret;
   ret = LogiGkeyInitWithoutCallback();

   say("LogiGkeyInitWithoutCallback return is: " $ret);
}

exec function LogiIsMouseButtonPressed(int buttonNumber)
{
   local bool ret;
   ret = LogiGkeyIsMouseButtonPressed(buttonNumber);

   say("LogiGkeyIsMouseButtonPressed return is: " $ret);
}

exec function LogiGetMouseButtonString(int buttonNumber)
{
   local string buttonString;
   buttonString = LogiGkeyGetMouseButtonString(buttonNumber);

   say("LogiGetMouseButtonString: " $buttonString);
}

exec function LogiIsKeyboardGkeyPressed(int gkeyNumber, int modeNumber)
{
   local bool ret;
   ret = LogiGkeyIsKeyboardGkeyPressed(gkeyNumber, modeNumber);

   say("LogiGkeyIsKeyboardGkeyPressed return is: " $ret);
}

exec function LogiGetKeyboardGkeyString(int gkeyNumber, int modeNumber)
{
   local string gkeyString;
   gkeyString = LogiGkeyGetKeyboardGkeyString(gkeyNumber, modeNumber);

   say("LogiGkeyGetKeyboardGkeyString: " $gkeyString);
}

exec function LogiShutdown()
{
   LogiGkeyShutdown();

   say("LogiGkeyShutdown done");
}

  • Logitech SDK 의 Lib\x86\ LogitechGkey.dll 을 UDK 의 Binaries\Win32\UserCode 에 복사합니다.
  • Logitech SDK 의 Lib\x64\ LogitechGkey.dll 을 UDK 의 Binaries\Win64\UserCode 에 복사합니다.
  • UDK 의 UDKGame\Config\ DefaultEngineUDK.ini 파일을 편집용으로 엽니다.
    • 다음을 검색합니다: ModEditPackages=MyMod
    • 줄 처음에 있는 ; 를 없앱니다.
  • UDK 의 Binaries/UnrealFrontend.exe 를 실행합니다.
    • Script->Full recompile 합니다.

게임 안에서 Logitech SDK 의 함수 호출하기

다음과 같이 게임을 실행합니다:

  • Binaries\Win32\UDK.exe dm-deck?game=MyMod.TestDLLGameInfo

게임이 실행되면 (~ 키를 쳐) 콘솔을 열어 LogiInit 를 입력합니다. "LogiGkeyInitWithoutCallback return is: TRUE" 메시지를 볼 수 있을 것입니다.

다른 명령을 시도해 보기 전, 특히나 마우스를 시도하려는 경우, 버튼이 키보드 단축키가 아니라 Logitech SDK 로 전송되도록 설정되었는지 확인하시기 바랍니다 (Logitech SDK 의 Demo\ReadMe.txt 참고).

그 후 Unreal Script 파일에 정의된 대로 다른 명령들을 사용합니다:

  • LogiIsMouseButtonPressed
  • LogiGetMouseButtonString
  • LogiIsKeyboardGkeyPressed
  • LogiGetKeyboardGkeyString
  • LogiShutdown

예를 들어 지원되는 키보드의 G-key 3 가 모드 2 로 눌렸는지 확인하려면:

  • LogiIsKeyboardGkeyPressed 3 2

을 입력하고 엔터를 칩니다. G-key 를 누른 상태에서요.

주: UDK 에서 'LogInit' 명령을 실행하면, UDK 라는 프로파일이 존재하지 않는 경우 LGS 가 자동으로 만들어 줍니다. 그러나, (32 비트 vs 64 비트 식으로) 다른 아키텍처의 UDK 버전을 실행한다면, 또다른 새 프로파일을 자동으로 만들지 않습니다. 반드시 LGS 소프트웨어를 사용해서 수동 생성해야 합니다. 그러므로 LGS 를 32 비트와 64 비트 UDK 양쪽에서 사용하려면, 각 실행파일에 대한 프로파일을 준비해 두시기 바랍니다.

다운로드