As early as Disney's 1943 attempt at adapting The Snow Queen, the protagonist of the story was the Snow Queen's sister. This character did not appear in the original Hans Christian Anderson story, and because production was halted within a few months, she never received a name. It was not until Chris Buck was given permission to direct the film that he gave her a name: Anna.
For much of her development over the sixty-plus years, Anna remained much the same: helpless, constantly afraid, and ultimately rejecting the Snow Queen as her sister. These remained her characteristics as late as 2011, when early animation had begun on Frozen. However, that changed when the song "Let It Go" was created, which changed Elsa from the antagonist to the anti-hero. (See below)
That changed Anna's personality as well. Instead of being the older sister, she was now the younger sister, and she loves Elsa very much - even after everyone else labels her a monster. She can also carry her own, and is seen as a strong female lead.
Anna's voice actress, Kristen Bell, was the very first confirmed voice in the film. The decision was made on March 5, 2012, and she recorded her lines over the next six months. She was cast, in part, based on her demos of other Disney songs, which proved to the directors that she was able to sing and act in a Disney-esque fashion. Her performance of Anna in the recording sessions helped to further develop the character.
Elsa, as the Snow Queen, was always meant to be the antagonist of the story. In all the different adaptation ideas throughout the seventy years Disney tried to make a film, the Snow Queen was the bad guy; this would have been the first time the antagonist was the main character in a Disney film.
However, when Chris Buck took on the project (with Jennifer Lee joining as co-director in 2011), he quickly realized that Elsa (his name for the Snow Queen) could not be the antagonist of the story, as it did not fit as a valid counterpart to Anna's personality. The directors called upon Robert Lopez and Kristen Anderson-Lopez, a song-writing couple, to write a song that would be central to the film, in order to give Elsa a sense of direction. After several failed attempts of making a villainous tune, the duo created a song called "Let It Go", which instantly transformed Elsa into an anti-hero instead of the antagonist, and in doing so solved almost all the problems the story had up to that point.
Elsa's voice actress, Idina Menzel, was cast in early 2012. The actress was best known for performing in Broadway musicals, and her demo of "Let It Go" showed the directors that she possessed the vocal range to perform the song - at that point, the only sure thing of the whole film. Her rehearsals with Kristen Bell, the voice of Anna, further persuaded the directors that she was the right Elsa voice. She recorded most of her songs and lines in the following three months, and upon the film's release, was universally praised for her performance as Elsa.
From the very beginning, the Snow Queen was meant to have an obnoxious sidekick, who would serve as comic relief for the movie. This sidekick was always meant to be a snowman, even as far back as 1943. As late as 2011, the snowman was supposed to be the Snow Queen's sidekick, but after "Let It Go" was written and Elsa was no longer a villain, the snowman was given an official name, Olaf. In addition to receiving a name Olaf was transitioned from Elsa's ruthless partner to Anna's charming, loveable partner.
Olaf went through several design and character changes throughout Frozen's 70-year production. The final version seen in the film was only finalized in early 2012, when some of the film was already beginning to be animated. Director Jennifer Lee found Olaf to be the hardest character of the film to work with, since he wnet through so many changes.
Olaf was voiced by comedian Josh Gad, who won an Annie Award for his role.