전체 글 169

230920 몬스터 체력바 / 인벤토리

몬스터 체력바 ( 머리 위에 띄우는 위젯 ) BlueprintClass -> UMG -> Monster -> MonsterInfo MonsterInfo ( 유저인터페이스 -> 위젯블루프린트 ) 생성 스케일박스 -> 크기박스 -> 캔버스패널 -> 보더 -> ProgressBar -> 텍스트 크기박스 Custom 200 * 100 보더 : 앵커 정중앙 / x위치 0, y위치 30 /정렬 0.5, 0.5 / 크기 200, 20 ProgressBar : 앵커 정중앙 / x위치 0, y위치 30 /정렬 0.5, 0.5 / 크기 195, 18 텍스트 : 앵커 정중앙 / x위치 0, y위치 -10 /정렬 0.5, 0.5 / 크기 169, 40 / 양쪽맞춤 가운데 C++ 에서 위젯 사용하기 위해서 Monster_Bas..

언리얼 5 2023.09.20

230919 StartMap - StartGameMode / StarHUD_Base | NewMap - SceneCapture2DComponent

AStartGameMode 을 상속받아서 StartGameMode 생성 기본 default 상태가 게임모드 -> 마우스가 사라지고 캐릭터를 조작하는데 집중 UI 모드 -> 캐릭터의 input 이 전혀 동작하지 않는다 즉, StartMap 은 Pawn 도 없고 캐릭터가 필요없기 때문에 UI 모드로 지정. #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "../Header/global.h" #include "../UI/StartHUD_Base.h" #include "StartGameMode.generated.h" UCLASS() class UNREAL_3TH_API AStartGameMode : pub..

언리얼 5 2023.09.19

230918 위젯

위젯 유저인터페이스 -> 위젯 블루프린트 MainHUD 생성 스케일 박스 -> 크기박스 -> 캠버스 패널 ( 자식이 여러 개 들어갈 수 있다 ) Beginplay -> 위젯 생성 -> MainHUD 선택 -> Add to ViewPort MainHUD 에 넣을 PlayerInfo 생성 스케일 박스 -> 크기박스 -> 캠버스 패널 -> 버튼 1개 생성 크기박스 -> ( 화면크기 옆에 custom ) 800 * 300 PlayerImg 캠버스 패널 -> 이미지 ( 크기 300 * 300 ) 앵커 설정 프로그래스바 userwidget 을 상속 받은 MainHUD_Base.h / MainHUD_Base.cpp 생성 -> MainHUD 가 상속 받음 모듈추가 "UMG" public class Unreal_3th ..

언리얼 5 2023.09.18

230915 몬스터 AI - Trace, Attack ( 스스로 )

2종류의 Task 생성 Monster -> AI -> 새 C++ 클래스 추가 -> BTTaskNode -> BTTMonAttack Monster -> AI -> 새 C++ 클래스 추가 -> BTTaskNode -> BTTMonTrace BTTMonTrace.h / BTTMonTrace.cpp 생성 #include "CoreMinimal.h" #include "BehaviorTree/BTTaskNode.h" #include "BTTMonTrace.generated.h" UCLASS() class UNREAL_3TH_API UBTTMonTrace : public UBTTaskNode { GENERATED_BODY() private: // 추적 대상 UPROPERTY(EditAnywhere, Category ..

언리얼 5 2023.09.15

230914 몬스터 AI - Move

몬스터 AI - Move, Patrol 블랙보드 조건에 따라 플레이어로 이동 여부를 결정하는 행동 트리 작성 네비메시 설치 WithinRange 데코레이터 작성 -> WithinRange 데코레이터의 설정값을 블랙보드에서 선택할 수 있게 변경 Patrol 시, 다음 이동위치를 랜덤하게 찾아서 이동하는 순찰 구현 1. 순찰 행동트리 작성 2. 순찰할 때 대기중일 경우 IDLE 상태로, 이동중일 때는 Move 상태로 변경 MonTrace 태스크 추가 - ExecuteTask 에서 추적대상을 향해 이동하는 부분 구현

언리얼 5 2023.09.15

230913 enum 찾기 / 카메라 진동 / 몬스터 인공지능

FName vs FString FName FName 은 콘텐츠 브라우저에서 애셋 이름을 지을 때, 스켈레탈 메시에서 본에 접근할 때 등등에 사용된다. FName 은 문자열을 하나하나 비교하지 않고, 주어진 문자열을 해싱한 테이블에 저장한 후, index 로 값을 비교한다. 이 때문에 키로 FName 에 접근하는 속도가 빠르며, 스트링에서 FName 으로의 변환도 해시 테이블을 사용하므로 상대적으로 빠르다. FName 은 대소문자를 구분하지 않고, 변경도 불가능하다. 조작할 수 없다. void AMonster_Base::BeginPlay() { Super::BeginPlay(); // 데이터 입력 // 몬스터 데이터 테이블을 가져온다. UDataTable* DataTable = LoadObject(null..

언리얼 5 2023.09.13

230912 무기 구현 / 몬스터 AI

언리얼엔진 기능 데칼 데칼을 넣으면 박스형태가 보이고, 데칼영역안에 물체가 있으면 박스에 겹치면 어떤 그림을 그리게 하게 한다. ex ) 총알 자국, 발자국, 수류탄 던지면 바닥에 크레이터 생성 effect -> 새폴더 -> Decal -> Decal Actor 상속 받은 BPC_Crater 생성 -> BPC_Crater가 사용할 머테리얼 생성 MT_Crater MT_Crater -> 도메인 Deferred Decal, 블랜드 Translucent MT_Crater -> 베이스 컬러 ( float 4 생성 ) 단순한 색상 표현 * 숫자 4 + 누르면 float 4 생성된다. MT_Crater -> Textture Object ( 표현하고 싶은 그림 ) -> Texture Sample * Texcoord ..

언리얼 5 2023.09.12

230911 싱글톤 / Trace / 사운드 / 수류탄 투사체 제작

GameInstance -> 엔진이 켜질 때 딱 하나만 존재하는 프로그램 종료까지 유지되는 객체 교체하고 싶다면? 편집-> 프로젝트 셋팅 -> 맵 & 모드 -> 게임 인스턴스 클래스 지정 내가 만든 것으로 지정하고 싶다면? c++ 클래스 -> 새 c++ 클래스 -> 모든 클래스 -> gameinstance 검색 -> gameinstance 을 상속받아서 자체적인 gameinstance 클래스 제작 (GameInstance_Base) 싱글톤 방식 교체해서 GameInstance_Base 구현 포인터 타입이 아닌 단순 멤버로 둔다 -> 객체가 생성되지 않음 -> 가져오는 함수 제작 #include "CoreMinimal.h" #include "Engine/GameInstance.h" #include "Eff..

언리얼 5 2023.09.11

230907 투사체 수정 / 카메라가 바라보는 방향으로 spine_01 뼈 회전 / 충돌 설정 / 몬스터 생성

투사체 수정 1. 투사체 클래스에 StaticMeshComponent 추가 2. 카메라가 바라보는 방향으로 투사체의 속도 적용 카메라가 바라보는 방향으로 spine_01 뼈 회전 결과 충돌 설정 1. 충돌 프로파일 추가 2. 프로파일 설정 3. 충돌 이벤트 생성 (1) OnHit (2) BeginOverlap (3) EndOverlap 몬스터 생성 1. 몬스터 클래스 생성 2. 몬스터 블루프린트 생성 3. 몬스터에 간단한 애니메이션 효과 적용 - Enum 으로 상태값을 만든 다음, 상태값에 알맞은 애니메이션을 재생하도록 애니메이션 블루프린트를 작성 함

언리얼 5 2023.09.11

230906 Effect_Base 구조 변경 / EffectMgr 싱글톤 / 투사체 생성

Effect_Base 구조 변경 -> DataAsset 활용 DA_Effect 1. EffectDataAsset.h / EffectDataAsset.cpp 제작 #include "../Header/global.h" #include "CoreMinimal.h" #include "Engine/DataAsset.h" #include "EffectDataAsset.generated.h" /** * */ UCLASS() class UNREAL_3TH_API UEffectDataAsset : public UDataAsset { GENERATED_BODY() public: UPROPERTY(EditDefaultsOnly, Category = "Effect", meta = (DisplayName = "Effect 와 ..

언리얼 5 2023.09.11