본문 바로가기
반응형

Unreal179

Unreal WidgetComponent ProgressBar 추가, 적 체력 UI [Unreal/C++] WidgetComponent ProgressBar 추가, 적 체력 UI 언리얼 엔진에서 Actor 위에 UI를 띄우고 싶은 경우 사용할 수 있는 컴포넌트입니다.아래 이미지와 같이 UI를 띄우려면 위젯 블루프린트를 생성하여 위젯 컴포넌트에 연결해야합니다.WidgetComponent를 추가하여 사용할 수 있습니다.위치를 조정하고 Space 모드를 Screen으로 설정해야 합니다.World는 3D UI를 보여줄 때 용이하고 Screen모드는 카메라를 정면으로 바라봐야할 때 유용합니다.위젯 클래스를 생성한 위젯 블루프린트로 설정해줄 수 있습니다.위젯 블루프린트를 생성하고 사이즈 박스와 ProgressBar를 차례로 생성합니다.SizeBox는 Width 와 Height를 Override하여.. 2023. 12. 27.
Unreal 몽타주 슬롯 변경시 애니메이션 재생 [Unreal] 몽타주 슬롯 변경시 애니메이션 재생 언리얼 엔진Animation Montage Slot Change애니메이션 몽타주 슬롯 변경시 애니메이션이 재생되지 않는 현상이 있습니다.이는 프리뷰 대상이 DefaultSlot으로 설정되어 있기 때문입니다. 슬롯 그룹이나 이름(UpperBody, FullBody 등)을 변경했을 때 프리뷰 슬롯 버튼을 한 번 더 눌러주면 재생이 됩니다.    Animation SlotsInsert entry-points within your Anim Graph to play animation from using Slots.docs.unrealengine.com 2023. 12. 21.
Unreal AnimMontage Slot 추가하기 [Unreal] AnimMontage Slot 추가하기 언리얼 엔진 5 애니메이션 슬롯 DefaultGroup.SlotName 추가 방법 애니메이션 스켈레톤에 저장된 애니메이션 슬롯 이름이 많은 애니메이션들이 있습니다. 하지만 에셋들 중 슬롯 이름이 없는 경우가 있는데, 이 슬롯은 추가가 가능합니다. 애니메이션 몽타주 화면에서 Window->Anim Slot Manager 슬롯 추가가 가능합니다.      Animation SlotsInsert entry-points within your Anim Graph to play animation from using Slots.docs.unrealengine.com 2023. 12. 21.
Unreal IGameplayTaskOwnerInterface Link Error [Unreal/C++] IGameplayTaskOwnerInterface Link Error 언리얼 엔진 5에서 AI Controller와 UBTService 등에서 IGameplayTaskOwnerInterface인터페이스를 상속 받아 사용할 때 나타나는 문제점이다. 이는 모듈 추가가 되지 않아서 파일을 찾지 못하는 문제가 있다.CompilerResultsLog: Error: BTS_Corpse.cpp.obj : error LNK2001: "public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask)" OnGameplayTaskActivated@IGameplayTaskOwnerIn.. 2023. 12. 20.
Unreal GenericTeamID 설정하기 [Unreal/C++] GenericTeamID 설정하기 Unreal에서 AI를 구현하거나 아군, 적군, 중립을 설정하기 위해 TeamID라는 것이 필요하다.AIController를 상속받는 클래스라면 크게 신경쓰지 않아도 되지만 상속받지 않는 클래스는 인터페이스를 상속받고 구현해야한다.  #include "GenericTeamAgentInterface.h" 헤더를 추가하고IGenericTeamAgentInterface 인터페이스를 상속받는다.일반 클래스는 다중 상속이 불가능하지만 인터페이스는 다중상속이 가능하다.  #include "CoreMinimal.h"#include "GameFramework/Character.h"#include "GenericTeamAgentInterface.h" // ge.. 2023. 12. 18.
Unreal UseBlackboard TObjectPtr 문제 [Unreal/C++] UseBlackboard TObjectPtr 문제 Unreal Engine5에서 나타나는 문제점이다.먼저 UE4 에서는 Blackboard Component가 UBlackboardComponent* 자료형으로 선언되어 있다.하지만 UE5에서는 TObjectPtr로 선언되어 있는데,UseBlackboard 함수를 사용할 때에는 UBlackboardComponent*& 형식으로 받기 때문에 전달할 수 없는 문제가 생긴다.AAIController::UseBlackboard(UBlackboardData* BlackboardAsset, UBlackboardComponent*& BlackboardComponent) UE4 강의 자료로 학습하고 UE5로 공부하고 있는 사람들이 많이 겪는 문제이.. 2023. 12. 18.
Unreal C++ SpawnActor 무기 장착하기 [Unreal/C++] SpawnActor 무기 장착하기 언리얼 엔진 C++ 코드를 이용하여오른손에 무기를 장착한다. 스켈레톤에서 소켓 추가소켓에서 프리뷰 에셋을 추가하여 미리보기프리뷰 에셋을 추가하여 원하는 위치와 회전을 맞춰줍니다. Actor로 생성해야 하니 Actor를 상속받는 무기 클래스를 만들어 줍니다.Sword 클래스 코드는 다음과 같습니다. // Sowrd.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "Enemy_Sword.generated.h"UCLASS()class MAINPROJECT_API AEnemy_Sword : public AActor{ GENERATED_BODY() public: A.. 2023. 12. 17.
Unreal C++ 코드 디버깅, 콜 스택(Call Stack) 로그 출력 [Unreal/C++] 코드 디버깅, 콜 스택(Call Stack) 로그 출력 언리얼 프로그래밍을 하다 보면 함수가 어디서 호출되는지 확인하고 싶을 때가 있다.언리얼에서는 이 콜스택을 지원한다. FDebug 클래스의 DumpStackTraceToLog() 함수이다.FDebug::DumpStackTraceToLog()  FDebug 클래스는 디버깅 및 진단 기능을 제공한다.그 중 DumpStackTraceToLog 함수를 사용한다.5.0 기준으로 함수는 다음과 같다./** Dumps the stack trace into the log, meant to be used for debugging purposes. */static void DumpStackTraceToLog(const ELogVerbosity::.. 2023. 12. 16.
Unreal C++ 생성자 사용시 주의할 점 [Unreal/C++] 생성자 사용시 주의할 점 UObject 에는 4개의 생성자가 있습니다. 아무 것도 받지 않는 기본 생성자FObjectInitializer&를 받는 생성자EStaticConstructor, EObjectFlags 를 받는 생성자FVTableHelper&를 받는 생성자 UObject를 상속받는 Actor - Pawn - Character 등도 생성자를 만들게 되면 부모의 생성자를 확인하고 호출해 줘야 합니다.// UObject.h 생성자 일부/** Default constructor */UObject();/** * Constructor that takes an ObjectInitializer. * Typically not needed, but can be useful for c.. 2023. 12. 16.
Unreal C++ 버튼을 눌러 게임 종료 (QuitGame) [Unreal/C++] 버튼을 눌러 게임 종료 (QuitGame) 언리얼 엔진에서 게임 종료를 위해서 Kismet 라이브러리의 UKismetSystemLibrary::QuitGame 함수를 사용한다.월드와 플레이어 컨트롤러 종료 옵션 플랫폼 옵션이 필요하다.ReferencesModuleEngineHeader/Engine/Source/Runtime/Engine/Classes/Kismet/KismetSystemLibrary.hInclude#include "Kismet/KismetSystemLibrary.h"Source/Engine/Source/Runtime/Engine/Private/KismetSystemLibrary.cppSyntaxstatic void QuitGame( const UObject * .. 2023. 12. 16.
Unreal C++ 리슨 서버 오픈 레벨 Play as Listen Server Open Level [Unreal/C++] 리슨 서버 오픈 레벨 Play as Listen Server Open Level 언리얼 엔진 에서 리슨 서버를 열기 위해 OpenLevel을 사용할 수 있습니다. OpenLevel은 UGameplayStatics 클래스가 가지고 있으며 #include "Kismet/GameplayStatics.h" 헤더를 추가해 사용할 수 있습니다.OpenLevel의 구문은 월드, 레벨 이름, 절대이동, 옵션을 사용합니다.static void OpenLevel( const UObject * WorldContextObject, FName LevelName, bool bAbsolute, FString Options)레벨 이름의 경우 검색 속도를 위해 전체 경로를 포함해주는 것이 .. 2023. 12. 13.
Unreal C++ 블루프린트 부모 클래스 변경 [Unreal/C++] 블루프린트 부모 클래스 변경 Unreal Engine 5 에서 클래스 작업을 하던 도중 이름이 마음에 들지 않아 클래스 파일의 이름을 바꿨습니다.해당 클래스를 부모로 가지고 있던 위젯 블루프린트는 부모 클래스를 찾지 못해 다음과 같은 에러를 발생시켰습니다.위젯 블루프린트가 유효하지 않은 클래스에서 파생되어 로드할 수 없습니다.이 블루프린트의 부모 클래스가 제거되지는 않았는지 확인해보세요!  먼저 이에 대한 해결책은 언리얼 포럼에서 찾을 수 있었습니다. How to change parent class of blueprint asset?Hey guys, If someone needs to change the Parent of Blueprint without opening the Blu.. 2023. 12. 12.
반응형