I voted for Metal Gear Solid 3: Snake Eater.
Haven't played any Halo games so can't really comment on those but MGS3 improved on it's predecessor something which Uncharted 3 sadly couldn't do (mostly due to how great UC2 was).
As for characters, Nathan Drake wins that easily by being so damn sexy.
Signature goes here!