Unreal Engine 5

지난번엔 하늘에서 떨어지는 애로우 레인 과4발을 연속적으로 발사하는 스트레이프를 만들어 봤다.실제 데미지까지 입히는 것은 추후 몬스터까지 만든 후 제작하겠다. 이번에는 궁극기인 스나이핑과 골든 호크라는 소환수 스킬을 제작해보겠다.Skill 3 - Sniping스나이핑은 말 그대로 저격하는 스킬로 만들것이다. 물론 실제로 저격하는 것은 아니지만 아주 쎈 한 발의 화살을 날린다. 라는 개념으로 만들 것이다.차지 시간이 길지만 그만큼 큰 데미지와 주변에 스플레시 데미지를 입힐 것이다.Sniping ActorPMSniping 이라는 Actor class를 만들고 이를 BP로 상속받아서 사용한다.결국 이 Sniping도 기본공격이나 스트레이프와 같이 화살을 발사하는 것은 동일하기에 override를 해서 구현한다..
총 4개의 스킬 중 2개의 이펙트를 구현해보자.실제 데미지를 입히기 직전까지만 디자인 해보고 그 뒤로는 몬스터를 만든 뒤 제작하겠다.모든 스킬은 메이플의 궁수 스킬을 참고하였다. 일반 공격을 포함한 모든 스킬은 APMProjectile 클래스를 상속받는다.APMProjectile은 스킬의 데미지를 설정하고 각 클래스(스킬)마다 초기화 하는 가상 함수를 가지고 있어, 우리가 사용하기 편하게 설계한다.PMProjectile#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "PMProjectile.generated.h"UCLASS()class PROJECTM_API APMProjectile : public AActor{ G..
언리얼 자체를 많이 다루지 않아 익숙해지고 다루는데 꽤나 오랜 시간이 걸렸다.(지금도 잘 못다룸)이번에는 공격 애니메이션을 몽타주로 설정하고 이를 효과적으로 관리하는 것과화살 투사체를 발사하는 것을 만들어보자.애니메이션 몽타주애니메이션 몽타주는 여러개의 애니메이션을 효과적으로 한번에 관리 할 수 있다.이를 이용해서 여러개의 공격 모션을 설정하고 입력한 값에 따라 모션을 다르게 재생해보자.공격 모션 설정공격은 총 4가지로 구성되어 있다.마우스 왼쪽 클릭을 했을 경우 NormalAttackQ 버튼을 누를 경우 SkillQE 버튼을 누를 경우 SkillER 버튼을 누를 경우 SkillR그에 맞게 이름을 지어주고 각 모션에 할 것을 구분해서 애니메이션 몽타주를 설정해준다.또한 이는 연속적인 모션이 아니라 하나의..
이번엔 캐릭터의 점프와 애니메이션을 제작해보겠다.점프 같은 경우 ACharacter 클래스에 Jump와 StopJumping이라는 함수로 전부 구현되어 있기 때문에 우리가 코드상에서 키 바인딩만 해주면 바로 사용이 가능하다. 점프 애니메이션이전 포스팅에서 만든 Idle/Jog의 GroundLocomotion을 기본 베이스로 이 상태를 유지하다가 공중에 뜨게 된다면 Jump 모션을 진행하고 바닥에 닿을 경우 Landing을 진행해보자.이렇게 LocoPose로 Save 할 것이다.Locomotion의 State Machine은 다음과 같이 구상한다.Idle/Jog는 GroundLocomotion을 Cahce한 값을 바로 건네주기만 하면 된다.상태를 전이하는 것도 간단하다.공중에 있는지 판단하기만 하면 된다...
강의를 통해 배운 내용을 바탕으로 나만의 게임을 만들어보자.게임의 기획은 마치 엘든링과 같은 소울류로 제작할 계획이다. 기본 공격과 스킬들로 적들을 처지하고 최종 보스를 처치하면 엔딩이 나오는 것으로 마무리 할 계획이다.밸런싱의 경우 그때마다 테스트 해보고 정하도록 하자.(기획자가 없기에...)에셋캐릭터 및 배경 같은 경우는 사실상 에셋을 따로 구해와야만 한다. 이 작업부터 진행하기엔 효율이 많이 떨어지고 모델링 부터 다시 배워야하기 때문이다. 에픽게임즈에서 제공하는 기본 에셋 중 맘에 드는것이 있어 이것을 활용하겠다.https://www.fab.com/ko/listings/7d76ddf0-d9ce-4d00-939e-d72793534d01https://www.fab.com/ko/listings/0fb3c..
행동 트리행동 트리는 인공지능 모델을 설계하는데 많이 사용한다. 우선 순위와 트리 구조를 사용해서 인공지능을 설계하는 기법을 의미한다. 게임에서는 몬스터나 NPC의 행동을 결정하는 AI를 제작하는데 사용한다. 행동트리는 기존에 있던 FSM 모델의 문제를 해결했다.이는 인공지능으로 활용하기에는 여러 상황에 대응하기가 어렵다는것이 일반적이다.그래서 이를 개편해서 사용한 것이 Behavior Tree이다.점이라 한다면.모듈화가 잘 되어있어서 확장이 자유로움 애초에 가지를 가지고서 놀아주는 구조다 보니까,, 좁게할 수도 있고 넓게 할 수도 있음.트리를 기반으로 계층화가 잘 되어있어서, 복잡한 인공지능 모델을 쉽게 설계 할 수 있다.직관적으로 트리를 이용하다보니까, 손쉽게 파악이 가능함.BT에서 제공하는거 적절하..
주요적인 목표데이터 기반의 캐릭터와 기믹 시스템의 제작을 진행한다.엑셀 기반의 데이터 테이블과, ini파일 설정에 대해서 다뤄볼 예정임.게임 데이터를 관리하는 싱글톤 객체를 등록한다엑셀 데이터 및 INI 파일을 활용하여 게임 데이터를 관리한다.액터의 초기화를 위한 지연 생성의 기능을 구현한다. 데이터 관리언리얼 엔진에서는 엑셀파일 csv 형태의 파일을 로드할 수 있게 지원한다.따라서 각종 아이템 정보나 스탯 정보 등을 csv 파일로 관리하고 이를 로드해서 구조체로 관리하는것이 편하다. 먼저 해당 헤더에서는 데이터 애셋과 유사하게, FTableRowBase를 상속받은 구조체를 선언하는 작업이 필요하다.(csv에 존재하는 데이터를 가져오게 하기 위함)액셀의 Name 이라는 컬럼이 들어가야 하는데, 이를 제외..
이번 섹션의 주된 목표는 다음과 같다.레벨에 무한히 스폰하는 기믹을 제작한다.이번 플레이 기믹 = 스폰과 애셋에 관해서 다뤄본다.무한 맵 생성을 위한 기믹 액터의 설계한다애셋 매니저를 활용한 애셋 관리 방법을 학습한다.액터의 스폰과 약참조 포인터의 사용법을 실습한다.스테이지스테이지의 경우 플레이어와 NPC가 1:1로 겨루는 장소이다.스테이지는 4개의 상태를 가지고 있으며 순서대로 진행된다.READY : 플레이어의 입장을 처리한다 ( 입장 대기 중 )FIGHT : 대전을 진행한다 (플레이어와 싸우는 NPC를 소환)REWARD : 대전 진행 후 보상을 받는 단계임 (플레이어가 이겼을 시에 아이템 상자 스폰)NEXT : 다음 스테이지로 이동을 처리한다. (플레이어가 다음으로 이동할 수 있도록 처리)이러한 순서..
아이템을 획득 할 수 있는 박스를 생성하고 어떤 종류의 박스인지에 따라 획득하는 아이템이 다르도록 만들어보자.캐릭터에 다양한 종류의 아이템을 제공하는 시스템을 만들어 본다.이번에 다루는 게임 프레임워크는 기믹의 트리거를 맡게 될 예정.트리거 박스를 활용하여 아이템 상자를 구현한다다양한 종류의 아이템에 대한 개별적인 습득 처리에 대한 구현소프트오브젝트 레퍼런스와 하드 오브젝트 레퍼런스의 차이를 이해한다.아이템 박스아이템이 있다하더라도 충돌을 감지 해야만 습득을 할 수 있기 때문에 아이템 박스를 만들고 트리거를 설정해줘야한다.ABItemBox라고 하는 액터를 생성하고각 요소로 트리거와 static mesh, ParticleSystem을 추가한다.루트 컴포넌트는 트리거로 설정한다.protected: UPROP..
요약공격판정 구현을 위한 물리 트레이스 채널 및 프로필 설정디버그 드로잉 기능을 활용한 충돌 디버깅데미지 프레임웍을 이용한 데미지 전달Delegate와 Lambda함수의 사용Unreal World가 제공하는 3가지 충돌 서비스LineTrace, Sweep, Overlap 3가지 방법으로 World 내 배치된 충동체와 충돌하는지 파악하고 충돌한 Actor 정보를 얻어올 수 있다.LineTrace는 지정한 방향으로 "선"을 투사해 이와 충돌되는 물체가 있는지 확인한다.Sweep은 선이 아닌 어떠한 "도형"을 지정한 방향으로 투사해 물체가 있는지 확인한다.Overlap은 투사는 아니지만 지정한 영역에 큰 범위의 도형을 설정해 해당 Volume 영역과 물체가 충돌하는지 검사한다.공격판정 구현을 위한 물리 트레이..
Mintriever
'Unreal Engine 5' 카테고리의 글 목록