블루아카이브 52

[UE5] 블루아카이브 TPS게임 개발일지 (64) - 프로젝트 마무리

프로젝트를 오늘까지 끝내기로 마음먹고, 어제 밤을 샜다. 우선 대사가 겹쳐서 사라지는걸 막기 위해 큐를 이용해 대사들을 빠짐없이 보여주도록 하였다. Conversation.h/*생략*/UCLASS()class KANNATPS_API UConversation : public UUserWidget{ GENERATED_BODY()/*생략*/private: /*생략*/ TQueue> ConversationQueue; TQueue MessageQueue;}; Conversation.cpp// Fill out your copyright notice in the Description page of Project Settings./*생략*/void UConversation::SetConversation(){ // 큐에..

[UE5] 블루아카이브 TPS게임 개발일지 (63) - 맵 연결 (Level Streaming)

일전에 게임의 맵으로 쓸 3개의 층을 만들어놓았었다.https://ciel45.tistory.com/68 블루아카이브 TPS게임 개발일지 (50) - 맵 제작개인적으로 게임 제작 중 제일 어렵다고 느끼는 맵 제작을 슬슬 할 때가 왔다. 최근 약 1~2주 동안은 계속 레벨디자인 작업만 한 것 같다. 발키리 경찰학교를 구현하기 위해서, 블루아카이브의 키ciel45.tistory.com 이제 이 3개의 레벨을 연결해볼 것이다. 게임 상에 레벨 3개를 모두 로드해놓으면, 성능 하락이 발생할 수 있다.따라서 칸나가 현재 위치한 층만 로드되어있도록 할 것이다. 언리얼 엔진 5에서는 이것을 Level Streaming이라는 이름으로 이미 제공하고 있다. 들어가기에 앞서, Level Streaming을 쓸 때는 동적으..

[UE5] 블루아카이브 TPS게임 개발일지 (62) - 대사 기능 적용

대사가 나오는 경우는 두가지로 분류할 수 있다.칸나가 특정 구역에 들어가는 경우적 / 칸나가 특정 이벤트에 반응하는 경우 1번을 위해서, BP_ConversationTrigger를 만들었다.트리거에 칸나가 들어오면, OnComponentBeginOverlap 이벤트를 수행한다.ConversationManager의 Set Conversation을 호출한다. Speaker와 Content 두 변수 우측의 눈 표시를 눌러, 해당 변수가 인스턴스마다 지정될 수 있도록 할 수 있다.  결과적으로 특정 구역에서 칸나 / 적이 대사를 하게 하려면, 맵에 BP_ConversationTrigger를 배치한 뒤 디테일 패널에서 Speaker, Content에 원하는 문장을 넣어주면 된다.    2번을 위해서는, 해당 이벤..

[UE5] 블루아카이브 TPS게임 개발일지 (61) - 대사 시스템 (Typewriter 효과)

칸나와 적의 대사를 자막처럼 넣어, 게임이 덜 심심하도록 해볼 것이다. 제일 먼저, ConversationManager 클래스를 만들었다. GameManager와 같이 SubSystem을 상속받은 클래스이며, 대사를 칠 캐릭터들은 ConversationManager의 SetConversation만을 호출하면 되도록 할 것이다. ConversationManager.h:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Subsystems/GameInstanceSubsystem.h"#include "ConversationManager.gen..

[UE5] 블루아카이브 TPS게임 개발일지 (60) - GameManager로 적 관리

지난 포스팅에서 UGameInstanceSubsystem을 상속받은 클래스 UGameManager를 만들어, 게임의 볼륨을 조정하는 함수를 만들었다.  이번 포스팅에는 UGameManager의 추가적인 설명과 더불어, UGameManager를 사용한 적들의 팀플레이 기능을 만들고자 한다.  언리얼 엔진의 Subsystem은 UGameInstanceSubsystem 외에도 여러가지가 있다.https://docs.unrealengine.com/5.3/ko/programming-subsystems-in-unreal-engine/ 프로그래밍 서브시스템언리얼 엔진 4 의 프로그래밍 서브시스템 개요입니다.docs.unrealengine.com  SubSystem은 와 수명 주기가 똑같다.  게임 전반에 걸쳐 지속적..

[UE5] 블루아카이브 TPS게임 개발일지 (59) - 사망 연출 제작 3

이제 헤일로가 깨지게 하기 위해서는 Halo 클래스의 BreakHalo 함수를 호출하기만 하면 된다. void AKannaCharacter::Die(){ GetMesh()->SetCollisionEnabled(ECollisionEnabled::NoCollision); DisableInput(UGameplayStatics::GetPlayerController(GetWorld(), 0)); ZoomOutCamera(); UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance(); if (AnimInstance && DieMontage) { PlayDieMontage(AnimInstance); } Halo->BreakHalo(); SpringArm->Socket..

[UE5] 블루아카이브 TPS게임 개발일지 (58) - 사망 연출 제작 2

지난 포스팅에서 만든 지오메트리 컬렉션은 헤일로 클래스에 넣을 것이다. 평상시에는 지오메트리 컬렉션이 스태틱 메시의 역할을 해주다가, 칸나의 체력이 0이 되면 메시를 깨뜨릴 것이다. Halo.h:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Halo.generated.h"class UGeometryCollectionComponent;UCLASS()class KANNATPS_API AHalo : public AActor{ GENERATED_BODY() public: // Se..

[UE5] 블루아카이브 TPS게임 개발일지 (57) - 사망 연출 제작 (Geometry Collection)

HP가 0이 될 시 사망하는 연출을 만들어볼 것이다. 원작 설정 상 캐릭터들은 총을 좀 맞아도 죽지 않지만, 본 게임에서는 좀 밋밋할 것 같아 실제로 죽는 연출을 만들 것이다.  사망 연출을 위해 필요한 것은, 뭐니뭐니 해도 헤일로가 깨지는 연출이다.   언리얼 엔진에서 Destructible Mesh를 구현하기 위해서는 Geometry Collection을 사용하면 된다.에디터 좌측 상단의 Mode를 Selection에서 Fracture Mode로 바꾸고, 필드에 헤일로 스태틱 메시를 배치한뒤, New를 눌러 새로운 지오메트리 컬렉션을 만들어주었다. 그리고 좌측의 Fracture 탭의 Uniform 방식을 선택한 뒤, Fracture 버튼을 눌러 메시를 조각내주었다.ViewSettings의 Min Vo..

[UE5] 블루아카이브 TPS게임 개발일지 (56) - EX 스킬 제작 4

이번엔 busted 이펙트를 만들 것이다. 이전에 카이저 PMC 병사 가슴팍의 마크를 구현하기 위해 3d Text 플러그인을 사용한 바가 있다.https://ciel45.tistory.com/19 블루아카이브 TPS게임 개발일지 (8) - 적 모델링 임포트작중 적으로 등장할 캐릭터는 원작의 최종장 내용과 마찬가지로 카이저 PMC이다. 그런데 칸나의 3d 모델링은 부스에서 구할 수 있었지만, 아무리 찾아봐도 카이저 PMC 병사의 모델링은 구할 수 없ciel45.tistory.com 이번에도 해당 플러그인을 사용하여 busted 3d 텍스트를 만들고, 큐브로 테두리를 만든 다음 스태틱 메시로 변환해주었다.   그리고 만들어진 스태틱 메시에서 머티리얼을 적당히 어울리는 것으로 변경해주었다.  이 busted ..

[UE5] 블루아카이브 TPS게임 개발일지 (55) - EX 스킬 제작 3 (UParticleSystem)

이번엔 총구로 빛이 모이는 연출을 만들 것이다. 언리얼 마켓플레이스의 Infinity Blade: Effects 에셋은 에픽게임즈가 예전에 만든 ios 게임 인피니티 블레이드의 이펙트들이 담긴 에셋이다. 무료이면서 양질의 이펙트들이 많이 포함되어 있다.https://www.unrealengine.com/marketplace/en-US/product/infinity-blade-effects Infinity Blade: Effects in Epic Content - UE MarketplaceInfinity Blade: Effects includes visual effects ranging from fire and smoke to curious lights and magical reactions, all wi..