Why are my characters invisible when setting the DefaultPawnClass to my custom character class in GameMode?

I made a child MyGameMode class that inherits from GameMode, and I also have a MyThirdPersonCharacter class that inherits from ThirdPersonCharacter. Why is it that when I replace the default

static ConstructorHelpers::FClassFinder<APawn> PlayerPawnBPClass(TEXT("/Game/ThirdPersonCPP/Blueprints/ThirdPersonCharacter"));
	if (PlayerPawnBPClass.Class != NULL)
	{
		DefaultPawnClass = PlayerPawnBPClass.Class;
	}

code in the contstructor with this:

DefaultPawnClass = AMyThirdPersonCharacter::StaticClass();

it ends up just spawning invisible characters? Note that the game works absolutely fine so far with the former code, but I want to know why it doesn’t work with the latter. Wouldn’t the correct way be to set it to my custom class?

It’s because the ThirdPersonCharacter blueprint class inherits from my C++ class, not the other way around. Therefore, the C++ class had no SkeletalMesh or animation info in it to use.