4월, 2019의 게시물 표시

Unreal engine 4 게임개발, Sword RPG, 아이템과 인벤토리 - 3

이미지
아이템과 인벤토리 - 3 저번 포스트까지 최소한의 인벤토리 기능을 구현하는 블루프린트를 만들었습니다. 이제 위젯으로 만들어야하는데 동영상에서는 인벤토리 슬롯 위젯을 먼저 만들고 인벤토리 위젯을 만듭니다.  같은 순서로 이번 포스트에서는 인벤토리 슬롯 위젯을 만들어보겠습니다.  https://www.youtube.com/watch?v=8Osr1UsuEvA&list=PLmKKTERcjTPKEPl0nk48Tpmj-iWmzqo_Q&index=6 보고 따라하는 동영상의 링크입니다. Widgets 폴더에 이름이 InventorySlot 인 블루프린트 위젯을 만들어줍니다. 오른쪽 위 그래프 레이아웃을 Desired on Screen으로 설정하고 위젯에 Size Box를 끌어다 놓은 후 너비와 높이를 64로 합니다. Desired on Screen은 위젯들이 게임 화면에 어떤 크기로 나타나는지 보여줍니다. Size Box는 원하는 크기로 조정 가능한 위젯으로 인벤토리 슬롯의 틀을 만들기 위해 가져다놓았습니다. Size Box안에 Canvas Panel을 놓고 그 안에 Button을 놓습니다. Button은 가득 찬 앵커로 설정하고 오프셋을 모두 0으로 해서 Size Box를 가득 채웁니다. 이름을 SlotButton으로 바꾸고 눌렀을 때나 커서를 갖다 댈 때 색깔을 다르게 합니다. Image를 SlotButton 안에다 놓고 이름을 ItemIcon으로 합니다. 설정을 해서 슬롯을 가득 채워주고 Visibility는 Hidden으로 합니다. 슬롯에 아이템이 있어야만 아이템 아이콘이 보이는 설정을 나중에 할겁니다. Text를 SlotButton 안에다 놓습니다. 'Can be Stacked?'가 True인 아이템의 수량을 표시하기 위해 만들었습니다. 앵커는 오른쪽 아래에 놓고 위치를 조정하고 아이템 아이콘의 앞에 있어야하므로 ZOrder를 1로 해줍니...

Unreal engine 4 게임개발, Sword RPG, 아이템과 인벤토리 - 2

이미지
아이템과 인벤토리 - 2 저번에는 'BP_Inventory'라는 액터를 생성한 후 그 안에서 함수를 만들고 있었습니다. 동영상 튜토리얼을 보고 계속 만들어보겠습니다. https://www.youtube.com/watch?v=gFbmbejZ38M&list=PLmKKTERcjTPKEPl0nk48Tpmj-iWmzqo_Q&index=4 https://www.youtube.com/watch?v=_GDsLKioJOQ&list=PLmKKTERcjTPKEPl0nk48Tpmj-iWmzqo_Q&index=5 함수 'Add item'을 추가하고 첫번째 사진과 같이 구성합니다. 입력과 출력은 두번째 사진과 같이 구성합니다. 인벤토리에 추가한 아이템의 클래스와 양을 입력받고 성공여부와 나머지 양을 출력합니다. Add Item의 시작부분입니다. 참조를 쉽게 할 수 있도록 Local Class와 Local Amount를 만들고 입력과 연결해줍니다. 그 후 분해를 통해 'Can be Stacked?'로 분기점을 만들어줍니다. 여기서 'Can be Stacked?'는 말 그대로 아이템이 쌓일 수 있는지 물어보는 것이고 아이템을 설정할 때 체력 물약은 True, 지도와 마법의 반지는 False로 했습니다. 'Can be Stacked'가 False인, 쌓일 수 없는 아이템을 인벤토리에 더하는 블루프린트입니다. 우선 'Search Empty Slot'과 Branch를 놓아 분기를 만듭니다. 1. False일 경우 빈 슬롯을 찾는 데 실패했으므로 Local Amount를 모두 Rest로 넣고 Success?를 False로 합니다. 2. True일 경우 빈 슬롯을 찾았으니 아이템을 넣어야합니다. 'Set Array Elem'을 생성합니다. 이것은 배열과 인덱스가 주어지면 해당 배열 요소에 아이템...

Unreal engine 4 게임개발, Sword RPG, 아이템과 인벤토리 - 1

이미지
아이템과 인벤토리 - 1 안녕하세요..이제 아이템과 인벤토리를 만들어 볼 텐데요... 어떻게 만드는지 잘 모르기 때문에 일단 아래 링크로 볼 수 있는 동영상을 무작정 따라해보려 합니다. 이번 포스트에서는 초기 설정을 하고 인벤토리 기능을 구현하는 블루프린트 함수를 따라 만들어보겠습니다. https://www.youtube.com/watch?v=OwKF1WcWJ10&list=PLmKKTERcjTPKEPl0nk48Tpmj-iWmzqo_Q&index=3 https://www.youtube.com/watch?v=gFbmbejZ38M&list=PLmKKTERcjTPKEPl0nk48Tpmj-iWmzqo_Q&index=4 Inventory 폴더를 만들고 Blueprints, DragAndDrop, Textures, Widgets 폴더를 만듭니다. 각각의 이름에 맞는 기능을 담아놓기 위한 폴더입니다. Textures 폴더에 ItemIcons 폴더를 만듭니다. 그리고 해당 튜토리얼 영상 아래 정보를 통해 얻은 텍스처 중 Inventory Button을 사진과 같이 놓습니다. 인벤토리의 버튼이 될 텍스처입니다. ItemIcons에는 Icon_Map, Icon_Potion, Icon_Ring을 놓습니다. 아이템들의 아이콘이 될 텍스처입니다. Inventory Button 텍스처를 클릭해 들어가 설정을 바꿉니다. Compression Settings(압축 설정)을 UserInterface2d(RGBA)로, LOD의 Texture Group을 UI로 설정했습니다. 인벤토리에 쓰이는 텍스처인 걸 고려한 세세한 설정인 듯 합니다. ItemIcons에 있는 텍스처들을 한꺼번에 선택 후 프로퍼티 매트릭스로 편집해줍니다. 마찬가지로 Compression Settings(압축 설정)을 UserInterface2d(RGBA)로, LOD의 Texture Group을 UI...