전체 글 87

TIL260616 - Ch3 - 2 - 카툰 렌더링

1. 핵심 개념하프 램버트 & 램버트MPC블린-퐁 스페큘러 2. 상세 내용관련 문서에 참고한 이득우의 카룬 렌더링 강의 내용을 정리함2.1. 카툰 렌더링2.1.1. 카툰 렌더링의 기본 원리렌더링, 메터리얼, Diffuse, Specular, BRDF 기본 개념(램버트 디퓨즈, 램버트 BRDF가 원론적)반사량에 따라 정해지는 표면에 들어오는 빛의 양 > Illuminance디퓨즈 계산 식은 $cos \theta$ (세타는 점 p에서 노말 벡터 N과 빛의 방향 라이트 벡터 L 사이의 각)이때 벡터의 크기가 1이라면 $\vec{a} \cdot \vec{b} = a_x b_x + a_y b_y = \Vert{}\vec{a}\Vert{} \Vert{}\vec{b}\Vert{} \cos\theta$ 에 의해서 컴퓨..

TIL260615 - Ch3 - 1 - 표정, 메테리얼 슬롯, 양면 렌더

1. 핵심 개념표정 구현2. 상세 내용챕터3 팀프로젝트를 기획하면서 전체적인 아트워크를 아이돌과 아이돌을 쫓는 육수(?) 팬덤으로 카툰풍에 에셋을 준비해야 할 필요가 생겼다. 우선 캐릭터 에셋을 준비하기 위해 자료를 찾는 중 personal 기준으로 무료로 제공하는 에셋을 찾았다. CiciToon Character Shader Pak V3.5 | Fab CiciToon Character Shader Pak V3.5You can find my other project in:MrCici | PatreonYou can find toon shader tutorial in:MrCici - YouTubeStill struggling with complex cartoon rendering nodes? This out..

TIL260612 - Unreal

1. 핵심 개념오늘 한 일 리깅하기2. 상세 내용3. 질문 및 해결 (Q&A)TODO: 치마 본에 물리 넣기(kawaii physisc)옷에 대하여 아웃라인 쉐이더 적용애니메이션 리타게터로 라이라 프로젝트와 동기화IMC, IA 설계 후 애니메이션 정상 동작하는지 실험사용된 카툰렌더링, 텍스처 매핑 분석안쓰는 쉐이프키 정리4. 관련 문서 (Links)[[이전 관련 노트]]참고한 외부 링크

TIL260611 - Unreal - GAS4

1. 핵심 개념GE링 ASC에 태그 부여하는 방식 고민2. 상세 내용3. 질문 및 해결 (Q&A)Q1언리얼 GAS에서 ASC에 태그를 부여할 때SetAndApplyTargetTagChangesApplyGameplayEffectSpecToTarget는 각각 무슨 차이가 있어?후자는// GameplayEffectAggregator.cppFActiveGameplayEffectHandle FActiveGameplayEffectsContainer::ApplyGameplayEffectSpec( const FGameplayEffectSpec& Spec){ // ① 태그 조건 검사 // Owner(Target)가 Blocked 태그 갖고 있으면 차단 if (Owner->AreAbilityTagsB..

TIL260610 - Unreal - GAS3

1. 핵심 개념Gameplay Cue2. 상세 내용2.1. Gameplay Cue Gameplay Cue는 게임플레이 로직에 영향을 주지 않는 부가 효과(FX) 전용 기능이다. 하나의 게임플레이 태그가 하나의 게임플레이 큐에 대응되며 독립된 GameplayCueManager가 태그를 기반으로 FX 효과를 재생한다.GameplayCue는 게임플레이 이펙트에서 태그를 지정해서 자동 발동할 수 있으며, 태그를 사용하여 원하는 타이밍에 직접 호출도 가능하다. 또한 Gameplay Cue에 사용되는 태그는 특정 폴더 내에 블루프린트 이름과 자동으로 매칭하는 기능을 지원한다.(GC_DAMAGE_EFFECT 블루 프린트를 GameplayCue.Damage.Effect 태그에 대응하는 식) GameplayCue의 종..

TIL260609 - Unreal - GAS2

1. 핵심 개념GameFeature 플러그인AttributeSetGameplayEffect2. 상세 내용2.1. AttributeSetAttrubuteSet은 다수의 FGameplayAttributeData를 묶어 관리하는 언리얼 오브젝트로 5.6버전 기준 cpp로만 생성이 가능하다.하나의 스탯에 대해서 max값을 GameplayAbilityData로 추가 설정하는 것을 권장한다.보유한 스탯의 BaseValue가 변하면 AttributeSet의 이벤트 함수가 호출된다.FGameplayAttributeDataFGameplayAttributeData는 단일 float 값이 아니라 내부적으로 BaseValue(기본값)와 CurrentValue(현재값) 두 가지 상태를 유지하며, Gameplay Effect(G..

TIL260608 - Unreal

1. 핵심 개념GameMode & States2. 상세 내용 2.1. GameMode & States게임 플레이에 관한 정보는 GameMode와 GameStates에 의해 관리된다.게임을 구성하는 규칙들은 게임 모드를 구성한다. 이때 게임모드는 다음과 같은 룰을 포함한다.플레이어(또는 spectators)의 목록게임을 어떻게 들어오는지, 스폰 지역과 스폰 행동게임이 정지되었는지, 정지 되었다면 어떻게 처리되는지레벨 간 전환룰과 관련된 이벤트는 다른 모든 플레이어들에 의해 추적되거나(tracked) 공유될 수 있어야 한다. 이러한 정보는 GameState에 의해 저장되고 동기화 된다. 이때 GameState는 다음과 같은 정보(information)를 포함한다.러닝 타임각 플레이어가 언제 접속(join) ..

TIL260605 - Unreal - GAS1

1. 핵심 개념UIManager 변경안GASNamed Slot: UMG에서 위젯은 자식을 가질 수 없는데 Named Slot을 사용하면 가능2. 상세 내용2.1. UIManager 변경안(메모)기존에 만들어둔 MVP 패턴 기반 UIManager-UIBase-UIRoot 구조를 Lyra 프로젝트의 구현을 반영하고 MVVM 패턴을 적용하는 식으로 리팩토링 하려고 한다.MVVM 패턴 적용: 기존 리플렉션 기반 Presenter 바인딩 구조를 엎고 MVVM 패턴을 적용한다.UI Extension System(동적 UI 슬롯 주입) 반영Soft Reference 기반의 지연 로딩config = Game을 활용한 데이터 주도 설계 (Data-Driven):Abstract 키워드로 블루프린트 강제2.2. Input ..

TIL260604 - Unreal

1. 핵심 개념TMap> 쓰는 법CDO2. 상세 내용2.1. TMap> 쓰는 법언리얼 엔진의 리플렉션 시스템(UPROPERTY 매크로)은 중첩된 컨테이너(Nested Containers)를 지원하지 않는다. 내용물의 포인터들이 가비지 컬렉터(GC)에 의해 메모리에서 날아가는 것을 방지하려면 UPROPERTY() 선언이 필수적인데, 이 규칙이 충돌하여 UHT(Unreal Header Tool) 컴파일 에러가 발생함2.2. CDO(Class Default Object) CDO의 성능상 이점언리얼 엔진에서UCLASS() 매크로가 붙은 모든 클래스는 메모리 상에 CDO를 생성하고 유지한다.액터를 스폰할 때마다 생성자를 호출하고 컴포넌트를 새로 조립한다면 성능 저하가 발생하지만, 언리얼에서는 메모리에 이미 생성자..

TIL260602 - 개인

1. 핵심 개념이력서를 못쓰는 나에 대한 성찰2. 상세 내용오늘은 일기장처럼 진행하겠다.오늘은 내일배움캠프에서 커리어데이 파트가 진행되는 날이었다. 이력서를 작성하는 세션이였는데 이력서에 넣을 학력이며, 자격증, 경력, 대외활동이 그 무엇하나 없었다. 말 그대로 텅 빈 이력서였다.불행 중 다행인 것은, 게임 업계에서는 포트폴리오가 특출나면 어필할 여지가 있다는 것이다. 하지만 포트폴리오를 보이기에는 나의 개발 이력이 너무 짧았다. 24년도에 개발 공부를 해서 25년에 그나마 유니티로 친구 졸업프로젝트 8달 같이 진행한 것이 나의 개발 포폴에 전부다.나는 스스로 그래도 아트워크도 약간이나마 가능하고, 기획을 명세서부터 위키로 총 정리한 경험이 있으니 제너럴리스트? 라는 점에서 차별점이 있을까 여겼지만 클라..