James McAvoy's new film is a "f***ed up fairytale".
The actor plays a morally reprehensible policeman in 'Filth' which made presenting him as a character who viewers could sympathise with wasn't easy.
He said: "[It's] a f***ed up fairytale. It is not easy to make a really, really, good film about a homophobic, racist, sexist and misogynist guy.
"It's an exceptional story about an exceptional person. It is not about everyday life. That is reflected in the way it is shot. We are not trying to be gritty. There is edginess in the performances, of course, but it's like when you are in a theatre and you know you are watching a play."
James, 34, is seen taking drugs and having sex in the film - based on the novel by Irvine Welsh - and was initially concerned he was too young to play the part of a middle aged man, but director Jon S. Baird knew he was perfect for the role as soon as he met him.
Jon said: "I originally thought James was a middle class Scotsman, but he's definitely not. He's far edgier than people might imagine.
"Irvine [Ken Marshall, producer] and I were waiting for him to arrive, and in walked James wearing a baseball cap, looking about 15 years old. [But] as soon as we started talking about the character, James completely changed into this grizzled, middle aged cop."
'Filth' is in cinemas from October 4.
Tagged in James McAvoy Irvine Welsh