2026/01 20

[내일배움캠프 - 언리얼] DAY 43 - 아이템 인터페이스

인터페이스란 클래스가 반드시 구현해야 할 함수 목록만을 미리 정의해 두고, 실제 함수의 동작은 해당 클래스를 상속받거나 구현하는 쪽에서 자유롭게 작성할 수 있도록 하는 일종의 계약서 상속은 부모의 실제 구현을 가져다 씀인터페이스는 함수의 틀만 빌려 쓰고 그 안의 코드는 직접 만들어야 함인터페이스의 장점- 결합도(커플링) 감소- 확장성 향상- 다형성 극대화

[내일배움캠프 - 언리얼] DAY 42 - 프로파일러 CI/CD

Continuous Integration / Continuous Distribution지속적인 통합 / 지속적인 배포빌드 산출물 추출Content Management- Package Project : 프로젝트 빌드 전체를 진행- Cook Content : 리소스 쿠킹(게임에 사용하기 최적화된 형태로 가공)만 진행Binary Configuration- DebugGame : 디버그 환경으로 빌드- Shipping : 출시 환경으로 빌드디버깅1. CTRL + ALT + P2. 프로세스 필터링 -> Unreal3. 중앙의 프로세스 목록에서 프로세스 선택4. 우측 하단 연결 선택 디버깅과 프로파일링AssertionException 대신 사용 (성능 때문)- check : 개발 / 디버그 단계에서 버그를 빨리 터뜨..

[내일배움캠프 - 언리얼] DAY 41 - TA - 머티리얼 에디터

색공간여러 텍스쳐들은 각각의 여러 프로그램에 따라 제작되면 각 목적에 따라 색공간을 갖고 있다. Linear : 프로그램 내에서 선형적으로 계산하기 위한 색공간sRGB : 사람의 눈에 맞춰서 명도를 보정한 색공간 ACES 색공간Academy Color Encoding System, 영상 업계 표준 색범위, 채도가 변하는 단점언리얼 엔진은 씬뷰에서 ACES라는 색공간을 사용함톤매핑이 되는 단계에서 해당 색공간으로 변환됨톤매핑쉐이더를 연산하며 나온 색의 여러 값들을 모니터에 출력할 수 있도록 색을 변환하는 작업머티리얼 제작 기초 - 텍스처 활용노말맵하이폴에서 로우폴 단계로 가면서 유실된 디테일을 살리기 위한 기법개별 픽셀의 방향을 수정하여 표면에 유의미한 물리적 디테일을 더하는데 사용월드 포지션 오프셋오브젝..

[내일배움캠프 - 언리얼] DAY 40 - GAS 2강

GAS (Gameplay Ability System)에픽게임즈가 만든 공식 게임플레이 프레임워크핵심 구성 요소- Gameplay Tag- Gameplay Ability (직업 등)- Attribute Set- Gameplay Effect- Gameplay Cue (사운드 등 로컬에서 처리해도 되는 연출들)Attribute캐릭터의 수치 데이터게임 수치 관리직접 구현의 문제점1. 네트워크 복제를 직접 구현해야함UPROPERTY(Replicated, On_Rep=...)float Health = 100.f;2. Timer 직접 구현 (버프 등)3. UI 직접 연결4. if 문.... Tag, 데미지 계산을 직접 구현5. 최소/최대값 매번 Clamp GAS의 가장 큰 장점자동 네트워크 복제가 가장 큼실습

[내일배움캠프 - 언리얼] DAY 39 - TA - 렌더링

ShaderGPU에서 실행되는 작은 프로그램으로 3D 객체에 색, 질감, 빛 반사, 투명도 등 시각 효과를 계산하고 적용하는데 사용 렌더링 파이프라인3차원의 데이터를 2차원의 픽셀 이미지 데이터로 변환하기 위해 GPU에서 단계적으로 수행되는 처리 절차HLSL 구조와 기본 문법struct VertexInput { float3 position : POSITION; // 정점 위치 (입력) float2 uv : TEXCOORD0; // 정점 UV 텍스처 좌표 (입력) float3 normal : NORMAL; // 정점 법선 벡터 (입력)};struct VertexOutput { float4 position : SV_POSITION; // 클립 공간 위치 (출력..

[내일배움캠프 - 언리얼] DAY 38 - 오토마타와 스테이트 머신

스테이트 머신 (상태기계)- 객체가 어떤 상태인지 명확히 정하고, 그 상태에서만 가능한 행동과 전환을 허용하는 구조- 상황을 나누고, 그 상황마다 규칙을 고정하는 방식오토마타 이론추상적인 계산 모델 : 입력을 받아서 상태를 전환, 출력을 생성하는 수학적 기계 유한 오토마타푸시다운 오토마타튜링 머신 유한오토마타- DFA, NFA : 각 상태에서 각 입력마다 정확히 하나 / 0개 이상 의 전환게임에는 DFA가 적합 유한 상태 기계 (FSM)구현 방법- Enum + Switch계층적 상태 기계 (HSM)상태를 계층적으로 구성한 FSM 상속을 쓰면 계층 구조가 타입 시스템에 고정됨그러면 상태를 동적으로 재구성하기 어렵고 하나의 상태가 여러 상위 개념을 갖기 힘듬

[내일배움캠프 - 언리얼] DAY 37 - 액터와 매쉬

6번 과제 중 액터의 회전을 구현하는데 원하는대로 회전하지 않는 경우가 생겼다. 원인을 찾아보니 액터의 중심대로 회전을 시키는데 매쉬의 중심이 액터의 중심과 일치하지 않는 것이 이유였다. StaticMeshComp->SetRelativeLocation() 으로 매쉬의 중심을 액터의 중심과 일치하도록 이동하여서 중심을 맞추어 해결하였다.

[내일배움캠프 - 언리얼] DAY 36 - TA-수학 기초

벡터 (Vector)벡터는 방향과 크기를 함께 가지는 물리량이다수학적으로는 점 A에서 점 B로 향하는 차이로 표현된다A+B : 벡터의 합 (이동 누적)A-B : 두 점 간의 방향(거리)내적플레이어가 타겟을 바라보는지 판정(얼마나 같은 방향인가)-1 ~ 1 (Cos(θ) 값)외적법선 벡터 계산A, B 평면 법선행렬행렬은 숫자의 집합이다벡터를 변환하는 도구이다이동, 회전, 스케일 등의 변환은 행렬 곱셈으로 표현된다 여러 변환은 행렬곱 순서대로 결합된다SRT (계산은 TRS 순으로 먼저 계산)S : 스케일 R : 회전 T : 위치 좌표계언리얼 엔진은 Z-Up 왼손좌표계를 사용한다 Local : 자기 자신 기준World : 전역 공간 기준View : 카메라 기준 삼각함수삼각함수는 각도와 비율을 다루는 함수게임..

[내일배움캠프 - 언리얼] DAY 35 - GAS 1강

GameplayTags로 게임 설계점(.)으로 구분된 계층적 문자열 태그 시스템Character├── State│ ├── Jumping│ ├── Attacking│ └── Blocking└── Status ├── Stunned └── InvincibleCombat├── Window│ ├── Combo│ └── Parry└── Type ├── Melee └── Ranged특징- FName 기반 (경량, 빠름)- 에디터에서 관리 가능- 네트워크 복제 자동Tag 예시// C++ 예시 (참고용)FGameplayTagContainer CharacterTags;// Tag 추가CharacterTags.AddTag(FGameplayTag::RequestGameplayTag("C..