Releases: nicholas-maltbie/OpenKCC
Release v1.5.0 - Skin Width
Added skin width feature to the project.
Might take a break for a bit given the announcement of Unity's new Unity plan pricing and packaging updates from September 12th.
[1.5.0] 2024-09-14
- Added basic navmesh example for using OpenKCC movement engine with a navmesh
agent to simulate basic path finding. - Added basic buttons and controls for look, jump, and move actions for
the character controller that can be enabled manually and are automatically
loaded when the game is opened from a mobile device in a web browser. - Fixed small bug in
KCCStateMachine
causing player to stop jumping
when they are walking up steps or slopes. - Added
SkinWidth
parameter toIKCCConfig
andKCCMovementEngine
to allow
for a buffer space around the character when computing movement to avoid
numerical precision errors for physics system. - Modified extensions of
AbstractPrimitiveColliderCast
to store their
collider parameters in the collider cast component itself and copy
those parameters to the collider. Although if this has not been
configured yet, it will search for an existing collider. - Re-implemented example
KCCMovementEngineWithPush
to show how to use
ICharacterPush
to push objects with theKCCMovementEngine
Release v1.4.0 - Basic Foot IK and Backwards Compatibility
Two main new features added were basic foot ik and automated tests and validation for backwards version compatibility.
Changelog
- Removed
Moq
dependency for tests. - Updated project version to 20202.2.16f1 and added automated tests for
backwards compatibility for versions 2019.4, 2020.3, 2021.3 - Removed reduction in momentum due to snapping up as it was causing player to
sometimes get stuck on corners of small slopes. - Updated project version to 2021.3.25f1
- Corrected basic overlap for when feet intersect with a wall or ramp.
- Added support for
LayerMask
for theHumanoidFootIK
raycast checks - Created class
IRaycastHelper
for easily mocking raycast checks. - Overhauled existing animations to play well with foot ik and fixed import
errors due to lazy coding - Re-imported and created new animations so they are configured for Michelle's avatar
- Created
HumanoidFootIK
andFootTarget
classes to manage basic player foot IK - Created
HumanoidFootIKEditor
to bake animation curves for player movement
when I'm too lazy to do it manually. Then proceeded to
manually adjusted curves for player foot IK - Added tests to verify basic behavior of
HumanoidFootIK
andFootTarget
classes - Updated avatar configurations and settings to support
HumanoidFootIK
usage
for basic test scene - Added more test objects in the
SampleScene
to verify new foot behaviors. - Addressing small bug in player movement caused by stair movement normals
not being computed properly when walking down stairs.
Release v1.3.4
[1.3.4] 2023-04-01
-
Refactored common assets (like UI) to
ExampleFirstPersonKCC
sample -
Added new type of
IColliderCast
inPrimitiveColliderCast
which can select
between different parameters via theColliderConfiguration
which includes
a property drawer and custom editor for making it easier to
configure and see changes reflected in the game. -
Small patch to accessability modifiers for
CameraConfig.CameraDistance
-
Added parameters to
IManagedCamera
:
CameraBase
andPlayerBase
-
Small updates to DrawKCCBounces to improve the debug view.
-
Small fix to
BufferedInput
to allow for resetting cooldown timer. -
Updated
KCCMovementEngine
to support layer masks for deciding what
the player can and cannot collide with.Note this may cause problems with existing instances of the
KCCMovementEngine
so I included an updated configuration to serialize a version number
for theKCCMovementEngine
, if this serialized version number is not set,
it will update theKCCMovementEngine
to use a default value of
colliding with everything which was the previous behaviour. -
Small fixes to mole example movement, need to re-design the camera and mole
movement interactions so they work together better. -
Significantly improved the mole example and added color changing particles.
-
Fixed a bug where the mole would fall off walls.
-
Updated the
IColliderCast
andKCCUtils
apis to support passing
an optionalLayerMask
andQueryTriggerInteraction
parameters.
[1.3.3] 2023-2-16
- Small update to cinemachine example settings for first person vcam.
- Updated package to use statemachineunity.netcode instead of statemachineunity.netcode
package.
[1.3.2] 2023-2-14
- Changed
RelativeParentConfig
to be a class to better persist information
between updates instead of having data reset improperly.
Cinemachine Package v1.3.1
Added support and example for cinemachine.
see the live demo at https://nickmaltbie.com/OpenKCC/Cinemachine
OpenKCC
- Adjusted how stairs and snap down are handled in
KCCMovementEngine
andKCCUtils
to make player slowly move up or down stairs based on
the remaining movement speed of the player. - Adjusted
KCCMovementEngine
to have a max speed for snapping down
to stop the player from teleporting down harshly and making player camera
jitter. - Added
IOnPlayerTeleport
to listen to teleport events from
theKCCMovementEngine
and respond accordingly.
OpenKCC.inemachine
- Added basic
SmoothAvatarPos
to smooth avatar position based on some damping
factor to smooth out any jittery movements of the player when snapping
up or down surfaces. - Added basic test scene and scripts for different camera perspectives including:
- Over the shoulder camera
- Third person re-centering camera
- First person camera
- Initial setup of cinemachine project.
KCC Movement Engine v1.3.0
Rewrote the existing apis for the OpenKCC to use the KCCStateMachine for all calls to move the character similar to how the built-in character controller in unity is used.
Note : This update will not automatically copy values for KCCStateMachine
from the previous API version to the current API because they are not compatible and have a simplified resource values now. Sorry for any inconvenience this causes. The latest Usage notes should provide any necessary information on how to update your parameters as needed.
OpenKCC Changes
- Updated docs website to include multiple versions of the API.
- Added test coverage for
KCCMovementEngine
and refactored code. - Removed some unused functions and properties from
KCCMovementEngine
,KCCUtils
, andIKCCConfig
. - Added some tests for the untested behaviors.
- Refactored existing code to remove the
HumanoidKCCConfig
and moved most functionality to theKCCMovementEngine
. - Removed velocity from the
KCCMovementEngine
and manage this variable in the higher levelKCCStateMachine
or any other consumer
of the movement engine features. - Refactored the
IKCCConfig
to remove any values not directly used by the KCCUtils. - Disabled player pushing and will add into back into the
KCCMovementEngine
at some future point if required. - Simplified parameters for the
KCCStateMachine
to be easier to understand for an end user who doesn't want to configure all these values. - Refactored debug draw code for character controller.
- Updated APIs available in the KCCMovementEngine to allow for passing a movement in world space to move the player.
- Changed KCCMovementEngine to get the configuration values from the KCCConfig and not from a MovementSettingsAttribute
- Depreciated old fields in the MovementSettingsAttribute that will be removed in a future update.
OpenKCC.netcode Changes
- Added documentation to the
MoleMovementEngine
. - Refactored the
NetworkKCC
and Mole Sample to use the newKCCMovementEngine
. Also simplified parameters to follow the same design asKCCStateMachine
. - Added giant to climb on for the mole demo
- Touched up MoleKCCSample to be better configured
- Updated NetworkKCC and MoleCharacter to use newer KCCMovementEngine APIs.
Refactoring Samples v1.2.3
Mostly changes to OpenKCC.netcode and MoleKCCSample project to make importing them more easy.
[1.2.3] 2023-1-17
- Updated readme with notes on how to install required libraries.
- Refactored samples to fix import errors and make downloading dependencies
easier. - Added simple
OfflineNetworkTransport
and added ability to play
the demo in an offline for netcode.
[1.2.2] 2023-1-15
- Corrected some issues with samples path for export.
[1.2.1] 2023-1-15
- Removed rotation synchronization from the network relative transform.
Will overhaul the class in the future. - Small fixes to mole multiplayer synchronization and tails.
Sample Mole Character 1.2.0
Refactored some of the calls to the KCCUtils api in the state machines to instead go through KCCMovementEngine, a new mono behaviour that makes abstracting the calls and common code for moving platforms, stairs, velocity, and gravity much easier.
As an example, worked to add the new "MoleKCCSample" to the project as a new networked KCC that has the ability to climb surfaces while digging. See PR #128 for details.
OpenKCC Changelog
[1.2.0] 2023-1-15
- Added Mole character sample.
- Added a new
KCCMovementEngine
to manage calls toKCCUtils
via
another layer of abstraction to avoid having to duplicate
lots of code for player movement. - Refactored
KCCStateMachine
to use the newly addedKCCMovementEngine
.
[1.1.3] 2023-1-1
- Refactored code to use com.nickmaltbie.recolorshaderunity
- Fixed code reference to IEvent for backwards compatibility.
OpenKCC.netcode Changelog
[1.2.0] 2023-1-15
- Setup basic mole character controller using the
MoleMovementEngine
in the sampleMoleKCCSample
. - Refactored
NetworkKCC
to use the newly addedKCCMovementEngine
.
[1.1.3] 2023-1-1
- Refactored code to use com.nickmaltbie.recolorshaderunity
- Fixed code reference to IEvent for backwards compatibility.
[1.1.2] 2022-12-31
- Fixed materials in samples to be included in the package folder.
- Fixed basic animations for network kcc so they sync properly.
Fixing Samples Path v1.1.1
Small fix over previous version for Samples path to Samples~ and updated project dependency version.
Netcode Example - Release v1.1.0
Added basic netcode project and improved movement tracking
OpenKCC Changelog
- Updated kcc state machine to be synced with the network kcc.
- Removed ParentConstraint requirement from the KCCStateMachine
and replaced with a newRelativeParentConfig
object to managed
player's relative position to a parent object. - Reorganized camera controller code to be more reusable between the main
and netcode projects. - Moved camera control code to the
nickmaltbie.OpenKCC.CameraControls
namespace within the openkcc project. - Added example using unity Netcode and sub package com.nickmaltbie.openkcc.netcode
- Reformatted some code in the KCCStateMachine to reduce the amount of copied
code between netcode character controller and basic character controller. - Modified github actions workflows to deploy netcode example to the site
under the directory Netcode. - Depreciated old fields for objects that were duplicated in
the netcode version of the openkcc.
Whenever possible, I will include an auto-translation to the new format
to avoid having to save and manually copy values between version upgrades.- Depreciated the old fields for KCCStateMachine and replaced with the
object HumanoidKCCConfig. Also added some code to auto-convert the old
fields into a HumanoidKCCConfig when the object is first de-serialized.
Tagged this version with a string property and called this first version
v1.0.0 and will use a semantic versioning system to update the value. - Depreciated the old fields for CameraController and replaced with the
object CameraConfig. Also added some code to auto-convert th e old
fields into a CameraConfig when the object is first de-serialized.
Tagged this version with a string property and called this first version
v1.0.0 and will use a semantic versioning system to update the value.
- Depreciated the old fields for KCCStateMachine and replaced with the
OpenKCC.Netcode Changelog
- Updated NetworkMovingPlatform and FixedRigidbodySet to move in the
Update
function to synchronize with server tick properly. - Setup a
NetworkRelativeParent
andNetworkRelativeTransform
classes
to manage the relative position of an object to a parent object
without having to actually parent the objects as is required
by theNetworkTransform
class. - Added a basic NetworkMovingPlatform class.
- Added tests for basic network behaviours and test framework.
- Setup class for managing netcode tests
NetcodeInputRuntimeTest
- Added basic tests for the
NetworkKCC
- Added controls for loading and configuring ssl connection
- Also added field for supplying a private key for the server hosting.
- Change port configuration for web socket to use secure connection over https.
- Added example using unity Netcode and sub package com.nickmaltbie.openkcc.netcode
- Added example NetworkKCC for a networked kinematic character controller.
- Included Networked camera controls and networked camera follow.
- Setup basic NetworkKCC based on the NetworkSMAnim.
Patch Project Imports v1.0.1
Fixed import error identified in issue #100 by Alvarden15.
- Fixed import errors of project due to improperly setup test assembly definitions.