Zac Efron was pissed off with his character in 'The Lucky One' because he is so perfect.

The 24-year-old plays war hero Logan Thibault - who along with being romantic, good with kids, and a former marine can also dance and play the piano - and Zac admitted he was annoyed that he can't measure up in real life.

He told 'Extra': ''I was pissed at myself when was playing him, my character is the coolest dude and on top of that he's a hero. But it was the best part in the world to play.''

Zac and co-star Taylor Schilling have some steamy love scenes in the movie and he says they got through them by maintaining an ''undercurrent of laughter''.

Zac said: We maintained an ''undercurrent of laughter'' and had a good laugh.''

Taylor added: ''I didn't find it weird to film, Zac's a really easy guy to work with and we had a lot of fun, it was a comfortable, safe situation.''

Zac shows off an impressive physique in the film thanks to a strict training regime which saw him put on 17 pounds.

He explained: ''I did a lot of training, it was a we very strict training regiment with a Navy Seal, trained for five months, I put on about 17 pounds but I don't know if I could do it again.''