The singer was trained for her first ever film role as a tough sailor by US naval officer Jackie Carrizosa, who spent a month teaching her how to speak like a recruit and shoot weapons and claims the singer was even better than her stunt double.
Former gunner`s mate Jackie told The Sun newspaper: "We were on set from sunrise to sunset -- Rihanna was really tough. She was way better than her stunt double.
"She`s not afraid to get bruised or cut. All the stuff her stunt double would normally do, she was doing herself. I taught her how to handle the weapons. When she had a gun in her hand she couldn`t stop smiling. She loved it."
Rihanna plays sailor Cora Raikes in the film, who gets caught up in huge battle between aliens and a fleet of US navy warships, directed by Peter Berg.
Rihanna said she based her character largely on Jackie after having learned so much from her.
She said: "We had this bad ass chick on set, her name is Jackie, she was also in the Navy. I was playing what she does in real life. She was all tattooed up and I just looked at her and I was like, `You are Raikes`.
"I watched her and really tried to get in her character. She`s fearless and she`s one of the boys and it`s really fun to explore that."
Jackie - who now works at a gun range in Las Vegas, Nevada, after completing four years in the navy - added she was flattered that Rihanna had called her a "bad ass."