Base Movement Modifications

adamnorton

New member
Turn damn you we are gonna hit that iceberg!

I am using the Third Person Controller / Rewired.

I would like to change the movement a little bit.
Actually what I want this this https://opsive.com/support/document...pes/included-movement-types/third-person-rpg/

But the "turn" doesn't really turn, it is some where between a strafe and a very very slow turn.

:{


It is set to Third Person RPG

But I would like A & D to Turn The Character
I have already set the Q & E to do the "strafing" successfully.

I have added "Quick Turn" as Axis to Rewind's Action and Mapped the Keyboard to A & D for the positive and negative values.
Added The Quick Turn Ability to the Abilities on the Ultimate Character Controller
Tried a few different settings. Am I going down the wrong path?

1582087247750.png
 
The Quick Turn ability is for a full 180 degree turn and does not use any inputs. If the character is rotating slowly you can increase the Motor Rotation Speed on the Ultimate Character Locomotion component.
 
Excellent. That works. although the torso isn't turning left and right. It is still maintaining ... that strafe look.
And I obviously have other issues :) Only had the asset for a couple of days.

But the torso thing is really frustrating.

What I would like is for the character to actually turn when I do A & D, not slowly rotate. If the character is also moving forward or backward then do the slow blended turn, but not if no forward or backward movement.

I also need to know how to add strafe to A & E.

100% movement by the left hand or later a controller.


Recorded Video Shared on my google drive
 
This will take a new Movement Type. You could start by duplicating the RPG Movement Type and then modify from there. I don't have the exact steps in order to add the movement type that you are going for but it should definitely be possible.
 
Does documentation doing this kind of thing actually exist in the existing documentation? I am already struggling with adding the Add On packs like Agility and Swimming , Riding etc. Trying to get this all done before I introduce UMA. I also would like to have different base movement animations. Female vs Male. Human vs Elf vs Orc vs Dwarf etc. Also different movements for if the character transforms into something else. Like a werewolf. Was thinking/hoping I could just do, AnimatorOverrideController. Not sure if that needs to be incorporated into the new movement controller code or not. Still learning the controller :), trying to figure what steps I need to do and in what order.
 
The overall design plan / wish list...

Controller / Movement

Basic Movement with ONE Hand (want to simplify the user experience)
W/S Moves Forward / Backward
A/D turns the character... really turns the character.
Q/E strafes the character
Shift toggles running, Holding Sprints
Dodging In cardinal directions (some how, not even sure how the controls should be mapped) Double Click the WASD controls?
Climbing, Riding, Crouching etc. (note I really want to change the crouching animations, I want them more dramatic than what is included by default)

Interactions
Driven by item interacting with somehow.
Think Forge, Workbench, Chair, Chest. pushing a cart.
Some driven by actions i.e Lock picking, searching

Animations
I also want the character to have different walk, run, idle animations by Race
and the ability to transform. Werewolf, maybe even an animal (wolf, bird etc) non human would turn off items.
Growth / Shrinking by potions or spell.
AnimatorOverrideController ??

Different animations for different weapon types
Axe, Sword, Polearm, Staff, Shield, (Pistol, Rifle) flintlock type (have to find the reloading animations). , daggers, spell casting, spell casting with staff
2 handed weapons
And be able to wield dual or off hand.
I have these to start but may switch to nicer ones later

Input/Combat
Would like to have the attacks be random or in order like your videos, but also have power attacks.
Would like to block/parry or attack with each weapon (including shield... shield bash)
and be able to kick ( push enemy back or power kick to "sweep the leg" ;)

Not sure how the control mapping for the controls will go, but I am using rewired so that should be easy to change up I hope.

Also is there a way to augment your item/inventory and ability systems
I would like to be able to modify the item object, add things like icons, for the inventory screen
looks like it has functionality for drop and the like. I would rather not maintain / write two inventory systems.
I am using https://assetstore.unity.com/packages/2d/gui/rpg-mmo-ui-5-95223 for the interface and want to be able to

Change the equipable item functionality
Have weapon sets (right/ left hand) example shield & sword in one set, bow for the other. Add more sets slots based on skill levels.
Potions Slots (more per level)
... no opening up inventory in the middle of battle and rooting around for sweet rolls in the middle of battle. ;)


Attributes
Health, Stamina, Mana
I would like them to be based off of things like player stats, modified by potions, items, skills, spells etc.
Also have things like a cold effect , slows character movement, poison interrupt movement attack with a doubled over effect (react to the poison or w/e on a timer)
Change the characters walk / run (or even turn off run) if injured.

I know this is alot (and I have more wants lol), but I am 100% sure that I will have to scale alot of this back. And that is ok.
I just don't want to go down wrong paths or loose time doing something impossible with the system.
I wanted to include first person for example, but watching your videos, and looking into UMA I have decided sadly that that is best.
Any direction on how to achieve any of this, what parts of the documentation to look at for each item. Or even WTF dude that is stupid.
Any direction would be helpful and appreciated. I don't need it done for me and I don't mind sharing back to the community (if you have a way to share things like the Movement Controller you suggested.)

Writing this game is more about making one, and telling the story the way I want than anything else.

So far I have to say I am extremely impressed by the controller and the code itself. Very clean. I have been a developer for over 20 years,
 
It's great to see that you have an overall design doc - this makes it so much easier in terms of determining what direction to take.

Controller / Movement
Basic Movement with ONE Hand (want to simplify the user experience)
W/S Moves Forward / Backward
A/D turns the character... really turns the character.
Q/E strafes the character
Shift toggles running, Holding Sprints
Dodging In cardinal directions (some how, not even sure how the controls should be mapped) Double Click the WASD controls?
Climbing, Riding, Crouching etc. (note I really want to change the crouching animations, I want them more dramatic than what is included by default)
For this you'll need to create a new Movement and View Type. The docs give an overview of the abstract methods that need to be implemented, but I've found that the best way to create a new type is to just duplicate one of the existing types that are close to what you are going for. This is more of an advanced topic though so I would approach this after you have a bit more experience with how the controller is structured. If you have any specific questions I can definitely help on that side of things.

Interactions
Driven by item interacting with somehow.
Think Forge, Workbench, Chair, Chest. pushing a cart.
Some driven by actions i.e Lock picking, searching
The Interact ability will be a good start, but for the more advanced interactions (such as pushing a cart) you'll want to create your own ability that is inherited from DetectObjectAbilityBase.

Animations
I also want the character to have different walk, run, idle animations by Race
and the ability to transform. Werewolf, maybe even an animal (wolf, bird etc) non human would turn off items.
Growth / Shrinking by potions or spell.
AnimatorOverrideController ??
I have only briefly used AnimatorOverrideControllers so you probably know more about that than me, but that does sound like a good initial route to go down. In the worst case you'll need to create a different animator controller for each race.

Note: I highly recommend that instead of using the included animator controller you create a new one from scratch. The included animator controller includes many states and transitions that you likely won't need. The only requirement from the character controller is that you have the same parameters as what the demo controller uses.
Would like to have the attacks be random or in order like your videos, but also have power attacks.
Would like to block/parry or attack with each weapon (including shield... shield bash)
and be able to kick ( push enemy back or power kick to "sweep the leg" ;)
There is a special attack in the melee demo room so that is a good example.

Also is there a way to augment your item/inventory and ability systems
I would like to be able to modify the item object, add things like icons, for the inventory screen
looks like it has functionality for drop and the like. I would rather not maintain / write two inventory systems.
I am using https://assetstore.unity.com/packages/2d/gui/rpg-mmo-ui-5-95223 for the interface and want to be able to

Change the equipable item functionality
Have weapon sets (right/ left hand) example shield & sword in one set, bow for the other. Add more sets slots based on skill levels.
Potions Slots (more per level)
... no opening up inventory in the middle of battle and rooting around for sweet rolls in the middle of battle.
You'll want to make good use of Item Sets but for inventory specific functionality I would hold off until we release version 2.2. Version 2.2 has changed a lot of the inventory structure in order to support our new inventory system so there will be a decent amount of work to get back where you were at. See this page for more info:


Attributes
Health, Stamina, Mana
I would like them to be based off of things like player stats, modified by potions, items, skills, spells etc.
Also have things like a cold effect , slows character movement, poison interrupt movement attack with a doubled over effect (react to the poison or w/e on a timer)
Change the characters walk / run (or even turn off run) if injured.
Version 2.2 contains a magic item so that'll help there, and for a lot of the rest you can use the attribute system.

So far I have to say I am extremely impressed by the controller and the code itself. Very clean. I have been a developer for over 20 years,
:love:
 
It's great to see that you have an overall design doc - this makes it so much easier in terms of determining what direction to take.


For this you'll need to create a new Movement and View Type. The docs give an overview of the abstract methods that need to be implemented, but I've found that the best way to create a new type is to just duplicate one of the existing types that are close to what you are going for. This is more of an advanced topic though so I would approach this after you have a bit more experience with how the controller is structured. If you have any specific questions I can definitely help on that side of things.


The Interact ability will be a good start, but for the more advanced interactions (such as pushing a cart) you'll want to create your own ability that is inherited from DetectObjectAbilityBase.


I have only briefly used AnimatorOverrideControllers so you probably know more about that than me, but that does sound like a good initial route to go down. In the worst case you'll need to create a different animator controller for each race.

Note: I highly recommend that instead of using the included animator controller you create a new one from scratch. The included animator controller includes many states and transitions that you likely won't need. The only requirement from the character controller is that you have the same parameters as what the demo controller uses.

There is a special attack in the melee demo room so that is a good example.


You'll want to make good use of Item Sets but for inventory specific functionality I would hold off until we release version 2.2. Version 2.2 has changed a lot of the inventory structure in order to support our new inventory system so there will be a decent amount of work to get back where you were at. See this page for more info:



Version 2.2 contains a magic item so that'll help there, and for a lot of the rest you can use the attribute system.


:love:
Thank you very much. This is the direction I was looking for.
 
Nope... I am 100 sure something is wrong. And I cannot tell what it yet.

In the demo.
Setting the movement type third person rpg, and the camera to third person rpg.
Q & E strafe, and A & D rotate/turn more like I thought it was supposed to. (Besides the animations I am quite happy with that as a starting point.

Completely reproducible.

Create a new scene.
Add Nolan, Run the Opsive Manager,
Follow all the instructions. For me It doesn't work.
Its not Rewired either because I have not added it yet to the scene

Also completely reproducible. :(

I can't seem to replicate the setup that you have in the demo.
 
On the Ultimate Character Locomotion Handler make sure you set the Horizontal Input Name to "Alt Horizontal".
 
Top