언리얼엔진

    [Unreal] 캐릭터 이동 관련 컴포넌트 (UCharacter / UPawn MovementComponent*)

    캐릭터의 이동 관한 행동을 담당하며 대표적인 기능들은 아래와 같다. 캐릭터 최대치 변경 수영 속도 하중 힘 걸음 속도 숙인 채 걷는 속도 캐릭터가 특정 행동 진행 중일 시 숙이는 중 낙하하는 중 날아다니는 중 지상에 다니는 중 (걷기, 운전 등) 수영 하는 중 걸을 수 있는 상태 또는 걷는 중 캐릭터가 숙이는 함수와 숙인 상태에서 일어서는 함수 플레이어가 수영하는 함수 플레이어가 점프하는 함수 플레이어가 엎드리는 함수는 따로 구현할 필요가 있다. 관련 도튜먼트 : https://docs.unrealengine.com/5.0/enUS/API/Runtime/Engine/GameFramework/UCharacterMovementComponent/

    [Unreal] 언리얼 충돌체 관련 함수와 이벤트(델리게이트) 바인딩 방법 #2

    언리얼 엔진에선 두 가지의 충돌체가 존재한다. 하나는 메쉬(static 또는 skeletal)의 충돌체 그리고 충돌 컴포넌트(SphereComponent,BoxComponent 기타 등등). C++로 충돌체 이벤트 바인딩할 수 있는 방법 총 두가지가 있다. 오버라이딩 방법 Hit 이벤트를 사용하려면 Simulation Generates Hit Events가 체크 되어있어야 한다. Overlap 이벤트를 사용하려면 Generate Overlap Events가 체크 되어있어야 한다. 항상 Super:: 부모클래스의 해당 함수를 호출 하여야한다. 예) NotifyHit 함수를 오버라이딩 했다, Super::NotifyHit(); NotifyHit (오브젝트로부터 충돌했다) 예시) virtual void Not..

    [Unreal] 차량 설정 방법 (Chaos Vehicle)

    WheeledVehiclePawn으로부터 생성된 엑터다. 즉 UWheeledVehiclePawn 클래스로부터 상속받으면 된다. UChaosWheeledVehicleMovementComponent를 사용한다. 바퀴의 정보(크기, 질량, 무게 등)는 UChaosVehicleWheel Wheel Setups 내 Wheel Class 안에 들어가며 Bone Name은 바퀴 뼈대 명칭. 차량의 가속도는 UCurveFloat, External Curve에 보란색 칸에 위치된다. GetVehicleMovement 함수는 반환형이 UWheeledVehicleMovementComponent * 이다, 따라서 UChaosWheeledVehicleMovementComponent* 타입으로 캐스팅 해줘야한다. C++로 사용할..

    [Unreal] 인스턴스와 서브시스템 (Instance/SubSystem) 갖고오는 방법

    Instance 가져오는 방법 1) Kismet/GameplayStatics.h 헤더 파일 안에 있는 UGameplayStatics 내 static 함수 사용. UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem(); 2) UWorld 클래스 내 static 함수 사용 GetWorld()->GetGameInstance(); SubSystem 가져오는 방법 1) UGameInstance 클래스 내 static 함수 사용. UGameInstance::GetSubsystem(GetWorld()->GetGameInstance()); 2) UWorld 클래스 내 static 함수 사용 if (auto pWorld = GetWorld()) pWorld->Get..

    [Unreal] 충돌 관련 함수

    /** * Delegate for notification of blocking collision against a specific component. * NormalImpulse will be filled in for physics-simulating bodies, but will be zero for swept-component blocking collisions. */ DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FiveParams( FComponentHitSignature, UPrimitiveComponent, OnComponentHit, UPrimitiveComponent*, HitComponent, AActor*, OtherActor, UPrimitiveCompon..

    [Unreal] 클래스 생성 시 소스 파일 기본 주석 제거

    클래스 생성 시 헤더 파일과 cpp파일이 아래와 같이 생성된다, 하지만 매번 주석 지우는건 되게 귀찮은 작업이다. 아래 경로를 통해 .h.template 파일과 .cpp.template 파일을 찾는다. 적당하게 메모장으로 옮겨 지울 주석을 찾아본다.

    [Unreal] C++ 흔한 헤더파일 오류와 해결방법

    클래스 이름. cpp(1): error : Expected 클래스 이름. h to be first header included. 원인) cpp에서 클래스명 .h를 최초로 포함(include) 하지 않음. 해결) 최초로 포함시키면 됨. (이 파일에 사용하는 클래스명은, 접두사 U,F,A,I등을 제외). AMyActor 클래스에서 #include “AMyActor.h”가 아닌 #include “MyActor.h” 함수 이름 inconsistent dll linkage 원인) _API는 클래스, 함수, 변수를 정의한 모듈이 아니므로 복사했을 때 선언부와 다르면 클래스가 포함되지 않음. 해결) class MYMODULE_API AMyActor : public AActor // ^^^^^^^^^^^^ 모듈명이 C..