전체 글 101

[내일배움캠프 - 언리얼] DAY 51 - 팀 프로젝트 진행

스탯과 버프 테스트캐릭터에 컴포넌트들을 넣고 잘 작동하는지 테스트 해보았다. 스탯에 SetBaseStat(StatData) 를 InitBaseStat으로 변경하여 data를 넘겨주면 해당 값으로 basestat과 currentstat을 초기화하도록 하였다. 게임스테이트레벨과 웨이브의 데이터를 다룰 데이터테이블 생성 대략적인 게임 진행 스테이지 시작 -> 플레이어 스폰 지점에 스폰 -> 웨이브 시작 -> 몬스터 스폰 지점에 스폰 -> 웨이브의 시간이 끝 or 웨이브의 몬스터 전부 처치 or 몬스터 일부 처치 -> 다음 웨이브 시작 -> 모든 웨이브 클리어 -> 포탈 생성 몬스터 처치시 점수 증가

[내일배움캠프 - 언리얼] DAY 50 - 팀 프로젝트 진행

Enum 스탯버프 매니저에서 스탯 참조를 위해 타입 파일을 생성하여 Data 를 옮겨주었다. 버프 매니저버프 타입으로 add, mul을 열거형으로 만든다.버프아이디, 해당 스탯, 버프 타입, 값, 지속 시간을 가진 버프데이터를 가진 구조체를 만들어준다. 함수- 버프 추가- 버프 제거- 버프 계산- 버프 적용 변수- 활성화 버프 배열 TickComponent에서 활성화 된 버프들의 지속 시간을 줄인다. 개선 사항배열에서 버프를 제거할 때 배열을 돌면서 지우지 않고 배열 순서가 상관이 없으므로 RemoveSwap을 사용

[내일배움캠프 - 언리얼] DAY 49 - 팀 프로젝트 진행

체력 스탯 조정캐릭터의 스탯 관리에서 현재 플레이어의 체력은 베이스와 현재 관계 없이 현재 체력 하나만 있어도 됨-> 스탯 이넘과 구조체에서 최대 체력만 남기고 현재 체력은 스탯 컴포넌트 변수로 따로 관리하도록 함 버프 매니저 기획버프의 종류를 즉발, 단기 지속, 영구 지속으로 나눈다.버프의 각 클래스를 만들도록 한다.버프매니저에서 버프 클래스 배열을 만들어 현재 적용 중인 버프들을 배열에 추가한다.타이머로 버프의 효과와 지속시간을 관리한다.버프가 적용되거나 끝날 때 등 버프효과를 리로드한다.

[내일배움캠프 - 언리얼] DAY 48 - AI 특강 1부

길찾기 - NavMeshAI가 걸어다닐 수 있는 영역을 미리 계산해둔 지도A* 알고리즘-> NavMesh 빌드-> A* 경로 탐색-> 경로 후보 탐색-> 최소 비용 우선 탐색-> 경로 반환-> 개발자가 호출 FSM 개론Finite State Machine (유한 상태 기계) State (현재 상태)Transition(상태 전환 조건)Action(현재 상태에서 하는 행동) 상태를 클래스로 분리하여 구현- Switch 삭제- 상태 추가시 새 클래스 1개만 만들면 됨- 각자 자기 데이터를 들고 있음- State 클래스만 교체하여 재사용 가능

[내일배움캠프 - 언리얼] DAY 47 - 인벤토리 시스템

인벤토리 시스템ItemData.h#pragma once #include "CoreMinimal.h"#include "Engine/DataTable.h" // 데이터 테이블 기능을 쓰기위해 추가!#include "ItemData.generated.h"class ABaseItem; // 아이템을 만들고 주석을 풉니다.USTRUCT(BlueprintType) //구조체를 블루린트에서도 쓸 수 있게해주겠습니다struct FItemData : public FTableRowBase // 구조체가 `데이터 테이블의 한줄`이 되도록 만드는 역할{ GENERATED_BODY()public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Item Data") FName..

[내일배움캠프 - 언리얼] DAY 46 - 머티리얼 실습(NPR 재질 만들기)

PBR 재질을 만들 때와 다른 점NPR의 경우 별도로 라이팅 모델 자체를 구현해야 하는 경우가 많음라이팅 모델램버트 모델- 기초적인 반사 모델I : 난반사 결과값kd : 디퓨즈 컬러 값(base color)N : 표면 방향 벡타L : 빛 방향의 역벡터SkyAtmosphereLightDirection- 라이트 인덱스에 맞는 라이트의 역방향 벡터를 반환해준다하프 램버트 모델툰 쉐이더커브 아틀라스커브 클래스 : CurveLinearColor 에디터에서 CurveAtlasRowParameter 노드 추가아틀라스->커브 순으로 파라미터 설정 그림자에 패턴 넣기

[내일배움캠프 - 언리얼] 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 : 개발 / 디버그 단계에서 버그를 빨리 터뜨..