UDN
Search public documentation:
MOBAKitUIKR
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
中国翻译
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
MOBA 스타터 키트 - UI
문서 변경내역: James Tan 작성. 홍성진 번역. UDK 2012년 5월 버전으로 최종 테스팅.
개요
MOBA 류 게임은 일반적으로 HUD 에 많은 정보가 표시됩니다. MOBA 스타터 키트의 모든 HUD 는 Scaleform 안에서 처리되며, HUD 클래스가 존재하기는 하지만 대부분 Scaleform 으로 명령을 전달해 주거나 Canvas 인스턴스를 따라 지나가는 셸 역할을 할 뿐입니다. HUD 일정 부분에 대해서는 다른 문서에 설명되어 있으니, 여기서는 나머지 부분에 초점을 맞춰 보도록 하겠습니다.
영웅 영역
영웅 영역에는 영웅의 상태에 대한 정보가 들어 있습니다. 영웅의 생명력, 레벨, 마나, 초상화, 스펠, 스탯을 표시합니다. 영웅 영역 박스 GFx 위젯 대부분은 UDKMOBAGFxHUD::ConfigHero() 에 캐시됩니다. 핵심 로직 대부분은 UDKMOBAGFxHUD::UpdateCurrentHero() 에서 이루어지며, 이는 UDKMOBAGFxHUD::Tick() 에 의해 호출됩니다.
생명력
생명력은 세 부분으로 나뉩니다.- 생명력 막대
- 현재 생명력 문구
- 생명력 재생 문구
마나
마나는 세 부분으로 나뉩니다.- 마나 막대
- 현재 마나 문구
- 마나 재생 문구
초상화
사용되는 초상화는 플랫폼에 따라 달라집니다. 모바일 플랫폼에서는 미리 렌더링된 스태틱 이미지가 사용되는 반면, PC 플랫폼에서는 실시간 다이내믹 렌더 타겟을 사용하여 애니메이션 초상화를 사용합니다. 이는 UDKMOBAGFxHUD::SetHeroPortrait() 를 통해 처리되며, 여기서 하는 일이라고는 해당 함수의 파라미터인 Texture2D 로 텍스처 리소스를 설정하는 것 뿐입니다. 모바일 플랫폼에서는 초상화 설정에 UDKMOBAHUD_Mobile::PostRender() 가 사용됩니다. 이 경우 이 함수가 하는 일이라고는 텍스처를 GFx 위젯으로 설정하는 것 뿐입니다. PC 플랫폼에서는 초상화 설정에 UDKMOBAHUD_PC::PostRender() 가 사용됩니다. PC 플랫폼에서는 맵에 구애받지 않도록 맵 어딘가 임의의 곳에 스폰되는 애니메이션 스켈레탈 메시를 캡처하는 화면 밖 렌더 타겟을 생성합니다. 이렇게 하여 초상화 동영상을 미리 렌더링할 필요 없이 애니메이션 초상화를 만들어 냅니다. 또한 초상화 동영상을 다시 렌더링할 필요 없이 영웅 아트를 바꿀 수도 있습니다. 파티클 이펙트, 라이팅 이펙트 같은 이쁜 효과를 추가할 수도 있습니다.스펠
스펠 부분은 복잡한 Scaleform 위젯에서 동적으로 생성되며, UDKMOBAGFxHUD::ConfigSpells() 에서 처리됩니다. UDKMOBAGFxHUD::ConfigSpells() 는 영웅의 스펠을 대상으로 반복처리하여 새로운 GFx 위젯을 HUD 에 동적으로 붙입니다. 그런 다음 그 버튼들을 적합한 이벤트 리스너에 바인딩하고서 나머지 것들을 구성합니다. 이벤트 리스너는 스펠 레벨 업, 스펠 트리거 등과 같은 면을 처리하는 것입니다.스탯
스탯 부분은 거의 영웅의 상태 업데이트에 따라 업데이트되는 텍스트 필드가 있는 정도입니다. 이는 주로 UDKMOBAGFxHUD::UpdateHeroStats() 에서 업데이트되며, 단지 영웅에서 값을 구해온 다음 UDKMOBAGFxHUD::ConfigHero() 안에 캐시된 텍스트 필드에 할당할 뿐입니다.인벤토리 영역
인벤토리 영역에는 플레이어의 현재 인벤토리 아이템과 플레이어의 보관함 인벤토리 아이템 둘 다 들어 있습니다. 양쪽 모두 Scaleform 에 미리 정의되어 있고, 복잡한 무비 클립을 사용하여 아이템을 처리합니다. 플레이어의 골드 양을 유지하는 데는 텍스트 필드가 사용되며, 상점 버튼은 단지 플레이어가 상점 영역 안에 있는지 아닌지를 나타내기 위해 크롬을 업데이트하는 버튼일 뿐입니다. 이들 모두 UDKMOBAGFxHUD::ConfigInventory() 에 캐시됩니다.
현재 인벤토리 슬롯
현재 인벤토리 슬롯은 왼쪽에 있는 것으로, 보관함 인벤토리 슬롯보다 큽니다. 이들은 인벤토리 배열이 바뀔 때 UDKMOBAPawnReplicationInfo 에서 호출되는 UDKMOBAGFxHUD::NotifyItemReceived() 를 통해 업데이트됩니다. 하는 역할은 단순히 캐시된 GFx 인벤토리 배열을 찾아서 다양한 위젯을 적합한 값으로 할당하는 것입니다.보관함 인벤토리 슬롯
현재 인벤토리 슬롯과 같은 방식으로 업데이트됩니다.골드 텍스트 필드
UDKMOBAGFxHUD::NotifyMoneyUpdated() 함수를 통해 업데이트되며, 텍스트 필드의 텍스트를 설정하는 함수입니다. UDKMOBAPlayerReplicationInfo.Money 변수가 변할 때 UDKMOBAPlayerReplicationInfo::MoneyUpdated() 에 의해 호출됩니다.상점 버튼
이 GFxClikWidget 가 UDKMOBAGFxHUD::ConfigInventory() 에서 초기화될 때 이벤트 리스너를 PressShop() 라는 델리게이트에 바인딩합니다. 이 델리게이트는 단순히 ShopAreaMC 가시성을 토글합니다. 또한 크롬 버튼의 색을 바꾸는 데 UDKMOBAGFxHUD::ToggleShopButtonChrome() 가 사용되기도 합니다. 색의 변화는 플레이어가 샵 볼륨 안에 있는지 아닌지를 나타냅니다.메시지
메시지는 동적으로 스폰되는 무비 클립으로, 텍스트 필드가 설정된 것입니다. 페이드 인/아웃 애니메이션을 통해 UI 에 보다 세련되고 동적인 느낌을 주기도 합니다. 메시지 추가를 쉽게 하기 위해 일부 헬퍼 함수를 UDKMOBAGFxHUD 에 추가했습니다.
- UDKMOBAGFxHUD::AddCenteredMessage() - 화면 중앙에 메시지를 추가합니다.
- UDKMOBAGFxHUD::AddMessage() - 화면 왼쪽에 메시지를 추가합니다.
상단 영역
상단 영역에는 게임의 일반적인 상태에 대한 정보가 들어 있습니다. 멀리 왼쪽에는 메인 메뉴 버튼, 가운데에는 팀의 킬 수, 영웅 아이콘이 표시되는 영역과 밤 낮 시계, 멀리 오른쪽에는 킬, 데쓰, 어시스트 수입니다.