Added option in the current feature to make the player to always look in camera direction to disable this state when the player is running or sprinting, similar to resident evil 2 remake. LIke that, when the player walks, he uses the strafe movement and when he is in run or sprint state, he can rotate toward the direction of the input respect the direction of the camera, like if the option to look toward camera direction is not active in this state
Added the elements and options to use an injured state in the animator, making it very flexible and being able to use it in different situations. I have added a random idle component to allow to configure a list of random idles, its duration and a random option to play them in any order. The player can also use weapons and aim in this injured mode as well
Added improvements to the animator system to make a better transition from free moving to strafe mode. This has been applied in the second version of the animator and now that will be the default and main animator of the asset, so for unity 2018 and higher, there won't be a need to change the animator of any character, since it will be already using that
Improved head track management, now it is smoothly enabled/disabled according to the situation and also, the use of menus doesn’t deactivate the head track of the player like happened previously
Improved head track with an option to configure the max distance from the head to the transform used to follow within the camera direction, so if this transform is far enough, the head track will ignore it (for example, if the camera is a far away state from its regular position, the head track will detect it as a higher distance than the allowed one, avoiding to look in a awkward direction)
Added a roll action in the action system, it can be used in any direction, taking the input as the roll direction. The action system can also change the player capsule scale, so for example, the player can pass below obstacles
Added improvements in the movement of the player, by adding more customization options for the input on the lerp speed of vertical (W S) and horizontal values (A D) (or course, taking into account gamepad and touch controls) for regular movement and strafe in both free view and locked view, including tank controls. So this allows to make the start and finish of the movement in the player faster or slower according to what you prefer
Added option to configure an amount of time where an object can’t receive damage (invincible) in the health component. This is used for example in the roll action, so when it starts, this temporal invincible state is called with a certain amount of damage as parameter in the function, combined with the delay list of events in the action system, allows to use any delay amount for this state to be activated
Added an option in the health to avoid showing the health bar above objects by default and include events on the lock on target system to configure remove events to trigger (which is used for objects which are not connected between each other, so instead of using events, it uses the remote event system)
So one of those remove events can be configured to show and hide these health bars, activating the bar on the current target locked by the player, similar to games like dark souls, instead of showing all the health bars of at the enemies visible on screen at the same time
Added option to rotate the camera x amount of degrees in the Y axis with input. This is used for example in resident evil games, to make the camera to rotate towards the opposite direction, usually 180 degrees with respect to the player. In this case, instead of 180, any amount can be configured to rotate each time and as the main direction to use, the forward direction of the camera or the forward direction of the player plus the amount of degrees
Added option to use the surface detection system to set transparent the surfaces found between camera and player that was used previously in locked camera to use it on free camera as well. So objects with collider can use a new layer to being detected by this system and avoid the camera collision detection to place the camera outside of the view of that object, having all the other collisions totally active and working as any other type of regular collider
Added option to start the game with a camera effect already active, like pixelated, or black and white, etc…
Improved check surface detection system to set them as transparent for locked or free view, with a better management of surfaces detected and the change from original to transparent (or other shader) and vice versa
Added option to configure a default camera reticle in case there are no more reticles active at that moment (from elements like weapons, powers, etc…). It has options to use it separately only on third person, or first person or both
Added check to the transparent surface system to turn the surfaces found to their regular material when the player is using a device and turn them again to transparent once the player stops to use that device. This avoids that any possible surface keeps transparent when the player is using a device, so surfaces can be seen normally on this mode
Added a culling system for the player, so when the camera is close enough to him (all configurable in the editor), the shader of the player's meshes changes and is configured according to the remaining distance to fade it smoothly and see through him
Added a new shader for the detection of surface between player and the camera for the locked view and you can see here the result (the previous transparent option can be used instead of this one if you prefer it)
Added option to change the fixed camera position closer or farther from its original position according to the distance of the player with respect to an empty transform on the scene. This allows you to make camera pans easily, like many top down/isometric/2.5d games do, according to if the player is moving closer or farther to a specific object or position. It includes options for the movement speed of the camera, distance multiplier, clamp values (forward and backward) and if this movement is directly or indirectly proportional to the distance of the reference position/object and the player
Added integration with this slice system (https://github.com/DavidArayan/ezy-slic e) , making also a plasma cutter weapon, using the behavior system for both weapon and projectiles, allowing for example to rotate the weapon rail, so the cuts can be made in any angle
For this, just the slice system was imported to the project where I work with GKC and made a new projectile type behavior. Nothing extra was needed, besides adding a weapon dedicated to that type of projectile (taking inspiration from dead space and metal gear for a rotating cannon weapon), allowing to make slices in any angle and having total control of the rotation
Improved reticle management, adding options to configure if the reticle is used separately on first and third person and when aiming on each view along with a main option to enable or disable the reticle it self from all weapons, so it can be used on any of them or none
Added the slice system to any object which can apply the slice on collision with other objects, similar to the saws of half life 2
Added remote event options on player weapons and vehicle weapons to trigger events for the damaged objects by those projectiles
Added main options in the player weapons manager to ignore the collision detection in all weapons, with separated options for third and first person, so in that case, even if the collision detection on a weapon is active, if the main ignore option is enabled, that weapon won’t use the collision detection
Improved spread system and options, making it more easier to use and more customizable, including spread option for third person when the player doesn’t aim on this view
Improved movements for actions like draw and keep weapons in first person and activate the edit attachments for weapons in game, with smoother movements for weapons and camera, to make them more natural and better
Added option to use the smartphone tool in third person more easily, through a set of options that allows to change the position, scale and location of a canvas, in this case, the smartphone screen from its 3d world position to a fixed position in the player’s HUD (totally configurable to set the position and scale of that screen on the HUD). This makes it easier to use the smartphone in third person, similar to games like GTA V. Also, the weapon system allows now to unlock the cursor of the game in third person as well (previously it was only possible on first person) in order to use the UI buttons of the smartphone, to move between its apps. This can be also used to press button and elements on any weapon/tool and can be customized separately for each view and for each weapon
Improved aspect and organization of the player weapon system, in order to improve how the settings are shown and order them by category, like projectile settings, or events options or particles and sounds, ammo, etc... allowing to show all the settings together, like previously or just by these categories
Added event options on the inventory bank system to trigger events if the inventory is empty. This can be used to trigger events when picking inventory objects from dead enemies from their “pockets”
Added new inventory object type to affect to any stat of the player (to increase or decrease its value, like for the current health for example)
Added grenades as a new inventory object as a regular object with a health component attached, so if when the object is a pickup in the scene and receives damage, it will “die”. This death triggers events to use the external shake camera system and the destroyable object component which creates an explosion applying damage and physics forces around a radius, so all combined creates a grenade pickup which can be stored in the inventory and being damage and explode too
Added component which allows to check if the player has units available of any inventory object, searching by name and triggering events in case the player has units available and in the other case. Along with that, the component allows to remove any amount of that object and trigger events in the case of successfully removing that amount of units from an inventory object and also in case there are not enough units. This is used for example for the new grenade inventory combined with the ability system to throw grenades. Like that, the ability first checks if there are grenades available in the inventory and in case positive, the ability to throw grenades can be activated. Once that is done, one unit of the grenade inventory object is removed from the player’s inventory
Added option on the pickup objects to ignore the option on the inventory manager to pre visualize the objects that are going to be picked before storing them in the inventory (if this option is active). This ignore option can be configured separately in each pickup object, for example, to use it only on certain objects, like the quest items
Improved category selection in the inventory menu, allowing to see the objects filtered by categories, with a better code for that component and with a couple of issues fixed related to the option to show multiple categories at the same time. Also, the scroll bar is not reset properly when a new category is selected or when the regular inventory menu panel is enabled again, moving back the inventory objects grid to the top position again
Added options in the main inventory list manager to save the current list of inventory objects configured in a scriptable object. This allows to save this info into an external file outside the main inventory manager component itself, making it easier to move this info from a previous version of GKC to a new one when you update the asset in your project or want to move this info from a prefab to another. This also allows to load the info from any of this file type (scriptable object) to the main inventory manager, to have the full save/load functions and use them as need, allowing to use as many files of this inventory info as needed
Improved combine option on inventory, allowing to combine weapons and ammo without need to have that weapon equipped in that moment
Added options to fade vehicle parts or not
Improved management of vehicle pieces when a vehicle is destroyed and broken in pieces, having a better performance, making the code simpler and faster and removing some unnecessary checks on that part (once a vehicle is destroyed).
It also includes options to configure certain vehicle parts as the main "pieces" to be used for the destroyed state, similar to games like GTA and others where the main chassis and the rest of elements like doors, wheels and other parts are separated from each other (another option also allows to don't remove or fade these vehicle pieces if your prefer that instead of removing or fading these elements). Also, the collisions between passengers inside the vehicle, their ragdolls and the vehicle part colliders is managed better now, toggling between ignoring collision to true or false according to the situation. The vehicle parts to drop option is very customizable, and allows to configure any amount of parts and set them as needed
Added option to simulate collision to test the launch passengers on collision option in the vehicle hud manager component
Added vehicle creator wizard, similar to the character creator, to create new vehicles using the current prefabs configured, allowing to replace the meshes of these vehicles for new ones in just a couple of clicks
Added new pickup object type to affect to any stat of the player (to increase or decrease its value, like for the current health for example)
Improved pickup icon manager, allowing more customization now, like setting custom icon prefabs or custom icons textures for each pickup separately, even if they are in the same category of pickup
Added option to configure a list of custom interaction icon panels (the one showing that an interaction is available, showing the name of the object, the action to do and the interaction key), so instead of using always the same, each object to interact can have its own customized interaction panel, making simpler or more complex versions of these panels
Added option to configure a maximum distance and a maximum angle between the object to interact and the player, so if the is not close enough or his forward direction is not close enough to the position of the object, he won’t be able to interact and neither the interaction panel info will appear on screen. This can be configured separately on each object
Improved detection of objects to interact, for objects that pause player actions, like using an inventory bank, a code terminal and any other device that usually changes player camera position or pause his actions, avoiding to add new devices to the detected list while the player is already using another one. This is important so the system doesn’t take a new device as the current to use instead of the previous like. An example of this is the next: if you're using a hiding spot while there's an NPC to talk to standing next to the hiding spot you can accidentally trigger dialog instead of hiding. This can also prevent you from leaving your hiding spot. This is now solved with this improvement
Added option to only allow to interact with an object if it is visible on the camera, so that combined with the current options to use min distance to interact with an object and the max distance of the object from the camera center allows to work in the way you need, so the player can't use objects that are behind of him. This is a general option so a separated option will be added on these devices, so maybe for specific objects you want to use the other way currently configured
Added options to use a fixed lerp speed on the move camera to device and move device to camera to make these movements smoothly according to the distance to the fixed camera position or fixed device position or with a fixed lerp speed (smoothly as well), with different speeds for third and first person view
Added a component that can be attached to any object and which can be used by a system that can be attached to weapons to detect the first component attached to objects through a raycast using the main camera (or any other transform) and which can activate events through it. So for example, events can be configured in any object and triggered by a checking of a raycast from the main camera, for things an ability used to trigger these events. For example, break crates, unlock a door, etc… just by pointing at them and using the ability/power/tool/weapon configured for it
Improved checking of the current angle between the position of the target and the forward direction of the AI, in order to only activate the current attack when that angle is inside a range. This can be disabled to attack without checking this angle between target and AI
Improved noise detection and patrol system for the AI. When it detects a noise while moving through a patrol, the AI will check the noise position and be there for a certain amount of time. If no target is found (configurable in inspector), it will resume the patrol, going to the closest patrol point and keep on the regular patrol state
Optimization improvements on AI related to the management of targets to attack and how that info is obtained, reducing the use of resources and making the code more light, simple and efficient
Added option to allow to check the distance with the partner (the player) in case it is located and a place position target is assigned. So similar to games where the player is going to a location with a companion AI and the AI is leading the way, waiting for him if the distance to that player is higher than X
Added option to configure if the AI checks the decibels amount of the noise that it detects (the noise settings for the object which produces it has an option now to configure the decibels of the noise, with a range from 0 to 1). So each AI can have a different amount of decibels which is able to detect, like one which has a very good hear, with a value of 0.1, so it will hear any object equal or above that amount of decibels or other with 0.9, so it will be only able to detect loud sounds, like firing weapons, but not lower ones, like a foot step
Improved view trigger on the AI, configuring a delay time to activate again that view trigger (the capsule used for check suspects with a delay) once the AI has lost track of all the previous targets to attack, so the AI doesn’t check for targets immediately in the same next frame after the previous event. In this state, the sphere trigger used as range for detection targets stills active as usual
Added an option to AI to check if the player is far away enough to stop moving toward a target position where that AI is leading the way and waiting for the player to be close enough to keep moving. Like that, the AI will change its target position toward the target and once it is close enough to him, it will resume its previous target position, while it keeps checking if the player is close enough to keep moving towards the final target position
Improved functions and code for the AI type which run away from its current enemies instead of fight or attack them, moving properly in the opposite direction and checking the proper position to reach checking if it can be navigated properly through the navmesh system
Added prefabs for the AI which uses powers to attack its target, instead of weapons or combat and that AI type can be selected in the character creator as well
Added option to play custom sounds on every sub objective complete in a mission
Improved mission management for the options to use objective icons on screen to show positions or targets where the player must go, used in many games where the player is able to see an icon following an object or position on screen, so he knows the location to reachm, allowing to show these positions or objects position one by one, according to the current sub objective on the current mission
Added checks on the code to avoid to start a mission if the player has been assigned manually properly (in those case where a mission is not activate by a trigger but by another element, like an event, so the player is assigned manually in the mission system component directly)
Improved touch controls for the joysticks, including a better system to check if the touch zone of each joystick is being pressed, using now an actual recttransform to configure this touch zone, making easier and faster this configuration and adjusting properly to any resolution, since it is managed directly by the UI system
Improved management of the cursor limit on screen when a gamepad is being used and the menu pause or any other ingame menu is used and activates the movement of the PC cursor through the mouse. Now the limits of the screen size is calculated properly, no matter the resolution of the screen and in both, editor and build. The cursor position is also reset properly when any of these menus is opened, setting the cursor in the center of the screen
The code part that manages the action panels has been moved to a separated script (before it was in player input manager) and I have added action panels to the player modes (those configured in the player states manager) to show basic/main input actions, for the modes of weapons, powers, combat and simple mode, so you can have an action panel active by default to show main input for the current actions available
Of course that aspect can be totally customized, to put each action panel on any location of the screen and with any style/size
Improved input for the touch system to change powers, player’s weapons, vehicle weapons, select or edit powers on the powers wheel and the weapons wheel along with the swipe action, having a more responsive control and a better management through the code, including to work better on any resolution
Touch controls are properly disabled now on elements like cutscenes or dialogs
Added option on the mouse cursor controller (to control mouse cursor with gamepad) to use left or right joystick and a function to change this setting at any moment ingame through events or any other function call
Improved input management related to situations where the player actions are paused, like in photo mode, a cutscene, etc. avoiding from any action to be executed properly, with a general check in the player input system
Improved menu management and checks and setting on the current state of the player menus during game
Added option on the capture gallery menu to remove the current expanded capture which is selected
Added simple player mode, being a new mode in the list of powers/weapons/combat, where these 3 modes are totally disabled and the player haven’t any of those elements active
Added debug option on health to heal any object by adding extra health amount at any moment with a button on the editor and an amount field to add that value
Improved component inspector aspect with a better organization in each inspector and with fields separated by categories (settings, components, debug, gizmo, etc…)
Added damage in area component which allows to detect and apply a certain amount of damage once or with a certain rate
Removed some references of some components from some scripts, making everything more independent and light
Added the check in the input to take into account if the movement or camera orientation is reversed in horizontal or vertical direction, so in menus, the cursor movement is straight instead of taking the orientation of the current input selected
Improved grab objects system and gravity gun, making both components with less references to some scripts that were previously checked when grabbing an object, making them more independent
Added option to use a general damage multiplier value in the health component, which can be used to decrease or increase the total damage received
Added canvas group component, which allows to change the alpha value of a group of UI elements at once, for menus and other panels on screen. Instead of enabling or disabling a panel at once, it can use a smooth fade in and out instead. Of course, this can be disabled if you prefer, to just keep the same enable/disable at once each UI panel
Added option to use random delays between events (using a range of float values) to trigger each even in the event trigger system component
Improved grab objects ability management, including all others components that allows to grab and carry objects around, like the gravity gun example
Added prefab to activate a noise (that can be detected by the AI) that can be called by any element, like an event, the event trigger system, a function call from another component, etc… Examples of this is the radio system to examine, which has configured the play button to call this noise system or inventory places where once an inventory object is used, it can call to this noise system, like an engine that has been turned on and it is making noise which will alarm to the enemies
Added option to use hover check over point and click elements on that view, to activate events on hover enter and exit. An example of this is activate and deactivate a head track target on that point and click element, so when the mouse is over that object, the head track of the player can look to that direction if it is inside his range of view (angle, direction and position)
Added option to use a list of tags to ignore for the close combat system, so in each character, you can customize if certain tags are ignored to receive damage, for example, the enemy AI unable to damage other enemy AI, using the tag “enemy”. Same can be done with friend AI, to avoid “friendly damage”
Added option to use a limit amount on the vending machines to spawn objects
Added an option to the radio system to use internal files for the song list, so it can use files from inside the project and not only external files. This internal file list can use .mp3 files (external files can be only used with .wav extension), since these are located inside the project and of course, the build of the game
Improved radio system, which now allows to configure an extra list of songs which are located inside the project, so in that case, they can be in .mp3 format. So besides external files, you can use internal files for songs as well
Added option to auto climb ledges in first and third person when the player is grabbed to a ledge, so he climbs it automatically without need to press the movement input to make that action
Added option to disable the gravity arrow in the back of the player when the gravity ability is not active or being used
Added option to configure critical damage on the list of weak spots that can be customized on the health component and which can be configured on any object. This critical damage uses a probability that can be adjusted between two values: 0 and 100. A random number with that range is generated, if the value is inside that range (the random value can be 35 and the range 20 to 40, so the damage would be critical). This option allows to kill the target if the critical damage is the result obtained, apply a damage multiplier or remove the total amount of health from that weak spot (each weak spot can use a certain amount of health and if that amount reaches 0, events can be activated. That this amount reaches 0 doesn’t mean than the main health amount is 0 as well, but the damage applied to that zone is removed from the main health value). This also allows the text of the classic “CRITICAL!” to be shown through the damage on screen component, which is used by the health system to show on screen the damage applied to objects, similar to games like borderlands
Added options on the change player state system (component used to activate multitude of different elements and set different states and functions ingame through triggers and events) to use an option to enable or disable the transparent surface detection system in order to fade surfaces between player and the camera for those objects configured with the layer “Transparent Mesh”
Added option to configure and activate the remote event system of the player to the above component of change player state system
Added options to use the remote event system when grabbing and dropping an object on the grab object and gravity gun components. So with this, you can call events remotely on that object without having events with some dependency of the player or other object external to the grabbed object. For example, similar to half life 2, the action to grab an enemy with the gravity gun and turn it into a ragdoll is made through that remote event system, with nothing hard coded for it. You can even smash them just by hitting them towards a surface, since the ragdolls are configured by default to receive damage from collisions
Added the external elements of the action system in the main options bar on the top of unity window, to add new actions and triggers easily
Improved a previous system which was already present on the asset (player options editor system), which allows to configure any setting ingame and in any menu, and with different types of fields, scrollbars, sliders, toggle, etc.... including to show text info, like amounts (for example, game volume or mouse sensitivity actual value through text). Also, any amount of fields to manage can be configured and another new element is that serialization has been added to this component, so the values configured ingame are saved/loaded between plays. Examples of this are the previously said game volume, mouse sensitivity, show the ingame actions and its keys, all the different touch controls settings (joystick sensitivity, use them as touchpad, if the joysticks snap to finger position, etc...), and you can add any other field needed, like video settings. Here an example of how it works and using it when saving/loading a game
Added flashlight attached to player’s body which can be used directly by input (menu key at the left side of right ctrl) and which follows player’s camera position and rotation, with an offset distance, placed close to the left side of the player’s chest, working on a similar way to resident evil 2 and 3 remake
Fixed bug on the head bob system, in the part of the camera shake, which was disabled properly when the player used a device or anything that moves the camera from its regular position, so sometimes, if a shake was active on the camera, that shake continued forever once the camera returns to its regular position until some external element produces another camera shake, stopping that shake loop from the camera and setting a new one until that new shake is over
Explosive barrels and crates didn’t have configured the explode and break functions configured in the death event option of the health component that they use to detect and apply damage to them, like projectiles, collisions, etc….
AI turrets didn’t have the death events configured neither, due to the health component was improved to avoid the use of any send message function and only use events instead, but I forgot to configure the death in some elements, like the turrets
Fixed some minor issues between some transitions between free view to locked view and vice versa in specific situations
Fixed some minor issues on the death of the player in first person, which wasn’t activating the input after getting up properly
Flashlight ammo name is configured properly now, so the flashlight batteries can recharge the flashlight when it runs out of battery and there are flashlight batteries in the inventory
Fixed issue when using devices, there are certain actions that can be performed when the player has the using device state as true (like when using the computer with password), like change the player mode (weapons, close combat, powers, etc…), open the main player menu (that option to open a certain menu from the list configured and change between them easily, like console games used to do) and others. That doesn’t happen anymore
Fixed issue on gamepad when opening menus, that were taking the first interactable UI element as the current object to use, so if you were using the A button from gamepad to press buttons on the pause menu or the ingame menus, there could be other behaviour happening. This fixes that issue, so the pressing buttons action on menus with gamepad works properly now, for any menu, pause or ingame
The confirm take pickup action used when the objects to pick for the inventory is previously examined has configured the same gamepad button as interaction action button, allowing to pick objects for the inventory properly by default when using a gamepad
Lockers and closets which have objects inside now have an option to spawn objects when they are opened, instead of only activating objects previously placed inside. This fixes an issue where old versions of weapons were placed inside of these lockers and closets, so now, these weapons are spawned with their current version of their prefabs. This of course is just an example, so instead of weapons, any object can be placed inside. Same has been done with the puzzle system examples, which had old versions of pickups placed inside, so objects on those positions are spawned properly now
Fixed issue on ladders which in some situations, it wasn’t detecting the bottom part of the ladder when the player was trying to exit from the ladder on that position, avoiding him to exit from the ladder through the bottom part. This is fixed now, allowing to exit from the ladder through the bottom part without problem
Fixed issue on the ladder system, avoiding a previous bug that was playing the ladder footstep sounds on the air before touching the ground and when not really moving on the ladder (for example, when the horizontal movement is locked on the ladder, keeping the player in the center of the ladder)
Fixed some issues on the AI related to the detection and management of vehicles as targets to attack when the player is driving, getting on or getting off from vehicles, so this is made properly now. Also, AI will resume its activity if the vehicle or target is dead/destroyed or out of range, like returning to its patrol state
Fixed issue on inventory when combining objects, when the combined object wasn’t added to the player’s inventory
Added option on the scene manager to change from one scene to another directly in the editor, with just a button click, without need to search the scene file in the project folder, using the level manager component. It just needs a path setting (where scenes are stored) and the name of the scene, including a check in case the scene name or path configured doesn't actually exists
Added options to stop a dialog which doesn’t pause the player actions in case he is too far away from the NPC which is talking. There are also options to set the next dialog group in that character in that case or play again the last one and keep from there
The external dialog component allows now to only activate the dialog checking the ID of the character detected
Added option to play dialogs automatically when the payer enters in the trigger if case the dialog is configured as a free type (those which doesn’t pause the actions of the player of put the camera in a fixed position)
Fixed issue on the dialog system in the option to use the interaction button to change to the next dialog line, which was not stopping properly the coroutine used to show the line text letter by letter/word by word
Added option in the main GKC menu (top options bar of unity) to add a dialog content system to any character or object automatically, adjusting the couple of manual settings that need to be applied directly, so the dialog is ready to be used (adding the dialog text lines needed for that character) with just using that main option bar
Improved photo mode, including the use of moving the camera positions even on states where the player input is overridden, like in point and click. Also, the photo mode is now properly managed if it is activated when the player is driving a vehicle
Added option to configure extra cameras to apply the same effect as in the main one, so if a secondary camera to render an specific element of the scene is active, it will have the same effect applied
Added a new system which allows to configure different menu schemes for the inventory menu and change between them in real time by sending the name of the scheme to use (though it could be used for other menus). It has options to enable/disable any element and set a new position,size delta and scale as well, so it is very customizable
For example, I have made a similar menu scheme to the inventory of Resident Evil 2 remake to use it when the player is on a place to use inventory objects (a new option has been added to open the inventory menu and set a different menu scheme, if this is not used, the other inventory places will be like previously)
The regular inventory menu is the same as before and when the player interacts with the inventory place, the camera changes of place (using the previous move camera to place component) and enables the inventory menu to use objects as needed and it changes the inventory menu scheme to a different one
Added action system to allow to add and configure new custom actions triggered by places of the level, specific situations, input or all combined
There are also other options like an event list with different delays, so you can trigger a group of events, each one with a certain delay, which can be accumulative (wait 3 seconds, then 2, then 4,....) or each value is checked with a main timer (like previous values but instead of 9 seconds, it would be 4, as the other events happens inside that range)
The events can be used for stuff like play animations in elements on the level, like press a button, activate the change player states for things like make the camera look toward a certain direction, etc…
Some new options allow the player to move to a certain position at the beginning or at the end of the action by itself. It will also include an option to after reaching a certain position, to rotate toward a direction, in case it is needed that the player faces a certain direction at the beginning or at the end of the action
It has been very improved with options to before play animation 1) make the player rotate toward a certain direction (so that avoids any limit to make the player to face a direction previously to interact with an object) and 2) adjust better the player position to the place of the animation. Also 3) an option allows to select a bone of the player to place an object inside, like for example, picking an object from the ground
it can be configured that the player obtains an inventory object, like a key, so both the action and the event that triggers are related to what happens in the scene
Added the first example of the action system being used at any moment and any place with the player making a rotation of 180 degrees, similar to resident evil old games. So the system already allows to trigger these actions at any moment by input for example, so you can add new actions based on input without need of code too
Added the options to use a stealth kill (which in reality, is just an option to play animations for two characters that are meant to be synced), so it can be used for more interactions between two characters. And also, I added an option to use the movement input during actions, to use things like walking on a cliff
Added simple component to trigger custom actions in the player by trigger, with options to set if it is triggered on enter or on exit
Added new component, player state system, which allows to configure different states based on animations and other internal settings, like injured, drunk, cold, hot, hungry, etc...to change the current movement style of the player
Other options included to configure a camera noise in the camera, so it applies a random input, configure a duration for this state and the ability to configure the call to this state through the use of inventory objects, like a beer, which for example can refill health but cause this drunk state during a certain amount of time
Added vault and running slide to the actions available, being made automatically when detecting the triggers to jump above an obstacle or below it without any further input rather that just moving toward those triggers
Added options to keep weapons while an action is being played, including options to draw the weapon again if the player was carrying it previously
Added an option in the action system for those actions which are made while the player can still move, like the roll for example, where the camera direction is ignored, so he makes movements based on his direction rather than the camera
Added option which allows to set a list of actions that can be used randomly when the player activates a custom action like the roll, so instead of make the same animation, it can perform a different animation for the same action randomly, where he sometimes roll and other he slides, they are just randomly picked of a list of two actions for this example, and more could be added
Configured an example of the event settings of the roll and the slide actions to activate the push object components, similar to the slide in first person, where objects and other characters can be pushed when doing this action
Improved the dash/dodge/roll/evade system (it can be called in different ways according to the type of animations used on it haha). Now, it can be used on strafe mode, checking the current input movement direction and activating the roll in that direction. This check can be done using only 4 directions to check (forward, backward, left and right) or 8, including diagonal directions, so the roll/dodge/evade can be done in all those directions if needed
Also, there is a new option to change the current camera state while the action is active, allowing to set the previous camera state at the end or a new one. The roll can be also used while using weapons and while aiming with them, and in that state, the IK on the weapon will be toggled smoothly to disabled while the action is active to be activated again (in case the IK was active through the weapons or other state)
Added an ability system to allow to configure any list of abilities for the player, and the first two that I have made is a cloak/stealth system, to being 100% invisible to enemies and move the shield system to being a totally independent component. This system is made using a main class with virtual functions and each ability inherits from it, so that allows to override easily the main functions and create new abilities very easily, including options to trigger events
This can be also combined with the action system to use animations with these abilities, so this will be part of the magic cast system. Like other similar systems, it will allow to unlock any of the configured abilities by any means, trigger, pickups, events, etc... and keep that info between games, including the ability to upgrade them as well
So basically this system allows to assign a current ability and activate it with a button key just for these abilities and select the current ability in a typical wheel menu. Also, these abilities will be able to be configured as active (like in the videos) or passive
Added two new abilities added, the teleport (which was previously part of the other powers component, but now it is in an independent script) and the gravity control can now be used as another ability
Improved teleport, setting the on ground state to false while the teleport is moving the player, so this displacement is better now
This is made through a custom general ability component which hasn't any ability it self, but it has event options for different ways to be used, like activate events on press down, press up or press hold with delay times for them
So like the rest of abilities, the gravity control can be managed with just one key (which is the same to activate the rest of abilities, since only one of them is active at a time).
This component allows to act as a bridge between any previous component and the ability system, to use any other feature as an ability
Also, the gravity control was previously a little limited when using weapons or powers, but now, it can be used freely with them
Added a new example to the ability system, this time, linking that ability (which is to push objects taking a position as center, like the player) with the action system, so the ability it self triggers a magic animation and with the delay option, the push objects function can be activated, to check and push any object found in the radius. So this pretty much allows the option to configure spell casting and similar actions through the ability system
Added cool down to each ability, so if the ability is used, a certain amount of time needs to pass before using it again
Added time limit to each ability, so if the ability is active more than x time, this is deactivated
Added the option to use a hot bar for the ability system (though currently there are only 4 slots, but any number can be configured) and I have used the arrow keys to use it as hot keys for it (but any keys can be configured for that). I have also added a time text for the time limit of the ability and a second image on each ability slot to show that cool down time until the ability is available again. Finally, the ability of each slot of the hot bar can be configured in game, just by opening the ability wheel menu, select an ability and press the button that you want to use for it
Added another example of the action system combined with the ability system, to throw fire, including particles and damage area
Added two more examples of abilities which use the action system to play animations, in this case, two more spell casts, one to electrocute with electricity (sending a remote event option to activate character's ragdolls) and other to place a fixed position heal area, in the form of rain, healing anything inside that area (in this case, the are is placed in the player's position but it is not moved from there, but the options allows to make that area to follow the player if you prefer or for other ability)
Added last ability for the current update. It is used to "invoke" a meteor/missile from the air. It uses collision detection on the particle system to check when impacts on an object and activate the explosion
Added a new action to throw objects, allowing to use a parable for it based on the player looking direction. It can be used for example to throw objects to call the attention of enemies in the level or even to damage them on impact (that can be disabled if you want to use it only for the first option)
Added option to set the current ability of the player through the change player state system, used by trigger
Added grappling hook system. Though in this case, it is more to be attracted to surfaces rather than swing around (that kind of movement will be added on the next update), taking the idea from doom eternal (the hook can be used of static surfaces or any rigidbodies, including enemies). It has multiple options for speed, camera and others and it is used through the ability system, though it could be used separately as well, like a feature always enabled (same for any other ability)
Added option to rotate the player toward the target direction, use animations for the start and when a certain % of the total distance is reached, add down speed to simulate gravity. Also, fixed points for the hook to be attached, so if any of these points are on screen and with no obstacle between camera and the target, the system will take the closest point to the camera center. Also, the closest point has an icon over it, so it can be totally clear, similar to sekiro
Configured an example of the current grappling hook system as attachment for weapons, in this case, for the double shotgun, in honor to doom eternal
Added an option in the grappling hook system that allows to attract objects toward the player's position instead of pulling him towards them. Basically you just need to attach a component to the object to be attracted to identify it as a target to attract instead of pull. There are different options on that component, to trigger events and even to set a reduced speed value when is close enough to the player (similar to bulletstorm) giving time to the player to do something with it instead of pull that object to his face directly
UMA 2
Honor AI
Added tutorial videos to configure URP and HDRP with GKC easily
Added quick change direction, to make a turn of 180 degrees when moving from one direction to another quickly, to make the player to feel more dynamic and react better to the input
New option to use pinch in and out on touch devices, allowing to trigger separate events in both directions, which can be used for different input actions. In this example, I have configured events to trigger the same functions used on the mouse wheel to move the camera closer or farther from the player. The option checks when enough distance has been applied (closer or farther from the initial) for both fingers and also, it checks that no other touch input is pressed, to avoid awkward situations and the minimum distance difference on the fingers to check events
The pinch system has also an option to simulate two fingers in the unity editor, using the right and left mouse buttons for it, so the right mouse button simulates a fixed finger on screen where you press it and the left button is the one which moves on it
Improved locked camera system related to the lock-on of targets and the way to manage the different types of camera controls in that view
New option in locked camera allowing to rotate the camera to left and right separately through input horizontally (Y AXIS), more used for top down or isometric perspectives
Added ladder system on third person, managed by the action system in most of its elements. It allows now to jump off from the ladder at any moment and even climb at the top if you reach that position with the jump
Improved option to use the action system in first person, so the camera switches to third person on each action and returns to first person once the action is complete
Added a tool for the action system, to replace any of the animations used on it in a single click, without need to go to the animator, search the layer, search the animation, then adjust it, etc.... so you can do that very quickly and easily, allowing also to set a new animation speed for the new animation and if it is mirrored or not. The rest is configured automatically.
Configured an example of the action system (in this case use the bonfire) which activates the dialog system and resumes the action once the dialog is over.
Configured a new open door examples, so instead of open, enter and close, it just open the door (and it is closed automatically after x time)
Improved dodge/dash system to use different types of dash/dodge/roll actions that can be configured in a list of different movements and which can be activated by each weapon separately, allowing to asset a type of roll/dodge to each melee weapon
Configured the slice characters into the plasma cutter, so along meshes, the plasma cutter can slice on characters too, apply damage to any other object and apply physics to the rest of objects
Configured a sniper rifle weapon example, including a sight UI panel, and some fire values for the projectiles, physics, damage, fire rate, and delay to hit the target according to distance
Added animation management system for weapons and arms in first person for fire weapons (melee weapons will be added on another update), allowing to use animations and transitions, such as reload, fire, aim, run, walk, draw, holster, etc…, including to manage reload of clips or shells, for regular pistols, rifles, shotguns and any type of weapon/reload type. It is also compatible with any weapons/model/animation pack of the asset store, such as Low poly FPS pack, HQ FPS animated weapons and any other
Improved the melee hit with a fire weapon, allowing to activate the action system for it instead of using the default option, which uses IK on third person
Added bow weapon type, with the arrow projectile statsconfigured through the weapon system, so it has all its options and possibilities, including the physics values and the gravity force to describe a parable movement
The player can also move while using the bow and can holster or draw it at any moment, as it is managed by the same melee weapon system than the other melee weapons, including draw and holster animations
Improved damage detection for both melee and close combat, for a more accurate detection of surfaces to damage, specially for the close combat system along with adding an option to trigger the damage reaction system on characters with any type of damage received, allowing to configure that in the damage settings
So you can set if an element that applies damage activates this reaction system (to play animations based on the damage position on the body of a character for example) separately, like firing weapons, close combat, melee combat, collisions with objects, etc...
New option for the melee/close combat to match the position/rotation of the player with the target that he is attacking, to face both direction and position if close enough.
There are some options already to select the target to match, like use the movement input to select the next target to attack, so when the attack key is pressed, it takes the movement input along with the camera direction, to calculate the closest target to that direction (inside a range of distance and rotation). Or use the closest target to the screen center, so basically you attack what you look, inside the same ranges options. It has option to just take into account the closest target to the player and inside also a range of max/min distance and rotation of the player respect the target, to it is very customizable
Added option to carry a single melee weapon at a time
Added an option on the melee weapon to teleport the player to the current position of the melee weapon when this is thrown in any direction, in a similar way to Final Fantasy XV warp ability
You can activate it at any moment once the weapon is thrown, or wait for the weapon to find and attach to any surface as well. There is also an option to call (or not) the weapon back to player's hand once the warp is complete
Add options to the bow system which allows now to easily configure different types of settings for any arrow type. So far, I have configured 3 types, regular, poisonous and explosive, and any other can be configured easily
Added an option to increase the arrow speed, force and damage according to how much time the player is pulling the bow for the current shoot, increasing these values the longer the player holds the fire (according to multiplier and max values fields)
Added the option on the bow system to check the surface detected by the arrows, and activate a bounce if the surface type is an obstacle or a hard surface, also allowing to pick the arrows again when they have bounced on such surfaces (this can be disabled, so the arrow bounces, but can't be picked again)
Added the option to use particles on the slice system, so it can instantiate any type of particles on the position of the slice, like blood on characters or sparks on metal. It works on any other weapon with the slice system, such as the plasma cutter (also, you can pick body parts to throw it to other AI to damage them on collision)
Added a motorbike sword example (in reference to the chapter of the simpsons where Homer fights with another guy using motorbikes as swords xd)
Added shield system for the meee combat, which can be carried as inventory objects and you can set if a weapon can use a shield or not, the movement values and damage reaction setting that it uses and block with the shield in free and strafe movement as well
The shield can be also carried and used without carrying a melee weapon, like in dark souls and similar games
Also, you can draw or sheathe the shield separately from the melee weapon, so you can toggle its use if you are carrying a shield with the melee weapon, using the quick access slots keys (in this case, by pressing the key 8, as that is the slot where the shield is placed) and the shield is placed on the character's back when the player sheathe the melee weapon as well and vice versa.
Added shield system for AI as well, and it is also able to use just the shield without melee weapon, so they can just defend.
Added option to activate the teleport ability on the melee weapon automatically when it detects a surface on the throw action, being almost equal to the warp ability of FFXV
Added block action on the close combat system, allowing to move while blocking an attack and working in the same way as block on the melee combat system
Added options to customise sounds, particles and events when detecting different surfaces using the close combat system, working in the same way as the one on the melee combat, and allowing to configure surfaces which can trigger hit damage reactions (or any other animation) when the characters hits or damage it
Improved damage reaction system, to allow to configure categories of damage reactions, so each mode can have its own reaction animations, so modes like melee or close combat have different damage hit reaction animations, since the character is fighting with different elements. The transition in animations has been improved for this as well
New option to trigger remote events on the object that has been blocked perfectly, so this can be used for example when the player makes a perfect block, the remote event can change the animation speed on the AI for a few seconds (all configurable) to make it slower and allow more reaction time
Another option will activate the bullet time in general (or just slow all enemies speed and keep the player speed the same) when he makes a perfect dodge/roll on attack (when the invulnerability time is active and he receives a damage that is avoided from this inside a time range), similar to bayonetta
New options to configure concrete reactions of a certain attack. For example, the last punch of the combo activates a reaction with an electrocuted animation, the kicks just use the regular damage direction to trigger each reaction according to that (with the last kick activating the push objects, which also pushes the enemy in front) and the first special attack (the multiple and quick punches) activates the stunned reaction
New option for the damage reaction system, in this case, in the health component. When the AI health decreases, it has events configured to affect the main probability multiplier used to activate damage reaction animations, lowering that amount, so he becomes more resistant to it while he is more and more close to death
Revamped jetpack system and the flying system, using a much better control and animations for it, And now, both modes allow to use powers and weapons without any limit on it, something which couldn't be done before. It uses animations now and like the free floating mode, zero gravity mode and jet pack system, it allows to use the weapons, powers and the rest of abilities on this mode too.
It is also much smoother now and I want to add some more options for the air control and physics forces applied to it, allowing to have a more free control or a tighter one, according to the user's needs.
The flying system allows now to move up and down with separated inputs, which is added to the current camera direction, used to move the player up and down as well, so you can combine that for its movement
Added laser vision ability, similar to superman, including the option to use the slice system as well, to cut through objects, characters, etc…
Adede ability to spawn objects, which can be used to spawn friendly AI (kind like minions), bombs, vehicles, or any other type of prefab object needed
Based on the improved option to resurrect dead AI through events/function call, I have also added a simple ability example which can resurrects dead AI inside a radius (using the effect area system and the remote event system, so no extra scripts or class was needed for this), and of course, you can customize tags/layers to check, so you can use it only on friendly AI dead for example
Added another ability example, a kind of zombie transformation spell, to turn AI enemy into a zombie ally which attacks the rest of enemies, without need of extra code, as it is activated by remote events and the zombie state on the AI
Added a new ability example taking inspiration from the antigravity grenade from call of duty infinite warfare, as the systems to use that effect was already available (and it is very easy and quick to add new ability with new behaviors and a new simple script for it), by having access to the ragdoll activator component on any character on the scene. So the grenade access to it and plays with its gravity during a certain amount of time
Added a new ability example allowing to place mines on the ground which can detect any type of target and explode (inspired in one of the weapons of the last of us), like enemies for example. Also, the mine can receive damage as any other object and explode due to it
Another abilitiy added for manual mines, setting only one at a time, so the second time you press the put mine, it will explode, so you can wait for a certain moment to activate it (the trigger event can be activated, so it can be activated both manually or when detecting a target automatically)
Added an option to use an animation to throw and pull for the grappling hook, to look more natural, instead of throwing the hook directly in third person (this can be configured to use it or not)
Added brainwash ability example, to turn enemy AI into friendly AI
Configured a magic/spell casting mode example, in a similar way to the melee combat system, allowing to trigger a list of events configured by a category of magic attack, in order to use multiple input keys for different magic spells or attacks, and allowing to the player to keep moving, using separated animations for upper body and lower body
It allows to configure a list of spells or special attacks to activate in a similar way to the melee or close combat system, allowing to organize the attacks by categories used by the input, so you can set any amount of input for each attack type
Added quick access slots/hotbar system for the inventory, to allow to drop any object on them, from consumables, to fire weapons, melee weapons, regular inventory objects, quest objects, etc.... allowing also to change between melee mode and fire weapons mode directly according to the selected weapon, similar to games like deus ex
Added option for reordering the inventory grid as you need, by dragging and dropping the slots into any other position
Added arrows as inventory objects and the option on each bow type to configure if they use arrows from the inventory and which type, so if there are not arrows of x type of that kind of bow, the bow can't be fired. In the other side, you can have some bow with infinite arrows if you need and the arrows can be picked as regular inventory pickups as well
Melee weapons are now managed as inventory objects as well
Added an option on the vehicle system to set the default camera when enter and exit, so you can set that it always changes to third person view when getting on and set the view of the player for example, viceversa, always set both views in first person, etc... with any combination in between. Here the view changes to 3rd person when getting on and 1st person when getting off
New option for the interaction system to avoid to use or show an object if there is some obstacle between the player and the object, so for example, if an ammo pickup is inside a closet, even if the interaction trigger is outside the closet, the player can't pick the ammo until he can see the object (for example, by opening the closet)
Added a function to show/hide the touch buttons on screen for touch devices, but keeping the ability to be pressed on screen, which allows to use a gamepad on mobile and keep a clear screen, customizing the controls as its scheme as you need. Here a quick test I made for it
Pooling system, which can be used with any type of objects and which has been applied for weapons for now, but it will be also used for the rest of elements in next updates
Improved hierarchy of the different systems of the player, organizing them by categories, alphabetic order, and if they are essential for the player to work properly or if they can be removed without problem if wanted, to make easier to locate them and customize, remove or disable them
Also there are some components which were previously attached on the player controller gameObject which has moved to the other hierarchy, so this allows to have only the essential on him and have a cleaner and better organization in the asset
Added an option on the health bar management system to show the info of the object in the screen directly, similar to how dark souls do it. This allows to also keep showing the other health bars which follow each object on the screen, and also, it will target the closest object to the screen center which has enable the option to show on the top bar of the screen instead of an icon following the object's position
Added a resurrect event option on the health component and configured an example of it for the AI, as the elements were already included and just needed a couple of additions to reset the AI behavior in order to resurrect properly, so you have unkillable AI or zombie AI for example
Configured an example of the waypoint camera, the navmesh system of the player and the pause/resume player actions component to configure a "cutscene" where the player walks through a set of positions automatically while the camera moves through waypoints. During that time, player actions are totally paused and they are resumed once the camera reaches its destiny and returns to player view
Added an option on the dialogue system to allow to configure animations on each dialogue line with options to configure the name of the animation and a delay to activate it. It also allows to activate animations on both NPC and player to play the conversation between them
Improved workflow on different systems, being more simpler, faster and easier to configure different elements of the asset
Added and improved editor wizard creator
Configured multiple templates for the player, so they can be selected with the character creator wizard, from default, to first person, simple version, only melee weapons, etc... as this wizard allows now select from a list of different templates (more types can be added easily without adding code, as this is managed by scriptable objects)
Added Zombie AI type example, including a different animation tree for movement, attacks and wander state
Added the option to create neutral AI on the character creator, so it can be used at any moment along with the friend and enemy AI. By default, this AI won't follow the player or any other faction, neither attack, but with the faction system, you can customize its reaction if attacked
The AI is able to detect and follow a partner by configuring the faction to set as partner, which can be another AI and not only the player
Improved brain AI for both melee and close combat systems
The resurrected/zombie AI is managed by events, changing its attack mode to combat, and setting the ID to use on movement and combat for the value used for the zombie type in the animator. Also, the wandering animations change for zombie style as well
Also, you can activate this zombie state directly on start on the AI, so it doesn't require to die first to activate it, so you can have both options, to either resurrect or have a zombie ready to use out of the box
Added an option to configure a maximum range of detection for an AI when is damaged from a distance (previously, that distance didn't have a limit), so you can activate this option and limit how long the AI can detect an attacker from a distance when that attacker makes damage to that AI, for example, with a weapon shoot
Added example of the execution action for the AI which is activated by default on the wander around state as example to use it (though it can be activated by many ways)
Fixed a little bug related to hold an AI companion on ragdoll state, as now it pauses the get up function while the AI is carried.
Improved performance in general parts of the code in most components, including input, AI, weapons management and more.
Minor bugs fixed from pickups, inventory, weapons, melee, AI and others.
UMA 2
Honor AI
Added tutorial videos to configure URP and HDRP with GKC easily
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
Added a new character model for the player and AI, having a modular body, which includes many different parts, configured as examples of the new armor/cloth system. allowing to equip any type of equipment for visual elements
Improved a little more the ground adherence, allowing to detect better small gaps and distances to the ground in different states, to move properly on it. Here the max step is 0.6 units and the last step he can't walk on from the ground is 0.7 to show the max height for it available on the example.
Improved the weapons creator wizard, to allow to set info about the info of the new weapon inventory object, including description, icons, and ammo mesh and icons as well, making the process more automatic now and avoiding any extra step once the weapon (and the inventory objects info for it and its ammo) are created in a couple of clicks:
Added example of weapon which projectiles with a remote event to disable the shape-shifting on an enemy AI
so if you have a werewolf enemy, if you fire them with a weapon with silver bullets, it returns to human
Here is an example of an option to holster the current weapon if its quick access slot is pressed with the weapon already carried (it can be seen on the touch controls as well):
I also show there more examples of the close combat system used in any state while carrying fire or melee weapons
Improved management of the quick access slots, as objects order is saved now, so the objects there will keep their position in between game save/load or scene changes:
Of course, not only on weapons but any of the inventory objects on them
Here is an example of the return grenade action when the enemy throws a grenade at the player in the first and third person, as the ability system is usable in both views now:
Configured the dual melee weapons on the AI as well, as I didn't have the chance on the recent update:
Added an option for the AI which allows them to change between their fire weapons after a random range of wait (in this example is configured around 4-7 seconds):
Here is an AI dropping his weapons from damage on the arms, falling on the ground due to damage on his feet, and using close combat on the player while using fire weapons
AI can manage multiple melee weapons and change them in runtime, along with dropping them from damage received on arms as weak points:
Here is a test with an option to hide directly a character inside a hide trigger, removing its info from the detected AI around:
Here is a tutorial video to configure generic models on the AI
Configured examples to use the save system to change scenes with vehicles with the general drive/rider system, so external vehicles integrated can move of a scene and save its state as the rest of GKC vehicles:
Many improvements on workflow and new tools to create or customize many different elements, including the creation of an action system, adding melee weapons, creating armor/cloth pieces, and more.
Created online doc of GKC which has been published thanks to the huge help of Tikal.
Here is a new test with the new model for GKC, which has already different armor parts, and which I will show some examples of the armor/cloth system work on it during these days:
Here is some more destruction with the Mjolnir weapon example, breaking stuff
I fixed a bug on the weapon system on the player due to the action system used on the draw/holster weapon action, when equipping weapons from the inventory menu or dropping them into the quick access slots inventory system, causing the player movement and input to be disabled and not resuming
Configured remote event options on the throw and weapon return and use the already included function to pause all the actions and states on the AI, so you can freeze AI by shoving an axe on its chest haha:
Tweaked the block animation state on the melee weapons for the upper body, looking better by default now:
Added another example of a melee weapon, a boomerang, having an option to aim and mark a list of targets to reach, allowing it to be used like in wind waker, to damage, break or send signals to elements to trigger events or functions:
Added example of the bow and boomerang to mark targets with the touch buttons, as any button allows to enable the camera drag, so while you perform the aim/shoot/throw/mark, you can rotate the camera with it, to play easily on mobile:
Here is a tutorial to configure new melee attacks on a character and the melee weapons:
Configured an option to allow to use of the weapons while using the slide-on rail traversal action:
Added a cool option on the close combat, which will allow activating close combat attacks on any state, either while using melee or fire weapons, and keep using them, so it will keep the current player's mode, do the attack and keep the weapon on the hands, and chain close combat and fire weapons or melee weapons attacks:
Improved the slice system to allow to configure custom positions to check for objects to slice, so it can be called from events for any position and object on the player, such as the close combat, using the events options to call it:
The same action to make a character drop their current weapon activated by remote events from anything, like attacks from close combat, in this case, happening to the player:
Added armor/cloth system and the character creation system to customize the aspect of the player, including its visual elements, including blendshapes and accessories
It also has options to set different view perspectives according to the zone to edit, like face, head, full body, etc.... with easy settings for it too:
Here is the main armor/cloth system working on the character on the action, allowing to affect both, aspect and stats and other values on the player:
In this case, each armor piece increases the max health by 10 units and 370 more if the full armor (7 pieces) are equipped together (base health 100 + (10*7) + 370 = 500), here is the example for the full armor stats affected:
Added fully functional character creation at the home menu and sent that info to the new game scene, so the player starts with both, the equipment selected and the blend shapes configured:
Here is another example of the character creation having now the starting set on the proper customization slots.
Here is another example of the armor/cloth system during first person, as the character meshes are reactivated temporally in that state.
Configured the armor/cloth system on the AI, and it allows to send signals from the health system dropping their armor pieces as pickups (or destroy them) in both the AI and player (it can be disabled as needed)
Added the options on the armor/cloth system for the values which can be configured on any piece to affect the stats and elements on the character, to affect also to damage types, for either resistances or weakness for it:
Added checks to disable all its meshes properly on any external situation, like shape-shifting or any state where the body mesh is disabled.
Added a creator wizard tool to configure new armor/cloth sets, which creates the inventory object pickups and the scriptable objects info for these elements:
Here is a preview of the new armor/cloth system to configure the info of a set on a character and using the creator wizard to configure that info as scriptable objects, which will also create inventory objects for them automatically.
Here is another example of character creation and customization.
Added a tool to get the character meshes of each armor set, so they can be used to create the icons of each inventory object easily
Added options on the armor set creator to allow to configure on each piece if it contains values for stats, skills, abilities, or damage type resistance/weakness:
Here is an option on the armor/cloth system working on the AI with an option to select a random set on start, so each one can start the game with a randomly selected set, each one with its properties, abilities, stats, and other values.
Added a free climb system, inspired by the Breath of the Wild, here are some initial results.
It allows to climb on top of surfaces, check for the sides to move around very closed places or corners, animation curves to adjust the movement, and more.
It includes interaction with the hook, checking of surface for feet, hanging just from hands or place the feet too and more interactions (polished in the process too).
It also allows to move on rotating or moving objects.
Added option of stamina on the free climb system, with separated values for regular and fast movement on it, so the player will fall if the stamina reaches 0 (and can't grab to the surface either until it starts to refill itself).
Added an option on the climbing system, to slide down the surface, along with moving to the sides too.
Here is also an example of the climb system transitions between the third and first persona and the climb on top action, all the elements of the climb system work on the first person too.
here is a regular workflow of the localization system, I have improved some internal parts of it (including being able to use it on builds, as before, it was using functions only available on the editor) along with adding some minor parts inside its editor.
Added a few localization elements, improved code on many parts for performance, and tweak some elements
Added a kind of action system creation wizard tool, so you can set the main info and the system will add automatically the action system on it, so it will be just that and adjust the animator, without extra steps, to make it more automatic:
Of course, it can be used on both AI and players, since all of them use the same components
Added the loading screen scene
Here is an example of a vehicle configured through the general drive/rider system to move in between scenes just like the rest of the GKC vehicles (I will show tomorrow an example with UVC for example).
Configured the animal to ride examples to be managed through the save system and the scene managers, so they can move between scenes properly as the rest of the dynamic objects.
Here is a test for the scene manager to move objects to ride in between scenes for external vehicle controllers, such as Malbers Animal Controller for example.
Configured a garage example to store vehicles there, just by using the regular scene manager and dynamic save system on scene elements:
Universal AI System
Randomation
Edy’s Vehicle System
Malber’s animal controller (dragon, wolf, birds, etc…)
Space Combat Kit
NWH vehicles and water physics
And with the new general drive/ride system, any vehicle/animal controller from the asset store or custom made will work with GKC without extra steps or code needed for it
Improved the ground detection for situations where there are smalls gaps in between the ground, as the characters can move properly on it now.
Added an option on the locked camera system to clamp the aim reticle to a circle. The previous option clamped the movement inside a circle, with this active, the clamp is made inside as well, so the reticle only moves on circles, like most top down/isometric/2.5d games used to do with their aim system based on a reticle direction to aim (ignore the red square, it is from the laser system and that has been adjusted properly.
Improved the use of range melee weapons on locked view, like the bow system or the option to fire projectiles from swords, allowing to aim accurately to any direction:
Added options on the action system to stop shooting and aiming fire weapons when the action is activated, like damage reactions.
Added a menu for the abilities system to allow to edit the current abilities configured in the wheel selection, so you can order and organize the abilities which you can select as shortcut easily, in case the player starts to unlock a lot of them or you want to give options to organize it as the player prefers:
Added a new ability example to basically use an holographic target, to get the attention of the AI and maybe put it close to an explosive barrel, so they attack the barrel by accident and die from the explosion:
Improved management of the icons on the abilities wheel for how they are scaled and placed according to the active abilities on it through the abilities editor ingame. Also, I added an example of the previous hologram player but this time, it explodes
when it receives damage, killing all AI around it in the process
Here some minion summoning using animals instead of human characters:
Here an example ability to reverse/toggle the player's gravity, similar to the game VVVVVV:
Here a test where the player can control AI on shape shifting mode, with generic models, like animals, through the override/possession system:
Here an example of the AI pet companion to summon and call to ride, similar to breath of the wild:
Added full support of generic models, from animals, to monsters, robots, etc...allowing to configure both as characters to use on AI and player and to turn them ingame or at the start of it and turn back to humanoid shape or remain in that form for any amount of time. They can be also configured as “vehicle” to ride, driven by animations instead of just physics
Here more progress on the support of generic models and riding animals through the vehicle system, I have finished the main system for it, I just need to improve the controller for the riding animal it self:
Some tests for generic models with the AI, and here some WIP with the AI wandering around and trigger animations on each pause:
They can also use the action system as well, allowing to set the a new category ID value, so according to the current model used for the character (AI or player), the same action can activate an animation for the new model, like howl for the wolf, or attacks for it, instead of the human animations
Generic models can now activate the close combat as well, along with the reaction system. This has barely needed any addition, working with the current action system, with just a couple of options added to trigger different animations according to the model of the character, so the player can now attack on any other shape and react to damage as well:
Here a WIP example of the AI with generic models attacking with the close combat system, working in the same way as the humanoid mode, allowing to customize each attack for each character model and getting damage as well:
Improved ride system and the animals used for it will be able to perform same actions as the other characters and player, from attacks, to damage reactions, to use the action system, and anything in between:
Added the close combat system on animals to ride too, the ragdolls are also usable on the generic models and more. Here a mix of different elements on animals to ride:
Here more tests with different generic models, like animals, with examples of using the close combat system to trigger attacks on this mode:
Example of the ragdoll on generic models, as I added a generic ragdoll builder like in player and AI, so they will be able to use ragdoll and enter-exit that state:
Added a generic model creator wizard tool, in order to make the system as easy to configure as possible:
Here another example, riding a raccoon ala ant man style haha:
Generic models system is also compatible with the slice system:
Here a preview of the process to configure a new generic model with just a couple of clicks, the rest is mostly configuring the regular movement and jump animations:
Here another example of riding an animal, this time, using the powerful deer to attack some poor enemy:
Here a test to turn AI into any generic model in runtime through abilities/spells/magic, like a frog, disabling also its attack mode and make them harmless:
Here a test, with animals to ride on regular wander around state, allowing to ride them and in that case, they can follow the rider once he gets off (with options to ignore them after x time, here are just 10 seconds with the player) and repeat the cycle. The option can be disabled to resume the wander state when you get off, or follow the last rider forever
Also, you can put an inventory bank/bag on them, so they carry any amount of stuff, along your regular inventory
As the first step to add support of generic models to allow to use animals, monsters, robots and anything not human as character for player and AI, I have added an example through the abilities system to change the control of any object in game, like shape shifting, starting with vehicles:
Here some more examples of the shapeshifting ability used with different objects, like a simple cube, a crate with pickups inside and an explosive barrel::
improvements for the support of generic models for the player and AI and the main structure is already complete, as I am improving different parts of it, which has been basically extending the main player controller component. Here the first results using malbers wolf free pack:
Improved sphere controller, allowing also to stick and climb on walls taking inspiration of the metroid spider ball mode:
Here a trigger example which allows to activate/deactivate in runtime the shapeshifting ability of any character:
Added option on the shape shifting to be ignored by the AI on animal mode:
Here an example of the AI using abilities or powers to force the shape shifting on any
AI or player during x amount of time (or forever, or until get a certain condition):
Here an option to leave as active the generic model that a character will use for player or AI, so you can see properly on scene the model that will be used for it: ● https://streamable.com/43jmnk
GENERAL RIDE/DRIVE SYSTEM (Automatic integration with any vehicle/animal controller from the asset store or any external or custom controller)
Added ride integration with malbers animal controller system from Malbers Animations , which will work on any of its animals packages, it will work with horse anim pro too, so all of his animals which have a character controller configured on them will be able to use it, with all the elements from malbers animals configured on them, attacks, throw fire, etc…
I have finished the initial testing with this general integration for it. This new ride system can be used on vehicle controllers from the asset store too, so it can be used on any of this type of assets easily, taking just a couple of minutes to set up:
Here a test with birds to ride, through the general ride system and using malbers birds as example for it:
Edy's Vehicle Physics has been integrated with GKC, it takes just a couple of minutes to adjust the ride system to any external vehicle controller:
Integration with randomation (a very nice vehicle controller with destructible parts) through the general drive/ride system:
Here another preview of another integration test that I tried with a vehicle controller using the new general drive/ride system of GKC, this time, for NWH Vehicle Physics
Here another test of the general drive/ride system of GKC with dynamic water physics 2 vehicles:
Added an option on the noise system for the hearing detection of the AI to force a sound to be heard even if the AI option to hear is disabled, so you can make them to notice certain types of noises if you need to, This is used for example on the hologram target, to call their attention in any possible case (of course, it can be disabled):
Here a new test for the generic models, for one AI attacking another AI (I have to configure a couple of tweaks for the attacks rate and target detection for the generic model)
Here another WIP test of two generic model AI fighting each other (I have to tweak some values of the combat and reactions):
Here a test that I made with a zombie AI spawning from the ground:
Added the main AI navmesh system to the generic ride/vehicle system, so the animals can move around given a navmesh target to reach. This will be used also for the wander around state on the animals to ride, so they can move around until you ride them. After that, they can return to wander state after x time or follow the last rider, in this case, the player
Added integration with Universal AI System done and ready, including in the upcoming update 😄
Here an example of the AI turning other AI into zombie state by attacking them, turning them into the enemy faction and spreading the same change to other AI, becoming a high danger for the player pretty fast:
Here a test for the animal AI (the generic models to ride), with target detection to avoid enemy factions on wander around state (it uses just the AI components, so it will be improved to use all its elements and features in next updates):
Improved AI detection and target management, including when the AI has detected it and stills inside its range, so the AI can chase it around corners or behind any other obstacle which blocks the view of the AI or attack from longer distances: ● https://streamable.com/me96e1
Here an example to trigger a certain action using a combination of keys input, for example, to activate an ability. In this case, you can set any action to call, including other abilities, and use options to check if the keys are pressed in order and using a max delay to check for the second or third press (the console shows the keys pressed)
Added a pop up window which only opens the first time that you execute one of the demo scenes of GKC, and only a single time, which is used to show some basic info about the initial setup of the asset and any other relevant message, like the step to import the animations:
Added option to make a character to play an animation through the action system at the start of the game (or when a character/AI is spawned for example):
Added a new option allows to set a direct transition to any animation on the action system, so the animation is played in the next frame, without smooth transition (crossfade), for elements like cutscenes, dialogues, etc.... or just to avoid a smooth transition, and play the animation directly
Options to configure events when drawing/sheathing a melee weapon, like sounds or animations on the weapon it self, like in the lightsaber:
Configured prefab examples to make a simple vendor through dialogue and allow to trigger events by giving inventory objects through the dialogue too like getting a reward of money by giving a wizard a special key from your inventory:
To use this, I added an option on the dialogue system which allows to configure conditions to trigger one dialogue line or another based on the result of that condition check system, so this is all modular and independent
Improved gravity system on 2.5d, to make some small improvements, along with the test of the ability example to reverse the gravity direction of the player like in VVVVVV game:
Added a component to show any stat on screen, it can be used for any value, updating the content text at any moment (the example is the money on the left side, the right side is the default option of the money system it self): ● https://streamable.com/9jk1qu
● Minor adjustments and tweaks, along with polishing and removing of exceptions and issues on very certain circumstances, adding the checks needed to avoid any further
Added an example of wall jump/slide, inspired in mario games and other similar platforms:
Added new movement to add more dynamic actions on the player, this time, to slide on slopes with a certain inclination, allowing to move left and right, speed up or slow down the movement and jump:
Here a cool test with the slide system and some additions, like events to activate dust particles, speed settings to move faster or slower on certain surfaces and more, along using wall running, paraglider and other stuff:
Here two different examples of how to slide in a very long surface:
By shooting at the spheres, the next slider is activated:
Added an option on the slide system to be used on any moment through input (by detecting if the player is running and uses the crouch action key by default) so instead of crouching, he will start to slide, in the same way as fixed slide zones:
Improved the slide and teleport systems, now allowing to adhere and rotate to the ground normal when sliding, so you can make movements like this, and adding the same option as the grappling hook points with the teleport system: ● https://streamable.com/99882f
Added new swim system, which allows to both swim and dive and use all the weapons, powers, abilities and anything else on it, including to move faster, use water currents, oxygen, enter-exit on water from ground or climb out of it, detect vehicles to trigger options on it and more
Added trigger events for camera effects underwater, sounds, particles and jump on water or climb to a surface it the player detects one close enough while on the water:
Here an example of dying from depleted oxygen:
Wind effects works underwater too
Added options for how vehicles react when entering in water where player can swim/dive, similar to some GTA games, where vehicle interaction is disabled or even explode, along with physics forces for the vehicle underwater:
The swim system zones can send remote events, like deactivating fire on characters when getting in:
Added improvements for how the characters carry objects on its skeleton, like hands for fire and melee weapons, having a mount point system now. So the adjustment of melee and fire weapons will be much faster and easier now, having to modify just the general mount point of right and left hand once:
I have finished the improved mount points system, which will allow to manage much better how objects are carried inside character's body (player and AI), related to fire and melee weapons and other objects, speeding up the creation of new characters even more
Here more info of the body mount point system, as it allows to configure any list of parts that are placed in a character (AI or player) and manage them easily, as they are also moved from the current model to the new one when a new model is applied:
This is also used by melee and fire weapons, as they are placed inside these mount points now instead of the bones directly, reducing the extra adjustments needed to use these elements in new characters, having all in the proper position out of the box
●
●
Added a new toolbar system which is very customizable and it has many actions as shortcuts in order to make the asset easier and faster to use or simplify some steps, like select main player, focus on a certain component, move the player around, toggle camera view, etc…:
●
●