James McAvoy on his 'nastiest' role Actor James McAvoy talks about his role in the new film Filth, which he says is his "nastiest" role yet. The film charts the downfall of McAvoy's character - Bruce Robertson - within the police force, and his interference in the private lives of his colleagues. The film Filth comes 17 years after Irvine's first novel, Trainspotting, was made into a cult film.