본문 바로가기

분류 전체보기

(842)
Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-5 Ammo WidgetAmmo에 대한 위젯도 만들어주자. 만들고 나서 크기는 Custom으로 설정해줄 것이다. 이제 Overlay와 hoirzontal Box/vertical box 등을 이용해 위젯을 꾸며주자.배경용 이미지를 하나 맨 위에 설정했고, 캔버스 패널을 통해 아이콘 이미지들을 앵커를 이용한 정렬을 해주었다.다음 강의에 이어서 Ammo Text Box에 대해 위젯을 마저 꾸며주게 된다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-4 Pickup Ammo Function 이제 탄약을 습득하는 기능도 구현하자.먼저 Ammo 클래스 헤더에 AmmoType 헤더를 추가해줄 것이다. 그리고 해당 타입에 대한 변수와 Getter() 함수를 작성해주자. 다음으로 Item 클래스의 ItemCount에 대해서도 Getter() 함수를 작성해주자. 이제 ShooterCharacter 클래스에서 탄약을 줍는 기능을 구현해줄 것이다. 줍는 것에 대한 함수는 GetPickUpItem 함수가 존재한다.해당 함수를 통해 Ammo가 존재한다면 위 PickupAmmo 함수를 호출시킬 것이다. 이제 메인인 PickupAmmo() 함수다.현재 Ammo에 대한 타입이 AmmoMap에 있는지 체크하고, 이에 대한 Count을 체크할 것이다.해당 탄약 개수를 기존 탄약개..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-3 Overriding SetItemProperties일단 오버랩 이벤트를 위해 Sphere Radius를 조정하고 이를 보이도록 설정해주자. 현재 컴파일하고 E키를 눌러 아이템을 픽업하면 전과 달리 제대로 보간 작업이 이루어지지 않는다.이는 SetItemProperties 함수에서 ItemMesh에 대해서 설정을 해줬는데, 우리는 AmmoMesh를 다루기에 발생하는 문제이다.따라서 해당 함수를 오버라이드 하여 재정의해줄 필요가 있다. Super를 통해 기존 기능도 활성화를 해주고, 기존 함수 내용을 전부 복사해오자.그리고 ItemMesh 부분을 전부 AmmoMesh로 바꿔주고 나머지 내용은 Super를 통해 작동하므로 전부 삭제해주자. 이제 컴파일 하면 다시 정상적으로 보간이 작동한다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-2 Ammo ClassItem 클래스를 기반으로 Ammo C++ 클래스를 생성해주자 생성자랑 필요한 기본 StaticMeshComponent와 해당 Mesh에 대한 getter() 함수도 생성해주자. 생성자에서 초기화 및 루트로 설정해주자. 이제 해당 C++ 클래스를 기반으로 블루프린트 클래스도 생성해주자. Collision Box와 Area Sphere 범위를 적절히 조정해주자. 이제 Tick() 함수와 BeginPlay() 함수도 생성해주자. 그리고 생성자에서 CollisionBox와 PickupWidget, 마지막으로 AreaSphere를 루트에 붙여줄 것이다.해당 값들은 Item 클래스에 있는 값들을 가져오므로 Getter() 함수를 사용해 호출한다. 컴파일 해보면 다음과 같이 추가된 모습을 볼 수 ..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 9-1 Ammo Assets이제 레벨에 배치할 탄약 에셋을 다운로드해주자.해당 강의에서 다운한 에셋은 현재 내 언리얼 프로젝트 버전과 일치하지 않아 다른 에셋을 임의로 다운로드하였다.탄약은 아니지만 공구의 메테리얼을 사용하기 위해 해당 에셋을 선택했다. 그리고 Ammo 에셋은 강의 깃허브를 통해 다운로드하였다.해당 탄약들은 메테리얼이 없는 상태이기에 메테리얼은 직전에 다운받은 에셋의 메테리얼로 적절하게 적용시켜줄 것이다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-22 Reconciling Aiming and Reloading이번에는 Aiming과 관련된 내용들을 다소 수정해줄 것이다.현재 총알을 쏘고 장전하면 재장전 애니메이션이 제대로 나오지만, 이 상태에서 다시 한번 총을 쏘고 재장전을 하면 재장전 애니메이션이 100퍼센트 동작하지 않는 모습이 나타난다.따라서 조준하고 재장전하는 경우 재장전이 완료될 때까지 조준을 중지해주자. 먼저 Aim과 Aim 멈춤에 대한 함수를 만들어주자. 그리고 Aim 버튼 눌림 유무에 대한 변수도 필요하다. AimingButtonPressed/Released 의 내용을 해당 함수로 옮겨주자. 그리고 AimingButtonPressed/Released 함수에 Aim()/StopAiming() 함수들을 호출해 줄 것이다.또한 bAimingBu..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-21 Aim Walking현재 Aim하고 이동을 하면 총기가 굉장히 흔들린다.이를 고치기 위해 다운받았던 애니메이션 에셋을 사용하게 된다.따라서 해당 강의 또한 시청만하고 실습은 생략한다. 간단히 내용을 요약하면 에임 시 안정된 움직임을 가진 애니메이션들로 구성된 BlendSpace를 만들고 할당해주고,에임 시 이동 속도 또한 수정해주는 내용이다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 8-20 Tweaking Parameters새로운 내용으로 넘어가기 전에 몇 가지 값들을 수정해줄 것이다.우선 현재 에임 조준시 에임의 위치가 낮아보여서 캐릭터의 위치를 더 뒤에서 보도록 카메라 값을 조정할 것이다. 그리고 FOV 값 또한 언리얼에서 편집하기 위해 EditAnywhere을 추가해주자. 이 상태에서 컴파일을 해보면 에임 위치가 조정되어 보이고, 줌 했을 시 더 확대되는 모습을 나타낸다.또한 마우스 회전 속도도 추가로 조절해주었다. 마지막으로 AimingPose를 수정해줄 것이다.현재 총기가 다소 기울어져 보여서 해당 애니메이션을 통해 총기 위치를 회전시켜줄 것이다.기존 애니메이션을 복사해서 사용하자. 이제 수정된 애니메이션을 할당해주자.