UDN
Search public documentation:

HUDTechnicalGuideKR
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 홈 > 유저 인터페이스와 HUD > HUD 테크니컬 가이드

HUD 테크니컬 가이드


문서 변경내역: Jeff Wilson 작성. 홍성진 번역.

개요


HUD(Heads Up Display, 머리위에 뜨는 디스플레이)는 플레이 도중 플레이어에게 게임 상태에 대한 정보를 쉽고 빠르게 알리는 데 사용됩니다. HUD에는 플레이어의 현재 체력, 들고/사용하고 있는 무기/아이템, 다른 플레이어/아이템의 위치를 나타내는 월드 맵, 플레이어의 점수 등과 같은 정보들이 포함될 수 있습니다. 이러한 정보는 월드 위에다 그래픽과 텍스트를 그려 전달해 줄 수 있습니다.

몇몇 게임의 HUD는 일반적인 것 보다 훨씬 복잡할 수 있습니다. 대부분의 FPS 게임에서 HUD는 꽤나 간단합니다. 플레이어의 월드 시야를 가리지 않는 선에서 한 눈에 딱 알아볼 수 있는 정보를 제공해 주는 수준입니다. 보통 페이스가 빠르며 찰나의 순간으로 생과 사가 갈리는 FPS 게임에서는 중요하다 하겠습니다. RPG의 경우, HUD는 단순히 HUD에서 그치기 보다는 거의 유저 인터페이스 수준으로 훨씬 복잡해 지게 됩니다.

물론 HUD에 어떤 정보를 포함시킬 지는 전적으로 엿장수 가위 가는 데 달렸으니 그 둘 간의 경계는 모호해질 수 있지만, 그에 대해서는 논외로 하겠습니다. 여기서는 HUD 제작 안내서로서, 그를 위해 언리얼 엔진 3에서 사용가능한 함수성을 자세히 알아보는 정도로 하겠습니다.

HUD 유형


언리얼 엔진 3에서 활용할 수 있는 기본적인 HUD 유형은 둘 있습니다. 그 둘은:

  • Canvas - HUD 그래픽을 그리기 위해 캔버스를 활용합니다.
  • Scaleform GFx - HUD 그래픽 및 메뉴 표시를 위해 스케일폼 GFx 통합을 활용합니다.

이 두가지 HUD 유형은 상호 배제적이지(하나를 쓰면 다른 것을 못쓰지) 않습니다. 필요에 따라 둘을 섞어 쓸 수도 있습니다.

캔버스 HUD

Canvas(캔버스) 클래스에는 화면에 그래픽과 텍스트를 그리는 데 필요한 툴이 전부 제공됩니다. 언리얼 엔진으로 제작된 수많은 게임에 사용되어 왔으며, 대부분의 게임에서 사용할 수 있는 해결책이기도 합니다. 이 방법은 박스 입력 처리나 애니메이션같은 것에는 적절하지 않기에, 메뉴나 복잡한 유저 인터페이스 제작에는 적합하지 않습니다.

HUD 제작을 위한 캔버스 클래스 사용법 상세 정보는, 캔버스 테크니컬 가이드 페이지를 참고해 주시기 바랍니다.

스케일폼 GFx HUD

언리얼 엔진 3 에 통합된 Scaleform(스케일폼) GFx 는 게임내 HUD 제작에도, 메뉴나 유저 인터페이스 제작에도 적합합니다. 씬의 모든 요소가 전부 포함된 플래시로 제작하게 되는데, 이를 통해 프로그래머가 오직 코드로만 배치하던 인터페이스 구성 작업을 디자이너가 대신할 수 있게 해 줍니다.

HUD 제작을 위한 스케일폼 GFx 사용법 상세 정보는, 스케일폼 테크니컬 가이드 페이지를 참고해 주시기 바랍니다.

HUD 클래스


HUD 클래스는 화면상에 그릴 것은 무엇인지, 표시될 정보의 획득 및 처리에 필요한 로직은 무엇인지를 관장하는 클래스입니다. 각 플레이어는 게임 뷰포트가 초기화될 때 생성되는 HUD 클래스(나 그 서브클래스)의 인스턴스를 갖습니다. 플레이어의 HUD 인스턴스 생성 전체 프로세스는 아래와 같습니다:

HUD_CreateFlow.jpg

각 업데이트마다 플레이어의 HUD는 그 PostRender() 이벤트를 실행시키는데, 이는 HUD 내용을 화면에 다시 그리는 프로세스를 발동시킵니다. 곧 이어 PostRender() 이벤트는 주요 그리기 함수인 DrawHUD() 함수를 호출합니다. 각 업데이트에 대한 그리기 이벤트의 순서는 아래와 같습니다:

HUD_DrawFlow.jpg

그 후 DrawHUD() 함수는 HUD의 개별 요소를 화면에 그리기 위해 좀 더 특화된 그리기 함수를 호출합니다. 예를 들어 월드 맵과 다른 플레이어 또는 주요 지점 정도만을 그리는 DrawMinimap() 함수 정도가 되겠습니다.

HUD 속성

Debug (디버그)

  • bShowDebugInfo (디버그 정보 표시) - 참이면 현재 뷰타겟의 디버그 속성이 화면 위에 표시됩니다.
  • DebugDisplay (디버그 디스플레이) - bShowDebugInfo 가 참일 때 현재 뷰타겟 액터용으로 표시할 디버그 정보를 지정하는 문자열 배열입니다. 베이스 엔진 타입에는 "AI", "physics", "weapon", "net", "camera", "collision" 이 포함됩니다.

Display (디스플레이)

  • Canvas (캔버스) - HUD 위에 그릴 캔버스 오브젝트입니다. 주: 매 프레임마다 새로운 캔버스가 주어지므로, HUD::PostRender() 이벤트를 통해서만 그리십시오. 캔버스 클래스 사용법에 대한 상세 정보는 캔버스 테크니컬 가이드 페이지를 참고해 주시기 바랍니다.
  • PlayerOwner (플레이어 오너) - HUD를 소유하는 PlayerController를 참조합니다. 예를 들면 로컬 PlayerController.
  • PostRenderedActors (사후 렌더링되는 액터) - HUD 오버레이를 그리기 위해 그의 NativePostRenderFor()PostRenderFor() 함수를 호출해야 하는 액터 배열입니다.
  • WhiteColor/GreenColor/RedColor (하얀색/초록색/빨간색) - 햐앙, 초록, 빨강 색 변수의 미리 설정(프리셋)입니다.
  • bShowHUD (HUD 표시) - 참이면 HUD가 표시됩니다.
  • bShowScores (점수 표시) - 참이면 점수판이 표시됩니다.
  • bShowBadConnectionAlert (악성 연결 경고 표시) - 참이면 악성 연결 표지가 HUD에 나타납니다. 랙과 패킷 손실을 기반으로 네이티브 코드에 설정되어 있습니다.
  • RenderDelta (렌더 경과시간) - 지난 업데이트 이후 경과한 초단위 시간입니다.
  • LastHUDRenderTime (지난 HUD 렌더 시간) - RenderDelta 계산에 사용할 지난 번 렌더링 시간입니다.

Messages (메시지)

  • ConsoleMessages (콘솔 메시지) - 나타낼 메시지 배열입니다.
  • ConsoleColor (콘솔 색) - 콘솔 메시지를 나타낼 때 사용할 색입니다.
  • ConsoleMessageCount (콘솔 메시지 수) - 콘솔 메시지 배열에 유지시킬 콘솔 메시지의 최대 수입니다.
  • ConsoleFontSize (콘솔 폰트 크기) -
  • MessageFontOffset (메시지 폰트 오프셋) - 사용할 폰트를 결정할 때 로컬 메시지(LocalMessage)의 폰트 크기에 적용할 오프셋 값입니다.
  • MaxHUDAreaMessageCount (최대 HUD 영역 메시지 수) - 나타낼 로컬 메시지의 최대 수입니다.
  • LocalMessages (로컬 메시지) - 나타낼 로컬 메시지 배열입니다.
  • ConsoleMessagePos[X/Y] (콘솔 메시지 위치 [X/Y]) - 콘솔 메시지를 그릴 화면상의 가로 세로 위치입니다.
  • KismetTextInfo (키즈멧 텍스트 정보) - 나타넬 키즈멧 DrawText 메시지 배열입니다.
  • bMessageBeep (메시지 삑소리) - 참이면 콘솔에 새로 메시지가 나타날 때마다 삑 소리가 납니다.

Viewport (뷰포트)

  • HUDCanvasScale (HUD 캔버스 스케일) - (TV 용으로) 사용할 화면-공간의 양으로, [0,1] 범위입니다.
  • Size[X/Y] (크기[X/Y]) - 뷰프트의 가로 세로 크기로, 픽셀 단위입니다.
  • Center[X/Y] (중심[X/Y]) - 뷰포트 중심의 가로 세로 위치입니다.
  • Ratio[X/Y] (비율[X/Y]) - 기본 해상도 1024x768 에 대해 현재 뷰포트의 가로 세로 크기 비율입니다.

HUD 함수

Debug

  • ShowDebug [DebugType] - 플레이어의 현재 뷰타겟(ViewTarget) 속성 표시 토글입니다.
    • DebugType - 표시하거나 숨길 속성입니다. 베이스 엔진이 지원하는 값에는 "AI", "physics", "weapon", "net", "camera", "collision" 이 포함됩니다.
  • ShowDisplayDebug [DebugType] - 지정된 디버그 정보가 현재 나타나도록 설정되었는지를 정합니다. 예를 들자면 DebugDisplay 배열에 있는 것입니다.
    • DebugType - 검사할 속성입니다. 베이스 엔진이 지원하는 값에는 "AI", "physics", "weapon", "net", "camera", "collision" 이 포함됩니다.
  • ShowDebugInfo [out_YL] [out_YPos] - HUD 위의 기본 디버그 렌더링을 하기 위한 진입점입니다. "showdebug" 콘솔 명령을 통해 활성화 및 제어됩니다. 게임별 커스텀 디버그를 나타내기 위해 덮어쓸 수 있습니다.
    • out_YL - 현재 폰트의 높이입니다.
    • out_YPos - 캔버스 위의 세로 위치입니다. 다음 디버그 줄에 대한 텍스트 그리기 위치는 out_YPos + out_YL= 이 됩니다.
  • DrawRoute [Target] - 뷰타겟, 즉 봇의 현재 루트에 대한 디버그 정보를 그립니다.
    • Target - 루트 정보를 그릴 폰(봇)을 가리킵니다.

Display

  • ToggleHUD - bShowHUD 변수를 통해 HUD의 표시여부를 토글하는 실행 함수입니다.
  • ShowHUD - ToggleHUD() 함수를 호출하여 HUD의 표시여부를 토글하는 실행 함수입니다.
  • ShowScores - SetShowScores() 함수를 호출하여 게임내 점수판 표시를 토글하는 실행 함수입니다.
  • SetShowScores [bNewValue] - bShowScores 변수를 통해 게임내 점수판의 표시여부를 설정하는 실행 함수입니다.
    • bNewValue - bShowScores 변수에 대한 새로운 값입니다.
  • DisplayBadConnectionAlert - 악성 연결 경고 메시지를 그리기 위한 함수 토막(stub)입니다. 서브클래스에서 이를 덮어써야 합니다.

Drawing

  • PreCalcValues - Size[X/Y], Center[X/Y], Ratio[X/Y] 값들을 계산하여 채워 넣습니다.
  • PostRender - HUD에 대한 메인 그리기 함수입니다. 엔진이 매 프레임마다 호출합니다.
  • DrawHUD - 메인 게임 HUD 그리기 함수입니다. 아무 메시지 이전에 호출됩니다. 게임-전용 HUD 그리기를 처리하려면 서브클래스에서 이를 덮어써야 합니다.
  • Draw2DLine [X1] [Y1] [X2] [Y2] [LineColor] - 화면에 2D 공간 선을 그립니다.
    • [X/Y]1 - 선의 시작점을 픽셀로 나타내는 가로 세로 위치입니다.
    • [X/Y]2 - 선의 종료점을 픽셀로 나타내는 가로 세로 위치입니다.
    • LineColor - 선을 그릴 때 사용할 색입니다.
  • Draw3DLine [Start] [End] [LineColor] - 화면에 3D 공간 선을 그립니다.
    • Start - 월드 공간에 선의 시작점을 나타내는 벡터입니다.
    • End - 월드 공간에 선의 종료점을 나타내는 벡터입니다.
    • LineColor - 선을 그릴 때 사용할 색입니다.
  • DrawText [Text] [Position] [TextFont] [FontScale] [TextColor] - 화면에 텍스트 문자열을 그립니다.
    • Text - 화면에 그릴 문자열입니다.
    • Position - 화면상에 텍스트를 그릴 가로 세로 (X Y) 위치를 픽셀로 나타내는 Vector2D 입니다.
    • TextFont - 텍스트를 그리는 데 사용할 폰트입니다.
    • FontScale - 텍스트의 가로 세로 (X Y) 스케일을 나타내는 Vector2D 입니다.
    • TextColor - 화면상에 텍스트를 그릴 때 사용할 색입니다.
  • DrawActorOverlays [Viewpoint] [ViewRotation] - 네이티브. 이번 틱에 렌더링되고, PostRenderedActors 배열에 추가된 액터의 오버레이를 그립니다.
    • Viewpoint - 플레이어 카메라의 현재 위치입니다.
    • ViewRotation - 클레이어 카메라의 현재 회전입니다.
  • AddPostRenderedActor [A] - PostRenderedActors 목록에다 액터를 추가합니다.
    • A - 배열에 추가시킬 액터를 가리킵니다.
  • RemovePostRenderedActor [A] - PostRenderedActors 목록에서 액터를 제거합니다.
    • A - 배얼에서 제거시킬 액터를 가리킵니다.
  • GetFontSizeIndex [FontSize] - 주어진 폰트 크기에 맞는 폰트를 반환합니다.
    • FontSize - 폰트에 해당하는 크기입니다.

General

  • PlayerOwnerDied - HUD 의 PlayerOwner 가 죽었을 때 호출되는 함수 토막입니다. 서브클래스에서 이 함수를 덮어써야 합니다.
  • OnLostFocusPause [bEnable] - 메인 창에 포커스가 잡혀있지 않을 때 게임의 일시정지 여부입니다.
    • bEnable - 참이면 일시정지가 가능합니다. 아니면 불가능합니다.

Messages

  • ClearMessage [M] - 주어진 LocalizedMessage 를 비웁니다.
    • M - 비울 LocalizedMessage 를 가리킵니다.
  • Message [PRI] [Msg] [MsgType] [LifeTime] - 콘솔 메시지를 새로 추가하기 위한 감싸개(wrapper) 함수입니다. AddConsoleMessage() 를 호출합니다.
    • PRI - 메시지를 전송하는 PlayerReplicationInfo (플레이어 복제 정보)를 가리킵니다.
    • Msg - 메시지 텍스트입니다.
    • MsgType - 메시지의 종류입니다. 예: 'Say', 'TeamSay' 등.
    • LifeTime - 옵션. 메시지를 나타낼 기간으로, 초 단위입니다.
  • AddConsoleMessage [M] [InMessageClass] [PRI] [LifeTime] - 나타낼 콘솔 메시지를 새로 추가합니다.
    • M - 메시지 텍스트입니다.
    • InMessageClass - 새로운 메시지의 클래스 (LocalMessage 또는 서브클래스)입니다.
    • PRI - 메시지에 관계된 플레이어의 PlayerReplicationInfo (플레이어 복제 정보)를 가리킵니다.
    • LifeTime - 옵션. 메시지를 나타낼 기간으로, 초 단위입니다.
  • DisplayConsoleMessages - 계류중인 ConsoleMessage 를 화면에 그립니다.
  • LocalizedMessage [InMessageClass] [RelatedPRI_1] [RelatedPRI_2] [CriticalString] [Switch] [Position] [LifeTime] [FontSize] [DrawColor] [OptionalObject] - 새로이 나타낼 LocalMessage 를 추가하기 위한 감싸개(wrapper) 함수입니다. AddLocalizedMessage() 를 호출합니다. 메시지 클래스의 bIsSpecial 속성이 거짓인 경우 콘솔 메시지로써 메시지를 추가하기도 합니다.
    • InMessageClass - 새로운 메시지의 클래스 (LocalMessage 또는 서브클래스)입니다.
    • RelatedPRI_1 - 메시지에 관련된 플레이어의 첫 PlayerReplicationInfo (플레이어 복제 정보)를 가리킵니다. 메시지의 클래스에서 PRI가 사용되는 방법이 정의됩니다.
    • RelatedPRI_2 - 메시지에 관련된 플레이어의 둘째 PlayerReplicationInfo (플레이어 복제 정보)를 가리킵니다. 메시지의 클래스에서 PRI가 사용되는 방법이 정의됩니다.
    • CriticalString - 메시지의 텍스트입니다.
    • Switch - 메시지 스위치입니다. 메시지의 클래스가 스위치 사용법을 결정합니다.
    • Position - 화면 위 메시지의 세로 위치입니다.
    • LifeTime - 메시지를 나타낼 기간으로, 초 단위입니다.
    • FontSize - 메시지를 나타내는 데 사용할 폰트 크기입니다. 메시지를 나타내는 데 사용할 폰트를 구하기 위해 MessageFontOffset 만큼 오프셋시켜 GetFontSizeIndex() 에 전달한 것입니다.
    • DrawColor - 메시지를 나타내는 데 사용할 색입니다.
    • OptionalObject - 옵션. 메시지에 연결할 오브젝트를 가리킵니다. 메시지의 클래스에서 그 오브젝트의 사용법을 정의합니다.
  • AddLocalizedMessage [Index] [InMessageClass] [CriticalString] [Switch] [Position] [LifeTime] [FontSize] [DrawColor] [MessageCount] [OptionalObject] - 실제 메시지를 LocalMessages 배열에 추가합니다.
    • Index - 새로운 메시지를 넣을 LocalMessages 배열 속으로의 인덱스입니다.
    • InMessageClass - 새로운 메시지의 클래스 (LocalMessage 또는 서브클래스)입니다.
    • CriticalString - 메시지의 텍스트입니다.
    • Switch - 메시지 스위치입니다. 메시지의 클래스에서 스위치 사용법이 결정됩니다.
    • Position - 화면 위의 메시지 가로 위치입니다.
    • LifeTime - 메시지를 나타내는 기간으로, 초 단위입니다.
    • FontSize - 메시지를 나타내는 데 사용할 폰트의 크기입니다. 메시지를 나타내는 데 사용할 폰트를 구하기 위해 MessageFontOffset 만큼 오프셋시켜 GetFontSizeIndex() 로 전달시킨 것입니다.
    • DrawColor - 메시지를 나타내는 데 사용할 색입니다.
    • MessageCount - 옵션. 현재 LocalMessages 배열에 있는 메시지의 수 입니다.
    • OptionalObject - 옵션. 메시지에 연결된 오브젝트를 가리킵니다. 메시지의 클래스에서 오브젝트가 사용되는 방법이 정의됩니다.
  • GetScreenCoords [PosY] [ScreenX] [ScreenY] [InMessage] - LocalMessage 를 그릴 화면상의 위치를 계산합니다.
    • PosY - 메시지의 세로 위치입니다.
    • ScreenX - 출력. 가로 위치를 픽셀 단위로 출력합니다.
    • ScreenY - 출력. 세로 위치를 픽셀 단위로 출력합니다.
    • InMessage - 출력. 화면 위치를 구하는 데 사용할 메시지입니다.
  • DrawMessage [i] [PosY] [DX] [DY] - LocalMessage를 나타내기 위한 구성 및 메시지를 나타내기 위한 DrawMessageText() 호출을 수행합니다.
    • i - 나타낼 메시지의 LocalMessages 배열 속으로의 인덱스입니다.
    • PosY - 화면 위의 메시지 세로 위치입니다.
    • DX - 출력. 메시지 텍스트의 폭을 출력합니다.
    • DY - 출력. 메시지 텍스트의 높이를 출력합니다.
  • DrawMessageText [LocalMessage] [ScreenX] [ScreenY] - 화면에다 LocalMessage 의 텍스트를 그립니다.
    • LocalMessage - 텍스트를 나타낼 LocalMessage 입니다.
    • ScreenX - 메시지 텍스트를 그릴 화면 상의 가로 위치로, 픽셀 단위입니다.
    • ScreenY - 메시지 텍스트를 그릴 화면 상의 세로 위치로, 픽셀 단위입니다.
  • DisplayLocalMessages - LocalMessages 의 레이아웃을 수행한 다음 나타냅니다.
  • DisplayKismetMessages - 계류중인 키즈멧 DrawText 메시지를 모두 나타냅니다.

MobileHUD


MobileHUD 클래스는 베이스 HUD 클래스로부터 확장한 다음, 모바일 디바이스의 HUD 표현에 필수적인 (터치 콘트롤같은) 부가 HUD 부분용 함수성을 추가한 것입니다. 모바일 디바이스용으로 게임을 배포하려는 경우, MobileHUD 클래스나 그 서브클래스에서부터 HUD 를 확장해 가야 합니다.

MobileHUD 속성

Controls (콘트롤)

  • JoystickBackground (조이스틱 배경) - 조이스틱 요소의 배경 그래픽을 포함하는 텍스처입니다.
  • JoystickBackgroundUVs (조이스틱 배경 UV) - JoystickBackground 텍스처 내 그래픽의 좌표를 지정하는 TextureUV 입니다.
  • JoystickHat (조이스틱 햇) - 실제 조이스틱 요소에 대한 그래픽을 포함하는 텍스처입니다.
  • JoystickHatUVs (조이스틱 햇 UV) - JoystickHat 텍스처 내 그래픽의 좌표를 지정하는 TextureUV 입니다.
  • ButtonImages (버튼 이미지) - 화면상의 버튼에 대한 그래픽을 담고 있는 텍스처 배열입니다.
  • ButtonUVs (버튼 UV) - ButtonImages 텍스처 내 그래픽의 좌표를 지정하는 TextureUV 배열입니다.
  • ButtonFont (버튼 폰트) - 화면상의 버튼 라벨을 그리는 데 사용할 폰트입니다.
  • ButtonCaptionColor (버튼 캡션 색) - 화면상의 버튼 라벨을 그리는 데 사용할 색입니다.
  • TrackballBackground (트랙볼 배경) - 트랙볼 요소의 배경 그래픽이 포함된 텍스처입니다.
  • TrackballBackgroundUVs (트랙볼 배경 UV) - TrackballBackground 텍스처 내 그래픽의 좌표를 지정하는 TextureUV 입니다.
  • TrackballTouchIndicator (트랙볼 터치 지표) - 트랙볼 터치 지표의 배경 그래픽이 포함된 텍스처입니다.
  • TrackballTouchIndicatorUVs (트랙볼 터치 지표 UV) - TrackballTouchIndicator 텍스처 내 그래픽 좌표를 지정하는 TextureUV 입니다.
  • SliderImages (슬라이더 이미지) - 화면상의 슬라이더 그래픽이 포함된 텍스처 배열입니다.
  • SliderUVs (슬라이더 UV) - SliderImages 텍스처 내 그래픽 좌표를 지정하는 TextureUV 배열입니다.

Debug (디버그)

  • bDebugTouches (터치 디버그) - 참이면 터치에 관련된 디버그 정포가 나타납니다.
  • bDebugZones (존 디버그) - 참이면 다양한 모바일 입력 존에 대한 디버그 정보가 나타납니다.
  • bDebugZonePresses (존 눌림 디버그) - 참이면 모바일 입력 존에 대한 디버그 정보가 눌렸을 때만 나타납니다.

General (일반)

  • bShowGameHUD (게임 HUD 표시) - 참이면 표준 게임 HUD가 표시됩니다. ShowHUD 명령은 지원하면서도 HUD를 완전히 감추는 기능을 지원하기 위해 필요합니다.
  • bShowMobileHUD (모바일 HUD 표시) - 참이면 (입력 존 등의) 모바일 HUD가 표시됩니다.
  • bForceMobileHUD (모바일 HUD 강제) - 참이면 모바일 플랫폼이 아닌 경우에도 모바일 HUD가 표시됩니다.

Tilt (틸트)

  • bShowMobileTilt (모바일 틸트 표시) - 참이면 디바이스 틸트가 표시됩니다.
  • MobileTilt[X/Y] (모바일 틸트 [X/Y]) - 디바이스 틸트를 표시할 가로 세로 위치입니다.
  • MobileTiltSize (모바일 틸트 크기) - 디바이스 틸트를 표시할 크기입니다.

MobileHUD 함수

Drawing

  • ShowMobileHUD - 모바일 HUD를 나타낼지 여부를 반환합니다.
  • RenderMobileMenu - 모바일 HUD 메뉴 그리기 함수입니다. 모바일 HUD 그리기가 끝난 후 PostRender() 에 의해 호출됩니다.

Zones

  • DrawInputZoneOverlays - 다른 것 위에 입력 존을 그리는 메인 모바일 HUD 그리기 함수입니다. 메인 HUD 그리기가 끝난 후 PostRender() 에 의해 호출됩니다.
  • DrawMobileZone_Button [Zone] - 주어진 입력 존에 대한 버튼을 그립니다.
    • Zone - 버튼을 그리기 위한 MobileInputZone 입니다.
  • DrawMobileZone_Joystick [Zone] - 주어진 입력 존에 대한 조이스틱을 그립니다.
    • Zone - 조이스틱을 그리기 위한 MobileInputZone 입니다.
  • DrawMobileZone_Trackball [Zone] - 주어진 입력 존에 대한 트랙볼을 그립니다.
    • Zone - 트랙볼을 그리기 위한 MobileInputZone 입니다.
  • DrawMobileZone_Slider [Zone] - 주어진 입력 존에 대한 슬라이더를 그립니다.
    • Zone - 슬라이더를 그리기 위한 MobileInputZone 입니다.
  • DrawMobileTilt [MobileInput] - 주어진 MobilePlayerInput 의 틸트 정보를 사용하여 디바이스 틸트를 그립니다.
    • MobileInput - 나타낼 틸트 정보를 제공하는 MobilePlayerInput 입니다.

UDKHUD


UDKHUD 클래스가 네이티브 함수성을 포함하면서도 가장 자주 파생되는 HUD 클래스입니다.

UDKHUD 속성

  • GlowFonts (빛나는 폰트) - 빛남이나 블룸 효과와 함께 진동하는 텍스트를 그리는 데 사용할 폰트입니다. 배열의 [0] 요소에는 빛날 때 사용할 폰트가, [1] 요소에는 보통 텍스트를 그릴 때 사용할 폰트가 담겨 있습니다.
  • PulseDuration (진동 기간) - 텍스트 진동이 발생하는 기간입니다.
  • PulseSplit (진동 분할) - 진동이 꺼진 다음 켜질 때까지의 기간입니다.
  • PulseMultiplier (진동 곱수) - 텍스트를 얼마나 진동시킬지 입니다. 주: 여기에 1.0 값이 더해집니다. (PulseMultiplier 0.5 = 1.5)
  • TextRenderInfo (텍스트 렌더링 정보) - 폰트 렌더링에 사용되는 정보를 담고 있는 FontRenderInfo 구조체입니다. HUD 서브클래스의 디폴트 속성에서 구성된 후 이를 필요로 하는 Canvas.DrawText() 로 전달해야 합니다.
  • ConsoleIconFont (콘솔 아이콘 폰트) - 주어진 콘솔에 사용할 폰트입니다.
  • BindTextFont (바인드 텍스트 폰트) - ConsoleIconFont 내의 아이콘으로 표현되지 않았을 때 입력 바인드를 표시하는 데 사용할 폰트입니다.

UDKHUD 함수

  • DrawGlowText [Text] [X] [Y] [MaxHeightInPixels] [PulseTime] [bRightJustified] - 빛남 또는 블룸 효과로 진동하는 텍스트를 그립니다.
    • Text - 나타낼 텍스트 문자열입니다.
    • [X/Y] - 텍스트를 그릴 화면상의 가로 세로 위치입니다.
    • MaxHeightInPixels - 옵션. 텍스트의 최대 높이입니다.
    • PulseTime - 옵션. 진동 한 번에 걸리는 기간입니다.
    • bRightJustified - 옵션. 참이면 캔버스의 현재 클리핑 구역의 변에 텍스트가 오른정렬됩니다.
  • TranslateBindToFont [InBindStr] [DrawFont] [OutBindStr] - 이스케이프 시퀸스 데이터를 포함하고 있을 수도 있는 문자열을 폰트 및 나타내야 하는 문자열로 변환합니다.
    • InBindStr - 이스케이프 데이터를 포함하는 문자열입니다.
    • DrawFont - 출력. 문자열을 그리는 데 사용할 폰트를 출력합니다. ConsoleIconFont 또는 BindTextFont 입니다.
    • OutBindStr - 출력. 이스케이프 데이터를 벗겨낸 문자열을 출력합니다.
  • DisplayHit [HitDir] [Damage] [damageType] - 피해를 입은 방향을 표시하는 적중 이펙트를 나타냅니다.
    • HitDir - 피해를 입은 방향을 나타내는 벡터입니다.
    • Damage - 피해를 입은 양입니다.
    • damageType - 피해의 종류(DamageType)입니다.

텍스처 아틀라스 아이콘 좌표


HUD에 사용된 그래픽 (아이콘, 이미지 등)은 보통 텍스처 아틀라스(atlas)의 일부로 저장됩니다. 즉 하나의 텍스처 안에 여러 아이콘이나 이미지가 저장되고, 특정 아이콘을 나타내기 위해 그 텍스처의 일부를 그린다는 뜻입니다.

texture_atlas.jpg

텍스처 아틀라스 내부의 개별 아이콘은 좌표를 통해 접근됩니다. 언리얼 엔진 3에서 사용되는 표준 방법은, 텍스처 샘플링을 시작할 좌상단 픽셀의 가로 세로 (보통 UV 로 표기) 위치를 지정한 다음, 샘플링할 폭과 높이 (보통 ULVL 로 표기)를 지정하는 것입니다. 이 좌표는 보통 MobileHUD.TextureUVs 또는 UIRoot.TextureCoordinates 같은 구조체에 저장됩니다.

atlas_coords.jpg