목록ProjectA (7)
그냥 게임개발자

https://www.youtube.com/watch?v=UORC3YjlbZQ 여기서 다운받은 애니메이션들을 Ue5 마네킹으로 Retarget을 하려고 한다. 마침 언리얼 엔진에서 제공해주는 UE4 to UE5 Retarget이 있다. 이 애니메이션들을 다시 Export한다. 그리고 내 프로젝트로 다시 가져와서 적용해서 애니메이션들을 만들 예정 가져온 애니메이션 - 위 유트브 - Lyra(UnrealEngine Sample Project) 잘 Export되었으니 내 프로젝트에 적용해서 애니메이션 블루프린트를 새로 생성하자 상속 클래스는 AnimInstance이다. 기본적인 AnimGraph는 아래와 같다. 애님인스턴스를 가지고 있는 캐릭터를 가져와서 Speed와 Falling 등을 가져와 조건에 부합하게..
임시적으로 1인칭일 때 캐릭터회전도 같이 될 수 있도록 하자. PACharacterPlayer.cpp void APACharacterPlayer::SetChangeCamera() { CameraType = CameraType == ECAMERA::TPS ? ECAMERA::FPS : ECAMERA::TPS; MyCamera->Deactivate(); MyCamera = CameraMap[CameraType]; MyCamera->Activate(); switch (CameraType) { case ECAMERA::TPS: bUseControllerRotationYaw = false; break; case ECAMERA::FPS: bUseControllerRotationYaw = true; break; } }

현재 카메라 시점을 바꾸는 코드는 이렇다. void APACharacterPlayer::SetChangeCamera() { ensure(FpsCamera); ensure(TpsCamera); if (IsValid(TpsCamera) && IsValid(FpsCamera)) { switch (CameraType) { case ECAMERA::TPS: TpsCamera->Activate(); FpsCamera->Deactivate(); MyCamera = TpsCamera; break; case ECAMERA::FPS: TpsCamera->Deactivate(); FpsCamera->Activate(); MyCamera = FpsCamera; break; } } else { UE_LOG(LogTemp, Er..

일단 강의 들은거랑 내 창작물을 만드는 거랑은 확실히 다르다. 캐릭터를 바꾸었다 이 에셋이다. Input Player가 움직일 수 있도록 Move와 Look 함수를 만들어준다. 그다음 위에있는 Action과 MappingContext를 생성하자. PACharacterPlayer.h #include "InputActionValue.h" protected: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, Meta = (AllowPrivateAccess = "true")) TObjectPtr DefaultMappingContext; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, Meta ..

캐릭터 결정 추후에 모델링 바꿀 예정 Character : Character에 관련된 클래스 Game : Game에 관련된 클래스 Player : Player입력, Player데이터에 관련된 클래스 현재 캐릭터 모듈은 이렇게 두개로 만들었다. Base는 Character를 상속 받는 클래스 Player는 Base를 상속받는 클래스 기본적인 캐릭터 설정값(기획에 따라 바뀔 수도 있음) PACharacterBase.cpp #include "Components/CapsuleComponent.h" #include "GameFramework/CharacterMovementComponent.h" APACharacterBase::APACharacterBase() { // UseControllerRotation bUs..
규칙 모든 클래스는 PA(ProjectA의 약자)의 접두사로 시작 폴더마다 다른 폴더와의 의존성 최소화 다른 폴더의 클래스에 접근할 때는 가급적 Interface를 통해 접근 헤더 경로를 찾기 쉽도록 프로젝트명.Build.cs파일에 프로젝트의 폴더를 include 경로에 설정 PublicIncludePaths.AddRange(new string[] {"프로젝트명"}); 라이브 코딩은 끄고 빌드 컴파일로 진행