언리얼 엔진 프로젝트에서 정규 구조체는 C++ 코드 내부에서 사용 가능하나, 에디터의 디테일 패널에 노출되지 않고 블루프린트에서도 사용이 불가능함예시contents browser에서 블루프린트 > 구조체 를 선택해 생성가능C++에서 사용 불가능생성 방법범용적으로 사용하
의미runtime시 object 객체의 형태나 타입에 대한 정보를 동적으로 읽어내는 것runtime에 정보를 읽기때문에 compile하는것과 달리 느리다.클래스의 이름만으로 클래스의 정보(필드, 메서드)를 찾거나 새로운 객체를 생성할 수 있다.Unreal에서 refle
게임의 규칙과 승리 조건등을 정의하는 클래스프로젝트를 구성할 때 언리얼 엔진이 기본 GameMode를 생성해줌AGameMode GEngine: 전역에 선언되어 있는 엔진 포인터엔진에서 실행되는 경우가 아닐 시, 값이 유효하지 않을 수 있으니 사용하기 전 GEngine
캐릭터 클래스 추가 : 새로운 c++클래스...를 선택해 새 부모 클래스를 선택함부모 클래스 선택 > Character > 다음 > 이름 : FPSCharacterFPSCharacter 클래스 > FPSCharacter 기반 블루프린트 클래스 생성 > BP_FPSCha
콘텐츠 브라우저 > 우클릭 > 에셋 임포트BP_FPSCharacter 더블클릭 > 블루프린트 에디터 > 컴포넌트 > mesh 컴포넌트 > mesh선택적절한 transform을 설정적용된 메시를 그림자를 통해 볼 수 있음밑을 보려하니 뱃살처럼 메시가 시야를 가림카메라 프
편집 > 프로젝트세팅 > 엔진 > 액션매핑 추가Actor클래스를 부모 클래스로 선택 후 FPSProjectile로 이름을 설정FPSProjectile.hFPSProjectile.cppFPSProjectile.hFPSProjectile.cpp함수 생성 뒤 발사 방향을 설
액터와 다른 오브젝트의 실시간 충돌 처리를 위한 바탕을 이룸충돌 가능한 모든 오브젝트는 오브젝트 유현과 일련의 반응들을 통해 다른 모든 오브젝트 유형과 어떻게 상호작용하는지를 정의함콜리전 이벤트가 발생하면, 그에 관련된 양쪽 오브젝트는 서로 막을지, 겹칠지, 무시할지
콘텐츠 브라우저 > Animation 폴더 생성ainmation import (HeroFPP 스켈레톤으로 import)import 된 animation을 저장Animation Blueprint를 생성한다.부모 클래스로 animInstance를 선택target으로는 He
1. character를 부모클래스로 하는 enemy class를 생성 .h 데미지 콜리전을 위해 box컴포넌트를 생성함 콜리전 발동 함수 OnHit를 생성 #include "Components/BoxComponent.h" #incl
주위 환경의 변화나 이벤트를 감지하기 위함: 변화를 받아들이는 리시버와 같은 존재일반적으로 AI Cntroller에 부착하며, Pawn이나 Character에 부착하기도 함부착된 컨트롤러를 가진 AI는 보는 것과 듣는 것, 데미지 감별, 팀 감별 등등의 지각 능력을 갖
.h.cpp : 생성자.h.cpp : 생성자.cpp : BeginStart().cpp : SetNewRotation()Enemy가 Character를 바라보도록 설정.cpp : OnSensedCharacter가 보이면 그 방향으로 이동보이지 않으면 원래 방향으로 이동.
1. 초기화 BP_Enemy REF의 이름을 가지는 value생성 blueprint animaiton 초기화 : 생성시 한번 실행 Try Get Pawn Owner를 통해 애니메이션이 적용되는 Pawn의 참조를 구함 Cast to BPEnemy를 통해 B
1.Character Damage MonsterShooterCharacter.h : 기본 Pawn MonsterShooterCharacter.cpp : DealDamage 2. Enemy OnHit Enemy.cpp : Character의 DealDamage 함수 실행 3. 발사체 OnHit Enemy의 DealDamage 함수 실행
1. Import 애니메이션은 import하기 위해서 스켈레톤을 지정해야 함. 이때 스켈레톤은 애니메이션을 적용하고자 하는 asset의 스켈레톤으로 지정해주어야 함. 2. Blend Space Anim Graph에서 샘플링할 수 있는 특수 에셋으로, 두 입력값
: 게임플레이 도중 화면 위에 겹쳐놓이는 계기판이나 정보플레이어에게 점수, 생명력, 남은시간 등 게임의 현재 상태를 알리기 위함보통 상호작용 요소가 아님: 메뉴와 기타 상호작용형 요소게임 시작시 표시되는 메인 메뉴나, 플레이어가 게임을 일시정지시킬 때 뜨는 메뉴 등게
UE4 네트워크는 서버/클라이언트 모델을 기준으로 만들어졌다. 모든 중요한 결정을 내리는 역할을 하는 서버가 하나있고, 거기에 접속된 모든 클라이언트가 서버의 월드 최신 상태를 유지할 수 있게끔 지속적으로 업데이트시켜 주는 것이다.UE에서는 네트워크가 아닌 싱글 플레이
시작용 콘텐츠를 포함한 3인칭 프로젝트에서 진행됨모든 클라이언트가 각 플레이어의 체력에 대해 동기환된 정보를 갖도록 리플리케이트 되어야한다.또한, 대미지를 입는 플레이어에게 피드백을 제공해야 한다.RepNotify를 사용하여 RPC에 의존하지 않고 변수에 대한 모든 필
DiscoveryConnectionSynchronisation
State : actor의 위치, 움직임, 생성 유무 등State- State의 update는 tick 단위로 이루어진다.각각의 client가 서로 연결되어 있다.client의 입력 값을 다른 client들에게 브로드캐스트 하여 state를 update한다.모두의 응답
1. AI Asset 1) Behavior Tree (1) Behavior Tree 생성 콘텐츠 브라우저 > Artificial Intelligence > Behavior Tree 클릭 (2) 특징 블루프린트의 또 다른 한 종류라고 생각하면 되지만 로직과 코드가 비
언리얼 엔진에서 캐릭터는 controller의 지배를 받는다. 이를 빙의(Poss)라고 부른다.player character가 만들어지게 되면 player controller가 종속적으로 만들어지게 되고 player character는 player controller에
언리얼에서 액터 사이각을 구하기가 까다롭다. ActorRotation을 사용하면 쉽게 구할 수 있을 거라 생각했지만 범위가 정해져있지 않기 때문에 최소 사이각을 구하기 어렵다.이 게시글에서는 벡터의 내적을 통해 사이각을 구하고 외적을 통해 회전각을 구한다.CenterL
내적을 사용해 왼쪽 오른쪽 판별
1. 기본 용어 머티리얼: 액터나 폰의 겉 표면 머티리얼 인스턴스: 마스터 머티리얼에서 인자만 바꿔 쉽게 수정해 사용가능한 것 PBR(Physically Based Rendering) System HDR(High Dynamic Range): 0~255 수치를 넘어 넓
개발할게 많은데 날이 따뜻해져서 그런지 점심에 라면 하나를 다먹어서 그런지 집중이 안된다. 집중 안된다고 유튜브 들어갔다간 하루가 없어질것 같으니 블로그에 똥글이라도 적어야겠다. 최근에 언리얼로 개발을 많이했는데 Visual intelli가 너무느려서 화딱지가 났다.
프로그램에서 오브젝트를 생성하고 삭제하는 작업은 메모리 사용량이 늘어나는 문제와 성능 저하의 원인이 되기도 한다. 이는 오브젝트 생성이 메모리를 새로 할당하고 리소스를 로드하는 등의 초기화 과정이 필요하고, 오브젝트가 파괴된다면 이후에 발생하는 가비지 컬렉팅으로 인한
1. 포스트 프로세싱(Post-processing) 전체 화면 필터 및 효과를 화면에 표시하기 전 카메라의 이미지 버퍼에 적용하는 프로세스 기존에 렌더링 된 씬에 렌더링 효과를 더하는 작업 일반적으로 씬 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링
Unreal Enigne5에서 등장한 TObjectPtr에 대해 알아보자
GAS를 사용해 게임에 다양한 속성을 추가해보자
Event와 Delegate의 차이점을 알아보자
slate....임마는 뭘까...? 난 widget밖에 모른다구
TSoftObjectPtr을 사용해 비동기로딩을 수행해보자