You may want to break down your question into a few separate questions to get better responses, but in the meantime here’s a way to get started with controlling characters and collisions!
If by 2D you mean using Paper2D, you might be surprised to find that using the 3D side of Unreal Engine could prove easier, even if you want to project into a 2D plane for a 2D effect.
You’ll need characters with full rigging. Paper2D doesn’t yet support skeletal characters. You could also roll your own collision system, but it’ll get complicated. Make a 3D model of your character, apply bones to it, make animations. Make a collision mesh for each part of the character. Viola! The collisions built into the engine are now available to you, and you can read more about them here: Collision in Unreal Engine | Unreal Engine 5.2 Documentation
Start with the side scroller template available to you when you launch the UE4 editor.
There’s an animated and rigged character there you can use to at least test collisions between two different characters.
If you fully understand how that example project works, you should be well off enough to truly get started.
you don’t need bone rigged characters for a fighting game, you can make it with just sprites and animated hitboxes. even 3d fighting games use hitboxes that are turned on or off depending on the move, and while some of them are attached to limb bones, most of the hitboxes are just boxes attached to the root of the character.
most fighting games have Hitboxes that deal damage, hurtboxes that receive damage, and PushBoxes that keep characters from overlapping.
since your root capsule component is already a pushbox, you just need to add hurtbox and hitbox volumes to the game, and give the character an array of hitboxes and hurtboxes, updating the array during each move using anim notifies. usually, you need 3 hurtboxes (low, mid, high), and 1 hitbox, but you could make them subclasses of the same type, so the base class can handle the editor code, allowing them to be placed using the same code, and the individual classes can be used to filter the collision.
storing the data for all of these hurtboxes, for each pose, for each move, for each character, could be done with a text file or a spread sheet, but it would be hard to edit the data without a visual editor. each box could be a struct that has a bone name to attach to, and 2 vectors, for min and max coordinates defining the box. if you expose the vectors, you could get an in editor handle to adjust the sizes, and you could have a construction script that renders a color coded volume where the boxes would be spawned.
doing all of this in blueprints would work, but to make a custom editor, or change the movement component would require c++. right now, the character movement component detects that it has landed based on the capsule touching the ground, but for some moves, that might not work so well. if your character is doing a front flip with a small capsule, you don’t want to wait until they reach the ground in order to land, you should instead be doing line traces below the capsule at the height that a standing character would have, which checks for the ground. that way, you can do a front flip over a characters head, and have your character continue the flip, even if they land on the other characters head, and they would stop flipping at the right height, without having to roll on the ground.
ideally, you would want to create something like Mugen’s Fighter Factory:
it has box volumes that detect overlap, you just have to add code that keeps track of what type is being overlapped and the logic for handling the different kinds of overlap. if a hitbox overlaps a hurtbox, and the owner of the hurtbox is not blocking, it deals damage, if a hitbox overlaps another hitbox, the fighters clang and nobody gets hurt.
you may even want to add counterBoxes, grabBoxes, BlockBoxes and floor boxes, but they are all just box volumes.
ue4 has a built in PainCausingVolume, but i would recommend making it from scratch to fit how your game works.
ah, in that case this could would be a better solution for a 2D fighter game!
though i think OP has edited the description to 2.5D fighter?
not sure what that’s about but thanks @Omnicypher, i learned something!
For anyone that still cares, there’s actually a 2.5D fighting game template on the marketplace right now. Its a little pricey but worth it if you’re serious about making a fighting game as the creator provides full support in both English and Japanese as well as constantly upgrading the template (for free to those who purchase it) based odf of use requests and feedback. There’s also videos explaining how the template works and soon some tutorials on how to customize it to your fitting.