Input System integration not correctly updated ?

Cheo

Active member
Hello, seeing that the Input System integration had been updated in UCC 3.0.15's release notes, I decided to give it a try after updating, but I was surprised to see the Import window saying "All assets from this package are already in this project". I played the Character Controller Sample Scene nonetheless and got three input related errors. I then deleted the integration and reimported it, but got the errors again. Then, I made a new fresh project to be sure, got the errors again, but realized that the Player Input slot in Player Input Proxy on the Atlas character was empty, and assigning the Player Input object into it solved the issue. However, even after that, two setup and presentation issues remain :

-The camera is not properly set up, rotates too fast and experiences jitter when moved from left to right in third person view.

-The whole scene is just a tiny blue plane and a white Atlas - this might seem trivial, but it makes the integration look not serious and uncared for. It would literally take 1 or 2 minutes to give that Atlas some materials, enlarge the plane and give it a grid material, and maybe add a few cubes.

So could we first have confirmation whether or not the integration was correctly updated, and in any case have a proper camera, setting and no error on start ? Thanks in advance.
 
I updated it a few hours after the package went live on the Asset Store. Go ahead and give it another try. The integration scene is a small testcase and is not fully featured. Eventually when the input system is the default input I'll switch to that and have a more polished scene.

The default input settings are fast so you can change the sensitivity within the input system.
 
I redownloaded the package and it does seem to have been updated this time, checkboxes are ticked in the import window. However nothing seems to have actually changed, and the issues I mentioned are still there. In addition, unless I've missed something it seems like the camera can't be moved with a controller joystick ! Also, could you provide some sort of changelog so that we can know what the update is supposed to add or fix ?

We can change input settings ourselves, but when I'm importing an asset or package into a fresh project I'm expecting to see thing working right away without having to do some tinkering myself. Setting the Look Sensitivity Multiplier to about 0.2 and the Look Acceleration Threshold (which seems to mess with the rest of the sensitivity settings) to 0 would help the integration look more serious. Finally about the scene, I insist that materials for Atlas and a larger plane with a grid are literally all that's needed for the scene to not look not serious.
 
I've updated the integration package with a new scene. Most gamepads are not added to the input system action map so you will need to do so based on what gamepads you want to support.
 
The Character Input asset already contains generic gamepad bindings, which is all that we need. The only ones not working properly are Controller X and Y, which aren't called by default. If you paste these bindings under Mouse X and Y, then you can rotate the camera with a right stick. Looking at the code it seems that m_MouseControllerUpdate needs to be set to false and IsControllerConnected must return true for the right stick to be used, but so far I couldn't even get the Connected Controller state to be active.

But come to think of it, why do we even need such a distinction between Mouse X/Y and Controller X/Y ? All of the other inputs are using both mouse and gamepad bindings, so I'm honestly asking if there is a good reason behind this ?

Lastly, I saw that you added materials for Atlas, but please for the love of god can you just enlarge the ground ? I've never seen something like that in any other asset demo, especially not in a character controller, you can't even run around with that ! Of course it only takes us 5 seconds to scale the plane up, but so does it for you, it gives off the image that you're not even trying your own stuff :/

Edit : Forgot to mention that the camera no longer has this offset and jitter issue, and the Player Input is now in its slot.
Thought it would be useful to say that when pasting the controller bindings under Mouse X and Y the scale factor needs to be set to something like 0.25 otherwise it's way too high !
 
Last edited:
Now I checked the operation of the joystick, and yes, you are right, the right stick does not work, the camera does not rotate! It used to work, but with the latest updates something has broken.
 
Got some bad news ! @Piyush sent me a version of the integration package from April, and it proves that there were some mistakes in at least one of the updates since then. Here is a video about that :


So we've got 2 issues here :
-As @EVG confirmed above, the camera does not rotate by default with a controller. The Controller X and Y bindings were correctly detected in the package from April.
-But most importantly, the infamous controller sensitivity affected by framerate issue from V2 is back ! For those of you who don't know what I'm talking about, I reported that critical issue in October of last year ! https://www.opsive.com/forum/index....ted-by-framerate-using-new-input-system.8503/

This needs a fix once and for all, please !!
 
I've updated the integration with the controller axis mappings. The separate controller mappings exist to allow you to have different sensitivities for the original input manager.
 
Alright I downloaded the latest integration package and saw the changes you made on the Character Input file, now we can rotate the camera out of the box with the right stick. However, the sensitivity affected by framerate issue is still here, when rotating the camera with the right stick at 300fps the rotation speed becomes ridiculously high. I know you're a busy man, but everyone will agree with me when I say that this specific issue needs to be among your top priorities right now - having the controller sensitivity affected by the framerate is unacceptable for both devs and players.

For anyone reading this and needing a working package, contact me or Piyush in DM, we can provide you the package from April which doesn't suffer from the framerate issue.
 
As I understand now, camera rotation takes values from Mouse X and Mouse Y, what are Controller X and Controller Y for then?
 
Tested the latest version of the Input System integration this morning, the framerate sensitivity issue for controllers is STILL HERE ! So we're back to using the package from April.

A bit late but @EVG Justin said above that they're here to allow for different sensitivities, even if they're not really used at the moment. However, you're totally free to either delete the additional controller mapping or remove them from the mouse ones.
 
If you take the working old CharacterInput.cs/inputactions and use the current UnityInputSystem.cs integration script is it smooth? If that's the case, can you send me the CharacterInput file that works? It's likely a setup issue with the input mapping asset.
 
If you take the working old CharacterInput.cs/inputactions and use the current UnityInputSystem.cs integration script is it smooth? If that's the case, can you send me the CharacterInput file that works? It's likely a setup issue with the input mapping asset.
I just tried that, and the issue is still here. I would have been surprised if the issue actually came from the mapping asset. It's worth mentioning however that I had to paste the controller binding under Mouse X and Y on this old CharacterInput file for the right stick to be detected.
 
After some experimenting this evening, I believe I have found a fix for the latest version of the package ! 2 simple modifications are required to get rid of the framerate issue :

-Add this line at the top of Unity Input System :

C#:
        public override bool IsControllerConnected() { return true; }

This override was present in the package from April but removed from following ones. Logically speaking, I don't think it makes sense to have this true by default, as we don't know whether a controller is connected before the game has even started, but the fact is that at the moment we need it.

-And remove the right stick bindings from Mouse X and Y in the Character Input file. From what I understand, if Unity Input System detects right stick input as Mouse X or Y, it will screw up the reading and be affected by framerate, even though actual mouse input itself is not affected by framerate.

If you do these 2 things after importing the latest version of the package, then you should finally be able to rotate the camera with a controller at a constant speed no matter the framerate !

This crucial integration has been left broken for months, so now that I've done this work for you please release a proper update, this is long overdue !
 
Top