Almost every screenplay has a hero who has a goal, displays emotions, and keeps meeting failure and obstacles in pursuit of a quest. That’s exactly how it should be, but too many screenplays stop right there and make all other characters soulless beings with no goal other than to conveniently serve the plot.
Every character needs a goal. Your hero definitely needs a goal because that’s what drives the plot. But where too many people make the mistake is by not giving all of their secondary characters a goal as well.
Every character, no matter how small, needs a goal. In secondary characters, this goal needs to reflect or mirror the hero’s own goal. In “WALL-E,” the WALL-E robot has a goal of companionship and the two humans that he runs into also have a goal of companionship. These two people don’t exist solely to help WALL-E in any way. They exist because they too have their own goals.
This is the difference between a good movie and a bad one. In a bad movie, characters pop up to attack or help the hero for no apparent reason other than it’s convenient for the plot. We never know what goals these secondary characters have. The hero seems to be the only rational, thinking and feeling being while everyone else is just a zombie who serves the plot.
Don’t make this mistake. Give all your characters a goal that reflects or mirrors the hero’s goal. Nobody in your story exists for the sake of advancing the plot. Every character exists to serve their own selfish needs and goals, and the intersection of those goals with the hero’s goals is what makes a story feel richer as a result.