Disclaimer: If you already own the Ultimate Multiplayer FPS Framework With Runtime Multiplayer Level Editor then you already own a more updated version of this plugin, no need to purchase this plugin as well.
Showcase / Documentation (Google Doc) / Support Discord
Current Version: 1.2 05/08/2022
What is this plugin:
This plugin is designed to be completely character independent so you can use your own characters with the system. The goal is to take a lot of the difficulty out of the animation process and bring you a smooth system that handles most of the common animations procedurally, while also being fully replicated for multiplayer use. The system is written in C++ with everything exposed to blueprint to give you ease of use with blueprint while being more performant than the competitions. I provide examples for everything required which is an example firearm, character, and animation blueprint which can easily be retargeted to your own character. Every procedural aspect of this system is customizable through either graphs, variables, or both. For example recoil. Recoil is controlled through two graphs, one for the location and one for the rotation of each shot. Then it has a series of variables so you can get a random result with each shot that is unique per firearm. To perform recoil you call PerformProceduralRecoil on the firearm or animbp. This function takes in a multiplier so you scale up/down your recoil effortlessly based on your stance such as standing/crouching/prone.
How does this plugin work:
This plugin works through a component. Provided is a character component which you simply add to your character. To set it up all you have to do is call the Init function in BeginPlay and the system is ready to go. The character component acts as an interface for the system. For example if you want to lean left/right, you call LeanLeft and LeanRight from the character component and the system takes care of it for you with full replication. I provide a firearm base class which holds all of the needed information and customization required. If you want to add a sight to aim with all you have to do is add a static or skeletal mesh component to the firearm and give it the component tag FPSAnim. After that add a socket with the name S_Aim (this is the default name, set it to what you want in the firearm) where you want to aim and you are finished. This allows you to aim with anything such as a sight, magnified optic, light/laser, even the magazine and you can do so in less than 2 minutes! If you already have existing firearms all you have to do is reparent them to my firearm class and simply add the component tag to the firearm mesh FPSAnimFirearm and your done! Its that easy.