[TIL] 2026-02-05 | 머티리얼 실습 NPR 재질 만들기, 카툰 효과
·
내배캠Unreal_TIL/UE
역량강화 분반 - TA1. NPR🎯 PBR — 물리 기반BRDF 모델에 기반하여 빛의 물리적 상호작용을 계산 에너지 보존 법칙 준수 → 현실적 반사 주로 Metallic/Roughness 모델 사용🎨 NPR — 비사실적 / 아트풍렌더링이 실제 광학 법칙에서 일부 벗어날 수 있음 셀 셰이딩, 라인 아웃라인, 톤 스텝핑 등이 대표적 👉 NPR의 경우 별도로 라이팅 모델 자체를 구현! 2. 램버트 모델(Lambertian reflection) I(diffuse) : 난반사 결과값입니다.kd : 디퓨즈 컬러 값, base color에요.N : 표면 방향 벡터L : 빛 방향의 역벡터(빛 방향 아님!)3. 하프램버트 모델램버트를 개선한 모델-1 ~ 1 > 0 ~ 1 로 변환 + BRDF Bidirectiona..
[TIL] 2026-02-04 | Gameplay Effect, AnimMontage
·
내배캠Unreal_TIL/UE
역량강화 분반 - 챌린지 - GAS1. Gameplay Effect👉 Attribute를 변경하는 방법을 정의한 Blueprint 또는 Class BP만으로도 충분히 구현 가능- 역할Attribute 변경 (Health, Stamina, Mana 등)Tag 부여/제거 (상태 표시)버프/디버프 적용 (공격력 증가, 속도 감소 등)상태 이상 (독, 화상, 빙결)쿨다운 (Ability 재사용 제한)- 직접 수정 vs GE항목직접 수정Gameplay Effect네트워크 복제수동 처리 😓자동 ✅데미지 계산직접 코딩 😓Modifier로 정의 ✅재사용매번 코딩 😓한 번 만들면 재사용 ✅추적어려움 😓Active Effects 확인 ✅버프/디버프복잡한 타이머 😓Duration으로 자동 ✅조건if문 지옥 😓T..
[TIL] 2026-02-03 | 머티리얼 실습 PBR 재질 만들기
·
내배캠Unreal_TIL/UE
역량강화 분반 - TAPBR 텍스처 요소Base(Alebedo, Diffuse) 텍스처Normal텍스처Roughness텍스처Metal텍스처AO텍스처실습1. 팹에서 텍스처 임포트- orm 파일R 채널 - 엠비언트 콜루전, Ambient OcclusionG 채널 - 거칠, RoughnessB 채널 - 메탈릭, metallic 2. 텍스처에 색 입히기👉 노드가 많아질 때 Output 노드에 이름을 붙여서 Input으로 쓸 수 있음 3. Normal TextureMF - Material FunctionWS - World Space노멀 값으로 연산을 할 때 편하기 때문에 WS로 만드는게 좋다. 4. ORM Texture메탈릭, 거칠기, AO 연결샘플러 타입 - Linear Color > 잘못들어가면 계산이 틀..
[TIL] 2026-02-02 | 프로그래머스 햄버거 만들기
·
내배캠Unreal_TIL/C++
알고리즘 코드카타 1. WHAT-문자열 자르기s.substr(시작위치, 문자열 길이) 2. HOW햄버거 만들기#include #include using namespace std;int solution(vector ingredient) { int answer = 0; string stk=""; for(int n:ingredient){ stk+=n+'0'; if(stk.find("1231",stk.size()-4,4)!=string::npos){ answer+=1; stk=stk.substr(0,stk.size()-4); } } return answer;}3. TROUBLE- 프로그래머스 출력 크기 초과 ..
[TIL] 2026-01-30 | Post Process로 흐림 효과 구현, 감속, 최종 완성
·
내배캠Unreal_TIL/UE
C++와 Unreal Engine으로 3D 게임 개발 과제 8 1. WAHT부정 아이템 2가지 추가 2. HOW- 시야 제한 아이템 + 데미지먹으면 5초 시야 흐려짐 먼저 BaseItem을 상속받아 Poison 아이템 클래스를 생성한다.#include "PoisonItem.h"#include "SpartaCharacter.h"APoisonItem::APoisonItem(){ PoisonDuration = 5.0f; ItemType = "Poison";}void APoisonItem::ActivateItem(AActor* Activator){ Super::ActivateItem(Activator); if (Activator && Activator->ActorHasTag("Player"..