Josh Hartnett studied serial killers to prepare for new movie Trap

Josh Hartnett read a stack of books about serial killers to prepare for playing one in Trap.

In M. Night Shyamalan's upcoming psychological thriller, the Pearl Harbor actor plays Cooper, a serial killer known as The Butcher. Cooper takes his daughter to a pop concert and eventually realises the event is a trap set by police to catch him.

To prepare for the role, Hartnett read "all the books" to get into the mindset of a serial killer.

"You've got to know who you're playing and so getting into the darkness of a serial killer's mind," he told Extra. "There are plenty of books on these people that exist now and why they did what they did.

"The thing that struck me kind of right off the bat is that the person who was writing each of these books, honestly, was charmed by them. They had a nice way about them that put the writer at ease and made him let his guard down."

Hartnett, who has four children with wife Tamsin Egerton, added that Cooper's father-daughter relationship with his young co-star Ariel Donoghue "came kind of naturally".

"Playing that with a little bit of an edge as someone who doesn't necessarily know how to love but knows how to teach and protect his legacy or whatever he thinks she is. It was an interesting psychology to explore," he shared.

After shooting the movie, Hartnett took two of his daughters to a Taylor Swift show and the experience made him realise how accurate the concert is in Trap.

"It felt to me on the day like these (people) have lost their absolute minds. Like, all the kids were so obsessed and they've been given Lady Raven's music beforehand and they became genuine fans and they were all singing along and going crazy" he recalled. "It was exactly what I experienced at the Taylor Swift concert, basically."

Lady Raven is a fictional pop star played by Shyamalan's daughter Saleka.

Trap will be released in cinemas on 2 August.