(헐.. 이거 사진 다 어디감... 망했다... 복사 없는데...)
합체에 사용될 두개의 예제입니다.
#플랫포머 스타터 키트DevelopmentKitGemsPlatformerStarterKitKR.html
#마우스 인터페이스 DevelopmentKitGemsCreatingAMouseInterfaceKR.html
두 예제에서 제가 필요로 하는 것은
키입력과 카메라 시점 변경, 마우스 커서 표시, 마우스 키즈멧 기능의 구현입니다.
카메라 설정은 키즈멧 영상만 보면 자유롭게 설정 할 수 있습니다.
가 아닙니다.
마우스 인터페이스가 적용되면 키즈멧의 카메라는 씨알도 안먹힙니다.
그렇다고 마우스 인터페이스에 카메라 선언이 알기 쉽게 되어 있지도 않습니다.
두 예제는
각자의 카메라 기능을 가지고 있고 그 성공 모습을 알기 때문에 합쳤을 때 카메라 주도권이 어디 있는지 알 수 있을 겁니다. 일단 소스를 멀리서 보겠습니다.
이걸 한 폴더에 넣고 콤파일 해봅시다!
어떤 결과가 있을까요?
그냥 잘 되요. 이루어질 기능들 전부 다 작동합니다.
목록에 SPG_GameInfo가 추가 되어 있을겁니다.(물론 마우스도)
GAME Type FOR PIE를 SPG_GameInfo로 변경해서 실행해봅시다.
그럼 아래와 같이 됩니다.
마우스 인터페이스가 인식 되어 있다면 화면 중앙에 마우스 커서가 보입니다.
자 합체 해봅시다. 전 지금까지 삽질로 한번에 감이 왔습니다.
콤파일해서 에디터 실행한다고 아래에 있는것이 다 실행되는것이 아닙니다.
제가 실행한것은 SPG_GameInfo입니다.
이 파일을 ConTEXT로 실행 해보겠습니다.
이 부분의 스샷을 잡은 이유는 여기가 핵심이기 때문입니다.
저것 외의 적혀 있는 내용은 1+1=2 그러니까 직접 1을 만들어서 직접 +하고 직접 = 2라고 알아내는 과정이고요.
위 스샷은 이 파일이 실행되었을때 어디에 어떤것을 적용하겠다는 내용입니다.
PlayerControllerClass = 어떤.uc를 적용 할것이고
DefaultPawnArchetype=SPG_PlayerPawn 안에 있는 '1+1=2'를 적용 할거라는 그런 내용입니다.
아마도요... 100%는 확실한것 같은데 정답이라도 말해줄 사람이 없으니까 98%라고 넘어 갑시다.
그러니 SPG_GameInfo를 실행할때 마우스를 함께 실행하기 위해서는 MouseInterfaceGameInfo를 열어보면 알 수 있습니다.
마우스의 GAME INFO는 몇 줄 안됩니다.
HUDType=class'MouseInterfaceHUD'
PlayerControllerClass=class'MouseInterfacePlayerController'
이 두 줄을 SPG_Gameinfo에 복사 붙여넣기 합시다. 그러면
중복이죠.
위 두 내용은 중복입니다.
HUDType=class'MouseInterfaceHUD'
PlayerControllerClass=class'MouseInterfacePlayerController'
HUDType=class'SPG_HUD'
PlayerControllerClass=class'SPG_PlayerController'
자 중복인거 알겠죠.
HUDType(한 장소)에 'MouseInterfaceHUD', 'SPG_HUD'(두가지)를 적용 시킬 수는 없습니다. +(더하기)가 아니니까요.
SPG의 기능을 보존하고 마우스의 기능을 더해야 합니다.
주의해야 할 점 1.
defaultproperties
{
}
이와 같은 큰 틀이 두개씩이나 있어서는 안됩니다.
유심히 보시고 {} 밖에 있는 문장이 중복이 된다면 //를 앞에 붙여서 주석 처리를 하던가 지우셔야 합니다. 지금은 어떤것이 어떤 기능인지 파악이 되지 않았으니 //주석 처리를 해야 겠죠.
이제 콤파일을 해봅시다. 이때 콤파일해서 나는 에러는 대단한 것이 아닙니다.
어디선가 MouseInterfaceHUD과 MouseInterfacePlayerController를 사용하려고 하는 녀석이 있기 때문에 발생하는 에러입니다.
아마도 마우스 인터페이스 중 누군가이겠지요.
그 이름을 SPG_HUD와 SPG_PlayerController로 변경 해주시기만 하면 됩니다.
다만 UDK의 콤파일은 어디에 어떤 에러가 났는지 한 파일에 한줄 밖에 안보여줍니다.
ConTEXT에 가서 ctrl+F 를 입력해 해당 단어를 찾는게 빠릅니다.
주의해야 할 점 2.
좀 더 일찍이 이야기 했어야 하는 거였는데..
합체할 녀석들의 extends 동일 한지 확인해보세요.
http://greenon.tistory.com/entry/UDK-언리얼-3-엔지-스크립트-적용하기-2-개요
이유는 여기에 허접하게남아 적어 두었습니다.
extends가 다르면 서로 다른 종의 동물이고 서로 다른 과학력이고 뭐 그런겁니다.
콤파일을 해서 에러가 나지 않고 마우스 포인터가 보이면 합체 성공입니다.
자 다음은 카메라를 마음대로 주물러 볼겁니다.
그런데 아직도 성공 못했어요 ㅋ
언제 2부를 적을지는 미지수 입니다.