전체 글 116

[UE4] 코드로 에셋 적용시키기

에셋 지정 게임이 시작하기 전 생성자함수에서 에셋을 지정하려면 ConstructorHelpers::FObjectFinder를 사용하면 된다. 이때 에셋 경로는 변하지 않을 고유값이므로 static을 붙여주고 if + Succeeded()로 에셋이 불러와졌을때만 메쉬에 적용해주는 부분이 중요하다. static ConstructorHelpers::FObjectFinderSM_KWANG(TEXT("SkeletalMesh'/Game/Assets/ParagonKwang/Characters/Heroes/Kwang/Meshes/KwangRosewood.KwangRosewood'")); if (SM_KWANG.Succeeded()) { Mesh->SetSkeletalMesh(SM_KWANG.Object); } 이번에는..

UE4 2022.09.30
[UE4] Animation Blueprint

Animation Blueprint 코드로 에셋 경로를 복사해와 일일히 애니메이션을 지정하는 방법은 게임의 규모가 커지만 관리적인 한계에 부딪힌다. 그래서 언리얼은 체계적으로 애니메이션을 설계하도록 별도의 시스템을 제공하는데, 이를 애니메이션 블루프린트라고 한다. 생성 Animation Blueprint Asset을 생성하려면 콘텐츠 브라우저에서 애니메이션 폴더를 선택한 후 신규추가>애니메이션>애니메이션 블루프린트 메뉴를 선택하고 이 블루프린트와 연결될 캐릭터 스켈레톤 에셋을 지정해주면 된다. 관리 애니메이션 블루프린트는 애님그래프 로직에 따라 동작하는 캐릭터 애니메이션 시스템을 구동시키는데, C++코드에서는 AnimInstance라는 클래스로 이를 관리할 수 있다. 연결 스켈레탈 메시 컴포넌트는 자신이..

UE4 2022.09.30
[UE4] An Unreal process has crashed

해결과정 디버깅을 돌려보니 BindAxis함수에서 nullptr 오류가 잡힌다. this가 nullptr이라면 이 함수를 호출한 포인터 연산이 잘못되었다는건데.. 그래서 코드를 유심히 들여다보았다. void AMyPawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); PlayerInputComponent->BindAxis(TEXT("UpDown"), this, &AMyPawn::UpDown); PlayerInputComponent->BindAxis(TEXT("LeftRight"), this, &AMyPawn::LeftRight); ..

UE4 2022.09.30