게임 개발 81

언리얼 5 - 헤드업디스플레이의 구현

헤드 업 디스플레이의 생성 프로세스헤드업디스플레이의 생성 과정헤드 업 디스플레이(HUD)는 플레이어 컨트롤러에 의해 제작되고 관리되는 UI 객체HUD의 구현은 위젯을 생성하고 이를 플레이어 뷰포트에 띄우는 과정으로 생성됨.이렇게 만들어진 위젯은 자신을 소유한 플레이어 컨트롤러에 접근할 수 있음. 유저 인터페이스 - 위젯 블루프린트, UserWidget으로 WBP_ABHUD 위젯 생성 간단하게 HUD 위젯 제작 UserWidget을 상속받은 ABHUDWidget 클래스 생성 위젯의 부모 클래스 변경 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#in..

언리얼 5 - 행동트리 모델의 구현

BTTaskNode를 상속받은 BTTask_FindPatrolPos 노드 생성컴파일 에러가 발생하는데, 행동 트리 모듈을 추가하려면 AI에 관련된 모듈을 추가해줘야함."NavigationSystem", "AIModule", "GameplayTasks"  // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "BehaviorTree/BTTaskNode.h"#include "BTTask_FindPatrolPos.generated.h"/** * */UCLASS()class ARENABATTLE_API UBTTask_FindPatrolPos : ..

언리얼5 - 행동트리 모델의 이해

행동 트리 모델 개요행동 트리(Behavior Tree)의 역사2004년 개발사 번지의 헤일로2에서 인공지능을 설계하는데 사용됨.2005 GDC에서 발표 : "Handling Complexity in the Halo 2 AI"우선순위와 트리 구조를 사용해 인공지능을 설계하는 기법게임 산업에서 개량해 널리 사용되고 있음. 행동 트리 모델의 장점FSM이 가지고 있던 문제를 해결하는 새로운 게임 인공지능 모델의 수립.행동 크리 모델의 장점모듈화가 잘 되어 있어 확장이 자유로움트리를 기반으로 계층화가 잘 되어있어, 복잡한 인공지능 모델을 쉽게 설계할 수 있음다이어그램으로 인공지능 모델을 효과적으로 표현할 수 있음제공되는 여러 편리한 부가 기능을 활용해 다양한 상황에 대해 손쉽게 제어할 수 있음. 행동 트리 모델..

언리얼 5 - 게임 데이터 관리

데이터 기반의 게임 시스템 구축csv파일을 언리얼에서 Import할 수 있음.동일한 이름의 속성을 가진 구조체가 필요. GameData 폴더를 만들고 ABCharacterStat.h 이라는 헤더파일(구조체) 생성 엑셀 데이터의 임포트DataAsset과 유사하게 FTableRowBase를 상속받은 구조체를 선언엑셀의 Name 칼럼을 제외한 칼럼과 동일하게 UPROPERTY 속성을 선언엑셀 데이터를 csv로 익스포트한 후 언리얼 엔진에 임포트#pragma once#include "CoreMinimal.h"#include "Engine/DataTable.h"#include "ABCharacterStat.generated.h"USTRUCT(BlueprintType)struct FABCharacterStat : ..

언리얼 5 - 무한맵의 제작

스테이지 기믹의 설계스테이지 기믹 기획스테이지는 플레이어와 NPC가 1:1로 겨루는 장소스테이지는 총 4개의 상태를 가지고 있으며 순서대로 진행READY : 플레이어의 입장을 처리하는 단계FIGHT : 플레이어와 NPC가 대전하는 단계REWARD : 플레이어가 보상을 선택하는 단계NEXT : 다음 스테이지로 이동을 처리하는 단계무한히 순환하는 구조로 설계 스테이지 준비 단계스테이지 중앙에 위치한 트리거 볼륨을 준비플레이어가 트리거 볼륨에 진입하면 대전 단계로 이동 스테이지 대전 단계플레이어가 나가지 못하게 모든 문을 닫고 대전할 NPC를 스폰NPC가 없어지면 보상 단계로 이동 스테이지 보상 선택 단계정해진 위치의 4개의 상자에서 아이템을 랜덤하게 생성상자 중 하나를 선택하면 다음 스테이지 단계로 이동 다..

언리얼5 - 아이템 시스템

InfinityBladeWeapons 애셋 Import 트리거 박스의 설정트리거 박스의 구현 아이템 구현을 위해 루트에 트리거를 설정하고 자식에 메시 컴포넌트를 부착이펙트는 기본 값으로 비활성화 상태로 두고 오버랩  이벤트 발생 시 발도되도록 설정이펙트 종료 시 액터가 제거되도록 설정Actor를 상속받은 ABItemBox 클래스 생성 사용한 MeshComponent의 주소는 Environment - Props의 박스,ParticleSystem의 주소는 Effect의 Chest Open 파티클 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#inclu..

언리얼5 - 캐릭터 스탯과 위젯

캐릭터 스탯의 설정액터 컴포넌트를 활용한 스탯의 설계캐릭터가 가지고 있는 hp같은 스탯 정보는 캐릭터 액터 내에 구현할 수도 있지만 액터 컴포넌트를 활용해 별도로 분리해서 구현할 수 있음.액터 컴포넌트 : 액터에 부착할 수 있는 컴포넌트 중 트랜스폼이 없는 컴포넌트를 의미액터의 기능을 확장할 때 컴포넌트로 분리해 묘듈화할 수 있음 스탯 데이터를 담당하는 컴포넌트와 UI 위젯을 담당하는 컴포넌트로 분리액터는 두 컴포넌트가 서로 통신하도록 중개하는 역할로 지정 언리얼 델리게이트를 활용한 발행 구독 모델의 구현푸시(Push)형태의 알림(Notification)을 구현하는데 적합한 디자인 패턴스탯이 변경되면 델리게이트에 연결된 컴포넌트에 알림을 보내 데이터를 갱신스탯 컴포넌트와 UI 컴포넌트 사이의 느슨한 결합..

언리얼5 - 캐릭터 공격 판정

애니메이션 이벤트 발생을 위한 노티파이 설정공격 판정을 위한 트레이스 채널 설정과 판정, 시각적 디버깅대미지 프레임워크를 활용한 대미지 전달과 Dead 상태의 구현충돌 채널의 설정 캐릭터 액션의 충돌 판정월드가 제공하는 충돌 판정 서비스를 사용월드는 크게 세 가지의 충돌 판정 서비스를 제공함.LineTrace : 지정한 방향으로 선을 투사해 선이 어떤 물체와 충돌되는지 검사 (RayCast)Sweep : LineTrace와 유사, 선이 아니고 어떠한 도형을 지정한 방향으로 투사Overlap : 투사가 아닌 지정한 영역에 큰 도형을 설정해서 해당 볼륨 영역과 물체가 충돌되는지를 검사월드 내 배치된 충돌체와 충돌하는지 파악하고, 충돌한 액터 정보를 얻을 수 있음.프로젝트에서 사용할 트레이스 채널과 충돌 프로..

언리얼5 - 캐릭터 콤보 액션

애니메이션 몽타주 시스템의 활용데이터 애셋과 델리게이트를 활용한 콤보 공격의 구현  애니메이션 몽타주몽타주(Montage) : 이미지 일부를 잘라내 한 화면에서 합성하는 회화 기법애니메이션 클립을 잘라내고 합성한 후 이를 재생하는 애니메이션 기능애니메이션 클립을 모아둔 다수의 섹션으로 구성되어 있음섹션끼리 연동할 수 있으며, 스크립트를 통해 원하는 섹션으로 건너뛸 수 있음폴더에서 우클릭 Animation - Animation Montage스켈레톤 선택 후 생성. AM_ComboAttack. (AM: 애니메이션 몽타주)애니메이션 몽타주를 열고 Default 섹션을 누르고 애니메이션을 끌어서 배치Default 섹션을 재생하면 모션이 연속적으로 재생됨.Montage 칸에 우클릭하면 섹션을 추가할 수 있음4가지..

언리얼5 - 캐릭터 애니메이션 설정

새로운 캐릭터 제작프로젝트에 InfinityBlade 애셋 추가Animation 폴더는 Content / ArenaBattle 아래에 추가 다양한 종류의 캐릭터가 있는데, 그중 Skeleton Asset을 중심으로 애니메이션을 설정함.파일 경로가 달라지면 애니메이션 연결도 끊기고 스켈레톤도 제대로 열리지 않으니 주의.BP_ABCharacterPlayer 블루프린트를 열고스켈레탈 메쉬 컴포넌트를 보면 Use Animation Blueprint로 되어있음.애니메이션 블루프린트 : Anim Class로 등록되어 있는 클래스 정보를 캐릭터가 생성될 때 해당 클래스로부터 애니메이션을 담당하는 인스턴스(언리얼 오브젝트)를 생성해서 관리시키도록 일임. 애니메이션 블루프린트는 Characters안에 만들어져있음.이러한..

반응형