지난시간에 만들어둔 UMG 폴더 내의 GameHUD를 연다. 

중앙의 창은 비주얼 디자이너라 하고 해당 창에 노출되는것은 게임 내에서도 보여지게 된다. 

게임 내 UI 창을 표현하는 시각적도구라고 보면 된다. 

왼쪽에 보면 팔레트라는 창이 있는데 여기서 기본적인 UI 요소를 가져올 수 있다. 




우선 팔레트에서 Horizonal box 를 비주얼디자이너창으로 가져온다. 

그리고 Vertical Box를 계층구조 내 Horizonal Box 안으로 집어넣는다. 

그리고 Vertical Box를 Ctrl + C, Ctrl + V를 통해 복사, 붙여넣기 한다. 

Vertical Box 하나에 텍스트를, 나머지 하나에는 Progress Bar 를 표시할것이다. 



팔레트의 일반 > Text 를 선택해 끌어다 Vertical Box 하나 위에 넣는다. 

Text 위젯을 복사하여 두개를 더 만들어준다. 

마찬가지로 일반 > Progress Bar를 남은 하나의 Vertical Box 안에 넣어주고 복사해서 3개로 만들어준다. 




비주얼 디자이너에 있는 Horizonal Box의 크기를 적절히 조절해 준 다음, 

Vertical Box의 Progress Bar 1,2,3을 전부 선택하여 우측 레이아웃창의 size 란을 자동에서 채우기로 변경한다. 





다름 프로그레스 바 가 있는 버티컬박스를 선택한 다음 우측 디테일 창의 슬롯 란에 보면 사이즈가 있는데 채우기 를 누르면 호라이즌박스 크기만큼 프로그래스바가 채워지는것을 볼 수 있다. 





Text 영역도 똑같이 선택하여 Layout의 size를 채우기로 바꿔주고, Jstification의 위치를 우측으로 바꿔준다. 


다음 첫번째 텍스트를 선택하여 우측 Content란의 Text 문구를 체력 으로 입력한다. 이 때 문구 앞 뒤로 Space 키를 눌러 빈공간을 둔다. 

마찬가지로 나머지 텍스트항목에 에너지, 기분 을 입력해준다.



Progress Bar 3개를 다 선택해서 우측 디테일란의 Fill Color and Opacity 란을 본다. 

파란색으로 기본설정되어있는데 프로그래스바는 색깔이 보이지 않는다. 이유는 디테일 > Progress 란의 Percent가 0 이기 때문이다. 




우선 Progress 내 Percent를 1로 해주고 Fill Color...를 통해 각각 색상을 선택해준다. 

이후 다시 Progress내 Percent를 0으로 다시 바꿔준다. 이후 블루프린트에따라 체력,에너지,기분 게이지가 조정될것이기 때문에 지금 채워두면 안된다. 

이는 Progress란의 바인드를 통해 연결한다. 



우선 화면 우상단의 디자이너>그래프 에서 그래프로 넘어가보면 아래와 같이 노드들이 있는데 Tick이벤트는 필요없으니 우선 삭제하자. 

강의에는 나오지 않았지만 맨위의 Pre Construct 이벤트도 필요는 없는 듯 하다.



이다음, 우클릭> Get Player Character 를 입력하여 불러오자. 




여기서 Return Value를 드래그하여 우측으로 끌어서 입력창에 Cast to 를 입력하면 ThirdpersonCharacter에 형변환 이 뜰 것이다. 



해당 블루프린트를 만들고 Construct 이벤트랑 연결해준다. 이 다음 ThirdPerson...에 행변환의 실행핀을 우측으로 드래그 해 보면 

Set Health Value, Set Energy Value, Set Mood Value 를 선택이 가능하다. 해당 변수들을 다룰 수 있게된것이다. 




하지만 여기서 해당변수를 적용하진 않고 지금까지 만든 형변환 내용을 레퍼런스로 불러와서 계속 활용하기 위해 

해당 형변환을 변수로 승격시켜야 한다. 

해당 형변환의 실행키를 우클릭, 변수로 승격을 선택하면 된다. 행변환 자체를 우클릭하면 해당메뉴가 뜨지 않으니 행변환 실행핀을 우클릭하자. 

변수로 승격하게 되면 좌측 변수 항목에 변수가 추가되고 이름을 적게 되는데 CharacterReference로 만들어 두자. 


비주얼 디자이너에서 C를 눌러 제목을 추가하자.

이벤트 컨스트럭트 스크립트가 완성되었다. 컴파일/저장을 하자. 



다시 우측 상단의 디자이너 메뉴로 돌아와서, 각 프로그래스 바를 종전에 만든 캐릭터 레퍼런스에 바인딩 한다. 

프로그래스 바를 선택한 다음 우측의 프로그래스란의 바인드 클릭, 캐릭터 레퍼런스를 선택한 다음 해당하는 Value (Health, Evergy, Mood) 를 선택하면 된다. 


컴파일/저장을 한 후 해당 블루프린트 창을 닫는다. 




지금까지 작업을 한 내용이 바로 인게임 내에서 보여지지는 않는다. 


보여주기위해서는 플레이어캐릭터 블루프린트 내에서 작업을 해주어야 한다. 


다시 ThirdPersonBlueprint를 열어주자. 


우클릭을 한 후 EventBeginPlay를 입력하여 BeginPlay 이벤트 를 생성해주자.

게임을 실행하면 이 노드가 모든 연결되어있는 노드들을 열어준다. 

이후, Beginplay이벤트의 실행핀을 옮겨와서 Create widget을 실행해준다. 


위젯 생성노드가 생기고, 해당 노드의 클래스 선택에 보면 만들어둔 위젯들이 보인다.

GameHUD를 선택하고, 해당 위젯생성노드의 실행핀을 우클릭하여 변수로 승격시켜서 레퍼런스로 사용하자. 





변수이름은 GameHUDReference로 설정해두자. 




이 다음 해당 변수의 핀을 가져와서 Add to Viewport 노드를 생성하자.




이 다음에는 만들어진 변수들 중 기존에 있는 점프블루프린트를 전환하여 Energy value에 적용 해 보도록 하겠다. 












'Unreal Engine' 카테고리의 다른 글

게임위젯/인벤토리 만들기 2  (2) 2018.06.09
게임위젯/인벤토리 만들기 (1)  (0) 2018.06.09
  1. GrancartZoo 2018.09.16 17:08 신고

    오! 꽤 하잖아!? ㅋㅋㅋ

언리얼엔진 블루프린트 인벤토리 만들기 


1. 썸네일 만들어서 넣기 

썸네일 이미지를 만들어서 프로젝트 내 Texture 폴더를 만들어서 이미지를 넣어놓는다. (png파일) 




2. 위젯 블루프린트 만들기


하단 창에 마우스 오른쪽 클릭 > 위젯블루프린트 선택을 통해 게임 위젯 블루프린트를 만든다. 


 


GameHUD, InventorySlot, PickupText 세가지를 만들어 준다. 


 


3. 선택한 기본게임스타일 (예제는 ThirdpersonBP) 폴더 > Blueprints > Thirdperson Character를 연다.


 


4. 블루프린트 창에서 좌측 변수(Variables) 항목에서 변수추가를 한다. 

 우선 HealthValue 변수를 만든다. 


 


5. 해당 변수를 선택하고 우측 상단의 디테일 항목에서 변수 유형을 플로트 (Floot) 으로 바꿔준다. 

 

 


6. 동일한 방식으로 EnergyValue, MoodeValue 두개의 변수를 더 만들어준다. 


MoodValue를 선택하여 디테일 창에서 기본값을 0.25로 변경한다. 

1이 100%로 꽉 찬 상태, 0.25는 25% 상태이다. 


마찬가지로 EnergyValue, HealthValue는 각각 0.5, 0.75로 수정해준다. 


7. 컴파일, 저장 후 블루프린트를 닫아준다. 


블루프린트 인터페이스 만들기 

8. 하단 컨텐츠 브라우저 창에서 우클릭 > 블루프린트 > 블루프린트 인터페이스를 열어준다. 


   


우측 상단 내 블루프린트에 함수 이름을 UseAction으로 바꿔준다. 

 

  

DropAction이라는 이름으로 함수를 하나 더 추가해준다. 


DropAction 함수를 선택 > 우측 하단의 입력(Input) 란에 새 파라미터를 추가한다. 
새 파라미터 이름은 Item To Drop 으로 변경하고 파라메터 속성을 Actor로 변환한다. 

이후 컴파일/저장 후 블루프린트를 닫는다. 


9. 컨텐츠브라우저 우클릭 > 블루프린트 > 구조체를 선택한다. 

   InventoryStruct라는 이름으로 구조체를 만들어 준다. 구조체는 쉽게말하면 함수의 집합니다. 

모든 함수들은 여기에 저장되기 때문에 다양한 함수를 불러오기에 좋다. 

여러 함수를 불러오기 좋기때문에 픽업아이템 분류에 좋다. 

예를들면 아이템 가까이에 가면 뜨는 아이템의이름, 아이템을 선택했을때 아이템에 대한 설명 등.. 모든 아이템 정보는 이 인벤토리 스트럭트가 관리하게 될 것 이다. 


 


구조체를 생성 한 후 더블클릭으로 연다. 


구조체 내 변수가 1개가 있고 총 4개를 만들것이므로 3개를 새변수를 클릭하여 추가 해 준다. 

첫번째변수는 속성을 Actor로 바꿔주고 Item으로 이름을 바꿔준다. 

두번째 변수는 속성을 Texture 2D로 바꿔주고 ItemImamge로 이름을 바꿔준다. 

세번째 변수는 속성을 Text로 바꿔주고, 이름을 PickupText로 바꿔준다. 

네번째 변수는 속성을 Text로 바꿔주고, 이름을 ActionText로 바꿔준다.


저장 후 닫는다. 


이제 준비 작업이 끝났다. 


게임 UI 위젯을 위한 블루프린트를 모두 만들었고 

기존 블루프린트를 캐릭터 체력,에너지,기분에 영향을 받을 수 있도록 수정하였다. 

그리고 다수 블루프린트간 정보를 전달할 수 있는 블루프린트 인터페이스도 만들었다. 

마지막으로 아이템 정보를 저장할 인벤토리 스트럭쳐도 만들었다. 



'Unreal Engine' 카테고리의 다른 글

게임위젯/인벤토리 만들기 2  (2) 2018.06.09
게임위젯/인벤토리 만들기 (1)  (0) 2018.06.09

업무때문에 Google Analytics를 들어갔다가 티스토리에 GA를 추가 해 둔걸 보게되고 

트래픽이 있길래 호기심에 들어왔다가 진심 지킬 각오없이 싸질러놓고 간 글을 보고

어떻게든 시작해봐야겠다는 생각이 들어서 리뷰를 일단 써보려고 한다. 


결국 일하러 컴 켰다가 하기싫으니 딴짓한다는.. 뭐 동기야 어쨌든 이렇게 첫번째 리뷰를 쓰게되었음 


사실 젤다의 전설 리뷰를 쓰려고 쓰고있지만 내가 젤다의 전설을 플레이 하게 된 계기, 그 전의 상황 먼저 작성해보려고 한다. 

이건 젤다의전설 시간의 오카리나에 대한 리뷰라기보다는 나의 생애최초 PC 사용기 > PC통신과 에뮬레이터 > 젤다의 전설 플레이 까지 이야기를 이어가보고자 한다. 


결국 일에서 티스토리 게임리뷰 에서 잡설로 아주 가볍게 넘어왔다. 

뭐... 일단 맘대로 써보자.. 


젤다와의 인연은 내가 중학교 2학년때쯤이었던걸로 기억한다. 


당시 각 가정에 막 PC가 보급되고 자고일어나면 586 > MMX > 펜티엄으로 막 바뀌고 세진컴퓨터랜드와 삼보컴퓨터가 급성장하면서 진돗개가 뛰어다니던 격동의 시대였다. 


당시 전산실에 근무하고 계셨던 어머니의 영향으로 철들무렵부터 286 XT 였던가..가물가물하다.. 아무튼 컴퓨터가 있던 나는, MS-DOS, 텔넷(01410) PC통신 이용등에 있어서 주변의  친구들 보다는 상당히 앞서 있던 편이었다. 


하지만 정작 286으로 간신히 돌릴 수 있던 게임은 페르시아왕자, 너구리, 피터루피 정도.. 

컴퓨터에 관심이 많으나 친구들이 먼저 펜티엄 컴퓨터를 사는걸 보고 부러워 할 수 밖에 없었다. 


어머니가 가져다 준 PC통신의 DOS 강의자료를 참 열심히 봤었는데 나는 거기서 얻은 지식으로 친구들 컴퓨터를 관리(?) 해 주고 다녔다. 

V3의 새 버젼이 나올때마다 다운받아서 디스켓에 들고다니며 친구들 컴에 설치하고 바이러스를 잡아주기도 하고 


망가져버린 AUTOEXEC.BAT와 CONFIG.SYS 파일을 보고 수정해서 윈도우를 다시 띄우는 기적을 행하기도 하였다. 


친구들은 나를 자전거로 모셔가기 바빴고 나는 고등학교 1학년때쯤 까지 동네 친구들 컴퓨터는 다 만지고 다녔었다. (고2때 이사감) 


586으로 언제 처음 바꿨던건지 기억이 잘 나지 않는다. 


거의 신세계가 펼쳐졌고 PC통신 01410을 통해서 온갖 신문물을 접하게 되었는데 


많은컨텐츠가 있었지만 나에게 가장 큰 영향을 끼친건 두가지. 온라인게임과 에뮬레이터였다. 


당시 컴퓨터 학원 가면 흔하게 있던 에뮬레이터 게임들은 대부분 닌텐도 게임보이 에뮬레이터 였다.

짱구나 킹오브파이터 게임보이판을 많이 플레이 했었다. 


하지만 PC통신에는 새로운 에뮬레이터들이 창궐하고 있었고 나는 동네에서는 거의 가장 앞선 네티즌이었다. 


메가드라이브(슈퍼알라딘보이), 네오지오(SNK아케이드), 슈퍼패미컴 등의 에뮬레이터가 릴리즈 되고 룸파일이 올라온것을 다운받아 집에서 즐기게 되었고 


가끔 친구들도 불러서 플레이를 했는데 당시로서는 가히 충격적인것이었다.


오락실에 가면 있는 킹오브파이터를 집에서 할 수 있다니!!! 


소문이 퍼지게 되었고 우리집에 놀러오길 바라는 친구들이 많아졌다. 


가끔은 친구집에 에뮬레이터를 깔아주기도 하고.. 


그러다 본것이다! PC통신에서 최초로 닌텐도 64의 에뮬레이터가 나오게 되었다. 

나는 설레는마음으로 엄청 오랜시간에 걸려 에뮬과 룸파일 슈퍼마리오64를 다운받았고 

처음으로 실행해보게 되었다. 


엄청나게 긴 로딩시간... 그리고 나왔던건 시커먼 마리오의 얼굴 실루엣... 그 뒤로 넘어가질 않는다. 


문제는 일단 초기버전이라는점. 

그리고 그래픽카드가 없었다는점이 문제였다. 


그렇게 닌텐도 64 에뮬레이터는 일단 최초버젼만 실행해보고 고이 모셔지게된다.


아무튼그렇게 지내다 중 2로 다시 돌아가면 


컴퓨터를 업그레이드 하게된다. 펜티엄 2 정도였던것 같다. 


이때는 그래픽카드가 대중화 되기 시작하는데 당시 내가 썼던 그래픽카드는 부두3 그래픽카드로 기억한다. 


디아블로 2가 기깔나게 돌아갔었다. 잘 모르겠지만 뭔가 화면이 그래픽카드가 없는것과 다르게 뭔가 멋져졌었다. 


그리고 다시 돌아온 닌텐도 64 


이제는 제대로 실행할 수 있었다. 


그리고 꼭 해보고 싶었던 게임 


젤다의 전설 시간의 오카리나. 


당시에도 게이머즈 등의 게임잡지에서는 패미통 최초의 만점을 받은 게임이라는 극찬이 쏟아지고 있었다. 


동네 게임샾 진열장의모니터에 처음봤던 그 장면이 잊혀지지가 않는다. 


달이 내리는 밤 언덕위를 달려가는 주인공(젤다가 아니고) 링크의 애마 에포나 


말을타고 달리는 3d 그래픽의 인트로는 당시에는 가히 충격적인 그래픽이었다. 


플레이스테이션은 진짜 그냥 폴리곤 덩어리였던것이다. 


그렇게 나는 그토록 하고싶어했던 젤다의 전설을 에뮬레이터로 처음 플레이 해 볼 수 있게 되었다. 


그 과정에서도 문제는 많았다 그래픽플러그인이라던가 여러 설정이 안맞는 문제가 있었고 


중 2 여름방학 초기를 거의 2주동안 매달리며 에뮬레이터 구동에 열을 올렸던 것 같다. 


그렇게 세팅이 어렵게 완성되고 처음으로 젤다의전설을 플레이 하게 된다. 


우선 첫 글은 여기까지... 


언젠간 진짜 젤다에 대한 리뷰를 쓰도록 하겠다. 









'게임' 카테고리의 다른 글

PC통신과 에뮬레이터  (0) 2018.05.02
게임 리뷰 예정 목록 (2018)  (2) 2018.02.08

+ Recent posts