Why does simple animation make my game lag?

In my prototype, I’m trying to script an elevator, (of maybe twenty vertices at most), to go up via animation. While the animation is playing though, the frame rate drops like an anvil in Dragonball Z training gravity. The scene is highly simple, (it’s all cubes).

if(elevator)
{
// Makes player imobile and follow elevator.
playerMove = GameObject.FindWithTag ("player").GetComponent<cube_move>();
playerMove.enabled = false;
playerMove.gameObject.transform.parent = platform.transform;
//plays animation
models.animation.Play(step1);
yield return new WaitForSeconds(3.2f);
if(step2 != "none")
{
	models.animation.Play(step2);
	yield return new WaitForSeconds(2.5f);
}
//Lets player move again.
playerMove.gameObject.transform.parent = null;
playerMove.enabled = true;

The animations were from a Blender file and stored in the root. So the root had like thirty child objects, and the more child objects it had, the lower the frame rate. When I unparent most of them, the animation worked just fine. So do I need to store the animations in nodes and keep them as separate objects or do I have some kind of obscure setting that caused this?

Do you have a collider on any of the submeshes. For some reason Unity lags up when a collider is animated.