Unreal GameplayTag최근 Unreal프로젝트를 만들면서 GameplayAbility를 사용하면서 GameplayTag를 많이 사용해 보았다.그러면서 에디터 내에서 태그를 추가하고 관리하는 방법이 아닌, 따로 파일을 만들어서 코드 상태로 태그를 선언하는 방법을 사용해보았다.따로 에디터 내에서 태그를 추가하는 방식이 아닌, 파일을 만들어서 GameplayTag를 추가하고 관리하는 방식이 C++에서 태그를 사용할 때 꽤 편하다는 것을 느낄 수 있었다.1. 컴파일 타임에 확인할 수 있어 잘못된 태그를 쉽게 찾아낼 수 있었다.2. 자동완성 기능을 사용해 오타 없이 빠르게 작성해서 사용할 수 있었다.이 외에도 장점이 더 있지만, 개인적으로는 이것들이 가장 크게 느껴졌다. 개인적으로 이렇게 느꼈다는 것이..
문제발생.언리얼에서 플러그인을 제작하면서 플러그인 쪽에서 선언한 함수가 프로젝트에서 블루프린트로 호출했을 때 노출되지 않는 문제가 발생했습니다. 이 부분은 오류가 아니었고, 플러그인에 대해 잘 몰랐던 내용이라 해결방법을 찾아내기 어려웠습니다.해결방법 찾는중.UFUNCTION(BlueprintCallalbe) 설정을 했음에도 함수가 노출되지 않는 것을 보고 당황했습니다.프로젝트 안에 비슷하게 만들어서 확인해 보니 잘 되는것을 확인했고, 이로 인해 플러그인 문제라는 것은 알았지만 해결방법을 몰라서 열심히 삽질을 시작했습니다. UCLASS에 타입 설정을 해보기도 하고, 빌드쪽 문제인가 싶어 Binaries, Intermediate, Saved, sln (플러그인쪽도 포함) 삭제한 후 다시 빌드해보는등 이것말고..
Online Subsystem steam언리얼 엔진에서 스팀과 연동된 네트워크 기능을 효율적으로 구현할 수 있도록 지원해 주는 플러그인입니다.이 글에서는 언리얼에서 Steam플러그인을 사용하기 위한 기본적인 설정만을 작성할 겁니다.플러그인 활성화.에디터로 들어가서 Online Subsystem steam을 검색해서 플러그인을 활성화해 줍니다.아래 사진처럼 체크해 주면 에디터가 다시 시작하면서 활성화됩니다.프로젝트 파일로 들어가서 프로젝트명.Build.cs로 들어갑니다.여기에 "OnlineSubsystemSteam", "OnlineSubsystem"을 추가합니다.플러그인 추가로 오류가 생길 수 있으므로 모듈을 추가한 후 에디터로 들어갑니다.이후 Tools->Refresh Visual Studio를 눌러 p..
GameplayAbility Tick기본적으로 GameplayAbility자체는 Tick을 제공하지 않기 때문에 GameplayAbility에서 Tick을 사용하기 위해서는 추가적인 설정이 필요합니다.Tick구현 - Ability Task.GameplayAbility에서 Tick을 사용하기 위해 Ability Task를 이용해 Tick을 구현해서 사용했습니다.C++로 구현했지만 조금만 수정하면 블루프린트에서도 사용가능합니다.Ability Task.h#pragma once#include "CoreMinimal.h"#include "Abilities/Tasks/AbilityTask.h"#include "AbilityTask_ExecuteTaskOnTick.generated.h"DECLARE_DYNAMIC_M..
Unreal SlowMotion언리얼에서 간단하게 슬로우모션을 구현해보았습니다.이때 사용한 함수는 게임의 전체 시간 흐름을 조절하는 SetGlobalTimeDilation함수입니다.이 함수는 게임 전체의 시간 흐름을 자유롭게 조절할 수 있습니다.코드2.0f: 시간의 흐름이 두배로 빨라집니다.1.0f: 기본 흐름. (정상 시간)0.5f: 시간의 흐름이 절반으로 느려집니다. (슬로우모션.)0.f: 시간이 완전히 정지됩니다.아래와 같은 코드를 작성하면 시간의 흐름을 0.5배로, 즉 2배 느리게 만드는 코드인겁니다.UGameplayStatics::SetGlobalTimeDilation(GetWorld(), 0.5f); 저는 이 기능을 NotifyState에 적용을 해서 애니메이션의 특정 부분만 느려지도록 사용했..
오류환경.최근 윈도우 11에서 언리얼 5.3을 사용하다가 해당 오류에 걸렸습니다.프로젝트를 빌드했을 때, 빌드가 완료되어도 "Asertion Failed: index== Typeindex ...." 라는 팝업창이 나오면서 프로젝트가 정상적으로 실행되지 않았습니다.오류 내용.아래의 메시지를 출력하며 프로젝트가 정상적으로 진행되지 않았습니다.Assertion failed: Index == TypeIndex [File:E:\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Misc\TVariant.h] [Line: 118] Crash in runnable thread Background Worker #3제가 해당 언리얼 프로젝트 파일 생성 후 만진것들입니다.1. 삼인..
언리얼 게임 종료 구현하기 c++게임을 하다 보면 반드시 있어야 할 것 중 하나가 종료 버튼입니다.이 글에서는 모든 게임에서 필수적인 요소인 게임 종료를 언리얼엔진의 'UKismetSystemLibrary'에서 제공하는 'QuitGame'함수를 사용해 c++에서 게임 종료를 구현해 보겠습니다. UKismetSystemLibrary.'UKismetSystemLibrary'클래스는 게임 플레이, 하드웨어 정보, 월드 관리 등 다양한 시스템 관련 기능을 제공하는 유틸리티 클래스입니다. 이 클래스를 통해 언리얼 엔진에서 게임 종료(QuitGame), 타이머 설정(Delay), 객체 유효성 검사(IsValid), 디버그 메시지(PrintString) 등 여러 작업을 손쉽게 처리할 수 있습니다.이 클래스는 주로 블..
언리얼 카메라 시점 변경 c++언리얼에서 c++을 이용해 카메라 시점을 변경 하는 방법에 대해 보여주는 글입니다.이 글에서는 'SetViewTargetWithBlend'함수를 활용해 카메라 전환 시 부드러운 화면 전환을 구현하는 방법을 사용합니다.Pawn 구성.먼저 'Character' 클래스에 'CameraComponent'를 하나 추가합니다.그리고 플레이어가 지정한 키를 누를 때, 레벨에 배치된 'CameraActor'를 찾아 해당 'CameraActor'로 시점을 변경하도록 구현했습니다.헤더파일(.h) // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal..
Unreal5 Timeline Unreal5 Timeline에 대한 글입니다. 타임라인을 사용하여 시간 기반 애니메이션을 만들 수 있습니다.이 글에서는 Timeline을 이용해 카메라 확장과 축소를 구현합니다. 타임라인을 사용하여 구현한 카메라 확장과 축소. 블루프린트로 구현하기. C++을 이용해 구현하기. 타임라인을 사용하여 구현한 카메라 확장과 축소. 이런 식으로 앉았을 때 카메라가 멀어지고 일어서면 가까워지는 카메라를 Timeline을 사용해 만들었습니다. 파일 크기때문에 프레임 좀 줄였더니 뚝뚝 끊기는군요... https://docs.unrealengine.com/5.0/ko/timelines-in-unreal-engine/ 블루프린트. 블루프린트로는 이렇게 구현했습니다. 특정 키 입력을 받으면 ..
The game module "Project Name" Could not be loaded 오류 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 이 글은 언리얼 사용중에 나온 메시지에 대한 내용입니다. 내용설명. 해결방법. 내용 설명. 언리얼 사용중에 오랜만에 프로젝트 빌드를 실행했더니 빌드는 성공했지만 정상적으로 실행되지 않았습니다. The game module 'project name' could not be loaded. There may be an operating system error, the module may not be properly set up, or a plugin which has been included into the build has not..