육아 휴직 기록 아이가 태어나기 전 우리 부부의 퇴근 후 일상은 이랬다. 저녁 간단히 해결 후 밤 9시까지 적당히 공부하고 그날 공부한 내용 정리 후 놀다가 취침. 이걸 매일 반복. 왜냐면 습관이라는 건 하루 미루면 무뎌지니까... 그리고 출산 한지 약 10개월이 지났다. 육아 전만 해도 애는 혼자서 놀고 나는 책이나 보면서 자기개발 할 수 있을 줄 알았는데 개뿔... 밤 9시가 되면 겨우 육퇴하고 그때부터 밀린 집안일 시작. 나도 씻고 정신 좀 차리면 11시. 아 이제 자야지. 새벽에 이앓이라도 하는 날에는 너도 나도 초주검. 어린이집에 가면 이제 내 공부 다시 하겠구나 싶었는데. 약 두 달 동안 겨우 반정도 등원한 듯하다. 무슨 감기가 이렇게 오래가는지 당최 이해할 수 없다. 귀여운 건 귀여운 거고..
플레이어 입력(PlayerInput) 오브젝트는 플레이어의 입력을 플레이어 컨트롤러 또는 폰과 같은 액터가 이해하고 사용할 수 있는 데이터로 변환하는 기능을 한다. 이는 플레이어의 하드웨어 입력을 플레이어 입력 매핑 및 입력 컴포넌트를 통한 움직임과 게임 이벤트로 변환하는 입력 처리 흐름의 일부다. 하드웨어 입력 플레이어의 하드웨어 입력은 일반적으로 키 누름, 마우스 클릭 또는 마우스 움직임, 컨트롤러 버튼 누름 또는 조이스틱 움직임 등이 있다. 표준 축 또는 버튼 인덱스를 따르지 않거나 특이한 입력 범위를 갖는 특수 입력 디바이스는 RawInput 플러그인을 사용하여 수동으로 설정할 수 있다. 플레이어 입력 PlayerInput은 플레이어 입력을 관리하는 플레이어 컨트롤러 클래스 내의 UObject다...
시작하며 코드에서 UI 로직을 만들려고 할 때 블루프린트에서 디자인한 위젯을 제어하려할때 BindWidget meta 지정자를 이용하여 제어할 수 있다. BindWidget 예제 UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UTextBlock* TextName; UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UImage* ImgIcon; 정작 UPROPERTY 공식문서에서는 없지만 UI개발시 가장 많이 사용하는 태그이다. 블루프린트에 동일한 클래스와 동일한 이름을 가진 위젯이 있다면 해당 위젯포인터로 코드(C++)에서 런타임에 엑세스 할 수 있다. 적용 방법 #pragma once #inclu..
언리언 엘진의 비헤이비어 트리 개념과 일반적인 비헤이비어 트리와의 차이점을 알아보자 언리얼 엔진 5(언리얼 엔진)에서 캐릭터에 사용할 인공 지능(AI)을 생성하는 방법은 다양하다. 블루프린트 비주얼 스크립팅(Blueprint Visual Scripting)을 사용하면 캐릭터가 애니메이션을 재생하거나, 특정 위치로 이동하거나, 충돌에 반응하는 등 '무언가를 하도록' 지시할 수 있다. AI 캐릭터가 스스로 생각하고 결정을 내리도록 하려면 비헤이비어 트리(Behavior Tree)를 사용해보자. 아래 비헤이비어 트리는 AI 캐릭터가 순찰과 플레이어 추격 사이에서 행동을 전환하는 예시다. 비헤이비어 트리 기본 비헤이비어 트리는 블루프린트와 유사한 시각적 방식으로 생성된다. 기능이 탑재된 다양한 노드를 추가하고 ..
공용 슬레이트 인수 다음은 공통 인수이다. IsEnabled - 상호작용(Interation) 가능한 위젯인지를 지정한다. 끄면 회식으로 비활성화 된다. ToolTip - 툴팁에 사용할 커스텀 SToolTip 위젯 종류를 지정한다. 지정되지 않으면 툴팁이 나타나지 않는다. ToolTipText - 간단한 툴팁으로 표시할 텍스트 유형을 지정한다. 지정되지 않거나, ToolTip 특성이 사용된 경우 나타나지 않는다. Cursor - 마우스를 올렸을 때 표시할 커서를 지정합니다. Visibility - 아래 Visibility 부분을 참고. Text - 텍스트가 적용 가능하다면 지정할 문구 Content - 콘텐츠가 적용 가능하다면 지정할 위젯 ReadOnly - True 면 이 위젯은 수정할 수 없다. St..
동기 위젯에서 UI를 만들 때 어려운 부분 UI 디자인과 반복 작업 데이터 흐름 제어 : 위젯과 내재된 데이터끼리 묶어주는것 UI 기술(description)을 위한 외국어 습득 IMGUI : Immediate Mode Graphics User Interface 장점 프로그래머는 UI 기술이 데이터에서 구하기 쉽다는 점에서 코드와 비슷하다는 점을 선호한다. 실효(Invalidation)은 문제가 되지 않고, 그냥 데이터를 직접 폴링(poll)한다. 인터페이스의 절차적 생성이 쉽다. 단점 애니메이션과 스타일링 추가가 어려움 UI기술이 명령형 코드라서, 데이터 주도형으로 만들기 어려움 목표 모델의 코드와 데이터에 쉽게 접근 UI 절차적 생성 지원 UI 설명이 꼬이지 않도록 애니메이션과 스타일을 반드시 지원 ..
Slate는 Unreal Editor 또는 게임내 사용자 인터페이스와 같은 도구 및 응용 프로그램용 사용자 인터페이스를 효율적으로 구축하도록 설계된 플랫폼에 구애받지 않는 맞춤형 사용자 인터페이스 프레임워크이다. 서술형(declarative) 문법에 쉬운 디자인, 레이아웃, 스타일 요소가 결합된 Slate를 통해 쉬운 UI제작 및 반복 작업이 가능할 것이다. Slate UI 솔루션으로 툴과 어플리케이션에 사용할 GUI를 매우 쉽게 조합시킬수 있으며, 반복처리도 빠르게 가능하다. 서술형 문법 Slate의 서술형 문법(Declarative syntax)은 프로그래머가 인디렉션(indirection) 레이어를 추가하지 않고도 UI제작을 가능하게 해준다. SLATE_BEGIN_ARGS( SSubMenuButto..
17.1 스켈레탈 애니메이션 스켈레탈 애니메이션(Skeletal animation) : 가상의 뼈대인 본(Bone)을 캐릭터 메시에 심은 후, 해당 본의 움직임에 맞춰 캐릭터 메시가 변형되는 방식을 사용 본을 구성하는 3가지 정보 이름 : 본을 식별할 수 있는 고유한 이름 트랜스폼 : 캐릭터 메시에 본이 심어질 때 본의 배치 정보 (현재의 정보) 바인드포즈(Bindpose) : 최초의 배치 정보, 향후 본이 움직일 때 상대적인 변화량을 파악하는데 사용 리깅(Rigging) : 메시에 본 정보를 추가한 후 본의 움직임에 따라 메시의 정점이 움직이도록 본과 정점을 연결하는 작업 웨이트(Weight) : 한 정점에 영향을 주는 본들의 연결 정보 게임 엔진은 시간에 따라 값의 변화를 저장한 키프레임(Keyfra..
사원수(Quaternion) : 4개의 독립된 체계로 구성된 4차원의 수집합, 2차원의 복소평면을 4차원 공간으로 확장한 개념 16.1 사원수 대수 사원수를 구성하는 세 허수 사원수는 3개의 허수부 i,j,k 로 구성되어있지만 허수단위 i와 같은 성질을 가진다. 사원수의 구조 사원수의 덧셈 q1 + q2 = (a1 + a2) + (b1 + b2)i + (c1 + c2)j + (d1 + d2)k 결합법칙 : q1 + (q2 + q3) = (q1 + q2) + q3 = (a1 + a2 + a3) + (b1 + b2 + b3)i + (c1 + c2 + c3)j + (d1 + d2 + d3)k 교환법칙 : q1 + q2 = q2 + q1 = (a1 + a2) + (b1 + b2)i + (c1 + c2)j + (..
15.1 자연지수함수 //오일러 공식 e^iθ = cosθ + i sinθ 무리수 e y = (1 + 1/x)^x e = lim/x->∞ (1 + 1/x)^x 자연 지수 함수 거듭제곱(Exponentiation) : 같은 수를 여러 번 곱하는 작업 지수(Exponent) : 거듭제곱에서 곱하는 횟수 밑(Base) : 거듭제곱에서 곱하는 수 거듭제곱을 구성하는 밑과 지수가 가지는 연산의 특징을 지수 법칙(Law of exponents)라고 한다. 밑이 같은 거듭제곱 간의 곱셈은 지수를 더한 거듭제곱과 동일 하다. (a^m · a^n = a^m+n) 거듭제곱의 거듭제곱은 지수를 곱한 거듭제곱과 동일하다. (a^m)^n = a^m·n 지수가 0인 거듭제곱은 항상 1의 값을 갖는다. (a^0 = 1) 지수함수(..
14.1 복소수 복소수(Complex number)는 실수(Real number)와 허수(imaginary number)두 개의 값으로 구성되는 수집합을 뜻하며, 집합 기호는 C로 표현한다. 허수 허수는 제곱해서 음수가 되는 상상의 수이다. 실수와 구분하기 위해 허수에 i라는 기호를 사용한다. 이를 허수 단위(Imaginary unit)라 부른다. 허수단위 i는 제곱했을 때 -1가 나오는 수를 말한다. 복소수 내에서 서로 완전히 분리된 실수 집합과 허수 집합은 각각 실수부(Real part)와 허수부(Imaginary part)로 부르고 허수부는 항상 i를 사용해 표기한다. 복소수의 구조 복소수의 덧셈 연산의 성질 결합법칙 : (a,b) + ((c,d) + (e,f)) = ((a,b) + (c,d)) +..
시작하며 게임 개발을 위해서는 게임 에셋이 필요하다. 나의 경우에는 주로 아래 경로에서 게임 에셋을 구하고 있다. 언리얼 엔진 마켓플레이스 언리얼 엔진에는 게임 에셋을 구매할 수 있는 마켓플레이스가 있다. 그리고 유니티 엔진에는 에셋스토어가 있다. 무료 에셋만 보자면 유니티의 에셋스토어가 좀더 다양하고 많지만 언리얼 엔진의 마켓플레이스는 퀄리티 좋은 유료에셋을 매달 5개씩 100% 할인으로 판매(?)하고 있다. 지금 당장 필요하지 않을거 같더라도 한 달에 한 번씩은 마켓플레이스를 방문해서 구매해 두자. 험블번들 https://www.humblebundle.com/ 험블번들은 게임, 전자책 등 디지털 콘텐츠들을 패키지로 판매하는 사이트이다. 이곳에선 가끔 게임 에셋들이 저렴하게 판매되기 때문에 해당 사이트..