Disclaimer: If you already own the Ultimate Multiplayer FPS Framework With Runtime Multiplayer Level Editor then you already own the contents 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.
Technical Details:
Features:
- Adjustable poses for both first and third person view independently (using the same or separate meshes)
- Procedural Aiming with the ability to aim and cycle between any sight or mesh on your firearm
- Procedural Recoil that's fully customizable through graphs and variables for randomization
- Procedural Leaning left/right
- Procedural Looking up/down
- Procedural High/Low ready
- Procedural Movement/Rotation lag
- Procedural Sway
- Procedural Breathing
- Procedural Sprinting
- Procedural weapon shake
- Left Hand IK
- Control your camera FOV changing amount and speed while aiming/un-aiming
- Aim at your sight with a dynamic or fixed distance
- Firearm Collision System
- Short stocking
- Adjustable base pose without the need to edit the animation
- Control your grip offset so any firearm can be attached to hand_r in the mannequin or other grip bones without the need for many sockets
- Fully control all of the above individually for each firearm
- Much More!
Code Modules:
- ProceduralFPSAnimation, Runtime
Number of Blueprints: 3
Number of C++ Classes: 3
Network Replicated: Yes
Supported Development Platforms: Win64
Supported Target Build Platforms: Win64
Documentation: https://docs.google.com/document/d/1PEe83T26kNwl6FDCiWxW2MOPpZ-J3GTZ2uObA5C73Wg/edit?usp=sharing