hljs.initHighlightingOnLoad();

Unreal

Unreal

[6강 숙제] 위치/회전/스케일을 동적으로 변경하는 오브젝트 만들기

새로운 C++ 클래스를 만든다.BeginPlay()에서 액터의 트랜스폼을 임의로 설정한다.Tick()에서 매 프레임마다 트랜스폼을 동적으로 변경한다.특히 Scale이 일정 시간마다 커졌다가 작아지는 효과를 구현한다.이때, DeltaTime을 곱해 프레임에 독립적인 움직임을 구현한다.코드test1.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Test1.generated.h"UCLASS()class PROJECTJS_API ATest1 : public AActor{ GENERATED_BODY() public: ATest1();protected: USceneComponent* SceneRoot; UStaticMe..

Unreal

Unreal에서 Tick의 DeltaTime과 Transform 조정

Transform액터의 위치, 회전, 크기를 제어하는 컴포넌트이다. 위치, 스케일: FVector(x, y, z)로 표현됨.회전(중요!): FRotator(Pitch, Yaw, Roll)로 표현됨.더보기Pitch -> y축으로 회전Yaw -> z축으로 회전Roll -> x축으로 회전Tick게임 프레임 업데이트와 Tick언리얼 엔진은 게임 실행 중 매 프레임마다 여러 작업을 수행한다.특정 액터가 "매 프레임마다" 수행할 로직이 있다면, 언리얼 엔진은 그 액터의 Tick 함수를 매 프레임 호출해준다.렌더링: 화면 그리기물리 연산: 충돌/중력/마찰 등 물리 엔진 처리오브젝트 업데이트: 게임 내 액터들의 상태 갱신Tick 함수 활성화하기액터를 생성할 때 기본적으로 Tick 함수를 사용하려면, 아래와 같이 생성자..

Unreal

Class Default Object(CDO)에 대한 간단한 이해

언리얼 엔진의 Object인 UObject는 Default Object인 기본 세팅으로 초기화된 CDO를 미리 만들어 두고 이를 복사하는 방식으로 다른 Instance를 만든다. 클래스를 예로 들어 설명하겠다.클래스의 정의가 있을 때 인스턴스를 생성하지 않으면 실제론 아무것도 존재하지 않은 것이다.마찬가지로, 언리얼 엔진에선 CDO를 미리 생성해 놓고 이것을 복사하는 방식으로 인스턴스들을 만든다.  위 캡처에서 Item이란 클래스가 있을 때, 이것을 CDO로 미리 만들어 두고, 그것을 다시 복사하여 사용한다.에셋에 Item의 미리보기가 뜨는 것도 클래스의 정의를 이미 CDO를 포함한 인스턴스 형태로 만들었기 때문에 볼 수 있는 것이다. (저 에셋이 CDO라는 소리는 아니다! 저 에셋은 CDO를 포함한 인..

Unreal

언리얼 엔진 Actor의 라이프 사이클

언리얼 엔진에서 Actor는 게임 도중에 언제든지 생성(Spawn)될 수 있고, 필요 없어지면 파괴(Destroy)될 수 있다. 이를 Actor 라이프 사이클이라 부르며, 이 과정을 이해하면 게임 로직을 보다 효율적이고 안정적으로 작성할 수 있다. 1. 액터 라이프 사이클을 알아야 하는 이유1. 초기화 시점 결정생성자(Constructor), PostInitailizeComponents, BeginPlay 등이 각각 언제 호출되는지 알아야 적절한 곳에 코드를 배치할 수 있다.예) 컴포넌트 생성(CreateDefaultSubobject)은 생성자에서, 다른 액터 참조나 월드 접근은 BeginPlay에서 처리. 2. 성능 관리매 프레임마다 호출되는 Tick 함수는 비용이 클 수 있다.따라서 필요한 액터만 T..

Unreal

언리얼에서 컴포넌트란?

컴포넌트는 언리얼 엔진에서 Actor가 어떤 역할을 하거나 특정 속성을 갖도록 만들어주는 부품(파츠) 개념이다.하나의 Actor가 여러 종류의 컴포넌트를 조합하여 다양한 기능을 구현할 수 있다. 예를 들어, StaticMesh + Audio + Collision을 조합하여 충돌 시 소리가 나는 아이템을 만들 수도 있다. 루트 컴포넌트와 Scene Component모든 Actor는 최상위 컴포넌트인 루트 컴포넌트를 가져야 한다. 루트 컴포넌트는 액터의 트랜스폼(위치, 회전, 크기)를 정의하며, 모든 하위 컴포넌트가 이를 기준으로 동작한다.일반적으로 SceneComponent를 루트로 설정하여 액터의 트랜스폼을 관리하고, 그 아래 다양한 컴포넌트를 계층적으로 붙인다. SceneComponentSceneCom..

Unreal

기본 Actor 클래스 코드 구조

언리얼 엔진에서 C++ 클래스를 새로 만들면, 일반적으로 헤더 파일과 구현 파일이 한쌍으로 자동 생성된다.1. 헤더 파일 코드 분석1 - 1. 헤더 파일 상단 코드 #pragma once이 헤더 파일이 여러 번 포함되더라도, 컴파일 시 단 한 번만 처리하도록 해주는 지시어이다.과거에는 #ifndef ~ #define ~ #endif 방식을 사용했지만, 대부분의 최신 C++ 프로젝트에서 #pragma once를 권장한다.#include "CoreMinimal.h"언리얼 엔진에서 자주 사용하는 기본 타입(FString, TArray 등)과 매크로(UE_LOG 등), 각종 유틸 함수들이 정의되어 있다.#include "GameFramework/Actor.h"AActor를 상속받기 위해 필요한 헤더파일이다.#i..

Unreal

Object와 Actor 차이점 정리

1. Object1 - 1. UObjectUObject는 언리얼이 설계한 새로운 시스템의 단위 오브젝트로 언리얼의 모든 객체가 상속하는 베이스 클래스이다. C++ 오브젝트(네이티브 클래스)저수준의 빠른 처리를 위한 기능 구현에 사용한다.접두사 FUObject 오브젝트C++ 오브젝트에 객체지향 설계를 위한 다양한 기능을 추가한 오브젝트이다.콘텐츠 제작에 관련된 복잡한 설계 구현에 사용한다.접두사 U1 - 2. UHT(Unreal Header Tool)UObject를 상속하면 다양한 기능을 제공하는데, 이 기능을 사용하기 위해서는 헤더 파일에서 전처리 단계를 거쳐 필요한 정보를 수집해야 한다. 이러한 전처리 단계는 UHT에서 이루어진다. 언리얼 프로젝트 빌드 시 우선 UHT는 소스 코드를 분석하여 .gene..

Unreal

C++ Actor 클래스 삭제하는 법

작업 중에 사용하지 않게 된 클래스는 삭제해야 할 때가 있다. 단순히 언리얼 에디터 콘텐츠 브라우저에서 삭제만 하는것으로는 완전히 제거되지 않으니(삭제 버튼 조차 없다!), 아래 절차를 따라야 안전하게 삭제할 수 있다.1. Unreal Editor 종료하기2. Visual Studio 솔루션에서 파일 제거 언리얼 에디터를 먼저 종료한 뒤, VS를 열어 Solution Explorer에서 삭제할 클래스를 찾는다.헤더 파일과 cpp 파일을 각각 우클릭해서 삭제해 준다.  그 다음, VS 상단 메뉴 File -> Save All로 저장한다.하지만 이 작업들은 솔루션 (프로젝트 구성 정보)에서만 제거하는 것이므로, 실제 디스크의 파일은 아직 남아 있다. 3. 프로젝트 폴더에서 물리적 파일 삭제 윈도우 탐색기로 ..

(ꐦ •᷄ࡇ•᷅)
'Unreal' 카테고리의 글 목록 (2 Page)