Ultimate Character Controller WIP

I have a question about "use the drive ability no matter what vehicle controller you are using" statement. Sarah has created a custom animation for the standard asset vehicle. When it comes to different vehicles from motorcycles, semi trucks, monster trucks, etc... how will it handle those types of vehicles. I guess the main question is about the animations and maybe the possibly of disabling the enter/exit animation where the player is "teleport" into the vehicle.
 
You will need to have your own animations for enter/exit (and the vehicle needs to have an interior). I will add a field to the IDriveSource interface so you'll be able to use the AbilityIntData parameter to determine the type of vehicle that is being driven. Teleporting isn't in there yet, and I'm not sure the correct way to handle that since for a first person view you wouldn't be able to teleport.
 
I see. The teleporting was more along the lines for people like myself that won't have the animations for the enter/exit.
 
That makes sense. I just added teleporting as an option:

drive.gif
 
That's great. And this way you don't need to have the interior detailed which will save on performance on low end devices.
 
Just giving everyone a heads up that the next update will likely be version 2.2. This version has many structural changes for the new inventory system so it'll require some work in order to get back where you were. I will try to make things as automated as possible but due to the type and name changes it's not possible to get everything back exactly as they were. I plan on creating a documentation page and video explaining how to upgrade but right now you'll need to change the following:
  • Requires .net 4
  • Requires Unity 2018.4+
  • Delete Opsive/UltimateCharacterController folder
  • Create new inventory categories
  • Assign those categories to the existing ItemTypes
  • Set the amount for ItemDefinitionAmount
  • Assign Item Types to Item Set Manager
  • Update Item Set Manager abilities to point to new categories
  • Set Ability Append Item
  • Set new Ability.AllowItemDefinitions
  • Set new PickupAbility.PickupItemTypes
 
Is there a roadmap available for UCC? Just curious where you are headed with it.
I have a long trello list but nothing public. Major features in 2.2 include magic, a drive ability, first person split screen support, and revamped inventory classes for the Inventory System integration.
 
I haven't updated this thread in awhile but we're making good progress on version 2.2 One of the new abilities within version 2.2 is a drive ability. This drive ability uses an interface to communicate with the vehicle so you'll be able to use the drive ability no matter what vehicle controller you are using. Here's an example of the character getting into the standard assets car:

drive.gif


Right now the new interface looks like:

Code:
    public interface IDriveSource
    {
        GameObject GameObject { get; }

        /// <summary>
        /// The character has started to enter the vehicle.
        /// </summary>
        /// <param name="character">The character that is entering the vehicle.</param>
        void EnterVehicle(GameObject character);

        /// <summary>
        /// The character has entered the vehicle.
        /// </summary>
        /// <param name="character">The character that entered the vehicle.</param>
        void EnteredVehicle(GameObject character);

        /// <summary>
        /// The character has started to exit the vehicle.
        /// </summary>
        /// <param name="character">The character that is exiting the vehicle.</param>
        void ExitVehicle(GameObject character);

        /// <summary>
        /// The character has exited the vehicle.
        /// </summary>
        /// <param name="character">The character that exited the vehicle.</param>
        void ExitedVehicle(GameObject character);
    }

The Move Towards ability has also been improved so it can use the pathfinding abilities in order to move towards the ability start point. This will allow a player-controlled character to avoid the car when moving to the drivers seat:

drive.gif
With the new drive I hope it works in First Person as well, thereby staying first person even after you get in the vehicle to retain the immersion.
 
With the new drive I hope it works in First Person as well, thereby staying first person even after you get in the vehicle to retain the immersion.
You will be able to. We are finishing up with all of the 2.2 polish this week then we just have documentation, screenshots, and new videos left. Even though the inventory system won't be released at the same time I also want to finish the inventory system sample scene just in case anything changes.
 
We are getting close to finishing the polish and then it's just documentation and videos. Here's a lot at the six types of magic items:

Fireball

Particle Stream

Ricochet

Heal

Bubble Shield

Teleport


The MagicItem action is extremely flexible and should allow for much more than the six type of effects shown here. It also has a pretty cool subaction system which makes adding new features pretty painless. Here's a look at the component for the Particle Stream:


1584130724809.png
 
It looks great Justin!! (Those actions fields look really sweet! Will the other type of items have these list of actions? I can already see myself scripting custom actions!)
 
Fun - I can see us using the Fireball from a "Flamethrower"
That should definitely be able to work.

It looks great Justin!! (Those actions fields look really sweet! Will the other type of items have these list of actions? I can already see myself scripting custom actions!)

Thanks! The other Item Actions haven't been modified with this new sub-action system, though if Magic goes well I could see just having a single Item Action with a bunch of different sub-actions that replace shootable, melee, throwable, and magic Item Actions... Definitely waiting until v3 though :p (no.. we won't be starting v3 anytime soon).
 
As I mentioned in this post, the class structure has changed a lot in order to incorporate the new inventory system changes. To reduce the number of mistakes when updating versions there will now be an installer that first verifies your project looks good before it installs:

Update2_2Installer.png
 
Very soon now. We will be releasing on the Opsive Store first just to ensure we didn't miss any major issues. Once that is good we'll release it on the Asset Store.

In other news the import times should be faster. Sarah exported the animations using Blender 2.8 and the file sizes were cut by ~70% (!). This then also reduced the import time by around 65-70%.
 
The new docs are online for version 2.2 Make sure you take a look at this page as it is extremely important in updating to version 2.2:

 
  • Like
Reactions: CSC
We will be releasing on the Opsive Store today. While the build is currently running I thought that I would go into some detail into how the asset is built. All seven of the controller variants (UFPS, Third Person Controller, Ultimate Character Controller, etc) are based off of the same scene. It would be extremely error prone and time consuming to setup and submit these controller variants manually so I use two different automation processes:

1. I have an editor script which removes the unnecessary objects for the controller variant. For example, since UFPS doesn't include melee weapons all melee weapons (and animations within the Animator) should be removed. The Third Person Controller doesn't include a first person view so those objects must be removed.
2. After that editor script runs I then use RockTomate to package up each variant. RockTomate is responsible for setting up the packages, extracting a Unity Package for the Opsive Store, and also uploading to the Asset Store. If you're looking for an automation solution I highly recommend taking a look at RockTomate.

1586605649362.png
 
Top