일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 수학용어정리
- leveleditor
- 언리얼엔진
- directx
- 언리얼ai
- 자료구조정리
- c++
- c++용어정리
- 게임개발
- livrary
- bttask
- ipc(inter process communication)
- 언리얼엔진5
- 자료구조
- unrealengineai
- 언리얼엔진공부
- 영단어정리
- 언리얼비헤이어비어트리
- 25.06.11dir
- c++class
- 자료형타입
- uaiperception
- 월드아웃라이너
- c언어정리
- c++porinter
- 각도변환
- 프로그래밍일기
- 게임엔진튜토리얼
- DX
- 프로그래밍
- Today
- Total
목록2025/06/09 (10)
루리코딩 세상

언리얼 엔진에서 열거형 (Enum)은 고정된 이름을 가진 상수 값의 집합이다.가독성과 유지 보수성을 높이고, 명확한 상태&옵션을 정의하는데 사용한다.정수(int) 값에 이름을 붙여주는 사용자 타입의 정의이다.(예 : 게임 내 상태, 무기 타입, 행동 타입 등 선택 가능한 값을 나열할 때 사용한다.)enum class ECharacterState{ Idle, Running, Attacking, Dead};🔹 사용 예시 (게임 로직)✅ 캐릭터 상태 관리Switch on E_CharacterState→ Idle: 대기 애니메이션→ Run: 이동 애니메이션→ Attack: 공격 애니메이션✅ UI 버튼으로 선택지 표시Enum으로 난이도 설정:- Easy- Normal- Hard🔸 Enum..

전투시스템을 구현할 핵심 기능 [블루프린트 클래스 : 캐릭터][블루프린트 클래스 : 캐릭터를 상속받은 커스텀 BP][블루프린트 클래스 : AI 컨트롤러 클래스][인공지능 : 비헤이비어 트리][인공지능 : 블랙보드]각각의 클래스들이 상속이 잘되도록 세팅에 주의하자. [서비스 기능] : 어느 곳이든 할당이 가능한 기능이다.데코레이터(조건설정) 과는 다른 값을 할당하는 등의 기능을 한다. [함수 오버라이드]ActivationActivation AIDeactivationDeactivation AISearch StartSearch Start AITickTick AI

어떤 감지를 받았을 때에 감지를 시작할 것인가?[AIPerception]-[디테일]-[AI퍼셉션] [블랙보드 디테일][베이스 클래스] 꼭 설정해주기 BT 테스크 블루프린트 베이스- 사용 간의 주의사항을 익힌다. 성공과 실패를 꼭 설정 해주어야한다.- [블랙보드] [비헤이비어 트리] [블루프린트 AI 컨트롤러 : 함수오버라이더블] [BT 데스크 블루프린트 베이스] 간의상호 작용에 대해서 이해하고 정리한다. [ Finish Execute ]Success 체크박스 체크를 통해서 성공으로 처리했다. 조건문[데코레이터 : Blackboard] : [비헤이비어 트리] -> 데코레이터의 기능을 간단하게 프로젝트 예제로 배울 수 있었는데비헤이비어 트리 노드의 실행 여부를 제어하는 조건부..

~rise라는 용어가 중복적으로 자주 등장해서, 관련된 연산 개념을 찾아봤다.게임 개발이나 그래픽스, 물리 연산에서 자주 쓰이는 Resterize, Normalize 외에 다른 것은 없을까?Rasterize (래스터화)✔ 개념벡터 또는 수학적 이미지(선, 곡선 등)를 픽셀 단위로 바꾸는 작업입니다.즉, 해상도에 맞춰 격자(Grid)화하는 것을 의미합니다.✔ 사용 예텍스트, 폰트, 도형의 픽셀 표현3D 모델의 렌더링 (GPU 단계)충돌 맵 생성 시 격자 기반으로 정보 저장✔ 예시원형 도형 → 래스터화 → 100x100 이미지에 픽셀로 변환Normalize (정규화)✔ 개념벡터의 길이를 1로 만드는 작업입니다.단위 벡터(Unit Vector)를 만드는 것이며, 방향만 남기고 크기를 제거하는 것이죠.✔ 사용 ..
다형성(polymorphism)이란? OOP의 중요한 특징 중 하나이다. 동일한 이름의 메서드나 함수가 다른 객체나 상황에 따라 다양한 방식으로 동작할 수 있다는 개념이다.프로그래밍에서는 같은 이름의 메서드가 서로 다른 객체에 따라 다르게 동작할 수 있다는 것을 의미한다.다형성의 구현 방법오버라이딩자식 클래스가 부모 클래스의 메서드를 재정의하여 사용하는 방법이다. 오버로딩같은 이름의 메서드를 다른 인자를 가지도록 정의하는 방법이다. 일반 함수 및 일반 데이터 유형 (Parameter Polymorphism)프로그래밍 언어에서 특정 타입에 구애받지 않고 동작할 수 있도록 하는 기능이다. 다형성의 장점코드 재사용성 증가부모 클래스의 메서드를 자식 클래스가 재사용하면서도 각 클래스에 맞는 기능을 추가할 수있다..

프로젝트 목표기존의 생성한 [Blue Print Class : Character (BP_Enemy) ] 에 상속받은 Ai에 활용할 기능을 구현한다. 사용될 클래스는[Blue Print Class : AIController][BP_AIController_Example] 에서 [Event On Possess]를 통해서 빙의를 해주었다. [Behavior Tree] 와 [Black bord]를 설정하자먼저 정상적으로 작동을 확인하기 위해서,[Behavior Tree] = [ROOT] - [Sequence] - [Wait] 으로[BP_AIController_Example]에서 선언한[Event On Possess]외에 변수로[Behavior Tree (비헤이비어트리 : 변수)] 를 만들었다. 정상적으로..

동작 구현에 필수적으로 필요한 애니메이션을 프로젝트 파일로 불러왔으나, bone의 불일치로 인한 리타겟기능을 수행하여, 애니메이션이 다양한 본에도 알맞게 작동하도록 하는 기능에 대해서 정리한다.복제한 리타깃 소스 에셋을 원하는 Bone이 적용된 [Skeleton bone] 으로 적용해주었다.기존의 Mash와 이번에 사용하는 Mash 같은 모양의 에셋이어서, 이름을 혼동되지 않도록 저장 후에 진행한다이후의 정상적인 작동 여부를 확인하기 위해서 [Montage] 기능을[Blue print : character] 노드에 추가하여서 확인하는 작업을 진행하였다.미리 만들어두었던 프로젝트 세팅의 [InputAction]의 Event를 활용하여 [Montages]를 할당하여줬는데,새로운 문제점이 생겼다. 몽타주 [F..
void AC02_DrawDebug::Tick(float DeltaTime){ Super::Tick(DeltaTime); FVector location[5]; for (int32 i = 0; i GetTimeSeconds() * 5.0f) * 200.0f; float x = EaseInOutQuad(FMath::Sin(GetWorld()->GetTimeSeconds() * 5.0f)) * 200.0f; location2.Z += x; DrawDebugCapsule(GetWorld(), location2, 200, 50, FQuat::Identity, FColor::White, false, -1, 0, 5); DrawDebugDirectionalArrow(GetWorld(), lo..

피격시 색상 변경하기피격시 피격방향으로 컴포넌트 정면회전피격시 밀림처리 [Launch Character]카메라 쉐이크 기능[Get Player Camera Manager] : 플레이어의 카메라를 갖고온다.[Start Camera Shake] : 카메라의 움직임을 [Shake Class]의 설정대로 시작한다.피격시 사운드 처리- 사운드플레이 관련 중요도 낮음 로 인해서 추후 정리 예정 [정리 예정]- 2D, 3D 플레이 환경에서 사운드 플레이 특징 및 특성 개념 정리- 오버랩 발생 시 사운드 재생 관련 노드 설정 및 명령어 정리[블루프린트 : 액터] 클래스로 Sound를 선언시켜야한다.이후 충돌을 감지하는 로직과, 충돌 감지시 사운드를플레이해주는 노드를 설정해줘야 정상적으로 작동한다.피격시 이펙트 발생 이..

피격시 데미지를 입은 상태에서 [MaxHealth] 값이 0이 되었을 때 [Custom Event]로 Dead 처리해주는 방법이다.[블루프린트 : 캐릭터 (BP_Enemy)]로 선언되어있는 클래스 내부에서, 2가지의 경우로 나눠주어야한다.Health(변수)가 남아있을 때 즉 Damaged(변수)를 받고 있는 상태인가? Health(변수)가 남아있지 않아 '0'인가?게임에서 Health가 '0' 일때는 사망처리로 넘길 것이다. 다음으로는 [Play Anim Montage] 기능을 활용해서, 몽타주로 플레이될 애니메이션을 선택해준다.[Event AnyDamage]는 컴포넌트에 데미지를 받을때를 의미한다. [End_Dead] 처리를 위한 몽타주 내부의 이벤트 그래프는 오버라이드된 Name을 꼭 알맞게 설정 ..