팬게임
-
블루아카이브 루트슈터 팬게임 프로젝트(26) - 패시브 트리 기능루트슈터 프로젝트 2024. 1. 30. 21:51
안녕하세요. 루터슈터 게임은 RPG 게임이기 때문에 레벨업에 따라 할당할 수 있는 패시브 트리가 있다면 좋을 것이라고 생각하였기 때문에 간단하게 나마 패시브 트리를 구현해 보았습니다. UENUM(BlueprintType) //패시브에 대한 ENUM enum class EPassiveTree : uint8 { EPT_DEFAULT UMETA(DisplayName = "Not Allocated"), EPT_SMALL_HEALTH UMETA(DisplayName = "small Increase Health"), EPT_SMALL_WP_DAMAGE UMETA(DisplayName = "small Increase Weapon Damage"), EPT_SMALL_CRIT_DAMAGE UMETA(DisplayName..
-
블루아카이브 루트슈터 팬게임 프로젝트(25) - 총기의 특수효과 추가루트슈터 프로젝트 2024. 1. 29. 00:05
안녕하세요. 이번에는 기존의 무기들의 상위 등급인 유니크 등급의 무기를 만들어 특수효과가 부여된 총기를 구현해 보도록 하겠습니다. 이것을 구현하기 이전에, C++코드의 구조를 다시 정비하였습니다. 지금까지 제 게임에서 총기류를 담당하는 클래스는 Gun 클래스 하나였습니다. 하지만 각각의 총기에 특수효과가 붙거나, 총기의 종류가 다르다면 하나의 클래스만으로 이 총기류들을 전부 처리해줄 수 없습니다. 따라서 Gun 클래스를 추상클래스, Abstract 클래스로 만들고, 그 하위 클래스에 특수효과가 붙은 총기나 일반 총기류들을 담당하는 클래스를 자식으로 추가하기로 하였습니다. https://ciel45.tistory.com/22 블루아카이브 TPS게임 개발일지 (10) - 사격 기능 구현 준비 작업 + DIP..
-
블루아카이브 루트슈터 팬게임 프로젝트(24) - 무기 사운드 추가루트슈터 프로젝트 2024. 1. 26. 21:31
안녕하세요. 이번에는 무기의 사운드를 추가해보았습니다. 총기류 에셋을 보면 총기 사운드 또한 딸려서 같이 주는 경우가 많습니다. 이러한 사운드 파일을 이용해서 애니메이션에 사운드 노티파이를 이용해 특정 지점에 사운드를 재생시킬 수 있습니다. 특정 애니메이션 구간에서 사운드를 재생시키고 싶다면 노티파이에서 사운드 재생 노티파이를 하나 추가하시면 됩니다. 디테일 패널에서 사운드를 골라주시면 특정 애니메이션 시점에 사운드를 재생시킬 수 있습니다. 저는 재장전 애니메이션에서 2개의 사운드 노티파이를 추가하여 사운드가 재생되도록 하였습니다. 그리고 총기 발사 애니메이션에서 총소리를 추가하기 위해 여기서도 사운드 노티파이를 하나 추가하였습니다. 사실 총기는 종류마다 소리가 다르기 때문에 이곳에서 노티파이를 추가하는..
-
블루아카이브 루트슈터 팬게임 프로젝트(23) - 재장전 & 무기교체 애니메이션루트슈터 프로젝트 2024. 1. 26. 03:35
안녕하세요. 이번에는 재장전 애니메이션과 무기교체 애니메이션을 적용해 보았습니다. 이번에 사용할 기능은 애니메이션 노티파이와 델리게이트, 스테이트입니다. PlayerCharacter.h DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDele_Dynamic); public: UPROPERTY(VisibleAnywhere, BlueprintAssignable, Category = "Event") FDele_Dynamic FDele_StartReload; //재장전 델리게이트 UPROPERTY(VisibleAnywhere, BlueprintAssignable, Category = "Event") FDele_Dynamic FDele_StartSwitch; //무기교체 델리게이트 먼저 캐릭터 클..
-
블루아카이브 루트슈터 팬게임 프로젝트(22) - 메인화면 구현루트슈터 프로젝트 2024. 1. 25. 03:28
안녕하세요. 이번에는 메인화면을 간단하게 구현해보았습니다. 게임을 실행하자마자 바로 게임이 시작되면 위화감을 느낄 수 있으므로 간단하게나마 메인화면을 만들었습니다. https://ansohxxn.github.io/ue4%20lesson%201/ch6-2/ UE4 Chapter 6-2. UI : 메인 메뉴 인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀 언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html ansohxxn.github.io 메인메뉴 기능은 이 포스팅을 참고하여 제작하였습니다. 좋은 포스팅 감사합니다. 적당하게 비어있는 레벨을 하나 만들어 줍니다. 메인화면의 배경이 될 공간입니다. 또한 저는..
-
블루아카이브 루트슈터 팬게임 프로젝트(21) - 게임 저장 시스템루트슈터 프로젝트 2024. 1. 23. 18:50
안녕하세요. 이번에 해볼 것은 플레이어 정보를 세이브 하는 기능 구현입니다. 루트슈터이고 RPG이기 때문에 플레이어의 정보를 저장하고 계속 이어할 수 있도록 해야합니다. 언리얼에서는 기본적으로 세이브 파일을 생성하거나 로드하는 기능을 제공합니다. SaveGame.h UCLASS() class PROJECTBLUELANDS_API UPlayerStateSave : public USaveGame { GENERATED_BODY() public: UPlayerStateSave(); public: UPROPERTY() FString SaveSlotName; UPROPERTY() int32 SaveIndex; UPROPERTY() int32 Level; UPROPERTY() int32 nowExp; UPROPERT..
-
블루아카이브 루트슈터 팬게임 프로젝트(20) - 인벤토리 아이템 판매 시스템루트슈터 프로젝트 2024. 1. 21. 22:52
void APlayerCharacter::OpenInventory() //인벤토리 열기 { APlayerController* con = Cast(Controller); if(con && !isOpenInv && inventoryUI) { inventoryUI->SetVisibility(ESlateVisibility::Visible); con->SetShowMouseCursor(true); con->SetInputMode(FInputModeUIOnly()); isOpenInv = true; //con->SetPause(true); } else if(con && isOpenInv && inventoryUI){ inventoryUI->SetVisibility(ESlateVisibility::Hidden); c..
-
블루아카이브 루트슈터 팬게임 프로젝트(19) - 체력 회복 시스템루트슈터 프로젝트 2024. 1. 21. 01:13
안녕하세요. 이번에는 플레이어의 체력 회복 시스템에 대해 구현해보았습니다. 콜오브듀티와 같은 게임들을 보면 플레이어가 체력을 입은 후 일정시간 데미지를 입지 않으면 체력이 서서히 회복됩니다. 제 게임 또한 자동회복 시스템을 구현해 보기로 하였습니다. 제 게임에서는 플레이어가 3초간 피해를 입지 않았다면 초당 최대 체력의 10%를 회복하도록 해보겠습니다. PlayerCharacter.h public: bool bCanRegen = true; UFUNCTION() void PlayerHPRegen(); 플레이어 클래스에 현재 체력을 리젠할 수 있는지 표시해주는 bool 변수, 그리고 플레이어 체력을 리젠할 수 있게 해주는 함수를 하나 선언해줍니다. 이 함수에 UFUCTION()을 붙여준 이유는 밑에서 서술하..