최신 글
-
[UE5] Toy project "Outbreak": Escape from Duckov 같은 좀비 탑뷰 슈터 게임 만들어보기 - 중간 정리
어쩌다 보니 언리얼 엔진을 처음으로 공부를 하게 되었다 보니 사이드 프로젝트를 하나 굴려봐야겠다고 생각하게 되었다.그런데 첫 프로젝트를 굴리다 보니, 5개월이란 시간이 흘렀다.핑계를 대려면 이것저것 댈 수 있겠지만, 아무튼 좀 더 열심히 해야겠다!라는 결론밖에 안 나와서, 동기부여(?) 겸 중간 정리 겸 해서 내용을 공유해 보기로 했다. 개요프로젝트의 시작은 언리얼 엔진의 게임플레이 프레임워크, GAS를 공부해보고 나서 아무거나 좋으니 프로젝트를 진행해보려 했다.이때 눈에 들어왔던 게 Escape from Duckov였다. 간단한 조작, 가벼운 게임플레이라는 점에서 간단한 프로젝트로 나쁘지 않았기에, 탑뷰 스타일의 슈터 게임을 만들어보려고 했다. 사실 첫 목적은 타르코프처럼 익스트랙션 슈터 시스템을 구축..
2026.08.23
-
[Unreal Engine] UMG에서 긴 텍스트가 영역을 벗어나지 않게 만들기(Scale Box + Text)
UMG로 UI를 만들다 보면 예상보다 긴 텍스트가 들어와 테두리 밖으로 튀어나오는 경우가 있다. 특히 번역을 적용하면 언어마다 문자열 길이가 달라지기 때문에 이런 문제가 더 자주 발생한다.아쉽게도 UMG의 Text 위젯에는 CSS의 max-width처럼 최대 너비를 직접 지정하는 옵션이 없다. 이럴 때는 Scale Box와 텍스트 줄 바꿈 옵션을 함께 활용할 수 있다.Text 위젯을 Scale Box로 감싼다.Scale Box의 Stretch를 Scale To Fit으로 설정한다.Stretch Direction을 Down Only로 설정한다.Text 위젯의 Wrap Text At에 줄바꿈 기준 너비를 입력한다. 우선 이렇게 Scale Box로 Text 위젯을 감싸준다. 텍스트의 부모에 Scale Box가..
2026.08.11
-
언리얼 엔진 5 - IK Rig로 서로 다른 스켈레톤의 애니메이션 리타겟팅하기
0. 개요캐릭터에 새로운 애니메이션을 넣어보려고 했는데 문제가 생겼다.가져온 애니메이션과 기존 캐릭터가 서로 다른 스켈레톤을 사용하고 있었던 것이다.기존 캐릭터는 SK_Mannequin 계열 스켈레톤을 사용하고 있었지만, 새로 가져온 애니메이션은 별도의 본 구조를 가진 스켈레톤을 사용하고 있었다. 같은 Skeleton 에셋을 공유한다면 애니메이션을 바로 적용할 수 있지만, 이렇게 서로 다른 스켈레톤을 사용하고 있다면 그대로 재생할 수 없다.따라서 언리얼 엔진 5에서 제공하는 애니메이션 리타겟팅(Animation Retargeting) 기능을 이용해 애니메이션을 변환해 보기로 했다.UE5에서 서로 다른 스켈레톤 사이의 애니메이션을 변환할 때는 주로 다음 두 에셋을 사용한다.IK Rig: 각 스켈레톤의 팔,..
2026.07.12
-
언리얼 엔진 5 - 나이아가라에서 로컬 모듈 & User Parameter 사용하기
언리얼 엔진의 나이아가라(Niagara) 시스템은 기본 기능만으로도 다양한 이펙트를 제작할 수 있다. 하지만 게임을 개발하다 보면 단순한 파티클 설정만으로는 표현하기 어려운 상황이 종종 발생한다.이를 위해 나이아가라는 모듈(Module) 이라는 기능을 제공한다. 모듈은 블루프린트와 유사한 방식으로 동작하며, 파티클의 생성 및 동작 로직을 직접 작성할 수 있게 해준다.예를 들어 아래와 같은 투사체 트레일(Trail) 이펙트를 생각해 보자.일반적으로 투사체가 적이나 지형에 충돌하면 투사체 액터와 함께 나이아가라 컴포넌트도 제거된다. 그런데 이 경우 트레일이 자연스럽게 끝나는 것이 아니라 중간에서 갑자기 잘려 보이는 문제가 발생할 수 있다.물론 충돌 시점에 별도의 나이아가라 시스템을 생성하는 방식으로도 해결할..
2026.06.14
-
언리얼 엔진5 - 충돌 이벤트 처리
충돌했을 때 어떻게 스크립트에서 이를 감지하고 처리할까? 스크립트 단에서 이를 처리하려면 보통 오버라이딩하는 방법과 동적 바인딩 둘 중 하나를 선택하여 처리가 가능하다.어느 방법을 쓰든 거의 동일하게 구현이 가능한 것으로 보이며, 어느 것을 쓸지는 필요나 기호에 따라, 혹은 구조에 따라 결정하면 된다.해당 부분은 다음 글을 참고했다(https://devshovelinglife.tistory.com/15). [Unreal] 언리얼 충돌체 관련 함수와 이벤트(델리게이트) 바인딩 방법 #2언리얼 엔진에선 두 가지의 충돌체가 존재한다. 하나는 메쉬(static 또는 skeletal)의 충돌체 그리고 충돌 컴포넌트(SphereComponent,BoxComponent 기타 등등). C++로 충돌체 이벤트 바인딩할 ..
2026.06.06
-
언리얼 엔진 - 전방 선언하고 include 안 할 때를 주의하자(error C2440: 'static_cast' : cannot convert from ...)
전방 선언과 include...\Object.h(151): error C2440: 'static_cast': cannot convert from 'UObject *' to 'UTargetClass'멤버에 대해 클래스 전방 선언(Forward declaration)을 하게 되면, 나중에 Include하지 않은 상태로 할당하게 되면 오류가 생길 수 있다.멤버에 접근하거나, CreateDefaultSubobject 등으로 무조건 해당 클래스를 include해놔야 한다.TObjectPtr TargetComponent; 헤더에서는 위와 같이 선언해놓고, 실제로 생성할 때 아래와 같이 해당 클래스의 헤더를 Include하지 않으면 클래스 타입을 알지 못해 문제가 생길 수 있다.// 헤더 포함 안 함AOBChara..
2026.05.31
-
퍼포스와 Visual Studio를 같이 사용하는 방법
1. 수정했는데도 Checked out 표시가 안 떠서 Submit 할 수 없다UE5에서 퍼포스와 Visual Studio를 같이 쓸 때, Cpp 파일을 수정해도 Check out 되지 않는 경우가 있다.Visual Studio는 외부 툴이다 보니, 편집할 때 Read only가 걸려 있으면 Check out 없이 이를 풀어버리는 경우가 간혹 있다.P4V 클라이언트에서 확인해보면, 위와 같이 뜨면서 아무리 수정해도 submit 할 수 없는 경우가 종종 발생한다.이 상황에서 만약 위와 같이 파일을 수정하지 않고 있는데 이렇게 ‘읽기 전용’ 옵션이 해제되어 있다면 Perforce의 체크아웃 기능과 관련하여 문제가 생겼을 가능성이 높다.보통은 체크아웃을 하고 수정 후 Submit을 완료하면 이런 식으로 읽기 ..
2026.04.16
-
오라클 프리티어 기반 Perforce 설정하기 2 - 인스턴스에 퍼포스 연결하기
이전글(https://dev-nicitis.tistory.com/93)에서 오라클 클라우드 인스턴스를 생성했다.이제 이 인스턴스에 퍼포스를 설치하고 사용할 준비를 해보자. 1. 인스턴스에 연결해보기우선 인스턴스를 생성했으니 터미널로 직접 연결부터 해보자.저번 글에서 Instance 생성 시 Private / Public 키를 받았을텐데, 이를 Instance에 설정해줘야 한다. 1-1. 권한 설정하기우선 Private SSH Key를 내 계정에서만 접근 가능하게 막는 것이 좋다. 한번 살펴보자.이 과정은 다음 링크(오라클 공식문서: https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/connect-to-linux-instance.htm#linux-from..
2026.03.29
-
오라클 프리티어 기반 Perforce 설정하기 1 - 오라클 클라우드 생성하기
1. 개요이번에 사이드 프로젝트를 시작하기에 앞서, 버전 컨트롤 시스템을 설정하는 방법을 공부해보려 한다.그 중에서도 보통이라면 사용했을 Git 대신, 언리얼 엔진에서 널리 사용되는 Perforce를 기반해서 작업해보려 한다. 문제는 이 과정에서 서버니 뭐니 작업해야 할 것들이 꽤나 많아서, 가이드를 보며 세팅해 보기로 했다.https://dev.epicgames.com/community/learning/tutorials/1lV4/unreal-engine-perforce-setup-on-oracle-cloud-free-tier?utm_source=chatgpt.com#connecting&furthersteps Perforce Setup on Oracle Cloud [FREE TIER] | Communit..
2026.03.29
-
[UE5] SCENE_QUERY_STAT() 매크로
SCENE_QUERY_STAT()은 언리얼에서 C++로 충돌 처리를 감지할 때마다 사용하는 매크로 중 하나이다.특히 아래와 같이 FCollisionQueryParams를 만들 때 가장 많이 사용된다.FCollisionQueryParams CollisionQueryParam(SCENE_QUERY_STAT(GateTrigger), false, this); SCENE_QUERY_STAT()은 프로파일링이나 디버깅 등을 추적하기 위한 태그를 반환하는 것으로 보인다.해당 매크로는 특히 FCollisionQueryParams의 첫 번째 인자로 주로 사용되는데, 게임 로직 자체에는 영향을 주지 않고, 프로파일링 / 스탯 집계용으로 이름을 식별할 때 쓰인다.예를 들어 가장 많이 사용되는 FCollisionQueryPa..
2026.03.03