Playing an animation montage

What is the difference between these two ways of playing an animation montage:

USkeletalMeshComponent* FPSMesh;
UAnimMontage* EquipAnim;

// 1. USkeletalMeshComponent::PlayAnimation()
FPSMesh->PlayAnimation(EquipAnim, false);

// 2. UAnimInstance::Montage_Play()
float Duration = FPSMesh->AnimScriptInstance->Montage_Play(EquipAnim);

What is the difference and when should one be used over the other? What exactly is AnimScriptInstance and when should it be used in C++ code?

Hello! Montage_Play can play only AnimMontages and is not affecting SkeletalMeshComponent Animation Mode. PlayAnimation can play not only AnimMontages, but AnimSequences and all other AnimationAssets, more over it switches SkeletalMeshComponent Animation Mode to AnimationSingleNode…