오늘은 예정대로 애니메이션과 움직이는 발판을 추가했다. 믹사모에서 Spirnt 애니메이션을받아 달리기 활성화시 전력질주 하는 느낌으로 바꿔보고싶어서 추가했는데.
언리얼은 유니티와 다르게 믹사모에서 애니메이션을 가져와도 그대로 쓸수 있는게 아니여서 많이 애먹었다. 리타겟팅을 따로 해줘야하는데 인터넷검색으로 여러가지 방법을 시도해봤으나 믹사모 모델이 언리얼에 적합한 본이 아니여서그런지 잘못 적용됬을땐 아예 기존애니메이션이 고장나버리는 문제도 발생하여 리타게팅은 포기하고
언리얼 마네킹 FBX를 따로 구해서 믹사모에 업로드하고 해당 본을 토대로 애니메이션만 추출해서 사용하는 방식으로 일단 해결했다.
속도는 GetCharacterMovement()->MaxWalkSpeed를 일시적으로 조정하여 Shift키를 누르면 빨라지고 떼면 원상복구하는식으로 간단하게 수정했다.
다음은 이동하는 발판 구현이다. 자료를 찾아봤더니 대부분 블루프린트고 C++로 하는자료가없어 나름대로 블루프린트 영상을보면서 C++로 하는 방법을 찾아내어 구현했다. 타임라인을 쓰는방법과 InterpToMovementCompoent를 쓰는 방법 두가지가 있었는데 나는 후자를 선택했다. 코드는 다음과같다.
//헤더
UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Meta=(AllowPrivateAccess=true))
class UInterpToMovementComponent* InterpToMove;
UPROPERTY(EditAnywhere,BlueprintReadOnly,Category=MovePoint, Meta=(AllowPrivateAccess=true))
FVector Start;
UPROPERTY(EditAnywhere,BlueprintReadOnly,Category=MovePoint, Meta=(AllowPrivateAccess=true))
FVector End;
UPROPERTY(EditAnywhere,BlueprintReadOnly,Category=MovePoint, Meta=(AllowPrivateAccess=true))
float DurationTime;
//CPP
void AMovePlatform::PostInitializeComponents()
{
Super::PostInitializeComponents();
InterpToMove->BehaviourType = EInterpToBehaviourType::PingPong;
InterpToMove->AddControlPointPosition(Start,true);
InterpToMove->AddControlPointPosition(End,true);
InterpToMove->Duration = DurationTime;
}
메쉬는 간단하게 샘플에 있던 1m큐브를 사용해서 스케일을 줄여서 사용했다.
참고한 자료의 블루프린트는 이런식으로 구성되어있어서 액터의 OnConstruction를 재정의해서 사용하면 될줄 알앗으나
OnConstruction에 위 코드를 사용하면 액터를 건드릴때마다 자꾸 ControlPoint가 계속 늘어나는 문제가있어서 다시수정했다. BeginPlay에 입력하면 에러가나고 PostInitializeComponents가 컴포넌트 초기화 이후 호출된다고 강의에서 들었던부분이 생각나서 여기에 작성해본결과 성공했다.
발판은 잘움직인다. 다만 지금 한가지 문제가 발생했다.
다른 영상에선 따로 설정하는 부분없이도 발판에 잘 올라서있었는데 내가원하던그림은 발판이 캐릭터를 밀어내야하고 발판에 올라서야하지만 지금은 발판에 올라서면 발판이 주저앉아버린다. 이부분은 아직 해결방법을 찾지못했다.
내일은 발판버그 수정과 캐릭터를 튕겨내는 발판을 만들어볼 예정이다.
Reference
https://blog.naver.com/PostView.nhn?blogId=kchw1103&logNo=222160039837
'Unreal > [UE4] 플랫포머 제작 연습(C++)' 카테고리의 다른 글
6. 버튼을사용한 캐릭터이동, 배경음악 (0) | 2023.11.13 |
---|---|
5. 2단점프, 버튼UI (1) | 2023.11.12 |
4. 사라지는 발판 (0) | 2023.11.11 |
3. 움직이는발판 버그수정, 튕기는 발판 (1) | 2023.11.09 |
1. 캐릭터 스폰과 이동 (0) | 2023.11.07 |