Ewan McGregor as John