Skip to content

Releases: nicholas-maltbie/OpenKCC

Release v1.5.0 - Skin Width

15 Sep 02:54
a1a30ed
Compare
Choose a tag to compare

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 to IKCCConfig and KCCMovementEngine 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 the KCCMovementEngine

Release v1.4.0 - Basic Foot IK and Backwards Compatibility

12 Jun 08:02
fe0e697
Compare
Choose a tag to compare

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 the HumanoidFootIK 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 and FootTarget 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 and FootTarget 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

02 Apr 03:36
a88a97d
Compare
Choose a tag to compare

[1.3.4] 2023-04-01

  • Refactored common assets (like UI) to ExampleFirstPersonKCC sample

  • Added new type of IColliderCast in PrimitiveColliderCast which can select
    between different parameters via the ColliderConfiguration 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 and PlayerBase

  • 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 the KCCMovementEngine, if this serialized version number is not set,
    it will update the KCCMovementEngine 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 and KCCUtils apis to support passing
    an optional LayerMask and QueryTriggerInteraction 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

14 Feb 03:13
8b34702
Compare
Choose a tag to compare

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
    and KCCUtils 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
    the KCCMovementEngine 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

30 Jan 04:14
8953ee0
Compare
Choose a tag to compare

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, and IKCCConfig.
  • Added some tests for the untested behaviors.
  • Refactored existing code to remove the HumanoidKCCConfig and moved most functionality to the KCCMovementEngine.
  • Removed velocity from the KCCMovementEngine and manage this variable in the higher level KCCStateMachine 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 new KCCMovementEngine. Also simplified parameters to follow the same design as KCCStateMachine.
  • 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

18 Jan 07:48
42f4d7c
Compare
Choose a tag to compare

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

16 Jan 23:06
7291eeb
Compare
Choose a tag to compare

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 to KCCUtils via
    another layer of abstraction to avoid having to duplicate
    lots of code for player movement.
  • Refactored KCCStateMachine to use the newly added KCCMovementEngine.

[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 sample MoleKCCSample.
  • Refactored NetworkKCC to use the newly added KCCMovementEngine.

[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

18 Dec 09:52
77988eb
Compare
Choose a tag to compare

Small fix over previous version for Samples path to Samples~ and updated project dependency version.

Netcode Example - Release v1.1.0

18 Dec 08:57
801a9f2
Compare
Choose a tag to compare

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 new RelativeParentConfig 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.

OpenKCC.Netcode Changelog

  • Updated NetworkMovingPlatform and FixedRigidbodySet to move in the Update
    function to synchronize with server tick properly.
  • Setup a NetworkRelativeParent and NetworkRelativeTransform classes
    to manage the relative position of an object to a parent object
    without having to actually parent the objects as is required
    by the NetworkTransform 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

23 Nov 07:18
da6e527
Compare
Choose a tag to compare

Fixed import error identified in issue #100 by Alvarden15.

  • Fixed import errors of project due to improperly setup test assembly definitions.