The Lucky One, the latest Nicholas Sparks penned tear-jerker to get the big-screen treatment, has finally cast its leading lady. With Zac will-he-just-sit-down-and-film-Jonny-Quest Efron (Charlie St. Cloud) already cast as a US marine named Logan, Mercy star Taylor Schilling (Atlas Shrugged) has signed on to play his…well, it’s complicated.

The story opens with Efron’s Marine serving his third tour of duty in Iraq. After finding a half buried photo of a young woman (Schilling) in the sand he soon begins attributing his luck to the enigmatic snap. Tracking down the woman in question when he returns home to Colerado, a passionate romance erupts. Caught of guard by the attraction he feels, Logan resolves to keep the photo and its attributed luck a secret, a choice that – according to wikipedia – threatens to tear them apart.

Sold to Warner Bros., the adaptation will be directed by Douglas McGrath for a 2012 release.

THR had it first.