However, the game hints that Viola is Bayonetta and Luka's daughter from another universe, starting from the opening minutes of the game and with all of the subtlety of a sledgehammer. In addition, with no explanation given beyond "the multiverse is becoming unstable", Luka (previously the clumsy comedic relief and source of exposition) gains the powers of a fairy king and becomes a werewolf.
These storylines would be fine on their own; just because Bayonetta and Luka were in a relationship in Viola's universe, it doesn't mean that they have to be in a relationship in the main one, and it gives Viola a reason to want to help those two and make sure they're safe. However, things fall apart (to put it mildly) starting at the end of chapter 13.
Throughout the entire game, Jeanne has been busy with her quest to find Dr. Sigurd. She reunites with Bayonetta, gets Dr. Sigurd to the island, and helps Bayonetta get to Singularity's home dimension... only for the game to suddenly reveal that Singularity killed and replaced Dr. Sigurd before the game even started. Singularity (who Jeanne had brought to exactly where he wanted to be) promptly stabs Jeanne in the back with a lightsaber that she could have easily avoided (he's still posing as someone who's wheelchair-bound, and dodging is her whole thing), which instantly kills her in a way that is permanent by all appearances. (her Umbran Watch, the reason why they could revive her in the second game, is destroyed, and her soul fades away later)
This means that one of the main characters of the franchise was killed off unceremoniously, getting little reaction from anyone else (Bayonetta says "Jeanne..." once she realizes that they left Jeanne alone with the main villain, but that's about it), and we've only just begun.
The game reveals, after Singularity spends most of it referring to Bayonetta as "Arch-Eve Origin", that Luka is "Arch-Adam Origin", and acting as though he and Bayonetta are destined to fall in love in every single universe. Luka goes to apparently sacrifice himself in order to help Bayonetta and Viola reach Singularity, which causes Bayonetta to nervously lean in to kiss him. He stops her, but this already feels incredibly out-of-character - throughout the first game and most of this one, Bayonetta treated Luka's flirting as amusing at best, while she barely even acknowledged him in the second game, but now, in the final hour of the third game, she acts like she's been in love with him the whole time.
We get to the Singularity boss fight - it has its awesome moments (Madama Butterfly uses a Kamehameha, an army of Bayonetta souls take on Singularity), but Singularity has all of the hallmarks of a terrible anime villain. (and not terrible as in someone who you love to hate - terrible in that you hate watching them because they're just frustrating) Absurdly overpowered with no reason why, no real characterization beyond "I want to destroy the multiverse because I can!", and he never seems to be inconvenienced in any way. Any time it looks like the heroes are going to get the upper hand, he says something like "this phenomenon was within my predictions" and effortlessly turns the tables.
Out of the Bayonetta final bosses, he is EASILY the worst. His first phase is clunky, his third phase is forgettable, and while his second phase is okay, "okay" is not what you want for the final boss of a Bayonetta game. He has a forgettable design in all of his states, no personality to speak of, and he doesn't even get a good ending. Unlike the other final bosses, who get an over-the-top death, he just explodes, and it's not even a big explosion.
Throughout the boss fight with Singularity, we get plenty of moments that would have been awesome, only for the game to reveal that Singularity isn't even injured by what just happened, or that he can effortlessly negate it.
-Bayonetta summoning two upgraded versions of demons at once? He can just walk it off.
-an army of Bayonetta souls fighting him? He can effortlessly destroy them
-Bayonetta and Jeanne's soul teaming up to fight him? It's only enough to force him out of his second stage, and Jeanne's soul disappears midway through the fight
-Bayonettas from the first two games (not their souls, the flesh-and-blood Bayonettas) show up to help out? Singularity swats them away after they take away one of his health bars.
-the two Bayonettas fuse with the main Bayonetta? Singularity says "my control over phenomenon is absolute" and the fusion is undone just because.
-Viola jumps in to help out, trying to make up for the death of her mother at the start of the game and prevent history from repeating itself? She doesn't even get a gameplay moment - Singularity knocks her away in a cutscene with no effort.
Everything seems hopeless - Jeanne is dead, all of Bayonetta's last-ditch efforts failed to make a dent in Singularity, an army of Bayonettas couldn't stop him, and Viola absolutely failed to avenge the death of her universe. So what saves the day?
Luka.
The comedic relief character shows up with full control over his werewolf form, and proves to be more effective against Singularity than a literal army of Bayonettas. By this point, Luka comes across as a self-insert for one of the writers - he's equal to or stronger than Bayonetta, she's madly in love with him, and he's the one who single-handedly turns the tide against the final boss. All of this happens in the final game of a trilogy with no build-up in the previous two games, and most of it happens in the final hour of that game. It's a lot at once.
As I said earlier, the final boss doesn't even go out in a climactic or interesting way, and we are STILL not done with the bullcrap. Over the course of the fight, cracks have been appearing in Bayonetta's Umbran Watch, and after the fight ends, her Umbran Watch shatters, causing Sin Gomorrah to run wild and knock Bayonetta's soul out of her body. Luka kills Sin Gomorrah in one hit (something that even Bayonetta couldn't do with the base version), but it's too late - Bayonetta's being dragged off to hell.
Luka grabs Bayonetta, getting dragged to hell along with her as the two share a kiss. As I said earlier, any romance was awkwardly shoe-horned into the final hour of the story, so while the scene could be seen as sweet, it comes across as a little jarring - it's like an entirely different team of writers took over for the last hour of the game - one who wanted the game to be tragic and romantic, while removing much of the excitement and fun that the series is known for.
Bayonetta's dead, Luka's dead, Jeanne's dead, every version of Bayonetta and Luka across the multiverse are seemingly dead, and Singularity's defeat wasn't even satisfying, but we're STILL not done.
After the credits, we play as Viola (who we've only played as three times over the course of this game), who fights against a shadowy version of Bayonetta who's only ever described as "the darkness that Bayonetta left behind". After a boss fight, this shadowy Bayonetta says that Viola has grown so much (she hasn't - the game just tells us she has). Cut to a short time later, where things are seemingly restored to normal and (with the exceptions of the deaths of Bayonetta, Luka, and Jeanne) the death and destruction caused by Singularity has somehow been undone with his death. Viola (now wearing Bayonetta's glasses and Luka's scarf, even though she can't see out of Bayonetta's glasses and Luka's scarf gets in her way) is working for Rodin, with a new name for herself - Bayonetta.
Cue the dance sequence! (which feels out of place and incredibly tone deaf given what happened)
The entire game ends with a passing the torch ending that ABSOLUTELY NOBODY asked for, killing off three fifths of the main cast in order to make it happen. Viola works fine as a supporting character, and she could have grown into a fitting successor to Bayonetta if given another game or two, but trying to cram Viola's introduction, growth, and her becoming the new playable character all in one game caused them to skimp on the "growth" part, leading to her being introduced and becoming the new main character with absolutely nothing to justify it aside from every other playable character being killed off.