'Skeletal mesh not rendering in UE5

I am trying to follow along with a tutorial that was designed for UE4. However, I was wanting to play around with UE5 (since it just came out). I was able to find some info in order to change some of the objects around to be compatible with UE5. But, I cannot seem to get the skeletal mesh to render either in the editor or in the game.

(I included the plugin for Chaos Vehicle)

Here is a copy of the C++ code for the vehicle class:

VehiclePawn.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "WheeledVehiclePawn.h"
#include "VehiclePawn.generated.h"

/**
 * 
 */
UCLASS()
class FOODTRUCKTURFWAR_API AVehiclePawn : public AWheeledVehiclePawn
{
    GENERATED_BODY()
    
public:

    AVehiclePawn();

    virtual void Tick(float DeltaTime) override;

    virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override;

    // Control vehicle movement
    void ApplyThrottle(float ThrottleValue);
    void ApplySteering(float SteeringValue);

    // Control camera movement
    void ApplyLookUp(float LookUp);
    void ApplyLookRight(float LookRight);

    // Handbrake controls
    void OnHandbrakePressed();
    void OnHandbrakeReleased();

    // Primary Fire Controls
    void OnPrimaryFirePressed();
    void OnPrimaryFireReleased();

    // Secondart Fire Controls
    void OnSecondaryFirePressed();
    void OnSecondaryFireReleased();

    // TurboBoost Controls
    void OnTurboBoostPressed();
    void OnTurboBoostReleased();

    void UpdateInAirControl(float DeltaTime);

protected:

    UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
        class USpringArmComponent* SpringArm;

    UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
        class UCameraComponent* Camera;
};

VehiclePawn.cpp:

#include "VehiclePawn.h"
#include "Components/SkeletalMeshComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"
#include "Components/InputComponent.h"
#include "ChaosWheeledVehicleMovementComponent.h"

static const FName NAME_SteeringInput("Steering");
static const FName NAME_ThrottleInput("Throttle");
static const FName NAME_Handbrake("Handbrake");
static const FName NAME_LookUp("LookUp");
static const FName NAME_LookRight("LookRight");
static const FName NAME_TurboBoost("TurboBoost");
static const FName NAME_PrimaryFire("PrimaryFire");
static const FName NAME_SecondaryFire("SecondaryFire");

AVehiclePawn::AVehiclePawn()
{
    UChaosWheeledVehicleMovementComponent* VehicleMovComp = CastChecked<UChaosWheeledVehicleMovementComponent>(GetVehicleMovement());
    
    //Torque setup
    VehicleMovComp->EngineSetup.MaxRPM = 5700.f;
    VehicleMovComp->EngineSetup.TorqueCurve.GetRichCurve()->Reset();
    // Starting at 0 RPM we will have 400 lbs of torque
    VehicleMovComp->EngineSetup.TorqueCurve.GetRichCurve()->AddKey(0.f, 400.f);
    // Starting at 2000 RPM we will have 500 lbs of torque
    VehicleMovComp->EngineSetup.TorqueCurve.GetRichCurve()->AddKey(2000.f, 500.f);
    // Starting at 5800 RPM we will have 400 lbs of torque
    VehicleMovComp->EngineSetup.TorqueCurve.GetRichCurve()->AddKey(5800.f, 400.f);

    //Adjust The steering
    VehicleMovComp->SteeringSetup.SteeringCurve.GetRichCurve()->Reset();
    // Max Steering at 0 Mph is 1
    VehicleMovComp->SteeringSetup.SteeringCurve.GetRichCurve()->AddKey(0.0f, 1.0f);
    // Max Steering at 40 Mph is 0.7
    VehicleMovComp->SteeringSetup.SteeringCurve.GetRichCurve()->AddKey(40.0f, 0.7f);
    // Max Steering at 120 Mph is 0.6
    VehicleMovComp->SteeringSetup.SteeringCurve.GetRichCurve()->AddKey(120.0f, 0.6f);

    //Differential Setup
    VehicleMovComp->DifferentialSetup.DifferentialType = EVehicleDifferential::AllWheelDrive;
    VehicleMovComp->DifferentialSetup.FrontRearSplit = 0.65;

    //Automatic Gear Box Setup
    VehicleMovComp->TransmissionSetup.bUseAutomaticGears = true;
    VehicleMovComp->TransmissionSetup.GearChangeTime = 0.15f;
    VehicleMovComp->TransmissionSetup.bUseAutoReverse = true;

    SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
    SpringArm->SetupAttachment(RootComponent);
    SpringArm->TargetArmLength = 800.0f;
    SpringArm->bUsePawnControlRotation = true;

    Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("ChaseCamera"));
    Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);
    Camera->FieldOfView = 90.0f;
}

void AVehiclePawn::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);

    UpdateInAirControl(DeltaTime);
}

void AVehiclePawn::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    // Bind Steering and throttle controls
    PlayerInputComponent->BindAxis(NAME_ThrottleInput, this, &AVehiclePawn::ApplyThrottle);
    PlayerInputComponent->BindAxis(NAME_SteeringInput, this, &AVehiclePawn::ApplySteering);

    // Bind Camera controls
    PlayerInputComponent->BindAxis(NAME_LookUp, this, &AVehiclePawn::ApplyLookUp);
    PlayerInputComponent->BindAxis(NAME_LookRight, this, &AVehiclePawn::ApplyLookRight);

    // Bind Handbrake controls
    PlayerInputComponent->BindAction(NAME_Handbrake, IE_Pressed, this, &AVehiclePawn::OnHandbrakePressed);
    PlayerInputComponent->BindAction(NAME_Handbrake, IE_Released, this, &AVehiclePawn::OnHandbrakeReleased);

    // Bind Turbo Controls
    PlayerInputComponent->BindAction(NAME_TurboBoost, IE_Pressed, this, &AVehiclePawn::OnTurboBoostPressed);
    PlayerInputComponent->BindAction(NAME_TurboBoost, IE_Released, this, &AVehiclePawn::OnTurboBoostReleased);

    // Bind Primary Fire Controls
    PlayerInputComponent->BindAction(NAME_PrimaryFire, IE_Pressed, this, &AVehiclePawn::OnPrimaryFirePressed);
    PlayerInputComponent->BindAction(NAME_PrimaryFire, IE_Released, this, &AVehiclePawn::OnPrimaryFireReleased);

    // Bind Primary Fire Controls
    PlayerInputComponent->BindAction(NAME_SecondaryFire, IE_Pressed, this, &AVehiclePawn::OnSecondaryFirePressed);
    PlayerInputComponent->BindAction(NAME_SecondaryFire, IE_Released, this, &AVehiclePawn::OnSecondaryFireReleased);
}

void AVehiclePawn::ApplyThrottle(float ThrottleValue)
{
    GetVehicleMovementComponent()->SetThrottleInput(ThrottleValue);
}

void AVehiclePawn::ApplySteering(float SteeringValue)
{
    GetVehicleMovementComponent()->SetSteeringInput(SteeringValue);
}

void AVehiclePawn::ApplyLookUp(float LookUp)
{
    if (LookUp != 0.f) {
        AddControllerPitchInput(LookUp);
    }
}

void AVehiclePawn::ApplyLookRight(float LookRight)
{
    if (LookRight != 0.f) {
        AddControllerYawInput(LookRight);
    }
}

void AVehiclePawn::OnHandbrakePressed()
{
    GetVehicleMovementComponent()->SetHandbrakeInput(true);
}

void AVehiclePawn::OnHandbrakeReleased()
{
    GetVehicleMovementComponent()->SetHandbrakeInput(false);
}

I also am using the "City Sample Vehicles" pack from the marketplace and I have assigned the vehicle skeletal mesh in the blueprint:

enter image description here

As you can see the truck is not rendering in the viewport. It also does not render when I play the game. I know that the skeletal mesh works because it comes from a blueprint that works fine. I have tried to compare my code to the BP, but cannot find anything that could be causing it (that being said there is a LOT of stuff to compare, so I very well might be missing something).

Any help would be MUCH appreciated.

thanks in advance,

Brunke



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source