분류 전체보기
3-1. 언리얼 오브젝트 리플렉션 시스템
일단 리플렉션 시스템을 알아보기 위해 문서 먼저 확인해보자 https://www.unrealengine.com/ko/blog/unreal-property-system-reflection 언리얼 프로퍼티 시스템 (리플렉션) 리플렉션(Reflection)은 프로그램이 실행시간에 자기 자신을 조사하는 기능입니다. 이는 엄청나게 유용한 데다 언리얼 엔진 테크놀로지의 근간을 이루는 것으로, 에디터의 디테일 패널, 시리얼라 www.unrealengine.com 처음에 보면 프로퍼티 시스템이라고 돼있다. 모든 사람들을 위해 리플렉션과 프로퍼티 시스템으로 부르기도 한다. 리플리케이션 시스템은 옵션입니다. 리플렉션 시스템에 보이도록 했으면 하는 유형이나 프로퍼티에 주석을 달아주면, Unreal Header Tool (U..

1. 코딩 규칙
음... 현재 사용하고 있는 유니티에서 회사 및 개인 개발에 사용하고 있는 방법은 Camel 방식이다. 전역변수는 앞애 _(언더바)를 붙여 사용하고 있다. 하지만 언리얼은 조금 다르다. 일단 구글 C++ 코딩 스타일 가이드를 한번 보자 이 문서가 있는 이유는 무엇입니까? 이 가이드가 제공해야 하는 몇 가지 핵심 목표가 있습니다. 이것이 모든 개별 규칙의 근간이 되는 근본적인 이유입니다. 이러한 아이디어를 전면에 내세움으로써 우리는 토론의 토대를 마련하고 왜 규칙이 있고 특정 결정이 내려진 이유를 더 넓은 커뮤니티에 더 명확하게 전달하기를 희망합니다. 각 규칙이 제공하는 목표를 이해하면 규칙이 언제 포기될 수 있는지(일부는 포기될 수 있음) 가이드의 규칙을 변경하는 데 어떤 종류의 인수 또는 대안이 필요한..
0. 서론
언리얼에 관한 정보들을 정리 해두는 곳입니다. 이득우의 언리얼 프로그래밍 https://www.inflearn.com/course/%EC%9D%B4%EB%93%9D%EC%9A%B0-%EC%96%B8%EB%A6%AC%EC%96%BC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-part-1 이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 - 인프런 | 강의 대기업 현업자들이 수강하는 언리얼 C++ 프로그래밍 전문 과정입니다. 언리얼 엔진 프로그래머라면 게임 개발전에 반드시 알아야 하는 언리얼 C++ 기초에 대해 알려드립니다., [사진] 언리얼 C++을 www.inflearn.com 을 수강하면서 나온 정보들 입니다. 퇴근하고 끄적일거라 가끔 올라옵니다.....

10. STL tuple
C++ Stl 중에 튜플이 있다. 사용하는데 편한데 어떻게 만들어져있는지 궁금할정도로 신기하다 void main() { std::tuple t; std::get(t) = 1.2f; std::get(t) = 1; printf("%g\r\n", std::get(t)); printf("%i\r\n", std::get(t)); } 출력 1.2 1 이 튜플을 비슷하게 만들어보자 더보기 template struct seq{}; template struct make_seq : make_seq { }; template struct make_seq { typedef seq type; }; template using MakeSeq = typename make_seq::type; template struct foo_stor..

11. 글꼴 엔진
이전에 사용했던 2D 이미지를 그리는 방법으로 이제 텍스트를 출력하려고 합니다. 우선 필요한 것은 자신만의 글꼴 이미지 입니다. 여기에 몇 개의 글씨가 있는 간단함 1024 x 16 크기의 dds 텍스쳐를 만들었습니다. 보이는 것처럼 하나의 텍스쳐 파일 안에 필요한 기본 글자가 모두 들어있습니ㅏㄷ. 이것을 이용해 필요한 글자의 텍스쳐를 인덱스를 이용해 그려내는 단순한 글꼴 엔진을 만들 수 있습니다. DirectX11 에서는 2개의 삼각형으로 이루어진 사각형을 만들고 그 사각형에 원하는 글자의 텍스쳐를 그리면 됩니다. 따라서 문장이 이씅면 문장에 있는 가 문자별로 사각형을 만들어 주고 그 위에 글자를 그립니다. 이렇게 모든 사각형이 화면에 그려지면 문장이 완성됩니다. 이 과정은 지난 튜토리얼의 2D이미지를..
9. STL Equality and Equivalence
예전부터 많이 사용하는 그런 기능이라 이틀 연속으로 올리네 허헣... 졸리다... 일단 간단한 코드 먼저 보자 #include #include void main() { std::set s1; s1.insert(1); s1.insert(5); s1.insert(2); for (int v : s1) { printf("%i\r\n", v); } } 여기서 사용하는 set은 RB트리로 값이 있는지 없는지 유무만 판단하기 위해 담아두는 자료구조이다. 대신 탐색 시간을 단축하기 위해 정렬해서 값이 들어간다. 기본값은 오름차순이다. 따라서 위에 코드를 실행시키면 1 2 5 이런식으로 나오게 된다. 만약, int형이 아니고 직접 정의한 클래스나 구조체를 넣어보자 #include #include class KPoint ..
8. STL Custom Allocator
std의 Container들에는 Allocator(할당자)가 존재한다. 이 Allocator들은 Container들의 메모리를 관리한다. 기본적으로 표준의 Allocator를 사용하지만, 사용자가 직접 만들어준다면, 자신이 만든 Allocator를 사용할 수 있다. 일단 흔히 사용하고 있는 vector에 있는 오버로딩된 함수를 보자 std::vector temp; 이 vector의 템플릿을 한번 보게 되면, template class vector { // varying size array of values private: template friend class _Vb_val; friend _Tidy_guard; using _Alty = _Rebind_alloc_t; using _Alty_traits = ..

10. 2D 렌더링
화면에 2D 이미지를 그리는 것은 정말 유용합니다. 예를 들어 대부분의 유저 인터페이스(UI), 스프라이트 시스템, 텍스트 엔진들은 2D 이미지들로 만들어져 있습니다. DirectX 11 에서는 도형에 2D 이미지들을 매핑하고 정사영 행렬을 이용하는 방식으로 2D 이미지를 그릴 수 있게 해 줍니다. 2D 화면 좌표계 2D 이미지를 화면에 그리기 위해서는 화면의 X,Y 좌표를 계산해야 합니다. DirectX에서는 스크린의 중앙이 (0, 0) 입니다. 그리고 중앙을 기준으로 왼쪽과 아래쪽 화면이 음수 좌표가 되고, 오른쪽과 위쪽 화면 좌표는 양수 방향이 됩니다. 예를 들어 1024 x 768 해상도의 화면이 있다면 화면 경계의 좌표는 다음과 같습니다. 올바르게 2D 렌더링을 하기 위해서는 이 화면의 좌표계를..