Coder Social home page Coder Social logo

nicholas-maltbie / openkcc Goto Github PK

View Code? Open in Web Editor NEW
619.0 619.0 59.0 5.71 MB

Open Source Kinematic Character Controller for Unity

Home Page: http://nickmaltbie.com/OpenKCC/

License: MIT License

Shell 0.87% C# 89.66% ShaderLab 7.57% CSS 0.17% HTML 0.44% HLSL 1.28%
character-cotnroller game-development unity3d

openkcc's People

Contributors

github-actions[bot] avatar nicholas-maltbie avatar treesgobark avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openkcc's Issues

Fix jitter in wide corners

It seems like if you try to walk into corner that is is wider than 90 degrees character starts to jitter a lot in place.

To solve it I checked source code for PhysX character controller and here is something I found:

// https://github.com/NVIDIAGameWorks/PhysX-3.4/blob/master/PhysX_3.4/Source/PhysXCharacterKinematic/src/CctCharacterController.cpp
// From Quake2: "if velocity is against the original velocity, stop dead to avoid tiny occilations in sloping corners"
if((currentDirection.dot(direction)) <= 0.0f)
    break;

Surprisingy enough, adding this to sweep test loop indeed solved the problem.
direction represents initial direction of the sweep and currentDirection is projected since last hit

Change Network Relative Parent to Use Buffer Model

Right now the network relative parent synchronizes state via a NetworkVariable but it would be much better to update this to a direct buffer similar to netcode's NetworkTransform.

Basically need to do the same thing as the existing network transform but instead of synchronization in local space relative to parent, synchronize in relative parent space according to the current KCC movement model. Also, don't worry about synchronization of scale for now as that is a bit beyond the current scope.

And also, this synchronization should be controlled by a RelativeParent struct (should refactor that code in the KCCMovementEngine as well... at least let the end user disable it if they don't want to use it).

Mole Movement and Camera Enhancements

Add some features to mole movement

  • Non digging/normal walking state
  • Transition to/from digging state when holding a button
  • Have camera roll in a super mario galaxy style when the player is in the digging state (and smooth camera transition when not)
    • Use cinemachine for this
  • Non burrowable surfaces
    • Have a behavior for non burrowable surfaces
    • Configuration parameter for either transition to walk, or slide along the edge of like normal movement
    • Two scenarios: 1 - transition from digging in ground to walking along a rock, 2 - digging along a surface with edges to keep you bounded.

Switch to FSM Based Controller

Switch character controls to be managed using a Finite State Machine (FSM) based model. Integrate the Coyote state machine framework into the project for managing the state transitions and actions.

In addition, switch sample character controller to now work based off of FSM model along with any other example character controllers in the future.

Add Documentation for Creating UNITY_LICENSE Repo in Forked Repositories

Add some documentation in the contributing section about how to configure a UNITY_LICENSE secret in forked repos so they can run the pull request validation workflows as well.

Additionally, if no code changes are made (in Assets/Packages folder), then it's probably ok to skip code, test, and build validation if only changes are made to docs/.md files.

Two things for this issue

  • Skip CI checks for only doc changes
  • Add instructions on how to configure UNITY_LICENSE secret for forked repos

Add On Screen Joystick for Mobile/WebGL

Add support for an on screen joystick (two of them) for mobile controls on a phone so the player can be moved easily.

Unity WebGL builds no longer fail for mobile devices so it would be nice to support them.

From YT comment suggestion by Rob Gustafson.

Unable to Import StateMachineUnity Package

Describe the bug

When importing the project in a fresh unity install, unable to import the state machine unity package as part of the build dependencies.

To Reproduce

Import the project via git and unable to resolve the dependency.

Expected behavior

Expected to import dependent projects automatically

Screenshots

TBD

Additional context

REAVER
couldnt import the project, ffs this package manager shenanigans
Nick Maltbie
What’s the error you’re running into? Someone helped me debug some import errors on GitHub to patch for version 1.0.1 :)
I should update the readme to reference that version instead of 1.0.0
REAVER
@nicholas-maltbie for example unity cant get your StateMachineUnity package(i fed git url to package manager)
(other packages of yours are downloaded correctly)
Nick Maltbie
Oh, that makes sense. You should be able to download it via git manually with a path like this - https://github.com/nicholas-maltbie/StateMachineUnity.git#release/v1.1.0
There is also an archive of the package on npmjs if you want to just download and import manually if the auto import isn't working! https://www.npmjs.com/package/com.nickmaltbie.statemachineunity
Let me know if you need any help with it.
REAVER
@nicholas-maltbie trying it again rn, im going to make empty project, install all prerequisite packages then download manually your project, then drop the assets folder to my fresh project. Sounds robust to me
REAVER
@nicholas-maltbie nope, still no succes. Unity cant fetch the StateMachineUnity, im feeding unity your given link

Tests for Moving Ground

Improve the KCCStateMachine to account for other kinds of moving ground that aren't attached via parent object (such as rigidbody) and ensure that they can work as expected for the player.

Add some sort of automated integration tests as well in Playmode to verify this behaviour.

Add Character Inverse Kinematics for Feet

Add example to project to keep humanoid character feet grounded and locked in place when moving to have animations line up with player movement.

Adding basic foot IK as part of PR #197

Future features left to add:

  • Add support for layer masks for physics detection of player feets - Added in PR #198
  • Ensure feet do not overlap with other objects when raised or lowered (force move them to valid positions) - Added in PR #199 - Revised in PR #203
  • Have each foot move independently with current moving platform instead of teleporting with player
    • Also have feet rotate with whatever ground they are standing on.
  • Not break feet/ankles when no valid ground placement is found.
    • Take a note from zelda and default to placing knee if position is too high up and move foot back.
  • If neither foot is placed but player wants to be grounded, search for a location to place feet.
  • Add a walking up stairs animation to allow for player to walk up stairs. Tigger when walking up in vertical space.
    • revert hip behavior to place height based on lowest grounded foot. - Revised in PR #203
  • Account for player hip rotation instead of using the player forward for foot direction.

Errors when installing the latest version of the package.

With the latest version of this package as of this writing (1.0.0), i get errors of dependencies that aren't present in the project:
lncTqfEffQ

With older versions (0.1.2), this didn't happened. The package worked as expected.

For context, these are the details of the project:

  • Unity version used: 2021.3.13f.
  • This was a fresh project on URP. I didn't install any additional asset/package beyond the pre installed ones and the ones required by OpenKCC.
  • I installed all the required dependencies that are on the ReadMe.
  • I used a Scoped Registry to install all of it.
  • I didn't download any of the samples at that point.

Add Animation Documentation

Add animation documentation for where animations are referenced from and how to modify/configure/add animations via Mixamo for existing or different models.

Falling and Sliding Animation

Describe the bug
Currently a bug with the KCC animation where the player will start their falling animation while they are still standing on the ground.

This is caused because the falling animation will play whenever the player is standing on a steeply sloped surface or whenever they are off the ground. These two states should have different animations. Also, when sliding, the player should have some maximum bounded velocity so they cannot build up infinite velocity.

To Reproduce
Steps to reproduce the behavior:

  1. Put the character in an angle grater than falling.
  2. Wait for player to start falling.

I will upload a gif of this situation from a rest branch soon.

Expected behavior
They player should instead show a sliding animation and not be able to jump anymore instead of going straight to the falling animation.

Additional context
This also should be fixed as a "sliding" state when the player transitions to a FSM based model.

Overhead, Third Person Character Controller Example

Is your feature request related to a problem? Please describe.

Feature request for the project: an example third person character controller with camera looking top down with movement controlled via mouse or arrow keys. Have player mode rotate based on movement.

Include integration with nav-mesh/collision so player or NPC could move through 3D space and not clip through or into obstacles.

Describe alternatives you've considered
Could be achieved by using a new camera controller instead of the current first/third hybrid person camera controller.

Additional context

support camera & movement for a RPG similar to Baldur’s gate, wasteland, divinity original sin, pathfinder, Solista, etc...

Moving Floor Snapping Position Bug

Describe the bug

When standing on a moving platform that changes direction quickly, the character will snap forward or backward quickly.

To Reproduce
Steps to reproduce the behavior:
Go to any moving platform and stand on them to observe the broken player movement.

  • The player will move smoothly with the platform, but if the platform quickly changes direction, the player will jitter.

Additionally, when on a fast-moving vertical platform, the player's feet will sometimes get stuck in the floor. This may have to do with the player's position being delayed a frame from where they actually should be.

Expected behavior
Player should move smoothly with the object instead of this jittery movement.

Screenshots
N/A (low frame rate of a gif would make this behavior difficult to view)

Additional context
This is a well investigated issue and will most likely involve something related to late update or parenting the player object's transform. It seems to be just a visual bug for vertical platform movement but should be patched none the less.

Combine Demo Scenes

Currently the demo scenes for the project are each hosted in their own build, this makes an excessively large build and uses a lot of resources. They should be joined into a single build with a menu to select between which scene the player wants to run.

  1. Scene for the main OpenKCC test environment
  2. Scene for the netcode test environment
  3. Scene for the mole kcc sample environment

SkinWidth KCCMovementEngine Parameter

Add a new parameter to the KCCMovementEngine similar to the existing ColliderCast.skinwidth from the built in character controller.

Since this is a big feature, I don't think I will try to add it as part of release 1.4.0, and will instead target adding this as part of 1.5.0. Some of the bug fixes discussed in issue #194 and issue #193 may be included in a later patch of 1.4.0, but the skin width features will not be included.

Goal of skin width:

  • Right now, there is an error such that the player will slowly slide across the ground or get stuck clipping into a surface due to the distance between the player and the surface being very, very small (less than 0.001 units). This can be avoided by having the player hover/float a small finite distance away from the ground.
  • Create a small buffer around the player's movement shape that stops the player from having numerical precision errors. Right now I kind of do this by keeping the character at least 0.001 units away from any surface, but I should probably make this a configurable value and ensure the collider is actually smaller than that shape.
  • This will need to be achieved by having the character's collider actually be smaller than the character itself.

All this code will also require testing, documentation, and various other additions to the project.

Features to add as part of SkinWidth:

  • Make collider cast use the radius modifier attribute from the IColliderCast functions (and add it as a parameter to all the standard functions for collider cast) - SphereColliderCast.GetParams
  • Add skin width as a new parameter to the IKCCConfig
  • Have the KCCMovementEngine respect the skin width when computing overlap and grounded distance (should use the full collider size when computing overlap).
  • Have the KCCUtils.GetBounces shrink the collider by skin width when moving the player around the world. Also, if the player collides with a surface, move them back by skin width instead of the KCCUtils.Epsilon although we can keep epsilon as a minimum value to avoid end user errors.

Action Items from Issue #194

  • Adjust values for character shape and step height to avoid climbing up tall steps
  • Increase Coyote Time for player animation to avoid jittering between falling and walking animation when moving on slopes.

Action Items from Issue #195

  • Create an automated test to reproduce the sliding behavior in PlayMode by having the player overlap with the ground correctly (Probably test this under the KCCMovemengEngine but that does not have PlayMode tests yet).
    • After the test is made, adjust the code so this overlapping behavior does not happen and confirm via automated test.
  • Add an overlap size buffer for collider size when computing overlapping shapes via IColliderCast
  • Create individual tests and fixes for each of the root causes (pushing out overlap, player bouncing, and grounded distance) in EditMode:
    • Overlap size tests for CapulseColliderCast, BoxColliderCast, and SphereColliderCast with a modifiable radius buffer
    • Ensure bouncing movement results in the player being at least 0.001 units away from the hit surface via KCCUtils.SingleKCCBounce
    • Ensure computing grounded distance results in player floating slightly off the ground by at least 0.001 units via the KCCUtils.GetSnapDelta function. This could even be a configurable parameter with KCCUtils.Epslion being the default value.

Extra Action Items

  • Ensure character collider and landing animation lines up proeprly.

Scenarios for Integration Tests

Switch integration tests to cover all scenarios and permutations of player movement.

This should include

  • walking and looking around
  • navigating to specific areas
  • interactions with environment like pushing, falling, and moving with ground
  • detailed scenarios for moving/rotating platforms

Streamlined Usage of OpenKCC Through KCCMovementEngine Abstraction

Goal: Simplify the direct use of KCCMovementEngine

Use Case: I created a test scene and Unity Package that has a simple character that simply attempts to move in a direction on the XZ axis

As as starting point, I'd like to be able to use the KCCMovementEngine API alongside a simple KCCConfig to make it so the AI agent moves in each of the cardinal directions while making use of OpenKCC under the hood

See the picture below for the "Intended Behaviour"

image

  • While using the KCCMovementEngine and an Appropriate KCCCOnfig, I expect the character to walk up the stairs when moving on the X axis and to be blocked by the walls while moving in the Z axis
  • I also expect the character to fall off the last step of the stairs and start descending if gravity is enabled at the KCCConfig or KCCMovementEngine level

It would be interesting if I could then swap the KCCMovementEngine for a KCCMoleEngine, enabling the character to run Up the walls like the mole would be able to, without changing any code, but I understand if this would also require a swap in KCCConfig as well

Below shows my current test case, where the AI Agent is instructed to desire a velocity of 1 along the X axis, and my non KCC solution simply moves the transform to the calculated position each frame.

Open-KCC-API-Request

  • This naïve implementation simply causes the agent to phase through objects

The sample package that I will provide to you demonstrates how I created this script and includes commented sections that demonstrate how I would like to replace my naïve implementation with OpenKCC's Collision Solving.

Here is a snippet of how the code currently works and it includes an example of how I'd like to replace my naïve implementation with an OpenKCC API Call

image

    void FixedUpdate()
    {
        // 1. Get Desired Velocity from Input Source
        Vector3 newVelocity = testInputDirection * testSpeed;

        // 2. Make Arbitrary Modifications to Velociyt Based on Character State
        // newVelocity = speedBoost ? newVelocity * 2 : newVelocity;

        // 3. Apply Movement to Character based on Calculated Velocity
        ApplyMovement(newVelocity, Time.fixedDeltaTime);
    }

    void ApplyMovement(Vector3 velocity, float deltaTime)
    {
        // 1. Temporary, Non Collision Based Solution
        transform.position += velocity * deltaTime;

        // 2. Ideal Solution Using OpenKCC, Benefitting from Collision and
        // Gravity Settings of the KCCMovementEngine and its IKCCConfig
        /*
        // _movementEngine.ApplyMovement(deltaTime, transform.position + velocity, true);
        */
    }

Overall I want to greatly expand on this manual usage of the "mid-level" abstractions of OpenKCC, and I hope that this could be a decent starting point.

Support for CinemaMachine

Add support for CinemaMachine unity as an external package to support more types of camera control and camera modes. Add as a separate package so it's not required dependency and can be installed if required for another project. Should be version controlled with the rest of the package and all updated as a group.

Test out some additional features from cinema machine and ensure that they work correctly with the KCC state machine. Test some features including:

  • Vertical damping for jumps
  • Camera shake effects
  • Camera bobbing with footsteps

Make some samples for different player controller setups including:

  • First person
  • Third person over the shoulder
  • Hybrid first-third
  • Fixed perspective (support changing perspective)
  • Overhead camera pan

Support movement and character rotation that doesn't have to follow camera. For ICameraController separate the camera heading and player heading so player doesn't always have to face the direction the camera is facing.

KCC Movement Engine via Floating Capsule

Add a KCC Movement Engine that supports movement via a floating capsule.

Have the capsule float a specific distance off the ground and it should create a capsule collider for this operation.

Given this expected distance to float off the ground, do a sphere cast downwards from the player location and lerp the position up/down as needed to move the player up or down as long as they are grounded.

This should handle stairs much more smoothly.

Snapping Up Stairs Interrupts Jump

Error scenario where when a player is jumping up stairs a snap up event can interrupt their movement. This would be best resolved by preventing snapping up while the player is moving up or down.

  • Add test case to repro this issue
  • Resolve code bug and add notes to change log
  • Add any required documentation changes based on fix.

Documentation Version Swapping Doesn't work with Chapter Links

Swapping version with a chapter selected doesn't load the new URL page properly.

Need to patch this behaviour in the main.js script.

Changing version on a page with a chapter selected should result like this:

https://nickmaltbie.com/OpenKCC/docs/manual/introduction.html#why-kinematic

to

https://nickmaltbie.com/OpenKCC/docs/v1.3.0/manual/introduction.html#why-kinematic

but instead results like this

https://nickmaltbie.com/OpenKCC/docs/manual/introduction.html#why-kinematic/../../v1.2.3/

Need to fix it to ignore the chapter tag when computing the new web link in the selectVersion function.

function selectVersion() {
selectedVersion = document.getElementById("version-selector").value
prefix = currentVersion() == "latest" ? "/../" : "/../../"
root = new URL(document.location + prefix + document.querySelector('meta[property="docfx:rel"]').content).href
rootWithVersion = new URL(document.location.href + "/../" + document.querySelector('meta[property="docfx:rel"]').content).href
leaf = window.location.href.substring(rootWithVersion.length)
versionPath = selectedVersion == "latest" ? "" : selectedVersion + "/"
window.location.href = root + versionPath + leaf
}

[Add custom behaviour like climb]

Is your feature request related to a problem? Please describe.
I think a bit of documentation or any way to add features like climbing etc could be fine

Describe the solution you'd like
Im trying using third person controller to do a raycast and climb using animation and interpolation of pos but looks so ugly.

Describe alternatives you've considered
disable kcc while doing the animation

Additional context
Im ttesting using kcc + fusion to get something funny, but when i code my third person controller i cannot get kcc working like i want,

Docs For KCC Bounces and Sliding

Document the bouncing and sliding behavior of the KCC with diagrams, explanations, and link to the existing YouTube video Moving Characters in Games.

Make sure to include a detailed description about how the bounces operation are computed as requested by BlinkAChu in the video comment.

Strange Velocity Curve When Falling Off Flat Surface Using KCCMovement Engine


Describe the bug:

When utilizing the newly updated KCC Movement Engine with a barebones client script, I got the unexpected behavior demonstrated in the following gif where the velocity when falling off an object starts strong and then resets to what I believe is my client side velocity

Open-KCC-Strange-Velocity-Curve


To Reproduce:

Steps to reproduce the behavior:

  1. Clone my Repository for OpenKCC Client Testing: https://github.com/MTrecozzi/OpenKCC-Client
  2. Navigate to OpenKCC-Client/Assets/Samples/Direct Control Sample/ and open the Test Scene
  3. For easier testing, enable "Use Test Input" on the SimpleMoveKCC Script on the OpenKCCPlayer object
  4. Hit play in the scene and wait for the player to fall flat on the test cube
  5. Pause the Game for easier visual debugging
  6. Set the Test Input Vector2 on the SimpleMoveKCC script to have a value of positive one in the X Axis
  7. Step through the game frame by frame to replicate the behaviour

Expected behavior:

The expected behaviour is perhaps subjective, but there seems to be a disconnect between my intention on the client side (Visible in the fixed update method of SimpleMoveKCC) and the resulting output behaviour of the KCCMovementEngine.

Something that makes it harder for me to debug this on the client side is that there isn't an easy way in the inspector to look at the state of the KCCGroundedState that I'm passing into the KCCMovementEngine

I think that perhaps what I was expecting was a smooth fall off of the object when leaving the ground, but perhaps it could be expected for me on the client side to implement a sort of "Grace Period" for negative velocity when leaving a surface

My next move would likely be to make the grounded state variables visible in the inspector that way I can test my client code against a clearer picture of the state of the KCCMovementEngine


Side Note

As a Side Note, I also wanted to mention this separate issue where my client side code results in the following Behavior where the object overlaps with the ground for a frame before snapping back up

Open-KCC-Floor-Overlap

Optimize Capsule Collider Cast Hit

Optimize the Capsule Collider Cast Hit class to no longer allocate new memory after initialization.

Remove any instances of the word new and change any phsyics operations to use a constant array to calculate the physics raycast, capsule cast, and capsule overlap operations.

[Using OpenKCC for AI/Navmesh]

I want to use OpenKCC for Navmesh/AI. At the same time OpenKCC want to be driven by player as well

I saw several samples just looking around but not sure what exactly to pick up and call it a day. Saw camera getting involved too which is only used by player but not AI. Would be nice if we get a sample keeping both in mind?

Pause / Settings button should be rebound for WebGL Builds

Describe the bug
In WebGL builds, a clickable Fullscreen button is generated so that users can play the game in fullscreen, which works as intended. However, when pressing Escape to edit game settings, Fullscreen is also exited similarly to the behavior when watching Youtube videos in fullscreen.

To resolve this, the pause/settings button should be rebound in WebGL builds to avoid this double binding, and this new binding should be displayed on screen for the demo.

To Reproduce
Steps to reproduce the behavior:

  1. Go to WebGL build
  2. Click on the blue fullscreen button in the bottom-right.
  3. Press Escape

At this point, the game exits fullscreen. Pressing escape a second time allows the user to view the 'Settings' button.

Expected behavior
User presses the bound pause/settings button, and the settings menu becomes available. Pressing escape only exits fullscreen.

Box Collider Cast - sliding issue

Describe the bug
OpenKCC works perfectly with a capsule collider cast, but there is also an alternative box collider cast. While this mostly works, the movement engine will occasionally slowly slide in a random direction on the floor (even with no input). I've observed some other unusual behaviours (like getting "caught" on flat ground) with box collider cast that do not occur with an equivalent capsule collider cast, though these may be down to implementation in my own project. The sliding issue, however, can be reproduced in the sample scene.

To Reproduce
In the sample scene for OpenKCC, unpack the character prefab and swap out the capsule collider and CapsuleColliderCast component for their respective box equivalents. Jump around a little bit on flat ground until the issue is observed.

Pushable dynamic rigidbody not work

I am trying to using openkcc for indie development.
when I try to move character to push these pushable box and ball ,it did not work well,just block my character's movemnt, is this a bug or there are some setting I need to open?

My unity version: 2022.2.15f1

Rotation Slated Floor Bug

Describe the bug
When a player stands on a slanted floor that is rotating, the player model will slowly drift towards the edge. This also only happens when the direction of the slant is not tangent to the axis of rotation.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the column with rotated blades around the edge in the testing area (it's in one of the corners)
  2. On this column, stand on one of the blades
  3. The player should drift away from the center and slowly be thrown off the edge

Expected behavior
The player's position relative to the axis of rotation for the parent object should not change significantly.

Screenshots
N/A

Additional context
This may be difficult to fix and related to other issue #19

Stairs interactions may lock character in "falling" animation (browser demo v1.3.4)

I observed this in the browser demo.

Describe the bug
Walking onto the stairs from the side may cause inappropriate "dropping" animation; it may transition into "falling" animation with character getting stuck.

To Reproduce
Walk into the stairs from the side. These stairs in the first screenshot at this angle seem reliable at reproducing at least the "dropping" phase.

Screenshots
OpenKCCv134_stairs_bug

Expected behavior
Clearly, walking up the stairs from any direction should not trigger "dropping" animation. Something's off at that point already.

Additional context
I was playtesting the demo and noticed irregularities in interactions with "knee-high" stair steps (e.g. leftmost big-step straight stairs, 3rd step of the spiral stairs). Normally they are too high but sometimes the character will just step up anyway like this:

OpenKCCv134_spiral_stairs

And when I was trying out different angles/keys the 'real bug' happened (character is stuck):
OpenKCCv134_spiral_stairs_bug

Getting Started Tutorial

Is your feature request related to a problem? Please describe.
I have gone through most of the documentation and most of you great videos on YouTube, but I am a beginner and haven't found a clear description of how to get started with OpenKCC. It is probably my noobness, but is there a simple tutorial which starts from scratch, adds the packages, gets a model in the scene and steps through the actions one needs to take to get OpenKCC to work in a Unity project?

Describe the solution you'd like
Either a document or YouTube video going over the steps to get a beginner up and running with OpenKCC something like this outline:

  • Empty Unity Project
  • Imports
  • Add model
  • Add character controller
  • Get all the movement to work
  • Get the animations to work

Sorry to skip the rest of the bullet points in the template, but I hope the issue is clear, if not, please let me know.

Code Based Animation Controller

Switch away from the current built in animation controller to a code based animation controller so complex state transitions can easily be tied to a code based FSM and be more smoothly integrated with IK and version controlled as C# code.

May involve investigating how to properly manage blend trees via code as well.

Minor bug with jumping animation v0.0.59

Moving animation continues to play (briefly), followed by the idle animation after jump button pressed.

Workaround is to add a transition from Any State to Jumping (in the CharacterAnimationController) with Has Exit Time unchecked and the condition Jumping set to true.

image
image

Create Tests for EditMode

Create basic tests for edit mode to provide full coverage of existing code base.

If some code paths or functions are no longer in use, remove them from the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.