본문 바로가기

전체 글

(42)
[UE4] C++ 코딩 가이드라인 0. 서문 다량의 UE4 엔진 코드들을 살펴보다 보면 깜짝 놀랄만한 부분이 있는데, 방대한 엔진 코드들이 마치 잘 훈련된 소수의 몇명만 작업한 듯한 코드 일관성을 보여준다는 것이다. 이는 대형 프로젝트에서 품질 관리를 위해 상당히 중요하다. 코드 작성에 들어가는 비용을 1이라고 봤을 때, 코드 읽기에 들어가는 비용은 평균적으로 10이상이다. (이것도 아주 낮게 잡은 것이다) 즉, 남들이 읽기 쉬운 코드 작성이 핵심이라는 것인데. 프로젝트 크기가 커질 수록 코드 일관성에 근거하는 비중이 올라간다. 간혹 "이건 제 코드이고 제 스타일이니 존중해 주시죠" 라는 개소리를 하는 프로그래머들과 일할 때가 있는데, 그네들에게 하는 소리는 늘 한결 같다. "그건 집에 가서 개인 프로젝트에서나 하시고, 여긴 회사니까 공..
[UE4] 언리얼 써밋 2016/7 다시보기 모음 1. 테크 아직도 유니티만? 언리얼이 쉬워지는 6가지 핵심 개념 언리얼 튜토리얼만 쌓여가는 유니티 개발자를 위한 조언 플러그인과 에디터 모듈을 통한 에디터 확장의 기초 UE4 Mobile Rendering Overview 언리얼 엔진 4 모바일 개발팁 Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기 Technical Post-Mortem for RoboRecall (PC), and Beyond The AAA Mobile Revolution : UE4 on Mobile 타이탄 모바일 액션 게임 컨텐츠 최적화 기법 UE4 모바일 게임 출시를 위해서 궁금한 바로 그것들 (zip 파일 링크) 프로젝트 A1의 구형 맵과 그 위에서의 네비게이션 메시 2. 아트 애니메이션 활용 팁 프로젝트 A1의 구형..
[UE4] 언리얼 써밋 2018 다시보기 모음 1. 프로그래밍 언리얼 엔진 4 프로그래밍 모바일 지원을 위한 최적화 언리얼 엔진 4 모바일 렌더링 개요 모바일 : 오클루전 컬링 2. 아트 언리얼 엔진에서 사실적인 캐릭터 제작하기 언리얼 엔진의 새로운 머티리얼 레이어링 시스템 식생 머티리얼에 필요한 다양한 기능들 의 실시간 라이팅 기술과 기능 포트나이트 모바일 아트 최적화 나이아가라 : 프로그래머블 VFX UMG 시작에서 최적화까지 물리 기반 애니메이션 or 비물리 기반 애니메이션 Project TL - VFX
[UE4] Rendering 관련 문서 링크 모음 0. 서문 UE4 렌더링 관련 글들을 한꺼번에 몰아 볼 때가 있는데, 어째 매번 찾아 헤매게 되는 것 같아, 일종의 색인화를 위해 작성한 글이다. 1. 링크 모음 1) UE4 Rendering Overview UnrealDoc - 렌더링 & 그래픽 루트 페이지 UnrealDoc - 그래픽 프로그래밍 루트 페이지 UnrealDoc - 컴포넌트 렌더링 UE4 How Unreal Rendere a Frame #1 UE4 How Unreal Rendere a Frame #2 UE4 How Unreal Rendere a Frame #3 UE4 Rendering Part 1 : Introduction UE4 Rendering Part 2 : Shaders and Vertex Data UE4 Rendering Par..
[UE4] Actor의 Tick 관련 #2 문서가 너무 길어져서 1/2부로 내용을 나누었다. 1부 문서는 여기를 참고하기 바란다. 5. TickGroup Actor와 Component의 Tick 발생은 개별의 TickInterval에 의해서 주기가 정해진다. 이는 객체 차원에서의 주기 관점이고, 메인 루프 관점에서는 TickGroup의 순서에 따라 오브젝트들의 Tick을 처리한다. 앞선 TickGroup에 속한 오브젝트들의 Tick이 모두 실행된 이후에야 뒷 TickGroup에 속한 오브젝트들의 Tick이 실행되는 것이다. ETickingGroup 열거형에는 8개의 아이템이 존재하지만, 게임 플레이에서 지정할 수 있는 TickGroup은 아래의 4개이며, 아래의 번호 순서가 TickGroup의 실행 순서이다. TG_PrePhysics : 별도로 ..
[UE4] Actor의 Tick 관련 #1 0. 서문 참고 : UE4 문서 - 액터 틱 Tick, 틱이란 Actor나 Component에 일정 간격(보통 프레임당)에 한번 코드 또는 블루프린트 스크립트를 실행시키는 것을 의미한다. Actor와 Component간의 프레임 단위의 태스크를 기준으로 한, 상대적인 틱 순서에 대한 이해는 게임 실행에 있어 일관성 관점에서 필수적이라 할 수 있다. (한 프레임 뒤쳐지는 문제 등등을 피하기 위해서라도...) Actor와 Component의 틱 주기는 매 프레임이 될 수도 있고, 사용자(프로그래머)가 지정한 간격일 수도 있으며, 아예 Tick을 돌지 않게 할 수도 있다. 또한, 특정 그룹에 참여시켜 엔진의 메인 루프 내에서의 상대 순서를 설정할 수 있으며, 상호간 의존성 설정으로 어떠한 Actor, Comp..
[UE4] Actor::RootComponent 0. 서문 이 글의 주제인 RootComponent가 Actor의 멤버 변수이기에, 짧게 Actor와 연관된 부분에 대해 설명하는 것으로 시작한다. (참고 : UE4 문서 - 액터) UE 문서 중 "UE4 용어" 문서를 보면 Actor에 대해 다음과 같이 작성되어 있다. "Actor, 액터란 레벨에 배치할 수 있는 오브젝트이다. 위치(Location), 회전(Rotation), 스케일(Scale)과 같은 3D 트랜스폼(Transform)을 지원하는 범용 클래스이다. 액터는 게임플레이 코드(C++ 또는 블루프린트)를 통해 스폰 및 소멸 가능하다. C++에서의 Actor base class는 "AActor" 클래스이다" 또한, Actor는 여러 기능의 조합으로 그 성격과 역할이 규정되는데, 언리얼 엔진에서는..
[UE4] ConstructorHelper::FObjectFinder/FClassFinder 1. ConstructorHelper 참고 : 애셋 레퍼런싱의 생성시간 레퍼런싱 이름에서 알 수 있듯이 ConstructorHelper는 UObject의 Constructor(생성자)에서만 사용 가능하다. (즉, CDO 제작에서만 사용된다는 얘기) 아래 FObjectFinder와 FClassFinder의 정의 코드 중 Line:16에서 생성자에서 호출되었는지 체크하는 것을 확인할 수 있다. 그리고, 아래 코드에서 보겠지만, ConstructorHelper::FObjectFinder 혹은 FClassFinder 객체에 모두 static 키워드를 주었다. 리소스는 여러 언리얼 오브젝트의 인스턴스들이 공유해서 사용하는 자원이므로, 인스턴스마다 불필요하게 애셋을 로드할 필요가 없기 때문이다. 물론 같은 것을 로..