본문 바로가기

Unreal/Udemy 강의

(308)
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-6 Add Widget to Weapon만든 위젯을 무기에 붙여주자.이를 위해 VScode로 돌아가서 생성자에서 초기화 작업을 해주자. 그리고 BP_BaseWeapon 클래스로 돌아가서 값을 설정해주자.위젯의 경우 월드 화면이 아닌 스크린 화면이기에 Space 값을 Screen으로 변경해주자.위젯 클래스를 우리가 만든 걸로 할당해주고, 사이즈도 조절해주자. 이제 실행해보면 위젯이 총과 함께 보이게 된다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-5 Finishing the Pickup Widget저번에 이어서 우측 빈 공간도 채워주자.먼저 Vertical Box 2개를 생성하자.이를 상단 하단으로 나눠 사용할 것이다. 각각 size fill을 선택하고 0.45, 0.55 로 할당해주자. 이어서 각 Vertical Box에 Overlay를 할당하고, 이어서 배경용 이미지를 할당해주자. 정렬을 새롭게 해주고, 각각 색을 할당해주자. 우측 상단엔 추가적으로 텍스트를 추가해주고,우측 하단에는 Item Info용 Horizontal Box를 추가해주자.그리고 이어서 Icon Box, Amount Box, Rarity Box를 Horizontal Box로 추가해주었다. Ammo Icon의 경우도 Icon Box 아래에 추가해주는데,앵커 기능 활용을 위해 캔버..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-4 PickupWidget Blueprint필드에 있는 총기가 어떤 아이템인지 알려줄 Pickup에 대한 Widget을 만들어주자.먼저 기존 Item 클래스에 위젯에 대한 변수를 선언해주자. 그리고 위젯을 사용하기 위해서는 VScode의 해당 프로젝트의 build.cs 파일에 아래와 같이 UMG 항목을 작성해주자.해당 내용을 작성해야 UMG와 관련된 함수들을 다룰 수 있게 된다.적어주는 것은 VScode에 UMG와 관련된 내용을 사용하겠다고 알려주는 행위라고 보면 된다. 다음으로 위젯 블루프린트를 만들어주자. 이제 해당 위젯 블루프린트에서 여러개를 겹칠 예정이므로 우선 Overlay를 할당해주자. Overlay를 배치하면 사각형 표시가 보이는데, Padding 값 상하단에 5씩 줘서 여백 간격을 만들어주자...
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-3 UMG Intro Lesson필드에서 총을 얻는 것과 동시에, 필드에 있는 총이 어떤 총인지 대략적인 정보를 띄우기 위한 작업을 해주자.필드에 총과 함께 위젯으로 간단한 정보를 같이 띄우는 것이 목표이다.이번 강의에서는 이를 위해 관련된 내용을 간단하게 알아보는 시간을 가진다. 우선 총기 정보에 대한 위젯이 필요하다.총기 이름이나, 등급, 레어도 등을 나타낼 것이다. 그리고 캔버스 패널이 필요하다.캔버스 패널을 통해 총기의 위치를 나타내줄 것이다. 오버레이 기능 또한 사용해줄 것이다.기존 위젯과 겹쳐 가장 탑부분에는 총기가 위치할 것이다. Horizontal / Vertical Box을 통해 원하는 방식으로 정렬도 해줄 것이다. 텍스트와 이미지를 같이 가진 위젯 또한 사용이 가능하다. 이러한 내용들을 계..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-2 The Weapon Class기존 item 클래스를 기반으로하여 Weapon 클래스를 만들어주자. 그리고 해당 클래스를 기반으로 블루프린트 클래스도 생성해주자. 그리고 우리는 기존 스켈레톤 메시에서 총기 부분만 다뤄야 한다.이를 위해 해당 강의에서 2가지 방법을 다루었는데 먼저 따로 총기만 있는 에셋을 다운하여 임포트한 부분이다. 그리고 해당 총기의 Material을 설정해주자.그러면 기존의 우리가 알던 총기의 모습이 나타난다. 다음으로는 기존 스켈레톤 메시에서 총기를 제외한 나머지를 전부 감추는 것이다.이를 위해 기존 Belica 스켈레톤 메시를 복사하여 사용하자. 그리고 총기를 제외한 나머지 부분을 감추기 위해서는 불투명한 특징을 가진 Material이 필요하다.이 Material을 직접 생성하여 할..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 5-1 The Item Class지금은 총기가 1개이지만, 여러 총기를 다뤄보고 싶다.이를 위한 기반작업으로 Item Class를 생성해주자. 해당 총기는 필드에서 주워서 습득할 수 있게 하고 싶다.이를 위해서는 총기에 대해 충돌 이벤트가 가능해야 한다.이를 위한 Collision 작업을 해주자. 그리고 총기의 경우 애니메이션이나 복잡한 구조를 가지고 있어서 SkeletalMeshComponent로 다룬다.해당 변수 또한 선언해주자. 이를 생성자로 초기화 해주자.그리고 ItemMesh를 루트 컴포넌트로 만들고, 콜리즌 또한 붙여주는 작업을 해주자.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-13 Jumping Animations기존에 점프 애니메이션이 없어서 이번에 추가해주도록 하자.먼저 이를 위한 스테이트 머신을 생성해주자. 그리고 아래와 같이 구성해주자.움직임 없음/걷는 중 -> 점프 -> 착지 모션이다. 이어서 규칙을 정해주고 Duration 값도 더 짧게 수정해주었다.   Jump_Land -> Idle/Jogs 에는 2가지 조건을 걸었다.하나는 자연스럽게 넘어가도록 옵션을 걸었고, 나머지 하나는 In Air 여부이다.In Air 여부가 중요한 것이 Idle/Jogs -> Jumps로 넘어가는 애니메이션 순서를 확실하게 체크하기 위해 사용된다.착지 도중에도 여전히 In Air 상태인데, Idle/Jogs로 확실히 넘어가지 않고 Jumps로 넘어가는 사태가 발생할 수 있다.이러면 애니메이션..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 4-12 Automatic Fire지금은 사격을 하면 단발로만 발사된다.이번에는 사격을 누르고 있으면 계속해서 사격이 유지되도록 수정해보자.먼저 사격 버튼 눌림 여부, 사격해야 하는가에 대한 여부, 자동 사격간 딜레이, 자동 사격에 대한 타이머에 대한 변수를 선언해주었다. 그리고 생성자에서 초기화 해주자. 필요한 함수들도 선언해주자.사격 버튼 눌렀을 때와 아닐 때에 대한 함수 및 타이머 세팅에 대한 함수,마지막으로 자동 발사 리셋에 대한 함수가 필요하다. 사격 버튼 눌렀을 때와 아닐 때에 대한 함수는 바인드 액션과 매핑해주자.기존에 Fireweapon() 함수를 FireButtonPressed() 함수로 대체하게 된다. 이제 각 함수들을 채워주자.먼저 FireButtonPressed() 함수는 버튼이 눌린 것을 ..