게임 개발 120

[수학] 등비 수열

\(\mathbf{a_1}\) \(\scriptstyle\text{*r}\to\) \(\mathbf{a_2}\) \(\scriptstyle\text{*r}\to\) \(\mathbf{a_3}\) \(\scriptstyle\text{*r}\to\) \(\mathbf{a_4}\) 일정한 수를 곱한 수열을 '등비 수열'이라 합니다. \(\mathbf{a_4} = \mathbf{a_1}r^3\) 등비 수열의 4번째 항 \(\mathbf{a_4}\)는 \(\mathbf{a_1}\)에 r을 3번 곱한 값입니다. r을 공비라 합니다. [등비 수열의 일반항] \(\mathbf{a_n} = \mathbf{a_1}r^{n-1}\) 등비 수열의 합을 알아 봅시다. [등비 수열의 합] \(\mathbf{S_n} = {{\ma..

[UE5] 버추얼 섀도우 맵

버추얼 섀도우 맵 나나이트의 멀티뷰 랜더링 덕분에 사용 가능한 기능입니다. 버추얼 섀도우 맵은 고해상도 텍스처를 사용하여 선명한 그림자와 소프트한 그림자를 제어할 수 있습니다. 또한 가상화된 텍스처를 사용하기 때문에 해상도 부족으로 인한 깨짐 현상이 없습니다. 변경된 부분만 캐시를 활용하여 업데이트하며, 빛의 움직임이 임계치 이상일 경우 캐시가 무효화됩니다. 따라서 빛의 방향이 갑작스럽게 변할 경우 성능 비용이 발생할 수 있습니다. 또한, 섀도우 맵의 크기는 라이트당 16kx16k로 제한되며, 포인트 라이트는 16k 큐브맵으로 지원됩니다. 더이상 뎁스 바이어스(Depthbias)가 불필요해져 ShadowAcne, PeterPanning 등의 현상이 발생하지 않습니다. 또한, 물리 기반의 디노이징된 음영 ..

[UE5] 나나이트 사용하기

나나이트 먼저 다음 글을 참고하면 좋습니다. [게임 개발/Unreal Engine] - [UE5] 나나이트 소개 나나이트 활성/비활성 스태닉 메쉬 선택하여 나나이트 활성화합니다. 뷰모드에서 나나이트가 적용 되었는지 확인할 수 있습니다. '나나이트 시각화 > 트라이앵글'을 선택합니다. 나나이트가 적용되지 않은 메쉬는 검정색으로 표시됩니다. 유리 같은 반투명 재질은 나나이트를 지원하지 않으므로 꺼줘야 합니다. 나나이트를 적용하면 액자의 내용이 보이지 않는 것을 확인 할 수 있습니다. 나나이트 프록시 메쉬 나나이트를 사용할 수 없는 플랫폼에서는 나나이트 메시 대신에 나나이트 프록시 메시가 사용됩니다. 이 프록시 메시는 폴리곤 2000개 이하로 간소화된 메시입니다. 프록시 트라이앵글 퍼센트를 조정하여 프록시 메..

[UE] Unreal Egnine 쿠킹 By the Book, On the Fly

Unreal Engine에서 Cooking은 게임 데이터를 빌드 가능한 형식으로 변환하는 프로세스입니다. 이 프로세스에서 "By the Book"과 "On the Fly" 두 가지 방법이 있습니다. 이 두 가지 방법은 각각의 장단점이 있으며, 게임에 따라 어떤 방법이 더 적합한지 결정해야합니다. 일반적으로 작은 규모의 게임에서는 "By the Book" 방법을 사용하고 대규모 게임에서는 "On the Fly" 방법을 사용하는 것이 일반적입니다. Unreal Engine에서는 게임 데이터가 매우 큰 경우 "On the Fly" 방법과 "By the Book" 방법을 혼합하여 사용할 수도 있습니다. By the Book 이 방법은 게임 데이터를 빌드 가능한 형식으로 미리 컴파일하는 것을 의미합니다. 이 방법..

[수학] 등차 수열

\(\mathbf{a_1}\) \(\scriptstyle\text{+d}\to\) \(\mathbf{a_2}\) \(\scriptstyle\text{+d}\to\) \(\mathbf{a_3}\) \(\scriptstyle\text{+d}\to\) \(\mathbf{a_4}\) 앞의 수와 일정한 차이가 있는 수열을 '등차 수열'이라 합니다. \(\mathbf{a_4} = \mathbf{a_1} +3d\) 등차 수열의 4번째 항 \(\mathbf{a_4}\)는 \(\mathbf{a_1}\)에 d를 4번 더한 값입니다. \(\mathbf{a_1}\)을 초항, d를 공차라 합니다. [등차 수열의 일반항] \(\mathbf{a_n} = \mathbf{a_1} + (n - 1)d\) 등차 수열의 합은 다음과 같이 ..

[UE] 언리얼 엔진 배포 빌드(Unreal Engine Installed Build)

Unreal Engine 소스 코드 받기 Unreal Engine 소스 코드 받기는 다음 페이지 참고하여 GitHub에서 받습니다. https://docs.unrealengine.com/5.1/ko/downloading-unreal-engine-source-code/ 언리얼 엔진 소스 코드 내려받기 소스 코드 저장소에 접속하여 언리얼 엔진 최신 빌드를 다운로드하는 법에 대한 단계별 안내입니다. docs.unrealengine.com Unreal Engine 빌드 설정 및 빌드하기 Unreal Engine 소스 코드를 모두 받으면 순차적으로 배치 파일들을 실행합니다. Setup.bat 파일 실행 GenerateProjectFiles.bat 파일 실행 실행을 마치고 나면 UE5.sln 파일이 생성 됩니다. ..

[UE5] 모션 매칭(Motion Matching) 설정

[게임 개발/Unreal Engine] - [UE5] 모션 매칭(Motion Matching) Motion Matching Node 모션 매칭의 노드가 모션 매칭의 핵심입니다. 이 노드의 주요 입력으로는 Database와 Trajectory(궤적)입니다. Trajectory는 캐릭터에 컴포넌트로 추가한 이동 궤적을 예측하기 위한 컴포넌트를 입력합니다. Trajectory Component Trajectory 컴포넌트는 CharacterMovement 컴포넌트와 함께 동작하도록 설계되었습니다. 모션 궤적 컴포넌트는 미래의 움직임에 대한 예측뿐만 아니라 과거 움직임의 기록 히스토리도 지원합니다. 지평선 궤적에 시간 또는 거리 제한을 설정해야 합니다. 모션의 예측은 2초 모션의 과거 기록은 0.5초를 기록하도..

[Unreal Engine] 콘솔 커맨드 제작 방법 (Console Command)

RegisterConsoleCommand 사용 방법 void UMyConsoleCommand::RegisterConsoleCommands() { FConsoleCommandWithArgsDelegate SpawnCmdDelegate; SpawnCmdDelegate.BindUObject(this, &UMyConsoleCommand::EXEC_SpawnNpc); IConsoleManager::Get().RegisterConsoleCommand( TEXT("spawn.npc"), TEXT("spawn.npc [BP이름] [Count] [Distance]"), SpawnCmdDelegate); } void UMyConsoleCommand::EXEC_SpawnNpc(const TArray& Args) { if (..

[UE5] 모션 매칭(Motion Matching)

Motion Trajectory Motion Trajectory Plugin을 사용하도록 합니다. BP_ThirdPersonCharacter 블루프린트를 열어서 캐릭터에 CharacterMovementTrajectory 컴포넌트를 추가합니다. 그리고, CharacterMovementTrajectory에서 Debug Draw Trajectory를 켜줍니다. 다음과 같이 블루프린트 노드를 작성합니다. 실행하면 다음과 같이 캐릭터의 예측과 트랙 히스토리를 시각화 하여 볼 수 있습니다. Pose Search Pose Search Plugin을 사용하도록 합니다. Motion Database와 Motion Database Config 데이터 어셋을 생성합니다. Motion Database 설정 Motion Dat..