Announcement
Collapse
No announcement yet.
Able Ability System Info and Support Thread
Collapse
X
-
ExtraLifeMatt repliedOriginally posted by AngeIV View Post
Did that solve the channeling active issue I was having?
Originally posted by AngeIV View PostA problem: How to change preview asset without opening the ability editor - my preview character (move it character) crushes the engine if used inside the able editor. Due to private functions and variables.
Is there any place like project settings / plugins or someplace I can reset it to default? or in file?
Originally posted by jhirsh View PostHey Matt and Friends. While wrestling with getting Able working properly on a FPS project, I decided to get the community shooter project up and running to see if it could solve any of my problems. (there was a bunch of weird data field settings that needed adjustment and the OnRayCastEvent function needed to be deleted and *re-added no clue why).
Once resolved I tested and the community shooter project and it also doesn't properly handle player pitch.
The simulation will properly take into account your yaw, but not pitch. I have been banging my head against the right way to solve this. I would love to use the controller rotation pitch values, but enabling player control rotation pitch also pitches the root component (collision capsule). Would love to talk this through with someone and hopefully I'm just missing something obvious.
- 1 like
Leave a comment:
-
AngeIV repliedA problem: How to change preview asset without opening the ability editor - my preview character (move it character) crushes the engine if used inside the able editor. Due to private functions and variables.
Is there any place like project settings / plugins or someplace I can reset it to default? or in file?
Leave a comment:
-
jhirsh repliedHey Matt and Friends. While wrestling with getting Able working properly on a FPS project, I decided to get the community shooter project up and running to see if it could solve any of my problems. (there was a bunch of weird data field settings that needed adjustment and the OnRayCastEvent function needed to be deleted and *re-added no clue why).
Once resolved I tested and the community shooter project and it also doesn't properly handle player pitch.
The simulation will properly take into account your yaw, but not pitch. I have been banging my head against the right way to solve this. I would love to use the controller rotation pitch values, but enabling player control rotation pitch also pitches the root component (collision capsule). Would love to talk this through with someone and hopefully I'm just missing something obvious.
Leave a comment:
-
AngeIV repliedOriginally posted by ExtraLifeMatt View PostAble 3.53 submitted. Notes below!
Another quick note: I've gotten the "We want a Discord!" a ton lately, so I'm going to look at setting that up this weekend. Once I do, I'll add the link to the OP here and on the store page.
Leave a comment:
-
ExtraLifeMatt repliedAble 3.53 submitted. Notes below!
Able v3.53
- Fixed an issue where Channeling active tasks/Abilities may not get their OnAbility/TaskEnd called once the channel failed. This did not affect Passive abilities.
- Fixed an issue where the Location Transform on the Spawn Actor task wasn't hooked up properly internally (so it always used the data value rather than runtime value).
Last edited by ExtraLifeMatt; 01-28-2021, 09:34 PM.
- 2 likes
Leave a comment:
-
jhirsh repliedYeah, pretty sureOriginally posted by ExtraLifeMatt View Post
You may need to make sure your Player Controller is sync'ing pitch. The Camera Target Type uses the following code (you can place a breakpoint in ablAbilityTypes.cpp if you want to step through things):
Code:if (m_Source == EAblAbilityTargetType::ATT_Camera && !TargetActor->IsA<ACameraActor>()) { FVector ActorEyes; FRotator ActorEyesRot; TargetActor->GetActorEyesViewPoint(ActorEyes, ActorEyesRot); OutTransform = FTransform(FQuat(ActorEyesRot), ActorEyes); }
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jhirsh View PostSorry you are probably sick of me by now. I have been wrestling with this for a couple of days and I just can't figure out the source of my issue here.
Some background on my setup:
Using MoveIt plugin for character movement. *this may or may not have bearing on my issue
This is a first person project so my character has a separate 3rd person model and 1st person.
The camera is tied to this first person view model.
I am currently manually synching the camera pitch via SetWorldRotation in replicated events based on player input in blueprint.
This is using PIE Listen server with 2 players.
What I am seeing:
When I use an ability that uses the Camera as source for a raycast or spawn actor the raycast & spawn ent both work as expected. However the client will see the raycast and spawned entity but at the default pitch of the camera rather than the updated angles.
The camera & viewarm pitch appear to update for the client and server as expected.
What I have done:
I have ensured that neither of my raycast or spawn entity have an overridden Binding on location.
Realm is set to Client And Server
I have created multiple abilities to ensure it wasn't some kind of data corruption
Tried a couple half cocked work arounds like making my 1st person gun an actor with an able component. Couldn't figure out how to link an actor to an actor efficiently, but may go back to this method to see if i have better luck.
I don't know much about network replication in Unreal so I'm struggling to find a good way to debug the actual source of this issue. If you have any pointers here I would greatly appreciate it.
Thanks much,
Jordan
Code:if (m_Source == EAblAbilityTargetType::ATT_Camera && !TargetActor->IsA<ACameraActor>()) { FVector ActorEyes; FRotator ActorEyesRot; TargetActor->GetActorEyesViewPoint(ActorEyes, ActorEyesRot); OutTransform = FTransform(FQuat(ActorEyesRot), ActorEyes); }
Leave a comment:
-
jhirsh repliedSorry you are probably sick of me by now. I have been wrestling with this for a couple of days and I just can't figure out the source of my issue here.
Some background on my setup:
Using MoveIt plugin for character movement. *this may or may not have bearing on my issue
This is a first person project so my character has a separate 3rd person model and 1st person.
The camera is tied to this first person view model.
I am currently manually synching the camera pitch via SetWorldRotation in replicated events based on player input in blueprint.
This is using PIE Listen server with 2 players.
What I am seeing:
When I use an ability that uses the Camera as source for a raycast or spawn actor the raycast & spawn ent both work as expected. However the client will see the raycast and spawned entity but at the default pitch of the camera rather than the updated angles.
The camera & viewarm pitch appear to update for the client and server as expected.
What I have done:
I have ensured that neither of my raycast or spawn entity have an overridden Binding on location.
Realm is set to Client And Server
I have created multiple abilities to ensure it wasn't some kind of data corruption
Tried a couple half cocked work arounds like making my 1st person gun an actor with an able component. Couldn't figure out how to link an actor to an actor efficiently, but may go back to this method to see if i have better luck.
I don't know much about network replication in Unreal so I'm struggling to find a good way to debug the actual source of this issue. If you have any pointers here I would greatly appreciate it.
Thanks much,
Jordan
Leave a comment:
-
jhirsh repliedOriginally posted by ExtraLifeMatt View Post
Sure, it's a trivial code change. Just add the following line to ablSpawnActorTask.cpp:
Code:void UAblSpawnActorTask::BindDynamicDelegates(UAblAbility* Ability) { Super::BindDynamicDelegates(Ability); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_ActorClass, TEXT("Actor Class")); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_AmountToSpawn, TEXT("Amount to Spawn")); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_Location, TEXT("Location")); }
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jhirsh View Post
Awesome glad to know I'm not just being a moron. If it's a small change would you mind letting me know what the code change is so I can make the adjustment locally?
Code:void UAblSpawnActorTask::BindDynamicDelegates(UAblAbility* Ability) { Super::BindDynamicDelegates(Ability); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_ActorClass, TEXT("Actor Class")); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_AmountToSpawn, TEXT("Amount to Spawn")); ABL_BIND_DYNAMIC_PROPERTY(Ability, m_Location, TEXT("Location")); }
- 1 like
Leave a comment:
-
jhirsh repliedOriginally posted by ExtraLifeMatt View Post
ARGGHHH, I see the problem. That field isn't hooked up internally. I'll get a bug fix submitted.
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jhirsh View Post
Sorry should have included that in my original message. The log is essentially showing it spawns at whatever values are in the editor fields for offset&rotation. The two printlines are the values I'm returning in the struct.
- 1 like
Leave a comment:
-
jhirsh repliedOriginally posted by ExtraLifeMatt View Post
That should be correct, you might want to turn on "Verbose" on the Spawn Actor task and check your logs. It should print out the exact transform it's receiving from BPs.
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jhirsh View Post
Thanks much for the response!
So doing roughly what you are suggesting it seems to be ignoring the return values that I'm passing when spawning the actor.
The prints are outputting the expected world location and rotations, but it is spawning the actor at a zero'd transform.
Leave a comment:
Leave a comment: