TECHARTNOMAD | TECHARTFLOWIO.COM

UNREAL ENGINE 38

언리얼 엔진 5.5.X 인스톨빌드 이슈 회피에 대하여.

5.4.4 에서 5.5 로 올라가면서 nuget 종속성 위험과 닷넷 관련 된 이슈가 좀 있습니다.결국 이 것 때문에 인스톨빌드까지 진행이 안되는 상황이 발생하는데요.제가 테스트 하여 정상 빌드 한 내용을 정리 하자면 ( 두서 없이 ) 팀씨티의 경우 가장 속편하게.... 기존 엔진빌드 쪽을 사용하지 않는다. 신규 빌드 스텝을 만든다. 회사 버전서버에서 버전을 완전히 새로 땡겨온다. 그리고 선행으로는 비주얼 스튜디오 최신화를 해야 합니다. 깃랩에서 우리 엔진을 땡겨 온 디렉토리에 가서 프로젝트 생성 후 꼭 비주얼 스튜디오로 솔루션 열어보기 진행 해야 합니다. 열린 솔루션에서 Nuget 종속성 심각한 위험 메시지가 완전히 없어야 합니다. 종속성 위험 해결법. 누겟 리스토어 하기. ( 라이더 등이 ..

UNREAL ENGINE 2025.03.23

[1편] PipelineStateCache 문제점 해결을 위한 코드 트래킹.

최근 5.5.4 업데이트 후 가장 크게 문제되는 부분을 꼽자면PSOprecache 부분이 되겠습니다. PSOprecache 자체가 워낙 반복개발로 분류 된 피처라서 계속 수정되고 있습니다.문제는 5.5.4 네요. PSOprecache 에 대한 스레드 관리부분에서 많은 문제점이 있습니다. PC 에서는 문제가 거의 발생하지 않지만 성능이 좋지 않은 PC 또는 모바일 하드웨어에서는 매우 큰 문제를 유발하고 있어요.ue5_main 브렌치의 3월 19일짜 브렌치쪽의 Engine/Source/Runtime/RHI/Private/PipelineStateCache.cpp 를 좀 살펴 볼까요? #if PLATFORM_SUPPORTS_WORKGRAPH_SHADERS Hash = HashCombineFast(Hash..

UNREAL ENGINE 2025.03.19

[날로먹기] 셰이더용 사용자 디렉티브를 만들고 싶지 않을 때

처음에는 당차게 플러그인으로 개발을 시작 했다. 어느정도 간단한 구조를 다 만들었을 때 알게 된 건데… 퍼뮤테이션이나 셰이더 전처리 키워드를 CVars 와 연동해서 처리하는 부분은 외부 플러그인으로 만들기에 퍽이나 까다롭다는것이다.완전히 새로운 셰이더 자체를 플러그인 형식으로 추가 하고 RHI 와 RDG 까지 독자적으로 구동되는 셰이더라면 문제가 없을 법 하지만 말이다. 일단 언리얼 엔진 자체에 깊숙히 박혀있는 셰이더 구조에 커스텀 지시자를 추가하려면 그냥 엔진 코드단에서 꽤 많은 작업을 해야 하고 멀티플레폼이기에 안드로이드와 IOS 쪽 플레폼 클래스까지 다녀와야 하는 엄청난? 번거로움이 있다. 또한 가능한 퍼뮤테이션이 증가하지 않는 범위를 선호하기 때문에 몇 일 동안 어떻게 처리할지 고민의 시간이 훨씬..

UNREAL ENGINE 2025.03.18

Plugin 개발만 git 으로 관리 할 때 플러그인 경로

안드로이드용 최적화를 진행 하면서 플러그인을 추가로 만들거나 수정해야 할 일이 있어서요.그런데 집에서도 작업하고 회사에 방문해서도 작업하고 그러다보니 git 으로 플러그인 모듈과 소스만 버전관리를 하고 싶었습니다.주로 회사에서만 개발을 하시는 분이라면 굳이? 일 수도 있구요... 만약 회사에서 프로젝트의 버전관리를 SVN 을 사용하는데 "아! 나는 코드 플러그인 같은건 깃으로 관리 하고 싶어!" 라든가 하신다면 유용할 듯 합니다.이럴땐 언리얼 엔진에서 제공하는 시스템 환경변수를 사용하면 됩니다. 예전엔 특별히 살펴보질 않아서... 심볼릭을 만들어서 쓰곤 했는데요. 굳이 그럴 필요가 없죠.이렇게 시스템 변수 편집창을 열고 UE_ADDITIONAL_PLUGIN_PATHS 를 변수 이름으로 그리고 변수 값..

UNREAL ENGINE 2025.03.14

FAndroidMisc 클래스

클라이언트팀(특히 UI)에서는 이미 잘 알고 사용하고 있겠지만 테크아트 부서에서는 잘 다룰 일이 없는 클래스입니다.그럼에도 최근 AOS 빌드 관련 업무를 주도적으로 처리 하고 있기 때문이기도 하고 구글에서 제공하는 안드로이드 적응형 퍼포먼스 제어 플러그인으로 알려진 ADPF 내부 구조를 분석하고 커스터마이징을 하는 과정에 들어가야 했었기 때문에 AndroidMisc 클래스에서는 어떤 것들을 제공하는지 알고 싶었습니다. ADPF 의 핵심은 사실 열 공간에 대한 런타임 모니터링이 가장 핵심이고 열 공간 빈드에 따라 간단한 분기문을 통해 언리얼 모바일 렌더피처를 동적으로 수정해 주는 것이 전체 메커니즘의 전부라고 볼 수 있어요. ADPF 에 대해서도 따로 살펴 볼 기회가 있겠지만 먼저 몇 가지 언리얼엔진 내부..

UNREAL ENGINE 2025.03.14

Enhanced Input 변경사항 적용법.[CL 39908272 by ben hoffman in ue5-main branch]

오전 출근 중에 5.5.4 패치 릴리스 됬다는 소식을 접하고 바로 병합. 기존에 수정해 둔 곳과는 충돌이 없던 관계로 쉽게 병합을 했지만 TA 팀원인 이성학 사원이 살펴 보던 Input 관련 이슈가 발견 되었어요.5.5.4 릴리스 브렌치에는 아직 처리가 안되어 있는 이슈였습니다. 한마디로 5.5.4 로 프로젝트를 빌드하면 기존에 작업 했던 인풋에 다양한 문제가 발생 할 겁니다. 예로 들어 마우스 클릭이나 마우스 입력에 의한 2D 포지션이든 뭐든 0 값을 반환 하게 될 겁니다. 그래서 이 부분과 관련 된 커밋 내용을 팀원분이 꼼꼼하게 찾아봤습니다.[Enhanced Input] Return the "real" value of an input action instance even when it is not i..

UNREAL ENGINE 2025.03.12

5.5.3 또 다른 버그. 스켈레탈 애니메이션 업데이트

최근 엔진 마이그레이션을 끝 내고 모바일 빌드를 내려야 하는 시즌인데요.LOD 마지막 스켈레탈 메시의 애니메이션이 업데이트 되지 않았어요.안드로이드 디바이스 프로필의 경우 일반적으로는 안드로이드 높음 으로 잡히며 그게 아드레노 6 에서 기본 설정이 바인딩 됩니다.이 부분은 세부적으로 디바이스 프로필 폴리싱 작업을 많이 하는 것이 언리얼 엔진으로 모바일 게임 빌드를 할 때 정말 큰 비중이라는 걸 세삼 또 느끼는데요.아무튼... 아드레노 6 칩을 쓰는 하드웨어는 3년 전 출시 된 폰 들이 주류를 이루고 있습니다.문제는 프리미티브에 대해서 하드웨어 오쿨루전 쿼리를 수행 하는 것이 CPU 오버헤드를 가져오며 성능상 HI-z 컬링을 수행 하지 않는 것이 성능면에서 더 이득이라는 점입니다.고로 안드로이드 디바이스 ..

UNREAL ENGINE 2025.03.12

[알쓸신잡] Shader Define Keyword 와 Custom Expression.

뭐 당연히 알거라고 생각하지만 생각보다 구글이건 어디건 검색해도 ...아니면 애픽 문서에도 모호하거나 누락 되어 있는 것 같아서 잠깐 남겨 봅니다.원래는 CVars 로 Custom_Shader_Enable 뭐 이렇게 엔진에 추가를 하던 와중에... Custom Expression 에서 Pre-Defien 은 어떻게 동작하는지 잠깐 알고 싶어서였고 그래서 뭐 이렇게 적는 거 같습니다.여기서는 간단하게 살펴볼 심산이라...머트리얼 에디터의 Custom Expression 과 셰이더 소스의 MaterialTemplate 정도를 가지고 이야기 해 볼겁니다.저는 라이더를 쓰고 있으니 파일 찾기로 materialtemplate 을 찾아 보죠.MaterialTemplate.ush 가 있네요. 자 이걸 일단 열어봅시다..

UNREAL ENGINE 2025.03.01