Search Unity

[RELEASED] Ultimate Character Controller (UFPS 3 / Third Person Controller 3)

Discussion in 'Assets and Asset Store' started by opsive, May 29, 2018.

  1. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    I've been loosely following it, yeah, and integration makes sense in the long term. I don't want the base asset to require it though.

    Ahh, I see. Makes sense :)

    OnObjectImpact actually does include the force direction - I've updated the documentation with a more descriptive parameter name.
    No, there is an add force function that will apply an external force to the character controller. This external force contributes to the character's velocity when the character's move method is executed.
     
  2. luniac

    luniac

    Joined:
    Jan 12, 2011
    Posts:
    614
    ohhh i see, so the forces basically manipulate the animator parameters like Horizontal Movement,Forward Movement, Speed, Height??

    that kinda makes a lot of sense actually. since the parameters can affect what animation is playing.
    So it really is all deterministic, you just have to explicitly cover all situations.
    could get a bit tricky though, cause a high velocity could mean a character got impacted and should play stagger animation, or it just sprinted and should playing sprinting animation.
    But i guess you can compare velocity with previous frame to see if its a sudden change or something.

    cool, thanks.
     
  3. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Those animator parameters do not account for the force, but the jump ability does set the float data parameter to the vertical velocity so it knows when to transition between the various stages of the jump animation. You could create an ability though that exposes the force to the animator if your animation depends on it.
     
  4. luniac

    luniac

    Joined:
    Jan 12, 2011
    Posts:
    614
    hmm ok i think i more or less get it, the key point is the impact force isn't just unity physics cause controller is kinematic, its a value that the code can then make decisions based on it.
     
    Last edited: Jan 16, 2019
    opsive likes this.
  5. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Hi, just wondering, maybe I'm not miss reading but it says you can get a discount of you own both UFPS and TPS from version 1. If you buy UC. but it still says 180 dollars for me. So i'm confused how this is suppose to work.. I don't see any upgrade discounts. at all.


    Also if someone bought UFPS 2 and TPS 2. what is missing? from UC? I see that version, so what would be missing if someone bought those other two?
     
  6. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    There isn't a way to combine upgrades on the Asset Store into a single package so you'll need to upgrade UFPS/TPC individually. This image has the upgrade flow.

    If you have FPC and TPC then that is the same thing as the UCC package.
     
    recon0303 likes this.
  7. freezefe

    freezefe

    Joined:
    Jul 12, 2018
    Posts:
    1
    Hi there,
    Nice work with this package. I have a query though. How many AI agents you can use with this controller, I tried to add a few but frame rate dropped drastically. It returns back to normal when I remove them. May be there is something I am missing.
     
  8. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    There are a lot of factors that go into this so it's hard to give one set answer. In version 2.1 there are some optimizations that'll help, but if you do a search on the opsive forum for optimization you'll find some posts that should also help. After version 2.1 is released I plan on creating a new documentation page that lists some optimization strategies.
     
    Last edited: Jan 20, 2019
  9. scottlaforge

    scottlaforge

    Joined:
    Mar 12, 2013
    Posts:
    42
    I've been on the Discord channel, but thought I would try it here:

    I know multiplayer version of this asset is in development, but meanwhile, I've been converting this asset on my own now because I like the animation controller, camera, and inventory systems. It's great!

    However, when converting to multiplayer, using Photon, animations like Jump and Crouch do not always convey across the network. I find that on the local player, if I crouch, the crouch will not convey until I also move (such as forward backwards, strafe, etc.). Jumping seems to almost never convey. Does anyone have any advice on the best practices for ensuring that these animations are guaranteed to trigger on the remote player?

    More notes: I'm using out of the box PhotonAnimatorView and I've tried setting all of the ability values to continuous as well as discrete.
     
    Last edited: Jan 22, 2019
  10. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    I would also post on the opsive forum and see if anybody has any ideas there. I'll be starting the PUN implementation next month so it won't be too much longer before we're ready with the first multiplayer implementation.
     
    Tethys likes this.
  11. scottlaforge

    scottlaforge

    Joined:
    Mar 12, 2013
    Posts:
    42
    Thanks. I will do that and post on the forum too.
     
  12. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151

    ”but first person doesn't because there isn't a way to swap out the materials per camera so when you look at your split screen partner their materials use the full body instead of having the head removed.” dosent I want it that way? So the partner is full body, and have a head?
     
  13. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    That is what you'd want, but right now your partner would be running around with a head or arms because the materials aren't swapped out.
     
  14. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Aaah I see okay yes lol :D
     
  15. Phelan-Simpson

    Phelan-Simpson

    Joined:
    Jan 1, 2014
    Posts:
    31
    I saw, that playmaker actions would be coming to this asset. Is this still happening?

    Also, how modular is this in design? E.g. just using the character controller for movement, but not the camera or other systems.
     
  16. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Did you write the book Road To Alaska? Your username is similar to the author's name.
     
  18. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Right now you should be able to use the Playmaker reflection actions but I don't have an ETA for when I'll be able to create dedicated Playmaker tasks. I do the integrations based on the number of requests for each asset and so far Playmaker hasn't been too popular of a request (maybe because of the reflection tasks?)

    FinalIK integration will be released with the next update.

    You have two options related to the camera:
    1. If you are wanting to use a different camera controller, you can create a new view type which talks to that camera controller. The update order of the character/camera matters to get the smoothest movement and by creating a new view type for that other camera controller you are ensuring the update order is correct. This is what I did for Cinemachine and it's working really well.
    2. For things such as AI or being on the network you can implement your the ILookSource interface which does not depend on the camera. A ILookSource implementation that works with AI is included.

    You can add/remove the systems as you need them. Take a look at this page for the minimum component setup.
     
  19. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Awesome. Feel free to also keep everyone updated on the WIP section of the opsive forum.
     
    mattis89 likes this.
  20. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    You must have me confused with Eric Matthes , who bicycled to alaska 14.000 miles.. Good thing it was no zombies there :D
     
    TonyLi likes this.
  21. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Awesome thanks! Some screenshots will be posted tonight on discord!
     
  22. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    oh man dont remember my sign in!! or if I even registered :p
     
  23. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    260
    Hi. Great asset. Just have a few suggestions / questions.
    1. I found that when compiling with Unity 2018.3 for Windows Standalone IL2CPP I had to add || ENABLE_IL2CPP to the precompiler #if directive at the top of the AOTLinker file for the necessary AOT code to be produced.
    2. Are there any optimizations I can do when using UCC + Behavior Designer for AI? I found that with just 7 agents that the CPU usage by UCC updating animators was quite high.
    3. I found that when going far away from the floating point (1500+ meters) that the first person arms and weapon shake quite a lot. I fixed the shaking by scaling the First Person Pivot Object by a factor of 20 at run-time, adjusting the position springs to accommodate for the scaling, and disabling the first person arm / weapon meshes from receiving shadows (at the cost of receiving shadows on the first person arms / weapons). Any suggestions / ideas of a better way to address this?
    Thanks.
     
  24. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Thanks @desertGhost_!

    For support can you post on the forums at opsive.com/forum so it's easier for me to track each support request? This also makes searching for previously asked questions easier as well :)
     
  25. Cassos

    Cassos

    Joined:
    May 20, 2018
    Posts:
    16
    Great stuff! Iam from the Invector guys far away from this kingdom :D
    Many things are made way better but the thing with the inventory. Is there a way to add one with armor slots etc. without a huge investment of time?
     
  26. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Welcome @Cassos!

    The inventory is extremely simple by design since inventory can be an asset on its own and everybody has different requirements for what they need in an inventory. There is a base class that you can inherit your inventory from (InventoryBase) but this will take some scripting.
     
  27. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    QuestMachine.jpg

    The Ultimate Character Controller is now integrated with Quest Machine from @TonyLi! You can download the integration from this page.
     
    KeithBrown, TeagansDad and TonyLi like this.
  28. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    The next version of the Ultimate Character Controller is turning out to be a pretty major update with many improvements. Because there are so many changes we are running a beta to catch as many issues before release. A link to download this beta is within this post.
     
    TeagansDad and Onevisiongames like this.
  29. digiross

    digiross

    Joined:
    Jun 29, 2012
    Posts:
    323
    Ok so i'm trying to clarify which version I need to buy for my game concept....

    My game is a 1st person shooter, that for now will have single player until you add the multiplayer component.

    So the First Person Controller would work for now. However, once you add the multiplayer the game would need to show other players in 3rd person. Because the First Person Controller says it has full body awareness, it should render a full character but in 1st person view only (so not other players in 3rd)? or that is then where the 3rd Person Controller comes in for the other players and therefore requiring the Ultimate Character Controller, right?
     
  30. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Just the First Person Controller will work. The Third Person Controller/Ultimate Character Controller is only needed if you want to have a third person camera for that character - in multiplayer with just the First Person Controller the remote players will render with their full body.
     
  31. digiross

    digiross

    Joined:
    Jun 29, 2012
    Posts:
    323
    Thank you so much!!! I will purchase tonight after work.
     
    opsive likes this.
  32. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Im waiting with excitement to purchase the full bundle :) The splitscreen for the firstperson is a must so :)
     
  33. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Hey folks. Working with ICE AI integration (which is why I'm posting here instead of the private Opsive forums) and have a question. The demo integrations shown on the AI page in documentation is great for listening for incoming damage on an Opsive character. I now have a damage conversion listener on players and any damage my AI outputs is caught by the character. I am having a hard time creating the damage listener for my AI though. I want to use the same method of listening for the base damage output from UCC's various weapons and catching it and doing the conversion so ICE gets it and damages the entities. Does anyone know what to listen for or can @opsive give us that method? I place the damage listener on the AI entity and know how to damage my ICE AI health directly through code, I just need to know what to catch. Im using send message from Ice with a custom method that I catch on the UCC character. If UCC has something similar for me to catch even better. Thanks!
     
  34. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    I have added "Impact Callback" to the AI page of the documentation. This was previously under the shootable/melee weapon pages but it makes sense to have it there as well. I still suggest posting a thread on the Opsive forum under the Integrations section so others can easily find it as well, especially since ICE is now deprecated.
     
    Tethys likes this.
  35. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    Thank you!
     
  36. Tor9148

    Tor9148

    Joined:
    Apr 10, 2014
    Posts:
    4
    Hey long time lurker of Opsive, bought the original tpc way back and looking to buy the ultimate controller now for my current project (been getting to grips with all other things like maya and animation so haven’t spent much time in unity itself)

    So my character design has two weapon sets, one is a simple 2h sword which is obviously easy to do in Opsive and I’ve made the animations for it

    The other weapon set is a dual wield melee, but not like Skyrim where you control each hand individually, more like god of war or Darksiders where it is just a dual wield animation but input is exactly the same as the 2h (light and strong attacks)

    So I’ve got the animations for dual wield, but what’s the best way to integrate this?

    Use a standard sword move set, replace the animations for dual wield and add a second hit box to the offhand weapon? (This seems too easy to work)

    Or will I need to add as a separate item set and work our how to have both weapons attack at the same time from one getbuttondown

    Ive got a guy for coding so if the answer requires a lot of coding then I’ll just link him here, but If this is something I can do in Opsive as it is already that would be amazing

    Sorry for any spelling mistakes I’m on my phone and have man thumbs
     
  37. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Currently it's not possible to alternate melee attacks with the same input button but two different weapons. This has recently been requested though by another person so I hope to be able to add it soon. This will likely take modification within the Use ability in order to get it working.

    If for future support questions you can post on the opsive forum that would be great so I can track it better :)
     
  38. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    672
    I'm just going to be honest, I'm most likely not likely to make an account on another forum just to post suggestions. If I have an in depth subject or problem to address than I will make an account. So here it goes. On character death, the spawn object function needs an offset option and a delay option for each object spawned IMO. Great product, really enjoying it so far! The documentation has been very good and thorough and the videos help as well. I created an AttributePickup based on the HealthPickup that now effects any new Attributes as needed, all based on the examples and documentation. Thanks!
     
    Last edited: Feb 12, 2019
  39. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Glad you are enjoying the controller!

    I know that it's a pain to sign up for another forum but it really helps me track things better. There are 20 - 60 posts a day on the opsive forum and it would be unmaintainable if all of those posts were in a single thread. It also allows for much better searching. Thanks for understanding!
     
    magique and Tethys like this.
  40. mattis89

    mattis89

    Joined:
    Jan 10, 2017
    Posts:
    1,151
    Hellp Mr @opsive ! Hows it going with the splitscreen fix? :) Im excited to buy the controller and try it out!!

    Off-topic: Anyone figured out the audio listener for player 2 ?
     
  41. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Thanks for your enthusiasm :)

    Proper split screen support for first person won't be added until after we release the multiplayer addon. I am to the point of pretty much only working on the multiplayer addon and when I have progress to share I'll be sure to post here and in the opsive forums.
     
    Tethys likes this.
  42. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Playmaker.jpg

    The Ultimate Character Controller is now integrated with Playmaker. The actions are largely based off of the Behavior Designer tasks so please let me know what other actions you'd like to see within this thread. You can get the integration link on this page.
     
  43. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 2.1 of the Ultimate Character Controller is making its way to the Asset Store. This is a large release so make sure you take a look at the release notes for this version. Before you update there are a few things to keep in mind:
    • Unity 2017.3 or later is required.
    • Remove the Opsive/UltimateCharacterController folder before importing. This is extremely important because the folder structure has changed for Assembly Definitions support.
    • A reference bone has been added to Nolan’s rig so if you created a prefab with Nolan then you’ll need to recreate the character. This reference bone was added for the upcoming Agility Pack. No changes are required if you are using your own character model.
    Take a look at the release for all of the changes but some of the highlights are:

    Melee Counter Attack
    UCCCounterAttack.png

    Melee Special Attack
    UCCSpecialAttack.png

    Gravity Zones


    Final IK Integration
    FinalIK.jpg


    Note: Version 2.1 of the Ultimate Character Controller and UFPM are currently stuck being released. I've contacted Unity support for this and will update the thread when these updates have been released.
     
  44. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 2.1 of the Ultimate Character Controller and UFPM made it to the store. We should be all set now!

    Remember the following before importing the update:
    • Unity 2017.3 or later is required.
    • Remove the Opsive/UltimateCharacterController folder before importing. This is extremely important because the folder structure has changed for Assembly Definitions support.
    • A reference bone has been added to Nolan’s rig so if you created a prefab with Nolan then you’ll need to recreate the character. This reference bone was added for the upcoming Agility Pack. No changes are required if you are using your own character model.
     
    GorkaChampion likes this.
  45. Tactics1

    Tactics1

    Joined:
    Jun 16, 2013
    Posts:
    2
    Is vr and multiplayer added?
     
  46. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Not yet - I have started on the PUN addon but it'll likely be a few more months before it is polished enough to release. The VR addon will follow after that.
     
    Tactics1 and Tethys like this.
  47. MikhaskoS

    MikhaskoS

    Joined:
    Jun 24, 2018
    Posts:
    52
    Hi.
    I see that Final IK support has been added. This is a good thing. Does this mean that PuppetMaster will work?
    I don't know much about Photon technology. If there is support for PUN, will it be possible to use a Bolt? Bolt seems to be more interesting.
     
  48. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Not yet. @Partel-Lang is working on an integration but I don't know the status of it.

    Unfortunately not - they are two different implementations. I am starting with PUN because I'll be able to get the addon released quicker than if I were to use a server authoritative implementation such as Bolt.
     
  49. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    Version 2.1.1 of the Ultimate Character Controller can be downloaded by opsive store purchases and is being released on the Asset Store. A script was renamed in this release so ensure that you remove the Opsive/UltimateCharacterController/Scripts folder before importing. This page contains the release notes for this version.

    UMA.jpg

    One of the major features of this release is that integration with UMA has been added.
     
    DankP3 and GorkaChampion like this.
  50. opsive

    opsive

    Joined:
    Mar 15, 2010
    Posts:
    5,127
    We are getting close to releasing the Agility Pack and hang is one of the abilities included in this pack. We still need to do some minor animation tweaks but here's a look at our current progress on hang. In this image the character starts by shimmying on one hang object, transfers horizontally to another hang object, transfers vertically to a different hang object, and finally pulls up to end the ability. All of the hang objects are detected dynamically and only require the object to be identified with the Object Identifier component or a layer mask set to the one specified by the hang ability.

    https://gifyu.com/image/3x4I

    (hate to have to link to it but I can't get the unity forums to load the gif automatically).

    hang.png