Make Unreal REAL.
article thumbnail
원근 투영 변환의 원리

이득우의 게임 수학 3차원 공간에 투시 원근법의 원리를 적용하기 위해서는, 공간의 모든 점이 한 점을 향해 모이는 형태로 변경해야 한다. 이러한 변환을 원근 투영 변환(Perspective projection transformation)이라고 한다. 우리 눈이 바라보는 방식으로 가상 공간을 변환하는 것이다. 카메라에서 눈에 보이는 범위를 화각(FOV, Field of View)이라고 한다. 원근 투영 변환은 x, y, z축이 모두 직교하는 정육면체 형태의 뷰 공간(View space)을 카메라의 한 점으로 모이는 사각뿔 형태를 가진 공간으로 변환하는 작업이다. 3차원 공간을 변환한 후에는 공간의 물체를 투영해 2차원 모니터 평면에 담아내야 한다. 이를 위해 모든 물체의 상이 맺히게 하는 가상의 평면을 투..

article thumbnail
뛰어넘기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 이번에 할 것은 점프 버튼에 장애물을 뛰어넘는 기능을 추가하는 것이다. 이것을 응용하면 향후에 벽타기 등도 추가할 수 있다. Motion Warping 플러그인을 활성화한다. Motion Warping은 애니메이션이 재생되는 동안, 설정된 Warp Target의 위치와 회전으로 액터의 위치와 회전을 보간시켜주는 기능이다. Character Movement 컴포넌트의 이동 모드가 Flying일 때만 작동한다. 빌드 설정에 MotionWarping 모듈을 추가한다. VaultOver 애니메이션을 통해 VaultOver_Montage 애니메이션 몽타주를 생성한다. 마지막 착지 부분은 필요 없기 때문에, Va..

article thumbnail
Level 0. 배열 만들기 4

Level 0. 배열 만들기 4 #include #include using namespace std; vector solution(vector arr) { vector stk; for (int i = 0; i < arr.size(); ++i) if (stk.empty() || stk.back() < arr[i]) stk.emplace_back(arr[i]); else stk.pop_back(), --i; return stk; }

article thumbnail
삼중곱(Triple product)

이득우의 게임 수학 삼중곱은 벡터의 외적과 내적을 두 번 연속 사용하는 연산이다. 총 4개의 경우의 수가 있을 수 있다. 1. u·(v·w) 2. u·(v⨯w) 3. u⨯(v·w) 4. u⨯(v⨯w) 이 중에서 1번과 4번은 괄호 안의 결과가 스칼라가 되므로 두 번째 연산에서는 벡터 간의 연산이라고 볼 수 없다. 따라서, 2번과 4번만이 유효한 삼중곱이 된다. 이 중에서 최종 결과가 스칼라가 되는 2번은 특히 스칼라 삼중곱(Scalar triple product)이라고 한다. 외적을 통한 왼쪽/오론쯕 판별, 앞/뒷면 구분을 통한 백페이스 컬링에 사용된 공식이 모두 스칼라 삼중곱이다. 외적의 결과가 되는 법선 벡터의 크기는 두 벡터가 이루는 평행사변형의 넓이가 된다. 이때, 임의의 벡터 c를 a⨯b에 투영..

article thumbnail
달리기 능력

Advanced Unreal Engine 5 Multiplayer Gameplay Programming 새로운 달리기 애니메이션을 구할 필요 없이 블렌드 스페이스에서 걷기 애니메이션을 1개 더 배치한 후, 재생 속도인 Rate Scale을 조정해 빠르게 달리는 것처럼 보이도록 한다. 달리기 시 적용할 GE_State_Sprint 이펙트를 생성한다. 달리기 상태임을 나타내고, 이동 속도 변수의 값을 Modifier를 통해 조절한다. 달리는 동안 이펙트를 지속할 것이므로 Duration Policy를 Infinite로 설정한다. Modifier를 통해 캐릭터의 속성을 정의하고 있는 AG_AttributeSetBase 클래스의 MaxMovementSpeed 값을 조정해 이동 속도를 바꾸도록 한다. Attrib..

article thumbnail
Level 0. 배열 만들기 2

Level 0. 배열 만들기 2 전에 같이 알고리즘 스터디를 하던 형이 재귀로 조합을 만들어 냈던 게 생각나서 비슷한 방법을 써봤다. 현재 수에 0과 5를 하나씩 붙여나가는 방법이다. #include #include #include using namespace std; void rSolution(int l, int r, vector& vec, int val) { if (l

검색 태그