Star Wars actor Mark Hamill has apologised for criticising the portrayal of his character Luke Skywalker in the blockbuster franchise's latest film, Star Wars: The Last Jedi.

"I regret voicing my doubts & insecurities in public", Hamill wrote on Twitter yesterday. "Creative differences are a common element of any project but usually remain private."

Hamill, who played Skywalker in the three original Star Wars films (1977-83), gave an interview in June in which he said he was unconvinced by the script, and particularly unhappy about Skywalker's line "It’s time for the Jedi to end." He said: "Luke would never say that...I almost had to think of Luke as another character. Maybe he's 'Jake Skywalker,' he's not my Luke Skywalker."

Earlier, in May, Hamill said he had approached the film's writer/director Rian Johnson about his concerns. He told Vanity Fair: "I at one point had to say to Rian, ‘I pretty much fundamentally disagree with every choice you’ve made for this character. Now, having said that, I have gotten it off my chest, and my job now is to take what you’ve created and do my best to realize your vision.'"

But yesterday the 66-year-old actor admitted his fears had been unfounded. "All I wanted was to make good movie," he tweeted. "I got more than that – Rian Hohnson made an all-time GREAT one!"