초기 설계 오류 수정: 카메라 및 컨트롤 로직을 마스터 블루프린트에서 플레이어 블루프린트로 이동하여 모든 캐릭터에 불필요한 기능이 상속되는 것을 방지했습니다. 🔄
캐릭터 회전 설정: 마스터 블루프린트의 'Character Movement' 컴포넌트에서 'Orient Rotation to Movement'를 활성화하고 'Use Controller Yaw Rotation'을 비활성화하여 캐릭터가 이동 방향으로 자연스럽게 회전하도록 했습니다. 🧭
스프라이트 회전 문제 해결: 캐릭터 이동 시 월드 전체가 회전하는 문제를 해결하기 위해 스프라이트 컴포넌트의 회전 설정을 'World'로 변경했습니다. 🌍
시각적 디버깅 활용: 작은 구체를 캐릭터에 부착하여 이동 및 회전 방향을 시각적으로 확인하며 디버깅했습니다. 🔴
회전 속도 조절: 'Character Movement' 컴포넌트의 'Rotation Rate' 값을 조정하여 캐릭터의 회전 속도를 제어하고, 필요에 따라 더 빠르게 스냅되도록 설정했습니다. ⚡
캐릭터 지면 정렬: 스프라이트의 위치를 캡슐 컴포넌트의 바닥에 맞춰 캐릭터가 지면에 정확히 서 있는 것처럼 보이도록 조정했습니다. ⬇️
애니메이션 블루프린트(ABP) 도입: 2D 스프라이트 애니메이션 사이클 및 상호작용을 효율적으로 관리하기 위해 3D 시스템 기반의 애니메이션 블루프린트를 활용하는 방법을 설명했습니다. 🎬
상태 머신 구현: ABP 내에 'Movement'라는 상태 머신을 생성하여 'Idle'과 'Walk' 두 가지 애니메이션 상태를 관리하도록 설정했습니다. 🚶
유휴 및 걷기 상태 정의: 'Idle' 상태와 'Walk' 상태를 각각 해당 애니메이션 소스(Paper Flipbook)에 연결하여 캐릭터의 기본 동작을 정의했습니다. 🧘♀️
유휴-걷기 전환 로직: 캐릭터의 속도(Vector Length > 0)를 기반으로 'Idle'에서 'Walk' 애니메이션으로 전환되는 조건을 설정했습니다. ⏩
걷기-유휴 전환 로직: 'Walk'에서 'Idle'로 전환되는 로직은 속도가 0일 때(Not Boolean을 사용하여 속도 > 0의 반대) 발생하도록 설정했습니다. ⏸️
방향성 설정 노드 활용: 'Anim Graph'에서 'Set Directionality' 노드를 사용하여 캐릭터의 이동 방향에 따라 스프라이트의 방향이 바뀌도록 했습니다. ⬆️
전방 벡터 및 2D 변환: 'Get Actor Forward Vector'를 X, Y축으로 분할하고, Y축 값에 -1을 곱하여 3D 전방 벡터를 2D 방향성에 올바르게 매핑했습니다. ↔️
ABP 캐릭터에 적용: 생성된 애니메이션 블루프린트('ABP_PlayerHero')를 플레이어 캐릭터 블루프린트의 'Animation Component'에 할당하여 애니메이션을 활성화했습니다. ✅
카메라 거리 및 충돌 설정: 'Spring Arm'의 'Target Arm Length'를 조정하여 카메라 거리를 늘리고, 'Camera Collision Test'를 비활성화하여 카메라가 오브젝트에 의해 갑자기 움직이는 현상을 방지했습니다. 🔭
블루프린트 상속 관련 언급: 플레이어 블루프린트가 마스터 블루프린트의 자식으로 생성되었어야 했으나, 직접 생성된 점을 언급하며 추후 수정될 수 있음을 시사했습니다. 👪