A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by UnityHas, Jun 9, 2021.
My little contribution:
Now you can use the mouse scrolling up and down to switch between the third person and the first person view. If you are interested, you can watch the whole list. Cheers!
(3rd person scripts) What's the variable analogMovement for? / do? Making it either true or false does nothing to change how the character is controlled in run time?
When the analog movement option is checked, the character animation moves according to the float values of your game controller. For example, if you press the stick button very slowly, then the character movement animation will be slow.
Thanks, that would be why i haven't noticed a difference
Why the "Speed" float value works weirdly? When the movement stops, the speed value doesn't go 0, but instead, it keeps going down to frightening numbers. It is especially troublesome in multiplayer sync because the animation looks glitchy when the animation stops.
Thank you for the info!
Ah, so it looks like its an issue with the stick-to-camera sensitivity for that gamepad. Admittedly, I have never tried that gamepad plugged into an Android device let alone been able to test with it.
It might be a case of having to extend the Camera Look script to have platform-specific stick magnitude processing when running on Android.
How is the Movement Joystick input? Does it also have the same behaviour?
The movement is perfect! It's only the look.
I am new to unity, I was trying to setup mobile controls from this starter assets , But I don't know why it is not working.
The ability to climb using the Animation Rigging package and some examples for modular animations using modular-rigigng, such as look-at targets or different kinds of runs would be highly useful as a starter package (since all of these conventions were present all the way back to Mario 64) and would make this (official, Unity-supported) package, to me, actually useful as a long-term, easy-to-use, asset when starting up new projects. When it is ready, DOTS Animation would be useful here too -- since this is the kind of thing that is useful as both an example -- and as a starter asset.
Eventually both DOTS Visual Scripting and Unity Visual Scripting support would be handy for many designers as well, who are looking to quickly prototype without having to fool with that much code. Moving platform support would be great also (if it isn't already available) because, you know, some basic climbing behavior for platformers. That climbing bit should of course be able to be disabled or removed if necessary (and show how to "extend" the package via modules that can be authored visually), and since it would be more of a modular "addon" thanks to Animation Rigging, some of that special coding it might need to handle the transform shifts when climbing is enabled should be easy to spot and also easy to modify (in case a character has multiple kinds of climbing animations, for example).
Outside of these (sorely missing) elements, I think you've got a good start so far.
Failed to load 'F:/Coding/learn/unity tps game project/Assets/StarterAssets/ThirdPersonController/Scenes/Playground/LightingData.asset'. File may be corrupted or was serialized with a newer version of Unity. this error is coming i can run the project but why is it coming
i used the defaul project the move it working jump also but the look is not working in the `player armature` the script `starters assest input` its showing the vectors value but the camera is not moving
from the code
// note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude
// if there is no input, set the target speed to 0
It sounds like you're using a version of Unity earlier than 2020.3. The character controller will still work, but the lighting data for the playground scene won't.
And what about it? It says that when there is not input, it should set it to 0. So it should be 0 in my case.
If you’re setting up the mobile controls in a new Scene, you will need to hook up the Input, which may be what is causing this issue. After selecting your UI Canvas, in the UI Canvas Controller Component, make sure to assign your Player Prefab to Starter Assets Inputs under Output.
The documentation "StarterAssets_Documentation.pdf" which is located in the project under Assets/StarterAssets has more information on how to set up mobile controls in a new Scene.
You can also watch our Youtube introduction from 6:49 for more information. Link:
Oh my bad, i'm pasting incomplete line.
What i mean is the line starting from line that to _animationBlend, there's accel/decel curve interpolation. You can try to remove them or just set the animblend to zero if there's no input. But that will make the animation snap to idle without the curve
Been wondering why this look mode are not included as the animation are already in the package, well except the look/aimpose.
I mean the LookMode are included in the OpenCharacter Project
Where is it?
where's what? the animation are inside the animation folder
So the rest you created yourself right?
yep , i added lookpose layer and modify the script
Ok. That's interesting why they didn't include that if the animations are already present.
Nice colors by the way . Do you use Unity's post-processing? What render pipeline? URP? HDRP?
Thanks, for this one i use URP. I just play around with the lift,gamma,gain.
Hello, nice work!
I'm new here, where can I find that LookMode/OpenCharacter Project you mentioned?
Also, does anyone know how to change camera speed of this starter asset? Either config or script
This is why i hate inverted bone axis.
Well i don't know if you guys want to fix the inverted bone orientation though, since this package are targeted for beginner user and for me this is kinda bad practice in my opinion. At least give them a guide/example of best practice in unity.
Edit : This might depend on the DCC where the character are rigged though, so i leave it to unity team how to handle this bone orientation issue. You can leave it as it is, or switched the flipped side of the inverted bones.
I have an error with this first person controller, i implemented a inventory that is opened with 'i' letter, but i cant click on it to equip a weapon, do you know how can i solve it?.
Thank you so much for the starter asset packages. They are great and I filled out the survey saying the same.
Question: I am trying to figure out how to implement an initial LookAt target. If I jiggle the mouse when the game is loading, my camera is never oriented in the direction I want it to be when the level actually loads. I would love to force a LookAt target for n-seconds on level-load.
I'm looking under the CinemachineVirtualCamera component on the PlayerFollowCamera gameobject, and I feel like 'Aim' might be the place to set this up, but I can't seem to turn it off.
Would love any direction you could provide, or if there's a resource online where I can find more information on how best to use the starter asset packages, I would greatly appreciate it.
Thank you again for your time and help.
dunno whats going on here, but if I move the mouse even the tiniest bit the camera just glues itself to pointing straight into the sky.
all I've done is build & run the Playground scene (Windows x86_64) on URP.
I'm probably going to progress without all this cinemachine fluff, but thought I'd let you know in case theres a bug somewhere.
If I understand correctly, it sounds like you want to disable mouse input until your level is fully loaded. There's a toggle on the StarterAssetsInputs script called Cursor Input For Look. If you disable this, then mouse input won't affect the look direction. You could then re-enable it after the elapsed time.
You can control the camera speed in the inputactions file (Assets/StarterAssets/InputSystem/StarterAssets.inputactions). If you open that file (click Edit Assets in the inspector while it's selected), under Player > Look there's a configuration for Pointer and Gamepad. On each of those configurations there's a "Scale Vector 2" processor, this is basically your sensitivity. The Pointer and Gamepad configurations are separate so you could set different sensitivity for Keyboard/Mouse and Gamepads.
If you're working on Mobile, the UI_Virtual_Joystick and UI_Virtual_TouchZone prefabs have a field called "Magnitude Multiplier" which will control the sensitivity of those components.
When I add a Nav Mesh Agent to the Player.
The Player will jump infinitely when I press jump once.
How do I fix this?
Hello I fixed up this error Just set player a New layer "Player" and find Basic Rigied Body Push choose push layers as Player Done .LoL
Seems like this would all be centralized somewhere -- i.e. in the initial configuration script?
Mouse input is being multiplied by delta time.
This is a pretty major flaw in both controllers.
This makes sense when dealing with the joystick portion of this input, but this is making mouse input framerate dependent.
I've tested it and at different framerates the same distance of mouse travel will translate to entirely different rotations. Removing the deltaTime multiplication leads to matching rotations. If your game has hitches when using this controller you will feel it as jumpiness, and as far as I can see the reviews on the asset store point towards this being the case for others.
This is a problem that the input system docs don't seem to resolve at face value, just saying "You can write code that is agnostic to where the input is coming from."
Unless I have a complete misunderstanding about how this all works, this is a pretty big oversight.
How and where to add footstep/jump/landing sounds to this starter?
I have the same issue, but it only happens if I select the character game object, do any of these scripts have a custom editor which heavily slows down Unity or what's going on? It's a nice workaround, but someone from the dev team should look into this please.
Do you mean centralizing the mobile sensitivity with the Keyboard/Gamepad sensitivities? Currently the Keyboard/Gamepad stuff is centralized with everything input related in the .inputactions file, but the mobile controls are the outlier because of the nature of virtualized controls.
Although it's possible to add this, it's challenging to do it without adding more layers of architecture which is a deterrent for beginners. It's something we'll continue to test though.
Wouldn't it be the other way around?
If you remove the Time.deltaTime multiplier then the Pitch and Yaw will move the same amount regardless if a frame took 16ms or 10 seconds. This means that if your game runs faster you can look faster, and if the game runs slower you look slower, making your look-speed framerate dependent.
By multiplying by Time.deltaTime then if your frame takes 10 seconds the Pitch/Yaw will be multiplied to compensate for how long it took. This will produce jumpiness, but it means that you'll be able to look around at the same speed regardless of your framerate.
However, it's true that jumpiness feels bad, so I think the solution would be to smoothly interpolate the motion in a way that makes the jump less painful but still gets you to the same result in the same amount of time?
@vertxxyz and I have concluded that multiplying the mouse input by Time.deltaTime is incorrect. We'll fix this in a later version.
The reason that you multiply Joystick input by Time.deltaTime is because the value represents distance over time (let's say meters per second). When you multiply meters per second by seconds, the result is in meters. It's a distance. Mouse Input is already a distance. The Input value is the distance the mouse traveled since the previous frame, so multiplying by time is unnecessary.
Whether your move your mouse 10cm over 10 seconds in one frame or 600 frames, it still moved the same amount.
Simple case working for both: You move your mouse 1cm in 1 second. Your character turns by that amount in one frame.
Not multiplying that delta by deltaTime:
A 10 second frame time, we moved 10cm:
/ 10 to get 1 second, 1cm.
A ~16ms (1/60 seconds) frame time, we moved ~166μm:
* 60 to get the same 1 second, 1cm.
Multiplying that delta by deltaTime:
A 10 second frame time, we moved 10cm:
* 10 second frame time, 100cm output. / 10 to get 1 second, 10cm.
A ~16ms (1/60 seconds) frame time, we moved ~166μm:
* 1/60 frame time, ~2.76μm output. * 60 to get 1 second, ~166μm.
Testing with target framerate is difficult. Either way, I feel like my logic here is correct, and this is a problem you have to deal with in the legacy input system. If the new input system is handling this somehow I definitely want to know about it.
*Sorry, if you saw this before I made some edits to fix the maths.
I seem to be wrong because the input system handles mouse input in a somewhat bizarre way specifically in actions.
I'm sorry for bringing this up - but I really do feel like this needs to be mentioned in the docs or something, as it's extremely counter intuitive. The delta being applied is not a pure delta, it's an accumulation of delta across a frame...? I don't even know how to describe it.
Either way, I'm so sorry, I don't know how my tests came to the wrong conclusion, but they were certainly not thorough enough.
Now I need to know whether this also applied for the legacy input system? I'm certain it didn't work this way. *This post in that thread hints to me that it didn't.
I made a video going over the project and scripts in-depth and suggesting some improvements if that's helpful to anyone:
This is editor issue i think, it's been like forever. If you have a transform component visible in inspector and it is updating in play mode it will causing a lag/stutter.
@bronsonzgeb should we report this? because i think this is performance regression as it's not happened pre unity 2019
I found something annoying with the starter assets. To replicate this you have to hold a Key like W or (A, S, D) and start walking and then press L.Shift to run and then release W and then release L.Shift.
this will cause the player to move forward direction(because W was pressed) without any input and to stop this you have to again press W and release it then the player stops.
I am using 2020.3.8f1 in Linux mint.
how can I fix this?
Love the new fps asset. One issue i noticed is there is jittering if the player and mouse is moving and turning at the same time. Any ideas what that might be? I set my vcam dampening to 0, still same issue.
We reported it during development, so it's a known regression. As far as I know, there's a fix somewhere in the pipeline .
No, I mean centralizing mobile sensitivity with all other sensitivities in a single "Init" script that handles it, say, with a slider or whatever and an input box to set the value manually if desired. This is typically located in the Inspector on a gameobject or in its own EditorWindow.
However, if indeed virtualized controls are their own thing -- I think they needed to be treated as such. Even if this requires another layer or two of architecture, this can be easily obfuscated by a proper UI (i.e. EditorWindow) that is beginner-friendly enough to allow them to add/remove the controls they need.
Personally, I think most beginners (and most users in general) aren't as dumb as it seems you guys think they are.
Point any new user in the closest direction you can think of -- and they'll go looking specifically for what they need. This is why you need good visual communication in your UI -- not to mention your entire UX workflow (i.e. the centralization I mentioned).
The goal of these particular starter assets is to be lightweight and have simple understandable code. So I'd like to define what I mean by a beginner in this context, so we're both on the same page. In this case I'm talking about less experienced programmers and less technical users.
The intention is for users to dive into the code and remix it for their purposes, so what I mean is adding extra levels of indirection in the code makes the code less approachable for beginner programmers or less technical users (who want to do some scripting).
On those same lines, the assets are built to be expanded upon, but shouldn't have any extra features. What I mean is, it should be easy to add stuff, but you shouldn't ever need to take away stuff, because it's always easier to add than to take away. Does adding more architecture with a centralized UI absolutely have to be there? Maybe yes, maybe no. But, the point I'm trying to make is that we very carefully consider every feature (for these particular assets).
Now, of course I think a centralized UI is a good idea in the right context. But given that these starter assets are designed to be lightweight, this type of system will likely come with a more advanced version. Or in other words, a more fully-featured production-ready character controller. Maybe we'll call those Finisher Assets .
Finally, let's not argue about what's approachable. I'm willing to bet that you (like me) are a more advanced user who skews more on the technical side. Unfortunately, when it comes to what's approachable for beginners our experience clouds our judgement. So, we have to differ to people who are experts at being beginners, and we draw our conclusions from user tests.