블루아카이브
-
블루아카이브 루트슈터 팬게임 프로젝트(11) - 방어구 추가루트슈터 프로젝트 2024. 1. 9. 22:44
안녕하세요. 이번에는 방어구를 추가해보았습니다. 아무래도 루트슈터 게임에 무기만 있다면 너무 심심하죠. 그래서 한가지 고정된 스탯 하나와 아이템 등급에 따라서 랜덤한 스탯을 제공하는 방어구를 3개 착용할 수 있게 하기로 했습니다. NormalArmor.h UCLASS() class PROJECTBLUELANDS_API ANormalArmor : public AItemBase { GENERATED_BODY() public: ANormalArmor(); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; virtual void PostInitializeComponents(); public: UP..
-
블루아카이브 루트슈터 팬게임 프로젝트(10) - 데미지 표시 & 코드 정비루트슈터 프로젝트 2024. 1. 7. 23:20
안녕하세요. 어제는 이사를 앞두고 엄청 바쁜 하루였기 때문에 포스팅을 하지 못했습니다. 사실 아직 이사가 끝나지 않았지만 개발은 멈추지 않습니다. 이번에는 간단하게 데미지 표시 UI 기능을 구현해보았습니다. 한발당 데미지를 표시해주는 기능은 플레이어의 성장 정도를 한눈에 알 수 있게 해주는 매우 중요한 척도이기 때문에 필수로 있어야 하는 기능입니다. DamageIndicator.h UCLASS() class PROJECTBLUELANDS_API UDamageIndicator : public UUserWidget { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, meta=(BindWidget)) TObjectPtr damageText; UPROPERTY(..
-
블루아카이브 루트슈터 팬게임 프로젝트(9) - 인벤토리 확장루트슈터 프로젝트 2024. 1. 5. 21:22
안녕하세요. 이사가 정말 얼마 남지 않았기 때문에 방에 있는 짐들을 정리하느라 바쁘네요. 딱히 기간을 정해놓고 하는 프로젝트는 아니지만, 개발이 지체되는거 같아 마음이 조급해지는 기분입니다. 조금 더 여유를 갖고 진행해야겠네요. 그래서 오늘은 간단하게 인벤토리를 보완해봤습니다. 저번에 인벤토리를 구현할때 딱 12개의 슬롯만 넣어놨었는데요, 진짜로 인벤토리에 12칸만 달랑 있다면 정말 답답하겠죠. 그래서 이번에는 스크롤 기능을 넣어 인벤토리를 40칸으로 확장해보았습니다. 사실 루트슈터 장르를 하다보면 40칸도 그렇게 넉넉한 편이 아닌데요(디비전2에서는 100칸 정도 줬던것 같습니다.), 일단은 이정도로 넣어보고 더 필요하다 싶으면 60칸, 80칸으로 늘려볼 생각입니다. https://youtu.be/FtD..
-
블루아카이브 루트슈터 팬게임 프로젝트(8) - 적 체력바루트슈터 프로젝트 2024. 1. 4. 19:56
루트슈터 게임을 할 때 적에게 명중하면 적의 바로 머리 위에 적의 체력바와 레벨 등의 대략적인 정보가 보입니다. 이번에는 이것을 구현해보겠습니다. EnemyHPBarWidget.h UCLASS() class PROJECTBLUELANDS_API UEnemyHPBarWidget : public UUserWidget { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, meta=(BindWidget)) TObjectPtr EnemyName; UPROPERTY(BlueprintReadWrite, meta=(BindWidget)) TObjectPtr EnemyLevel; UPROPERTY(BlueprintReadWrite, meta=(BindWidget)) TOb..
-
블루아카이브 루트슈터 팬게임 프로젝트(7) - 사격 매커니즘, 반동루트슈터 프로젝트 2024. 1. 3. 23:16
안녕하세요. 오늘 설명할 기능은 사격 매커니즘입니다. FPS, TPS는 모두 크로스헤어(조준점)가 카메라 정중앙에 있습니다. 하지만 캐릭터가 장비한 총기는 항상 중앙이 아닌 오른쪽이나 왼쪽에 있기 때문에 무작정 총구에 총알이 발사되게 설정한다면 왜곡이 생깁니다. 이렇기 때문에 총알 발사체를 설정하지 않고 레이캐스트 기능을 이용하여 사격 기능을 구현하는 경우가 많습니다. 하지만 저는 어떻게든 발사체로 구현하고 싶었고 한가지 방법을 생각했습니다. 바로 카메라에서 조준점 방향으로 레이캐스트를 쏘고 충돌지점으로 총알을 발사하게 하는 방법입니다. 이렇게 하면 발사체로 사격을 구현하면서 조준점으로 총알이 가도록 만들 수 있습니다. 바로 코드 설명 하겠습니다. Gun.cpp void AGun::Fire(FVector..
-
블루아카이브 루트슈터 팬게임 프로젝트(6) - 아이템 툴팁 기능루트슈터 프로젝트 2024. 1. 2. 14:55
안녕하세요. 어제 신정은 잘 쇠셨는지요? 저는 다음주에 이사를 가서 가기전에 버릴 짐들을 정리하고 야간알바를 하느라 개발 할 시간이 없었습니다. 아마도 이사가 끝나기 전까지는 여유가 많이 없을 것 같네요(핑계) 인벤토리에 있는 아이템에 마우스 커서를 올리면 그 아이템에 대한 스탯이 무엇인지 알려주는 기능이 있습니다. 이를 툴팁기능이라고 하는데요. RPG 게임에, 인벤토리가 있는 게임이라면 무조건 있어야 하는 UI입니다. 툴팁 기능 또한 언리얼에서 따로 제공해주는 기능이 있습니다. 언리얼은 정말 없는게 없네요 ㄷㄷ합니다 이번 기능은 껍데기방(https://husk321.tistory.com/432)님의 구현 코드를 참고하였습니다. 좋은 정보 감사합니다. UCLASS() class PROJECTBLUELAN..
-
블루아카이브 루트슈터 팬게임 프로젝트(5) - 드래그 앤 드롭 기능루트슈터 프로젝트 2024. 1. 1. 00:51
새해가 왔습니다. 여러분들 모두 행복하고 하는일마다 잘되기만 하는 2024년이 됐으면 좋겠습니다. 2023년의 마지막인 어제도 저는 하루종일 언리얼과 블렌더와 씨름하면서(..) 하루를 알차게 보냈습니다. 새해가 와도 저는 한동안 계속 이러고 있을것 같네요. 오늘 소개할 기능은 인벤토리의 드래그 앤 드롭 기능입니다. 인벤토리의 공간 정리라던가, 장비 장착및 해제를 위해서는 필수적인 기능입니다. 이 기능 또한 별빛상영관님의(https://starlight-showcase.tistory.com/41) 글을 참고하여 구현하였습니다. 이건 뭐 제가 혼자서 하는게 없군요(..) UCLASS() class PROJECTBLUELANDS_API UInventoryDragDrop : public UDragDropOper..
-
블루아카이브 루트슈터 팬게임 프로젝트(4) - 인벤토리 기능루트슈터 프로젝트 2023. 12. 31. 00:47
루트슈터 장르는 기본적으로 FPS지만, 디아블로식 아이템 파밍요소가 있기 때문에 인벤토리, 장비 기능이 필수입니다. 그냥 단순 슈터장르면 인벤토리 기능은 필요없는데.. 괜히 루트슈터 장르를 만들어 보겠다고 일거리가 늘어났습니다(?) 인벤토리 기능의 대부분(사실상 전부)은 별빛상영관님 https://starlight-showcase.tistory.com/36 의 게시글을 참고하여 구현하였습니다. 친절한 설명 감사합니다. 플레이어 캐릭터 클래스 헤더파일 먼저 플레이어의 헤더파일에 1편에서 만든 아이템 구조체 배열을 만들어줍니다. 원래 인벤토리 슬롯 개수같은건 이렇게 하드코딩으로 해놓으면 절대 안되는것을 알지만... 구현만 먼저 해놓자는 마인드로 이렇게 설정해놓았습니다. 이걸 또 나중에 바꿔주려고 엄청 삽질할..