Game/Unreal

· Game/Unreal
MonsterURR은 다양한 몬스터가 존재한다.스테이지가 시작하면 미리 설정한 데이터에 의해 몬스터의 종류, 수, 간격 등의 정보가 초기화된다.해당 웨이브에 스폰된 몬스터가 모두 죽거나 목적지에 도착해 플레이어에게 피해를 입혀 월드에 존재하지 않으면 다음 웨이브가 실행된다.모든 웨이브의 몬스터를 처치하면 해당 스테이지를 클리어한다.     Monster 생성설정된 정보를 통해 GA를 실행하여 몬스터를 생성한다.몬스터를 스폰하면 타이머를 설정해 몬스터끼리의 간격을 설정한다.void UURRGA_SpawnMonster::StartSpawnMonster(){ FActorSpawnParameters params; params.SpawnCollisionHandlingOverride = ESpawnActorColl..
· Game/Unreal
Unit 클래스유닛을 초기에는 SkeletalMesh에 맞춰 애님 인스턴스를 지정하기 위해 분리하여 관리하였다.하지만, UAssetManager를 통해 Asset을 불러와 지정할 수 있기에 통합해도 된다고 생각했다.각 유닛에는 추가적으로 부착되는 SkeletalMeshComponent가 있어 이에 대한 조정이 필요했다.따라서, Rank에 따라 각 부위에 대한 AssetLoad를 요청하고 모든 Asset이 로딩되었다면 Callback을 주어 DeferredSpawn이 완료하게 되었다.UnitMeshHandle = UAssetManager::Get().GetStreamableManager().RequestAsyncLoad(UnitMeshes[UnitMeshIdx], FStreamableDelegate::Cr..
· Game/Unreal
UnitURR은 숫자별로 유닛이 달라진다.예를 들어, 1은 권총을 든 군인이고 2는 라이플을 든 군인이다.각 유닛은 공격력, 사거리, 공격 속도 등 다양한 스탯을 가지고 있으며 숫자가 높을수록 강해지도록 설계하였다.     Unit 생성플레이어는 보유하고 있는 코인을 소모하여 생성할 수 있다.GE를 통해 coin을 소모하며, GA를 통해 유닛을 생성한다.GE에서 coin을 소모할 때, cost라는 메타 어트리뷰트를 사용해 확장성을 열어두었다.또한, GA에서는 확률에 따라 스폰할 유닛의 단계와 위치를 정하고 해당 타일에 Spawn요청을 한다.     Unit 초기화유닛이 생성되면 스탯을 초기화해야 한다.유닛은 각 단계에 따라 스탯이 다르며 GE를 통해 초기화한다.초기화하는 시점은 ASC가 최기화되어야 하기..
· Game/Unreal
Board URR은 4 x 4의 타일을 통해 숫자(유닛)를 나타내며, 사용자 입력에 의해 해당 숫자들이 합쳐지는 형식이다. 숫자를 나타내는 타일 16개가 따로 존재하면 입력에 의해 합쳐지거나 움직이는 등의 동작이 쉽지 않을 것이다. 따라서, 타일들을 하나의 Pawn으로 묶어 관리하고 해당 클래스에서 사용자 입력을 받아 처리할 예정이다. Tile Tile은 유닛과 해당 유닛의 숫자를 나타내는 액터이다. 해당 액터에서 타일의 유닛의 포인터를 관리하여 Spawn, Destory 등을 처리한다. Board의 BeginPlay에서 총 16개의 Tile을 생성하여 이차원 배열을 통해 관리한다. 이차원 배열을 사용한 이유는 네 방향의 이동이 가능한데, 이 작업에서 간편하게 계산하기 위함이다. 또한, 유닛의 단계(1,..
· Game/Unreal
Level URR은 크게 보면 로비가 존재하고 로비에서 여러 스테이지를 골라 플레이할 수 있는 구조이다. 물론, 스테이지는 순차적으로 진행해야 한다. 로비는 크게 어려운 부분이 없으니 게임 로직부터 구현하기 위해 Stage를 우선적으로 구현할 예정이다. Stage Level Design LandScape를 통해 경사로와 언덕을 만들었고 페인팅을 통해 자연스럽게 연출하였다. 또한, 언덕의 경계선이 어색하지 않게 돌로 막아 놓았다. 주변에는 폴리지를 통해 숲 같은 느낌을 주었다. 유닛으로 사용하는 에셋이 군인들이라 풀, 자연 같은 분위기를 사용하였다. 하얀 타일위에 유닛들이 생성되고 타일에는 각 유닛의 단계(1, 2, 4...,1024)를 나타낼 것이다.
· Game/Unreal
URR Defence GAS를 적용한 Defence게임을 만들 예정이다. URR 프로젝트 기간 2024.04.07 프로젝트 인원 1명 UE 버전 UE 5.3 git https://github.com/minhvvan/URR IDE VisualStudio 게임 시스템 URR은 우르르라는 뜻이다. 우르르라는 이름을 지은 이유는 2048게임을 응용하기 때문이다. 2048게임은 1, 2, 4등 2의 제곱수가 적힌 타일을 하나의 방향으로 움직이고, 서로 같은 수가 만나면 합쳐진다. 이러한 원리를 통해 최종적으로 2048을 만들어내는 게임이다. 이런 콘셉트를 이용하여 디펜스게임을 만들면 재밌을 것 같다는 생각을 했다. 하나의 방향으로 모든 타일이 우르르 몰려가기 때문에 URR라고 이름을 지었다. 이 프로젝트의 핵심은..
· Game/Unreal
GAS GAS는 복잡한 기존 시스템을 몇 가지 구성요소로 분리하면서 자유도와 재활용성을 올리는 프레임 워크이다. GAS의 주요 구성요소는 다음과 같다. ASC (AbilitySystemComponent) 액터에 부착해 GAS 시스템을 동작시키는 컴포넌트이다. 컴퓨터로 따지자면 CPU 같은 존재이다. ASC에는 다양한 요소와 함수들이 내장되어 있다. 그중, 자주 사용되는 몇 가지 함수들은 다음과 같다. //ASC의 ActorInfo를 초기화하는 함수 virtual void InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor); //등록되어 있는 AttributeSet을 받아오는 함수 template const T*GetSet() const {..
· Game/Unreal
광역 공격 & Cost & Cooldown GAS에 대한 마지막 포스팅이다. 지금까지 언급한 GAS 클래스들을 이용하여 광역 공격 스킬을 구현하고 해당 스킬을 사용하는데 필요한 코스트와 해당 스킬에 쿨다운을 걸 수 있는 방법을 구현할 것이다. 기본적인 흐름은 다음과 같다. 캐릭터가 무기를 획득하면 스킬을 사용할 수 있는 GA를 부여한다. 마우스 우클릭 입력을 추가하고 해당 입력이 들어오면 앞서 부여했던 스킬 GA를 실행한다. GA에서는 스킬 애니메이션을 실행할 AT를 생성한 뒤 실행 요청을 한다. Montage를 통해 애니메이션이 실행되면 Event와 태그를 통해 공격 판정 GA를 실행한다. 공격 판정 GA는 스킬에 적중한 액터를 판별할 AT를 생성한 뒤 실행 요청을 한다. 판정 AT에서는 TA를 만들어..
· Game/Unreal
GameplayCue GameplayCue를 이용하여 VFX를 적용하는 방법에 대해 알아보자. GameplayCue(GC)는 시각 이펙트나 사운드 같은 게임 로직과는 관련이 없는 부가적인 기능을 담당한다. GC에는 두 가지 종류가 있다. 스태틱 게임플레이 큐: 일시적으로 발생하는 특수효과에 사용, Excute 이벤트 발동 액터 게임플레이 큐: 일정 기간동안 발생하는 특수효과에 사용, Add/Remove 이벤트 발동 C++로도 구현할 수 있지만 BP로 구현하는 것이 생산적이다. 또한, GE에서 GC와 연동할 수 있도록 기능을 제공하고 있다. 다른 GAS객체들과는 다르게 GC는 GameplayCueManager가 관리한다. 부가적인 기능이라 그런 것 같다. 또한, GC는 GameplayTag를 통해 간단하게..
· Game/Unreal
UI연동 이전 포스팅에서 GE를 통해 Attribute에 영향을 주는 것까지 구현하였다. 이번 포스팅에서는 Attribute가 GE에 의해 변경되면 UI가 업데이트되도록 구현해 보자. 그러기 위해서는 Helath값을 나타내는 UserWidget을 생성하고 이를 캐릭터에 붙일 수 있게 WidgetComponent를 제작하여 진행할 것이다. UserWidget에서는 ASC로부터 Attribute가 변경될 때 Delegate를 받아 업데이트할 수 있게 구현할 예정이다. UserWidget & WidgetComponent 제작 캐릭터에 HpBar를 붙이기 위해 WidgetComponent가 필요하다. UserWidet에서는 Attribute가 변경될 때마다 업데이트되어야 하기 때문에 캐릭터의 ASC가 있어야 한..
hvv_an
'Game/Unreal' 카테고리의 글 목록