게임엔진/Unreal

[Unreal] 차량 설정 방법 (Chaos Vehicle)

ShovelingLife 2022. 5. 30. 08:28

WheeledVehiclePawn으로부터 생성된 엑터다. 즉 UWheeledVehiclePawn 클래스로부터 상속받으면 된다.

UChaosWheeledVehicleMovementComponent를 사용한다.

  • 바퀴의 정보(크기, 질량, 무게 등)는 UChaosVehicleWheel Wheel Setups 내 Wheel Class 안에 들어가며 Bone Name은 바퀴 뼈대 명칭.
  • 차량의 가속도는 UCurveFloat, External Curve에 보란색 칸에 위치된다.
  • GetVehicleMovement 함수는 반환형이 UWheeledVehicleMovementComponent 이다, 따라서 UChaosWheeledVehicleMovementComponent* 타입으로 캐스팅 해줘야한다.
  • C++로 사용할 시 해당 모듈을 추가 해줘야한다, ChaosVehicles를 build.cs 파일안에 추가해주자.
UChaosWheeledVehicleMovementComponent* vehicleMoveComp = CastChecked<UChaosWheeledVehicleMovementComponent>(GetVehicleMovement());

// 바퀴 설정    
auto bpFrontWheel = ConstructorHelpers::FClassFinder<UChaosVehicleWheel>(경로);
auto bpRearWheel  = ConstructorHelpers::FClassFinder<UChaosVehicleWheel>(경로);    
auto floatCurve   = ConstructorHelpers::FObjectFinder<UCurveFloat>(경로);

// 예외처리   
if (!bpFrontWheel.Succeeded() ||
   !bpRearWheel.Succeeded()  ||
   !floatCurve.Succeeded()) 
   return;

// 앞 좌측 바퀴
FChaosWheelSetup frontLeftWheelSetup;
frontLeftWheelSetup.WheelClass = bpFrontWheel.Class;
frontLeftWheelSetup.BoneName = "Wheel_Front_Left";
vehicleMoveComp->WheelSetups.Add(frontLeftWheelSetup);

// 앞 우측 바퀴
FChaosWheelSetup frontRightWheelSetup;
frontRightWheelSetup.WheelClass = bpFrontWheel.Class;
frontRightWheelSetup.BoneName = "Wheel_Front_Right";
vehicleMoveComp->WheelSetups.Add(frontRightWheelSetup);

// 뒤 좌측 바퀴
FChaosWheelSetup rearLeftWheelSetup;
rearLeftWheelSetup.WheelClass = bpRearWheel.Class;
rearLeftWheelSetup.BoneName = "Wheel_Rear_Left";
vehicleMoveComp->WheelSetups.Add(rearLeftWheelSetup);

// 뒤 우측 바퀴
FChaosWheelSetup rearRightWheelSetup;
rearRightWheelSetup.WheelClass = bpRearWheel.Class;
rearRightWheelSetup.BoneName = "Wheel_Rear_Right";
vehicleMoveComp->WheelSetups.Add(rearRightWheelSetup);

vehicleMoveComp->EngineSetup.TorqueCurve.ExternalCurve = floatCurve.Object;