Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

공부용 이모저모

UE4 - 프로그래밍 퀵스타트 본문

UE4 - C++

UE4 - 프로그래밍 퀵스타트

불타는버스 2021. 7. 21. 14:42

https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/ProgrammingWithCPP/CPPProgrammingQuickStart/

 

프로그래밍 퀵스타트

첫 코드 프로젝트를 만들고, C++ 클래스를 새로 추가해 봅니다.

docs.unrealengine.com

언리얼 도큐먼트에 있는 예제를 따라해보기로 했다.

언리얼 엔진 4.26.2버전으로 시작.

자세하게 써있어서 굳이 일일히 설명은 안하고 유의사항만 적는다.

 

C++ 코드로 생성, 프로젝트 생성시 한글 경로에 유의! 문제가 생긴다.

	FVector NewLocation = GetActorLocation();
	float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
	NewLocation.Z += DeltaHeight * 20.0f;       //Scale our height by a factor of 20
	RunningTime += DeltaTime;
	SetActorLocation(NewLocation);

	UE_LOG(LogTemp, Log, TEXT("%f"), GetActorLocation().Z);

해당 코드는 해당 액터의 Location(회전) 벡터를 받아다

Z값으로 값을 더해서 이동시키는걸 의미한다.

 

RunningTime - 예제에서 헤더에 추가한 변수

 

DeltaTime - 매 틱마다 받아오는 수치로, 틱당 넘어가는 시간을 float값으로 얻은것.

GetActorLocation - 로케이션 정보를 받아온다.

 

SetActorLocation -  NewLocation - GetActorLocation(). 넣은 값에서 현재 로케이션을 뺀 결과를 저장한다.

그냥 현재 로케이션 값으로 바꾸는 거라고 생각하면 된다.

아래 로그로 값을 체크해봤다

신기하게도  분명 더하기만 하는 코드인데, 올라갔다 내려갔다를 반복한다.

 

float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));

 

Sin이 어떻게 돌아가는지 체크하면 저 원리의 결과는 간단하다.

 

Sin을 뺄 경우, DeltaTime만을 넣은것이나 다름 없기 때문에 액터는 하늘로 계속 올라간다.

하지만 Sin을 집어넣은 결과에서는 -1 ~ 1의 결과만을 도출시킨다.

 

즉 프레임은 무한하게 상승하지만(정확히는 일정시간이 지나면 -값으로 돌아오기는 한다)

Sin 결과값에 의해 오르내리도록 치환된다.

 

이번 예제를 잘보면 NewLocation.Z = DeltaHeight * 20.0f로 되어있는데,

액터의 Z를 체크해보면 180~ 220 사이에서 와리가리 하고 있다는것을 알 수 있다.(최초 위치가 200이기 때문)

 

-1 ~ 1의 결과값에 20을 곱했기 때문에 일어나는 현상이다.

180을 기점으로 다시 수치가 올라가고 있다.

정작 이 원리에 대한 설명은 저 사이트에서 하나도 써있지 않아 아쉬울 따름이다.

해외 포럼에서도 FMath:Sin으로 검색하면 이 원리에 대한 질문글이 여럿 보일정도이다.

 

이번엔 파티클 시스템 추가(Particle System)
파티클의 추가는 여기서.이미 만들어진 기본제공이 꽤 있다.
불타는 파티클이 추가되었다.

https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/ProgrammingWithCPP/CPPTutorials/

 

C++ 프로그래밍 튜토리얼

언리얼 엔진 프로그래밍에 대한 실전 학습용 단계별 안내서입니다.

docs.unrealengine.com

언리얼에서 기본 제공해주는 C++ 관련 예제들로 이어진다.

'UE4 - C++' 카테고리의 다른 글

UE4 - 애니메이션 몽타주  (0) 2021.09.09
UE4 - 점프기능 구현  (0) 2021.08.31
UE4 - 일인칭 슈팅 C++ 튜토리얼  (0) 2021.07.23
UE4 - 플레이어 입력 및 폰  (0) 2021.07.21
UE4 - 게임조종 카메라  (0) 2021.07.21