언리얼 엔진 5.0 이상, 특히 5.6 버전을 사용하여 'Vehicle Template'의 'Time Trial' 변형으로 프로젝트를 시작하여 기본적인 차량, 트랙, 타이머 및 체크포인트 기능을 활용합니다. 🏁
기존 bp_sports_car 블루프린트를 복제하여 bp_car_AI를 만들고, AI 차량은 플레이어 입력 대신 자체 로직으로 움직이도록 설정하며, 초기 테스트를 위해 SetThrottleInput과 SetSteeringInput을 사용합니다. 🤖
AI 차량이 따라갈 경로를 정의하기 위해 BP_TrackSpline이라는 액터 블루프린트를 생성하고 Spline Component를 추가합니다. 레벨에 배치 후 Alt + 클릭으로 포인트를 추가하고 End 키로 지면에 스냅하여 정확한 경로를 만듭니다. 🛣️
bp_car_AI 블루프린트에 FollowTrackSpline 함수를 생성하여 스플라인의 접선과 위치를 기반으로 차량의 조향 방향을 계산합니다. 이 과정에서 FindTangentClosestToWorldLocation, FindLocationClosestToWorldLocation, FindLookAtRotation 노드를 활용합니다. 🧭
FindLookAtRotation 결과에 Delta Rotator를 적용하여 현재 차량의 회전과 목표 회전 간의 차이를 정규화하고, 이를 Map Range Clamped 노드를 통해 -1에서 1 사이의 조향 값으로 변환하여 SetSteeringInput에 전달합니다. 🔄
BeginPlay 시점에 스플라인 참조를 가져와 변수에 저장하고 스로틀 입력(SetThrottleInput)을 0.5로 고정합니다. Event Tick마다 FollowTrackSpline 함수를 호출하여 실시간으로 조향 값을 업데이트하여 AI 차량이 경로를 따라가도록 합니다. ⚙️
스플라인 경로가 완성되지 않았거나 코너에서 속도가 너무 빠르면 AI 차량이 경로를 이탈하거나 충돌할 수 있음을 인지하고, 향후 속도 조절을 통해 이 문제를 해결할 필요성을 언급합니다. 💥