Wah, neither I don't have clear idea about the exact reason of this bug.
but I fixed it by simply not creating any collision when the world is not the gameworld (only generate collision when it is running on PIE, Packaged game).
in USpineSkeletonRendererComponent::Flush() :
void USpineSkeletonRendererComponent::Flush (int &Idx, TArray<FVector> &Vertices, TArray<int32> &Indices, TArray<FVector> &Normals, TArray<FVector2D> &Uvs, TArray<FColor> &Colors, TArray<FVector>& Colors2, UMaterialInstanceDynamic* Material) {
   if (Vertices.Num() == 0) return;
   SetMaterial(Idx, Material);
   bool bShouldCreateCollision = false;
   if (bCreateCollision) {
  UWorld* World = GetWorld();
  if (World) {
     if (World->IsGameWorld()) {
        bShouldCreateCollision = true;
     }
  }
   }
   CreateMeshSection(Idx, Vertices, Indices, Normals, Uvs, Colors, TArray<FProcMeshTangent>(), bShouldCreateCollision);
   Vertices.SetNum(0);
   Indices.SetNum(0);
   Normals.SetNum(0);
   Uvs.SetNum(0);
   Colors.SetNum(0);
   Colors2.SetNum(0);
   Idx++;
}