[RELEASED] Scivolo Character Controller

Asset Store

Scivolo Character Controller is a set of components that provides the basic functionality for creating a custom character controller. It is proposed as an alternative to Unity’s built in CharacterController component also expanding its functionality, for example it allows to freely rotate around any axis.

It has been made with kinematic movement in mind so for situation where the character is not meant to behave or move like an actual physical body.

Each component doesn’t hold any movement logic, this is to allow great flexibility in many different scenarios, still trying to fulfill the common tasks that every character controller should accomplish.

On the asset store for FREE.

Online Demos
Simple Character Controller
Viking Village Third Person Character Controller

Update Posts
[Version 3.0.0]( [RELEASED] Scivolo Character Controller page-2#post-9257775)

3 Likes

Hi, I’ve downloaded your asset and have entered the Demo Level. But when I click play, the character falls through the floor. Am I supposed to add anything to the character in the demo level? Also, many of the objects are missing a script according to the Inspector. I’m using Unity 2020.3.7f1.

The demo scene should work straight away, if you have imported the asset into an existing project check the collision matrix in the physics tab in project settings and make sure that the default layer can collide with itself. Those missing scripts are just probuilder scripts of the level models, you can ignore them.

Hi! Thanks for making such a great character controller. I’ve been using it for a while now and I love it.
For a new project I’m struggling to get my head around Root Motion. Can this controller be used in conjunction with Root Motion? Or are they incompatible?
Thanks again, sorry to ask such a basic question.

Woah! You released a new version today! Congrats!

Hi, glad you like my asset.
To use root motion you have to get the movement from the Animator and pass it to the Move method, for example:

void OnAnimatorMove()
{
    characterMover.Move(animator.deltaPosition, contacts);
}

Thank you so much!

Hi, thanks for creating this asset! It looks really great!

I have two questions:

  1. The controller seems to have some issues with vertically moving platforms with the grounded check getting confused and also not sticking to the platform when it descends. I tried adjusting the ground tolerance amount but that doesn’t help either. Any way around this?
  2. Is it possible to push a rigidbody using this controller? Similar to how Unity’s built in character controller has OnControllerColliderHit (link). Is there any callback to know what it hit.

ip8hl4

Thanks!

Hi,
For the platform problem, I need some time to check a little deeper, I’ll let you know when I’ve found a solution.
To push rigidbodies you can use the moveContacts list to retrieve all the contacts that the move method detected, you can analyze them one by one in a for loop and apply force if they have a rigidbody attached.

1 Like

I actually noticed a problem that affects the correct functioning of the ground detection when the platform moves vertically, but it was not enough to explain the behavior in the video. The other problem is that physics auto simulation is expected to be false, while it is active by default in unity and this makes the situation even worse. My fault for not thinking about it before, but at least I managed to reproduce the problem in the video.
I will fix these bugs in the next version, along with some updates.

great, thanks. Any idea when this update will be coming out?

Soon, probably by next week I will upload to the store.

Any chance I can get access to it before it goes through the long store approval process? I can email you a copy of the purchase receipt.

I will also upload the new version here in this thread when it is ready. It’s free anyway.

Here is the new version.
Now the CharacterCapsule component takes care of resolving the overlaps with the other colliders, if it is enabled it does it automatically at each update, but it can also be done manually by calling the TryResolveOverlap method.
I also added the ability to specify which layers to prioritize when resolving the overlaps in case it fails to resolve them all.

7452992–914459–Scivolo Character Controller 2.1.unitypackage (3.07 MB)

2 Likes

great, thanks so much!

I love the controller, its everything I’ve been looking for. Would you consider putting this in a GitHub repo?

Hi, I’m glad you like it. It’s actually already in a private github repo, but it’s full of debug code which I then clean up before release. So for now I prefer not to show it in that state.

Good morning.
I am still running into the issue described by abhi3188 on Aug 15, 2021.
MyCharacter seems to “bounce” as the platforms descend.
Oddly enough, the bouncing does not happen in the demo scene.
It only happens in my own custom scenes.

I have tried adjusting the settings. I cannot figure out what I’m missing.
I would appreciate any help or ideas as what could be causing this.

I did just notice one more thing.

When I change the rotation of the demo level, I now fall through the floor. Maybe something I changed is effecting the ground collision. I am using the stock SimpleCharacterController with modified jumping functionality. The remaining is what you provide in the asset.

If you can send me a project where the problem can be reproduced, I will take a look.