일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 게임 개발
- 프로세스
- cpp개발
- 자료구조
- 포인터
- C언어
- BehaviorTree
- 복사대입연산자
- 언리얼엔진5
- CPP
- Vector
- 언리얼엔진
- 언리얼
- AI
- 데이터구조
- 복사생성자
- 게임개발
- Unreal Engine5
- Unreal
- 게임프로그래밍패턴
- 디자인패턴
- C++
- 배열
- 언리얼 엔진5
- 스마트포인터
- effectivec++
- UE5
- 프로그래밍
- 언리얼5
- Unreal Engine
- Today
- Total
목록Unreal Engine5 (14)
리얼 개발

게임에선 많은 데이터들이 사용된다. 이러한 데이터를 저장하고 정리하는 방법들은 다양하다. 언리얼은 많은 데이터 저장 방법을 제공하며 대표적으로 데이터 애셋과 데이터 테이블이 있다.여기선 데이터 테이블을 소개하고 사용법을 간단히 알아보고자 한다. 데이터 테이블 (Data Table)데이터 테이블은 FTableRowBase 구조체를 기반으로 CSV, JSON 같은 형식의 데이터 파일을 가져와서 다룰 수 있는 방식이다. 특징은 다음과 같다.FTableRowBase를 상속받은 구조체를 사용하여 데이터의 형식을 정의함.엑셀, CSV, JSON과 호환 가능하여 대량의 데이터를 쉽게 관리할 수 있음.게임 플레이 도중 데이터를 변경할 수 없음 (즉, 게임 시작 전에 데이터가 고정됨).고정된 대량의 데이터 관리에 적합 ..

언리얼의 AI 시스템은 다음과 같은 기능들이 있다. Perception - EQS - Behavior Tree BehaviorTree : 실행할 로직을 결정Environment Query System : 환경 정보를 구함AI Perception System : 자극 소스(Stimuli Source) 를 수집AI에게 명령을 내리는 과정을 나타낸 사진이다. PerceptionPerception은 "지각" 이란 뜻을 가진 단어로, AI가 시야, 대미지, 소리 등의 감각을 가질 수 있게 만들어주는 기능 중 하나다. 자극 소스가 등록되면 퍼셉션 업데이트 시(On Perception Updated) 또는 타깃이 선택된 경우 타깃 퍼셉션 업데이트 시(On Target Perception Updated) 이벤트를 호..

상황에 대응하는 프로시저럴 애니메이션 제작하기 | 언리얼 서밋 2021https://www.youtube.com/watch?v=nxzfJcwyj1Y&t=856s 차례모션 워핑공격 스킬 구현컨트롤 릭과 풀 바디 IK풀 바디 IK 세팅사다리 애니메이션 구현모션 워핑과 풀 바디 IK는 아직 얼리엑세스 단계 - 영상 업로드 기준 모션 워핑캐릭터의 루트 모션을 동적으로 타깃에 정렬캐릭터를 원하는 타이밍 구간에 원하는 위치, 원하는 방향으로 캐릭터를 이동시켜주는 기능루트 모션이라는 애니메이션을 보간해서 캐릭터를 이동시키는 방식 루트 모션캐릭터의 최상위 노드의 애니메이션애니메이션 파일의 루트 움직임을 캐릭터 무브먼트의 움직임으로 전환캐릭터가 밀리는 현상을 방지하려면 디딤 발이 움직이지 않을 때, 루트도 움직이지 않..

Unreal Build System 은 언리얼 엔진 빌드 프로세스를 자동화시키는 툴 모음을 말한다. 일반적인 수준에서 Unreal Build Tool과 Unreal Header Tool 은 언리얼 빌드 시스템을 지원한다. Unreal Build Tool (UBT)UBT는 언리얼 프로젝트 C++ 소스들의 빌드 과정을 총괄하는 프로그램이다. 바이너리 파일 위치는(언리얼 버전)\\Engine\\Binaries\\DotNET\\UnrealBuildTool\\UnrealBuildTool.exe다음과 같으며 언리얼 엔진을 빌드할 때 Unreal Build Tool도 C# 컴파일러를 이용해서 같이 빌드된다. Unreal Build Tool 동작 방식언리얼 기본 C++ 프로젝트를 생성하면 다음 3개의 C# 파일이 프..

GTA5 무기 선택 창처럼 무기를 교체하는 시스템을 만들어보자. 무기 클래스 제작바꿀 무기를 먼저 제작해주기로 했다. WeaponBase 부모 클래스를 만들고 Sword, Bow, Staff 클래스들이 WeaponBase를 상속받도록 설계했다. 업캐스팅을 통해 관리하기 쉽고 공통된 코드를 줄이고자 함이다. UI 클래스 제작UserWidget 클래스를 상속받아 제작했다. Sword, Bow, Staff 가 적힌 버튼 3개를 만들고 버튼 클릭시 해당하는 무기로 교체할 수 있도록 해보자.#include "UI/WeaponChoiceUI.h"#include "Components/Button.h"#include "Player/CPlayerController.h"#include "Interface/TakeW..

FVectorFVector 는 언리얼 엔진의 Vector 단위인 UE::Math::TVector 를 대신하는 매크로이다. 이는 MathFwd.h 파일에 선언되어 있다. 실질적인 기능들이 정의되어 있는 Vector.h 파일을 살펴보자.templatestruct TVectorTVector는 템플릿 구조체로 선언되어 있다. 우리가 엔진에서 사용하는 FVector는 TVector 구조체의 double형만을 나타내는 구조체이다. /** A zero vector (0,0,0) */CORE_API static const TVector ZeroVector;/** One vector (1,1,1) */CORE_API static const TVector OneVector;/** Unreal up vector (0,0,..
언리얼 엔진의 RInterpTo, VInterpTo, FInterpTo와 같은 선형 보간 함수들을 지원한다. 여기서 보간이란보간(Interpolation)은 인접한 데이터 점에 적합한 함수 조각을 맞추어 데이터의 중간 값을 찾는 프로세스이다. 이런 보간 함수들을 사용하기 위해 보통 Tick 함수 내에서 사용한다. 반드시 Tick 함수 내에서 사용해야 하는 것은 아니지만, 이들 함수의 특성상, 프레임별로 값을 업데이트하여 부드러운 애니메이션이나 이동을 구현하기 위해 주로 Tick 함수 내에서 사용된다. InterpTo 함수들은 보간(interpolation)을 통해 값이 점진적으로 변화하도록 설계되었다. 이 과정에서 DeltaTime(프레임 간의 시간)을 사용하여 현재 위치 또는 값을 목표 값으로 천천히 ..

액터의 특성 컴포넌트를 조작하는 섹터 · 액터게임은 수많은 오브젝트로 구성된다. 플레이어가 직접 조작하는 캐릭터, 상대하는 몬스터, 배치된 구조물, 벽, 바닥, 획득할 수 있는 아이템 등 모든 요소들이 고유의 특징을 가지고 있다. 이러한 게임에 배치할 수 있는 모든 오브젝트를 언리얼 엔진에선 '액터'라고 하며, 단어 그대로 게임 월드의 특정 공간에서 자신에게 주어진 역할을 수행하는 요소이다.이러한 액터의 주요 기능은 크게 세 가지로 나눌 수 있다.시각적 기능 : 플레이어에게 어떻게 보여질 것인가?물리적 기능 : 액터의 이동과 액터들 간의 상호 동작을 어떻게 할 것인가?움직임 : 액터가 어떤 움직임을 가질 것인가?모든 액터가 위 세 가지 기능 전체를 적극적으로 활용하는 것은 아니다. 구조물이나 맵 자체를 ..

전 포스팅에서 AI 적을 만드는 것에 대한 간단한 이야기를 했는데, 이번에는 이를 바탕으로 몬스터의 공격과 스킬 등을 구현해보겠다. BT 클래스Behavior Tree 클래스마다 구현해야 하는 가상 함수들이 있다. UBTTaskclass UBTTaskNode{ GENERATED_BODY()protected: virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;}; UBTServiceclass UBTService{ GENERATED_BODY()protected: virtual void TickNode(UBehaviorTreeComponent& OwnerComp, uint8*..

게임에는 여러 종류의 AI들이 등장한다. 롤의 봇, RPG 장르의 몬스터들 등등나는 파크라이 시리즈를 즐겨했는데, 그때 당시에는 적 AI들이 멍청해서 왜 이렇게밖에 못 만들지라는 생각을 하기도 했는데 막상 내가 해보니 쉽지않다;;; Behavior Tree 개념언리얼 엔진에서는 AI 적을 만들때 Behavior Tree (행동트리)라는 기능을 제공한다. 이를 알아보자.먼저 공식문서에 대한 설명이다.- Behavior Tree 는 본질적으로 AI의 프로세서로서, 각종 결정을 내리고 그 결과를 바탕으로 다양한 분기를 실행할 수 있다.- Blackboard 에셋은 AI의 두뇌로 생각할 수 있으며, Behavior 트리가 결정을 내리는데 사용하는 키(Key) 값을 저장한다. 이 두개는 언리얼 엔진 에디터의 ..