Current Version: CombatFramework 5.7
Third person character controller system and creator.
Also, combat framework with unarmed, melee and rangedweapons combat features.
The purpose is, along with the basic movement system, to easilycreate a player and/or NPC controller with few clicks.
Placing NPCs on map ready for combat with customizablebehaviour, animations and sounds.
Character controller is using rigid body capsule as movement collider, it can push and be pushed.
Also has body parts colliders which can be used for body location hits with ragdoll fall and hit reaction system.
The package provides playable game demos to show examples of using a player and NPC controllers.
Currently, player creation system supports humanoid rigs only.
NPCs creation system supports humanoid and generic rigs.
There are 2 types of players that can be created by default in the package: third person player and top down view player.
Player third person is full-featured third person player with locomotion, combat, triggers/actions, NPC interaction, melee and ranged weapons.
The player can roam the scene, traversing obstacles, climbing ledges, push and pull objects, combat with NPCs and if multiplayer – other players.
Combat can be unarmed, armed with a melee weapon or ranged
weapons.
The player can attack NPCs which can block the incoming attack.
NPCs block action is calculated on random by 'BlockOdds' value.
Lower the number, higher the chances of blocking.
The player can block incoming attacks unarmed, with shield and every weapon if attacker block penetration is lower or equal that of player block resistance.
Also, the player block will be broken if stamina decreases lower than a minimum value ( currently 20 – you can change the breaking block limit by changing the value of 'Stats.MINUMUM_STAMINA' ).
Every block decreases stamina except blocking with shields.
Player top down is very similar to a player third person except for few differences.
Player top down has a different camera ( obviously ) and has ledge climbing disabled.
Also, it has no 'ItemPicker' component and is picking up weapons by walking over them ( using trigger collider ).
Npc is non playerable character that can be created by the system.
Main NPC component is ‘NPCScript’ component and its behaviour is controlled by behaviour components ( derived from NPCBehaviour class ) which can be changed on runtime.
There are already implemented initial behaviours like ‘guard’( NPCGuardBehaviour ) and ‘patrol’ ( NPCPatrolBehaviour ) which can be chosen on start.
Also ‘follower’ behaviour is set when player chooses npc to become its companion.
NPCs are also members of a team and have disposition towards other teams.
Dispositions can be ‘aggressive’, ‘defensive’ and ‘passive’
Aggressive NPC attack enemy team mebers of sight.
Defensive NPC holds its idle state unless it is attacked – then its disposition becames aggressive.towards attacking team members.
Passive NPC does not retaliate.
A. BASIC
5. Create Player - Npc Interaction Scene
11. Item / Weapon Creator Window
B. ADVANCED
3. Ragdoll & Hit Reaction System
6. Arrow Pool - Adding Arrow Impact Info
9. Adding Additional Hit And Block Reactions
11. Death By Ragdoll Or Animation
C. PRO
D. ADDENDUM: PHOTON MULTIPLAYER
The first thing to do to enable multiplayer by Photon is to import the Photon package into the project.
System supports Photon PUN2 version.
After Pun2 is imported, it adds 'PHOTON_UNITY_NETWORKING' macro which enables all CombatFramework - Photon scripts / components.
Obviously, do not add 'PHOTON_UNITY_NETWORKING' define without Pun2 imported or countless errors will arise.