본문 바로가기
이펙트 (FX)/이펙트 팁 : Unreal

[Unreal/Optimizing] 언리얼 엔진 "모범 사례"에 대한 오해와 진실 (최적화)

by Minkyu Lee 2026. 8. 21.

 

 

개요

언리얼 페스트 2026 서울에서 발표된 언리얼 관련 내용에 대해 소개한다.

모범사례에 따옴표를 붙인 이유는 잘못된 정보도 있다는 의미다.

 

관련 내용은 아래 링크에도 이미 정리되어있다.

https://dev.epicgames.com/community/learning/tutorials/l3E0/myth-busting-best-practices-in-unreal-engine

 

Myth-busting "Best Practices" in Unreal Engine | Tutorial

Are Ticks really that problematic? Should you make all your meshes Nanite? Is the ChildActorComponent truly cursed? Should you never use Cast? You've pr...

dev.epicgames.com

 

내용

tick 사용하지마라?

tick이 비싸다는 인식이 있다.

 

tick이 정말 비쌀까?

생각보다 그렇게 비싸지 않다.

블루프린트 틱이 특히 더 비싸다고 알고 있지만 상대적으로 아주 미미한 수준이다.

 

하지만 empty tick은 낭비이므로 지워줘야한다.

 

결국 본질은 매프레임 작동해야하는 것은 항상 주의해서 만들어야하는 것이다.

틱이 꼭 필요한 액터를 잘 선별하고, 액터 자체가 많다면 틱 간격을 넓힌다.

 

결국 가장 중요한 것은 프로파일링이다.

언리얼 인사이트를 잘 활용하라.

 

블루프린트가 C++보다 느리다

맞다. 블루프린트는 느리다.

블루프린트는 가상머신에서 실행된다.

블루프린트는 오버헤드가 있다.

 

하지만 사용하면 안되는거 아니다.

10배 느리다는건 속설이다. 맥락에 따라서 크게 다르다.

프로파일링해라.

 

실제로 오버헤드가 많아졌다면 C++로 바꿔라.

블루프린트의 장점은 편의성이다. 출시에 문제가 없다면 블루프린트가 90프로 이상이어도 옳은 방법이다.

 

Cast 쓰지말라

틀렸다.

실제 비용은 틱 오버헤드 수준이다.

하드 레퍼런스를 조심하는게 맞다.

 

Get All Actors of Class는 느리다.

틀렸다.

 

현재 월드에 존재하는 특정 타입의 액터를 가져오는 펑션이다.

비용이 실제 가져오는 액터수에 비례한다.

큰 월드에 액터가 3개 정도라면 굉장히 빠르다.

액터가 정말 많아지면 문제가 되는 것이다.

 

예전에는 액터를 순회하면서 검사했다. 실제로 느렸다.

근데 그렇게 작동하지 않은지 13년이나 됐다.

해시 버킷을 사용하도록 바뀌었다.

 

하지만,

Get All Actors With Interface는 순회한다.

Get All Actors With Tag도 순회한다.

그래서 이 두개는 느린거 맞다.

댓글