CATEGORIES:
PLAYER CONTROLLER
Improved ground adherence on stairs
New option on the ragdoll activator to customize better the death animation (when the ragdoll is not used and instead, an animation is played when the character dies), allowing to set the ID of the one to use and if the player gets up from belly or from back position for each one, being much more customizable now
IImproved fall damage options, with better fields and options to apply the damage better (including the code itself of that part), along with setting if the shield is ignored to apply the damage or not (from the shield system to avoid damage similar to borderlands, which can be disabled). Also, in the events options of this feature, I have configured a custom action through the action system to play a hard landing animation, according to the time on air
●
PLAYER CAMERA
Added option on player camera states to configure if the camera follows player direction, to rotate always toward that direction. It has also an option to configure the rotation speed and if the camera can be rotated through input in that state, returning to auto rotation after a delay of time or keep the camera always looking at that direction, without taking into account the input
Added option to player camera states to configure an event when the camera state is changed, allowing to have two events on each, one when the camera state changes to that state and another when changes to another camera state
Added option on the cutscene camera system to snap the camera directly in the first waypoint position instead of doing a smooth transition, so you can use any of both options, for the spline movement type
Adde option on the camera states to configure a different vertical limit for the camera rotation when using the lock-on state for a target, to avoid the camera to move too much down or up, to show better the target in case the player is too close to it, useful for the melee combat system or the close combat
Added option on the lock-on target input, which in case it doesn't find a target to lock, the player can activate/deactivate the strafe movement in the meantime
Added new preconfigured camera example with an isometric view and using point and click control type for the player
Added option to configure the height of the transform used to aim in locked camera, in views such as top down or isometric directly in the locked camera system component, instead of doing it on the transform, making easier to customize that value on the settings of the locked camera
Added option to use a zoom in and out for the locked camera by moving the camera closer or farther from the player, instead of changing the camera fov, with values to the max and min distance and movement speed of the camera
Added option to rotate the locked camera horizontally (Y AXIS) with the mouse input instead of only by keys on the keyboard/gamepad
Added option to configure a locked camera limit system directly in the camera state, avoiding the need of putting the triggers on each position of the locked camera for the limit system, activate that limit state directly when the camera changes to that locked view
Added option to change the camera view from the current locked camera to third person at any moment with the same change camera input key configured to change the camera view between first and third person. If that button is pressed again, the view will change from the free third person view back to the locked camera view. When the player exits from that locked camera view to free one again, the change camera view input will change the view again from third to first person and vice versa. This option can be enabled on just some locked camera view, all or none of them, according to what you need
Added the option to use the reticle in locked camera to set the movement direction of the player, similar to free view, but in locked view
Added new ways to control the locked camera view, like adding an option to use a zoom in and out by moving the camera closer or farther from the player, instead of changing the camera fov, with values to the max and min distance and movement speed of the camera. Another option allows to rotate the locked camera horizontally (Y AXIS) with the mouse input instead of only by keys on the keyboard/gamepad
Added a couple of elements to being able to use those abilities which use the aim state to throw objects in locked camera view, like the throw grenade or the throw stone (for noise) examples, so the position to throw those objects is where the reticle of the screen is located
Added option for the locked camera system for views like top down, isometric, etc... to use a radius distance for the mouse reticle to be moved around the player, instead of the current square/rectangle limit. That allows to move the reticle using a circle clamp instead
Added option on the 2.5d camera, improving the dynamic change of plane from XY to YZ and vice versa, including also an option to configure the camera limit more easily, by setting if a certain locked camera uses this camera clamp, instead of being activated by triggers, which allows to make better transitions and make them easier to customize. Also, I added an option to rotate the player toward the direction of the new plane directly, to face that new orientation. I have to polish a couple of elements but this is a much better workflow and way of work for this type of locked camera.
Added a couple of buttons for the weapon system (in IK Weapon System component), one to create the inventory object (with its pickup) of a new weapon and another button to add the ammo as inventory object (along with its pickup). So that makes things much faster and easier to configure when adding a new weapon, and that combined with the weapon wizard creator, it will allow to have a weapon and its ammo ready to use in just a few button clicks
Added a new weapon example, the acid shooter, which fires projectiles that dissolve any object where it impacts (vehicles, rigidbodies, AI, etc…)
Added option on each weapon to use a custom camera state on third person when aiming for both right and left side, so according to each weapon, the camera can be placed in a farther or closer position, for example, in a farther position backward if the weapon is a gatling or a big rocket launcher
Added component on touch buttons, for those which are used to fire weapons or powers, for player or on vehicles, so when those fire touch buttons are pressed, the camera rotation is activated with the touchpad control option, so in mobile, the player can rotate the camera while shooting a weapon, power, on vehicle, or in any other situation
Added weapon reloading animation management on third person, configured through the action system, able to be used on any weapon, with smooth transition from IK, to animation and back to IK to hold and carry the weapon. Also, the animation is configured in a new layer only for the upper body, so the lower body can perform other action in the meantime, like moving for example (working on this has allowed me to learn more about the animator system too. Also, different weapons can share the same animation reload, as for similar types of weapons, like one animation for all kinds of pistols, another for revolvers, another for assault rifles, etc… But of course, each weapon can use its own reload animation as well if needed
Added example on the assault rifle, on its telescopic sight attachment to allow the user to use the mouse wheel action to change the fov of the scope, so the player can have a more open or closer view of what is visible on the scope easily, adjusting this field of view. This can be configured on any weapon with a telescopic sight and is used on first person for now, when the player aims the weapon (everything is configured through the events options of the weapon system, nothing is hardcoded, so it can be customized as prefer)
Added option to hide the weapons HUD after x time when the player draws a weapon or changes between then
Added option to not enable the weapons HUD
Added options to activate events on weapon activated or deactivated (for example, when the weapon is equipped or unequipped from the inventory)
Added an option to place the weapons that are currently not active outside of a character's body in the meantime, moving also the IK Weapon System gameObject itself too for those weapons that are active but not being carried currently by the player. This reduces the amount of objects and transforms inside the character’s body
Added another small wizard window to easily add any of the weapons created to any character, avoiding the need to make the manual process of going into the prefabs folder, search the weapon, dropping it into the character/player and go to the player weapons manager component to add it to the list. Instead, this system just need you to select the character, select the weapon and press the "add button", so the weapon is added automatically and ready to use
Added weapon wizard to create new weapons easily, allowing to create the inventory info of the weapon and its ammo, along with the pickups for both objects, ready to use. Also, this component also allows to easily make prefabs of the weapons them self (the objects which are the actual weapons on the characters), allowing to add those weapons prefabs to any AI easily, and the AI will also use the reload action for weapons, as I am configuring the action system on all the AI, so they can not only use the reload, but the rest of actions of the player along with the combined actions between two characters, like stealth kills and similar
Added a couple of improvements on weapons, one to use a check for close surfaces to the weapon when firing, so if an obstacle is close enough to the barrel of the weapon (where projectiles would be instantiated), the actual impact position will be that surface in front of the weapon, instead of the actual reticle position, using what would be the final trajectory, toward the reticle position, but in the surface found
Another improvement is adding an option which combined with the previous one to activate the sprint mode when aiming a weapon (which by default uses a walk movement) can be also activated when the player fires a weapon directly, without entering in aim mode
Added an UI indicator for the battery of the flashlight, managed by the flashlight component it self and optional, so it is not necessary to be active
Added another small wizard window to easily add any of the weapons created to any character, avoiding the need to make the manual process of going into the prefabs folder, search the weapon, dropping it into the character/player and go to the player weapons manager component to add it to the list. Instead, this system just need you to select the character, select the weapon and press the "add button", so the weapon is added automatically and ready to use
Added option to use a max raycast distance used on firing weapons, so you can set a maximum distance to check surfaces to fire through raycast, instead of the previous option which used an infinite raycast distance. Now both options are available, allowing to use any of them
Added the attachment info of the attachments currently unlocked and active to the save info, so the game saves and loads that info now, including to change between scenes ingame as well (that part auto saves/loads all the game of the info already)
Added an option for hands, to customize its gesture when using weapons, so they can look properly like holding a pistol, a rifle, etc... adjusting its finger to the grip of the weapon
Improved third person management related to weapons, and the player can now crouch while carrying weapons on his hands, in which case, the system will turn on-off the IK smoothly (if the weapon uses it while the player is not aiming with it). It checks for the change of view to first-third person too, adjusting the hands in that situation as well. In 3.03, the crouch strafe will be added, to allow to aim and fire weapons and remain in crouch state too. It also allows to detect if the player can get up again after finishing a roll action, or remain crouching
You can also draw and holster weapons while crouching, so the player won't get up automatically on that state as before (as it was due on purpose, for the limitation of the crouch state with weapons)
Added example of the camera effects from the photo mode on the smartphone tool, allowing to activate a night vision on that camera, so you can use it on any part of your game where you need a similar mechanic, like in dark zones or to see some detail of the environment while doing some stealth stuff
Improved inspector of the player's inventory, allowing to organize all the options in a more easy and intuitive way, to make easier to find them according to what you are looking
Improved inventory object capture icon, with a better aspect of the wizard window and a check to see if the object mesh has been configured in the proper layer, showing a warning message in case it is not configured with such layer, so the user can do that tweak quickly and take the capture
Added option to update an inventory object separately, so when a change is made on the settings of that inventory object in the inventory list manager component, only that inventory object info and prefab are updated, instead of update all the list of inventory objects and their prefabs
Added option to configure the name of the object to use in the Use Inventory Object component (the one used for being activated by the player using inventory objects that he has in his own inventory). Before, the only option was to drop the prefab mesh of the inventory object to configure the inventory object that was needed. With this new option, only the name of the actual inventory object is needed to configure its uses, making the system more intuitive to customize now
General improvements in the code and way of work in the code of the component Use Inventory Object
Improved camera controller on vehicles
Improved weapons management on vehicles, including weapon turret rotation
Improved custom editor in certain components of vehicles, including a similar one to added on player’s inventory, with settings organized on categories under buttons, to make them easier to find and manage
Example configured to enter/exit from vehicles through the action system, to play animations when entering/exiting from vehicles instead of spawn inside or outside directly (which stills being an available option as well). The AI can also use the action system to enter/exit from vehicles
Added the option to cancel the action to enter/exit from vehicles if the vehicle gets too far of the passenger or reaches a speed higher than x during this action, so in that case, through the remote event system, the action itself is stopped and the character enters in ragdoll state, similar to GTA games
Added the movement input to vehicles by any key and not only with the vertical and horizontal axis values (default WASD), so it can be customized if each one is used by regular keys or using the vertical or horizontal axis or both or none of them. This also allows to use other buttons on the gamepad for the acceleration, like using the triggers to accelerate or move backwards instead of the joystick
Improved the enter/exit from vehicles to allow to cancel the enter on the vehicle if the player hasn't started the enter animation, and avoid that the process is stopped during the enter and exit animation it self
Added the option to activate a jump off from vehicles action, so if the vehicle is going too fast, the driver and any passenger will just jump out of the vehicle, instead of activate the auto break, allowing to configure the minimum speed for that, to activate one action (auto break and get off) or the other (jump off directly)
Configured the flying vehicle in a radio control style, similar to the car (basically, scaling it down and set it to drive it remotely), to have a kind of drone, including an option to take captures directly by input, like the smartphone, allowing to see those captures from different places
Configured the system that allows to trigger remote events on objects when using the camera capture system, which is attached to the drone vehicle here. This allows to activate any event configured in an object remotely by raycast, which means that you can pretty much do anything. Also, added some hacking examples, taking inspiration of watch dogs, so in the video, the drone can make crates to break, explosive barrel to explode, kill enemies or make them fall asleep x amount of time, unlock locked doors and activate the self destruct sequence on vehicles, without code needed
Improved option to the pickups which can affect stats to check if the stat to affect is already on his max amount, for example, for a pickup to recover health, so if the health stat is already filled, the pickup on the inventory won’t be used
Improved pickups text info on screen, including the option to show icons for the pickups taken (previously, that option needed some improvements, which have been applied now
Added events options on the elevator system to activate them when the elevator starts to move and when it ends. the same option for events when the elevator starts to move and reaches a floor can be also configured separately on each floor of the floors list on the elevator
Added option to use the angle difference check between the forward direction of the player and the object to interact to check if the player is facing the object with a certain angle difference range, but now, it also allows to use the relative direction between the object and the player for that calculation, instead of the forward direction of the object, to get a more accurate check according to the object to interact (for example, a pickup)
Added separated options to configure sensitivity for left and right joysticks on the gamepad input
Improved the mouse cursor controller, now it allows to move the cursor with the actual mouse at any moment when the mouse cursor is visible on screen using the gamepad during pause or ingame menus. And even if the game loses the screen focused, the mouse cursor can be controlled properly when the gamepad is connected. So if a gamepad is connected and the cursor is visible, the gamepad can move it as usual, but if the mouse starts to receive input, it will move properly too, even out of the screen.
Added an option in the input manager to avoid to assign the same key to an action if another action already uses that key and along with that, another option that only avoids that when the new key assigned is only used on the same input category
Improved grappling hook with an option to check if the player moving toward a surface (or an object being attracted toward player’s position) is actually moving or not (maybe some of them is stuck in some surface) so in that case, if the player or the object remains without moving its position inside a range of space during a certain amount of time (both configurable) the grappling hook is stopped and either the player or the object state is resumed
Improved system to carry dead bodies or just characters in ragdoll state in third person, with a much more smoother movement and physics interaction that before
Added button to the main pause menu to stop the game on build or in the editor, as an easy way to stop it if it is necessary for any reason
Improved system to carry dead bodies or just characters in ragdoll state in third person, with a much more smoother movement and physics interaction that before
Added option on powers of the player to use a custom reticle on each one, instead of using the same regular reticle for all of them, similar to the option on weapons to use a custom reticle for each one
Code improvements over a lot of components related to performance, to replace some functions with others that are better optimized (main unity and c# functions)
Added integration with Easy Build System (EBS), setting an example to use the build system in one of the player’s modes that can be configured (currently used to change between weapons, combat, powers, etc..). It only needs to link the inventory of GKC to the use of materials and add tool/weapon examples used, to use the build system only with that tool. I am also going to integrate Space Combat Kit and Mech Combat Kit soon. These last elements of EBS and the other integrations with SCK and MCK will be added on 3.03, and that part will have a general mount vehicle system, which will allow to use any other vehicle controller asset with GKC very easily, disabling the player and turning on the vehicle and vice versa
Improved tutorial system, to move the tutorial panel into a separated canvas, so that object can be in a separated gameObject, removing that element from the player prefab itself and reducing the elements on the main UI. Also, I have made improvements on the weapon system, to remove the update and fixed update of the weapons and use a coroutine to update the state of the current weapon used, reducing the code that is being executed each frame considerably.
Added option to configure the transform used as the orientation object for the compass, in this case, allowing to select if the player gameObject or the camera gameObject is used for this and separately in third person, first person and locked camera.
Added an option on the gravity room system to configure a new gravity value when the player exits out of the gravity room/zone, instead of setting the regular gravity direction in that moment. The new gravity to configure can be zero gravity or a new gravity direction, like walking on the walls for example. Of course, the previous option stills available, to set the gravity back to regular value out of that gravity room/zone
The player editor options system (to configure settings in game and save/load them) already allows to set to default all the settings configured on it
Improved creator wizards to have the scroll bar on the sides. It will be applied to all these windows and now it uses the resolution of the screen to divide each section to adjust the height properly
Improved the character creator, adding the settings customization list, similar to other new wizards, such as vehicle, or weapons, to allow to set some main settings in the character directly when it is being created, such as configure the view as first person directly, without go to the camera and changing it. The options that appear here can be customized at any moment and more will be placed by default, allowing much more options and previous customization when creating a new character/player
Added option on the health component to configure a list of transforms to add them automatically the character damage receiver component and configure all of them with just a button click, allowing to set multiple zones in the same object to detect and receive damage, like an object made of different parts, for example a big animal which needs multiple colliders configured on it for an accurate damage detection
Added option on the menu system (menu pause component), to configure if each menu sets an specific time scale (from 1 to 0), allowing to use the unscaled time values properly for those functions inside a menu that could need them to work properly in case that the time scale is lower than usual or even set as 0. Like that, you can make certain menus to pause the game directly, so for example, the player can’t be damaged in that state, since everything in the games reduces its speed or directly is paused. It can be customized on each menu, so some can pause or reduce the scale time and others keep the game going, according to what you need
Added option on damage area effect to apply a damage amount over time when the object exits the damage area trigger, so for example, something like fire or poison would keep damaging the object once is out of the area for an amount of time
Added options on the event trigger system to use remote events for the object detected
Improved wizard creators, adding a property which allows to customize the height of the wizard window at any moment and a scroll bar which allows to move the elements of the window up and down, with any resolution and font size on the PC without problem
Added a simple creator wizard to configure automatically objects to carry physically on player's hands, to make this process much faster, with mostly a couple of clicks and adjusting the IK positions of player's hands and the position reference to carry the object in the player's body.
Improved the save system, to make it more modular, cleaner, simpler, removing some unnecessary dependencies, making a better code and moving each type of information to save to its own separated script, to make everything better and easier to extend to save any more info needed in the future or made by other users
Improved AI related to the option to detect noise, allowing to configure a return position after a delay to check it out and then, return to its original position, and also, rotation, making it to look again to a certain direction, for example, if they are guarding a door, corridor or similar
Improved patrol system, including option to configure a secondary patrol speed used when the AI is returning from attacking or following an enemy, so the AI can move at a certain speed when returning to the patrol different from its regular patrol speed
Added option on AI to draw weapons once it gets up after entering on ragdoll state or being resumed after being in paused state
Added is an option on the AI to allow itto ignore the stealth and the hidden states, separately, so for example, an AI type is able to see him always and other just in certain states. In case of being hidden in a fixed place, like inside a locker, below a table, etc..., if the player is detected he is taken off of that place automatically (in the video, the input is not used to go outside, it is done by the system directly). And in stealth mode, the AI is able to detect him as well
Added the option on the AI to remove the player as partner of the AI if he gets farther away enough (configurable by min distance) and configure an example of the assassins creed style for hiding of enemies by moving with the AI, so that keeps you out of the detection of the AI as long as you remain inside (it is the hide system just following the AI position, that allows to remain hidden)
Added an option on the melee weapon system for the throw weapon movement to check if the weapon follows the object position to reach it based on a simple component attached to that object, so even if the object moves, the weapon makes a trajectory towards it
Added option to allow to interrupt actions with other actions, by using a "category" setting on each action, so each action has the options to interrupt any action of a certain category, for example, the roll and dodge can interrupt any melee attack action at any moment (this can be of course customized to be disabled as you prefer)
Added an example of a melee attack which activates a kind of magic, which is basically the same used on the electricity ability, but this time activated by a melee attack, along with trigger an action on the AI for a "shocking" reaction to it
The throw weapon to characters action has been improved, attaching the weapon properly to the closest body part, in this case, I have configured chest and head as possible places to attach the weapons, so they are adjusted to such positions, to look like the enemies are wandering around stabbed by the weapon until you call it back
Improved option to toggle between strafe and free run/sprint movement when using melee weapons, so in each weapon, it can be customized if the player runs/sprints freely without the strafe mode in that state (like the example of the axe or the knife) or keeping the strafe mode (like when holding the swords)
Added an option on the AI to configure an option to wander around him, using a range of time (setting a random wait time inside that range), to move inside a radius of movement around the player (working in a similar way, inside a range of max and min distance values) and including other options, like avoid to walk farther that the initial position of the AI, or move more and more farther from this position, to cover more terrain
Of course, if the AI detects a target, it will attack it and be back to its wonder state if the target is killed or loses its track. Here you can see it with a range of 5-10 seconds of wait and a range of 10-20 units to move around each time
Added options to set a fixed speed or a range and change randomly between those values, like in radius and time, can be added, to give more possibilities for it, so you can use regular movement speed, set an specific one or configure a random range
Added option to trigger random animations when an AI is wandering around
Added example of a little floating turret AI around any character which detects and attack any enemy at sight
Improved character creator, with a list of settings for the most important configuration values on both players and AI, allowing to customize them directly in a single place when they are created, getting a much faster quick start for the project. This contans settings as starting the game in first or third person, enable/disable the change camera view input, enable/disable the jetpack, enable/disable any of the powers/abilities, set the initial mode of the player and the AI (weapons, melee, simple mode, etc…) and much more….
It is the same as the character creator settings list for the player, working in the same way, so the same can be done with the AI, selecting between the current modes configured so far: melee, close combat, fire weapons, powers or unarmed (run away from enemies of that AI)
Added a new option that allows to pause/resume AI animation speed when using an ingame menu without actually setting the time scale to 0, keeping it at regular value, like inventory, experience/stats, map, mission log, etc.... in this case, while editing the attachments in a weapon
Configured the elements to dissolve character on death by default and to destroy the AI object itself as well, and both options can be enabled/disabled from the character creator wizard when creating a new AI
Added option to directly find the player on the scene when a mission is started, in case the player is not assigned manually or sent through events or triggers, so the system directly assigns it by searching the main player in the scene without further settings on the component
Added option on the mission system to configure if the mission panel on the objective log menu is disabled once the mission is complete, so it is not shown anymore. That can be customized on each mission
Added option to auto save the game once a mission is complete
Fixed an issue on the objects to attract with the grappling hook, where some AI weren’t configured properly to use this option in the grappling hook, related to the rigidbodies on its ragdoll
Fixed an issue on the interaction objects, to show the panel which follows the current object to use on screen when multiple objects to use were detected in the case that each one uses a different type of interaction panel, not updating the new panel to active when the current object to interact changes
Fixed bug on ladder in first person where the player was able to use the dash button on air to move through the ladder, avoiding that action if the player is currently moving in a ladder and reactivating it once he is out of that ladder (in case the air dash action is enabled)
Scorchs are placed properly on doors when firing at them with any fire weapon
Added option to make the player to walk to a certain position before and/or after make an action is now calculated by navmesh.So the movement is better, as it can detect dynamic obstacles on the way and take into account elements of the scene while moving toward the proper position
As an example, the roll action also can break crates, similar to dark souls (the same event option that activate the push of objects it also calls a remote event in the remote event system component attached to the crates to call the kill function on its health component, in order to break the crate).
Added option to check if the player falls on the air while doing an action, for example rolling toward and edge, in that case, the system detects if the player is not longer in the air and stops the action, resuming the player regular state again
Added an example of the action system triggered by inventory objects, like using a consumable, in this example beer (of course it is beer xd), and it could be used for any other, like food, heal, drink other elements, use bandages, etc... and more examples will be added. It is really easy, as it just uses the remote event option on the inventory object, calling to the component of the player which activates the custom action it self
Inspired by resident evil 4, added an action example to open doors...in a gentle way, similar to the game (nothing is hard coded, it is all configured with the action system, including closing the door after x time)
Also, taking inspiration from dark souls, tomb raider and other games, I have added an option to open an ingame menu which can be used on the action system, so for example the campfire example can be used as the only place where the player can open the experience system menu to upgrade his skills (in this mode, the only way to exit the menu is to get up from the campfire by using the interaction button, escape or the button dedicated to that menu won't have effect)
Also, sitting on a campfire (bonfire) can recover your health (triggered by the action system event option on the area effect system)
Added example of action system triggered by the health component in a similar way to resident evil 4, so when the AI has reached a certain amount of health, it activates an event, in this case, a custom action trigger configured on it, so the player can activate a kick action, and with it, another action for the AI to react to that kick. In this case, the trigger of the action to be used by the player is activated 2 times, one at 50 or lower health and another at 10 or lower
Of course, each kick also applies a damage of 15 units for that AI, also, the event to activate the damage also activates a damaged idle state, kind of like a knocked state, but standing on foot
Added example to punch a glass and vault over it, taking inspiration from the last of us 2, through the action system. The glass can be broken from both sides and the vault can be performed from both sides too. The glass can also be broken by firing at it
Added an example of different kick door actions, one with a breaking panel and other same as the first example but pushing also anything behind the door, including AI (the one with the breaking panel has also this push objects setting), nothing is hardcoded, it is all customized with the current systems and actions/events options:
Added a couple of examples of a locked door with planks that the player can physically grab and carry in order to remove them from the door and enable its action trigger in order to use it and enter inside the door. Another example allows to damage the planks in any way possible, to destroy them instead of grabbing them (though they can be grabbed too)
Added option to stop the current action that is playing in the player and resume his regular state if he changes its state from ground to air, like falling from a ledge. So you can activate this option for those actions that should be stopped under such circumstance, including a delay to stop the action after a time, instead of immediately
Added examples of the hit reaction system triggered by a simple kick, done through the action system, allowing to counter to the other character, and stop attacks in process. It calculates the direction of the action according to the character, so it activates a different animation according to the sides, behind or in front. The stamina system could be configured on it too, which can be used as a limit for the player to use this element, or configure a bigger cooldown with it
Added option to change from first to third person when using the action system, for example, when opening a door or pressing a button (it can be used on any action)
Added an example of the ability/action system, to use an ability which triggers the action system of the player and also, another character to play an animation during the use of the ability. In this case, it is a drain health ability, but it is configured with a simple component which allows to take any amount of any stat on a character and transfer it to the player within a rate. It kind of looks like a force choke from star wars haha. The example basically shows how to make an action which activates animations on both characters (player and its target) without need to match one with another
The player can also stops the process with input before killing the target, to pick him up again after that
Added the push objects component to the throw meteor ability, so on the impact, besides damage, rigidbodies will be pushed inside the detected radius
Revamped close combat system, which works much better than the previous one along with one very huge improvement which will also benefit the melee combat system. The animator layer for combat has been improved as well, from the classic spaghetti connections and transitions, to a much simpler, yet much more powerful system that only needs to connect each new attack to the exit state and nothing more. So now it doesn't require any connection between the animations, you just put the attack animation and connect it to exit, no extra settings are necessary, in a similar way to the action system
The system also allows to trigger events on each attack start and end and events when damage is applied
Added option to disable movement input while an attack is active, so the player won’t rotate toward the movement input while an attack is being played, resuming its regular movement after that
Replaced the animations used on the close combat system for others much better
Added an example of the dialog using the player stats system for conditions. In this case, it checks if the stat with the name "Persuasion" is higher or equal to 3. The player only has 1 point for that stat, so I put a cube with some experience amount to increase the player's level and improve its persuasion amount automatically when leveling up. With that, the player can use that dialog option and open a new branch in the dialog which basically is don't bother me again
Added option to pause and resume a custom list of input on the player input when a free dialog panel (the one which doesn’t change the camera position to a fixed place), so for example, while that dialog is active, input for weapons, powers, interaction or any other can be disabled during that time, to avoid the player from doing certain actions. The movement itself can be also paused during that state
Configured an example of the vendor system used on an NPC, including dialog before and after using the vendor (all of that can be configured at will)
Added feature to use grabbed objects (those carried in player's hands) to being able to use them as melee weapons (in preparation for the near melee combat system), using the spline system to configure a smooth movement path and applying damage on the objects detected by a trigger (same used as in close combat).
The system currently use two keys (mouse buttons) to trigger different attack types (different spline trajectories, with speed and damage with separated values for each), so it allows to make regular or strong attacks
It will also allow to trigger animations instead of splines. The good thing about this system is that it can be used on any grabbed object, and not only a cube, but actually bats, swords, levers, planks, chairs, etc... so with this, anything can be a weapon now, each one with its own movements, damage and events
Added a strafe tree in the animator when carrying a melee weapon on one or two hands
There are two types of attacks, one played while the player can still move (combining upper and lower body different animations) and the other pauses the rest of actions while the whole body is playing the animation. The system is very customizable and I will show more options and combinations of objects and weapons to use. In the example also I have configured a few attacks of two types, regular and strong, each one activated by default with the two mouse buttons, having a few of each attack type configured on each object
Added an example without activating the strafe mode, so the player can move freely and attack at any moment. Also, I have configured 6 attacks, 3 for each mouse button, so each one can activate the next attack if the input is pressed in less than x time (configurable in the grabbed object).
Added option for grabbed objects such as a melee weapon can be placed in a certa position when the player is busy doing other action, like using abilities, but in others, can remains there, like when rolling
Added a crouch strafe state for walk and run as well, and smooth transition between walk, run, strafe, crouch and roll, including also the lock-on camera. One thing to notice is that the system allows you to configure if the player moves freely when he carries a weapon or if it activates the strafe move. In this example, he moves freely, but the strafe state is activated when the lock-on target mode is active, like most melee system in games
Added option to configure the range of the damage blocked around the player, so instead of blocking everything, which would be 360º, you can configure any lower value, like in this video, which uses both 360º and 180º, so if the damage comes from behind, it will damage the character even if he is blocking
Added damage reaction hits, which calculates the damage position and triggers different animations, like damage from forward, left, right, etc....
Added throw/return mechanic for the melee weapon system inspired on the god of war (2018) system on its combat, configurable on any melee weapon
Adde a cutting mode, which allows to activate a mode where you can use the camera input to rotate the angle to make cuts to an object.
But unlike the one in metal gear rising, this allows to both moving the player while the mode is active and toggle the camera rotation with the cut rotation, to adjust better the cut direction at any moment.
Added the block to this weapon too and I have added the option to use stamina on the attacks made by this system, including blocking and throwing the weapon, so that can be managed as you prefer, including the amount of stamina used on each attack and the delay to start to refill the stamina again after any attack
Added options on the melee attacks to configure an amount of stamina on each attack and added the panel to show the input available during the melee attack mode. Even if no component to slice is found, it can apply damage to any other object on its path. Also, you can see how the damage detection is made following the cut line, so you can make damage with more precision
Added an event setting on the throw/return object, to enable/disable the close combat mode while the player doesn't get back the weapon, so similar to god of war, the player can toggle between using the melee weapon and the close combat when he has thrown that weapon, giving more options for combat. Of course, this can be disabled, to only use the regular weapon to attack
The combat system includes options to trigger events when an object which can be damaged is detected by the weapon, allowing to trigger custom events configured for that attack in concrete, like camera shakes, pause the animation frames x amount of time on the player, slow down time during a certain amount of time, etc.
Another option allows to trigger remote events on the objects detected to damage, allowing to trigger stuff like the action system, to play a hit damage animation and another for kind of confused AI, so you can attack it again while is weak.
Added option configure the timing for when the damage detection is active and when not while doing an attack with a weapon, applying damage to all the detected objects by that weapon
Aded an option to use a different dodge set of actions while using a certain melee weapon, so each weapon can use a different style of dodge or roll, according to what you prefer.
Configured some skills examples of the melee attack system, to manage different elements of the melee combat values, like if the throw-return weapon is unlocked, or the cutting mode, or general multipliers for values like damage or stamina on attacks. I put a lot of them, to improve and unlock all these elements (it can be customized as needed, so you can add or remove those if you need to).
Added an option to configure sounds for the melee weapons, including when detecting an object to damage, any other type of surface and when also no object is detected, so sounds like swings can be played.
The slice mode already can cut characters in pieces, killing them as well in the process and you can customize this on any model with skeleton (skinned mesh renderer) and choosing what part to cut first.
Surfaces can make the player to recoil or reflection on certain type of surfaces, like a metal wall, similar to dark souls games, that can be customized separately and setting the sounds, particles and events on damage detection with melee weapons, so this can be configured on enemies and they can still receiving damage, but the type of surface can trigger an action on the player, like a recoil movement.
Added more examples of the deflection surfaces, having also different reactions for the same surface, played randomly and adding more types, some of them can stunn the player for a while too or create bigger reactions.
Added a melee weapons manager, so the player can carry multiple melee weapons and change between them in a similar way to the fire weapons, including to draw/holster them and use the number keys to change between the available weapons. It also allows to throw any of them and recover the weapon if you change back to it (or just press the recover weapon key).
There are also options to hide or show the weapon mesh in the player's body when he is not using a weapon that he has available to use. This also allows to configure an initial melee weapon (or initial list) to have them already active added a little wizard to add and configure automatically the slice system into any character, with just a couple of clicks, allowing to configure the ragdoll that will be used for that character and the texture for the internal parts cut. The ragdoll itself can be also sliced, so if you have a character with a new model, you only need to select that new mesh on this same wizard and press the button "Create Ragdoll Prefab". The system will automatically add a ragdoll and the slice system to that mesh and create a prefab out of it directly
Added AI melee to make them able to fight with the player and with another AI through the melee system
AI is already able to roll and block attacks by it self with different settings for it and you can see also the hit reaction system working on them too, including different reactions when it is blocking with a weapon (each weapon has a block ID, so it can be different reactions on each one)
Added option on the melee system to make perfect blocks, through the surface detection system and the action system, for both AI and player
The stamina system sends a signal to the melee combat system, to reduce the amount of protection given by the block damage active, so even if the character is blocking damage with the weapon, if the stamina is over, the protection will be reduced with a lower value (configurable on the melee weapon settings)
Added option to configure a random range of time to make the AI to walk around its target in a random position, similar to most of this type of games, like dark souls (everything configured between ranges, for customization)
Added light saber weapon example, which by default, each of its attacks uses the slice system, similar to jedi knight and jedi academy games
Added an option to configure if an attack can be blocked or not, so you can set that certain attacks of the AI can't be blocked even if the player is blocking with his weapon or does a perfect block, so he will receive all the damage of the attack (same can happen viceversa for the AI, as all the elements of the melee combat work in both ways)
Also, I have configured an example where one of the attacks of the AI can trigger remote events to stun the object attacked, in this case, the player
Added on the perfect block option a probability option, so even if the character blocks on the perfect time, the block may end not being perfect, from a % between 0 and 100 (by default, it is configured as 100, so it will be always a perfect block if made between the time range)
Option to check the state of the current target which is fighting with that AI, allowing to know when and when not is attacking, so the AI can activate the block action, using a reaction time inside a random range and a probability range to perform that block in that moment. it has a cooldown time to allow the AI to do the block again in that situation. That allows to configure different AIs types and make them harder or easier to defeat, including to make them to always perform perfect blocks too
Added option to trigger a visual effect and sounds when an AI is going to make an attack which can’t be blocked
The player is already able to perform an attack immediately after make a perfect block
The player can also press the block attack key and keep it active while doing other actions, such as dodge
Added an option on the close combat system to allow to activate the strafe movement when the player locks on the view on a target, along with toggle the free and strafe movement when the run key is pressed, just like with the melee combat system