Unreal Engine

입력 장치를 구분하기 게임을 할 때 입력 장치를 키보드와 마우스를 사용하거나 게임패드를 사용하면 입력 장치에 따라 UI가 바뀌는 것을 볼 수 있습니다. 또는 입력 장치에 따라 캐릭터의 이동방식이 변하기도 합니다. 원신의 경우 키보드를 입력 장치로 하여 이동 시 기본적으로 달리기 상태로 이동하지만 별도의 입력으로 걷기 상태로 이동합니다. 게임패드를 입력 장치로 하여 이동 시 조이스틱의 기울기가 전체의 1/3 이상일 경우 달리기 상태로 이동하고 미만일 경우 걷기 상태로 이동합니다. 이처럼 사용자의 입력 장치를 구분하여 여러 방식으로 활용할 수 있습니다. 그러면 사용자의 입력 장치를 구분할 수 있는 방법을 언리얼 엔진 5의 EnhancedInput System을 사용해서 알아보겠습니다. 게임패드의 입력을 구분..
애니메이션 스테이트 이벤트 애니메이션 스테이트 섹션의 이벤트들에 경고 문구가 표시되어있다. 애님 노드 함수 버전을 사용하라는데 스테이트 노드를 더블클릭한 후 출력 노드를 확인해보면 State 섹션에서 함수를 바인딩해서 사용하면 된다.
.pmx 파일은 언리얼 엔진에 임포트를 할 수 없습니다. 그래서 Blender나 3DMax 같은 프로그램을 통해 .fbx 파일로 변환하여 임포트 해줘야 합니다. 그 중 Blender를 사용하여 .pmx 파일을 .fbx 파일로 변환하여 언리얼 엔진에 임포트하는 방법을 사용하겠습니다. 시작하기에 앞서 다음과 같은 준비물이 필요합니다. .fbx 파일로 변환할 .pmx 파일 Blender 3.6.x Cats Blender Plugin Development .pmx 파일은 각자 개인이 원하시는 캐릭터의 .pmx 파일을 사용하시면 됩니다. Bldner의 경우 3.5나 3.6버전을 사용하시면 됩니다. 필자의 경우, 3.6버전의 최신버전인 3.6.8버전을 사용했습니다. 다운로드는 아래의 공식홈페이지에서 다운 받으시면 ..
다음과 같이 선언하면 C++에서 인터페이스 변수를 사용할 수 있다. private: /** Damageable 인터페이스를 가지고 있는 액터입니다. */ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "BaseHealthBar|DamageableActor", meta = (AllowPrivateAccess = "true")) TScriptInterface DamageableActor; 인터페이스의 함수를 사용하는 방법은 다음과 같다. float UPRBaseHealthBarWidget::GetHealthBarPercent() const { if(HealthBar && IsImplementsDamageableInterface(DamageableAct..
https://youtu.be/-JDrNxF66qM?si=MOYP5CafxU-dsULo 캐릭터나 사물에 가하는 대미지를 처리하는 시스템입니다. 클래스 관계도는 다음과 같습니다. 대상에게 대미지를 전달할 때, 대상에게 Interface_PRDamageable 인터페이스가 존재하는지 확인한 후 존재할 경우 Interface_PRDamageable의 TakeDamage 함수로 대미지의 정보를 나타내는 PRDamageInfo 구조체를 전달합니다. 대미지를 전달하는 PRDamageInfo 구조체의 구조는 다음과 같습니다. Amount: 대미지 양입니다. DamageType: 대미지의 유형입니다. Melee: 근거리 공격으로 인한 대미지입니다. Projectile: 원거리(투사체) 공격으로 인한 대미지입니다. En..
위젯 애니메이션은 시작과 끝에 Delegate를 사용하여 특정 함수를 실행할 수 있습니다. 예를 들어 위와 같이 대미지를 표시하는 폰트는 대미지를 출력한 후 위젯 애니메이션으로 FadeOut 되면서 완전히 사라질 때 위젯 애니메이션의 끝에 선언한 Delegate를 실행하여 폰트를 제거합니다. 이처럼 위젯 애니메이션의 시작과 끝에 Delegate를 사용하여 활용한 코드는 다음과 같습니다. // SampleWidget.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "P..
한돌이
'Unreal Engine' 태그의 글 목록