Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    ExtraLifeMatt thank you! Alife saver as usual!

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post

    Did that solve the channeling active issue I was having?
    Should. I did miss one case in another area that I have to submit a new patch for (found it right after I submitted - which is how it goes).


    Originally posted by AngeIV View Post
    A 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?
    Should be in one of your Config.ini files in your Project/Config directory. If you find that entry and nuke it, it'll reset to default.


    Originally posted by jhirsh View Post
    Hey 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.
    It previously handled pitch just fine - that project is definitely out of date though. Have you created a new Shooter Project based game and seen if you can build on top of that? Rather than attempting to update the older project (which may flip out as UE likes to re-organize whole systems between engine versions).

    Leave a comment:


  • replied
    A 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:


  • replied
    Hey 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:


  • replied
    Originally posted by ExtraLifeMatt View Post
    Able 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.
    Did that solve the channeling active issue I was having?

    Leave a comment:


  • replied
    Able 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).
    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.
    Last edited by ExtraLifeMatt; 01-28-2021, 09:34 PM.

    Leave a comment:


  • replied
    Yeah, pretty sure
    Originally 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);
    }
    So likely GetActorEyesViewPoint (which uses the controller pitch/rotation IIRC) isn't returning what you expect.
    Thank you much. That is the case, now to figure out why its not replicating...

    Leave a comment:


  • replied
    Originally posted by jhirsh View Post
    Sorry 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
    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);
    }
    So likely GetActorEyesViewPoint (which uses the controller pitch/rotation IIRC) isn't returning what you expect.

    Leave a comment:


  • replied
    Sorry 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:


  • replied
    Originally 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"));
    }
    Awesome thanks much, just got around to looking at this. Im not seeing a member variable m_location. I do see m_SpawnLocation though. Just in case someone else runs into this in the future.

    Leave a comment:


  • replied
    Originally 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?
    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:


  • replied
    Originally posted by ExtraLifeMatt View Post

    ARGGHHH, I see the problem. That field isn't hooked up internally. I'll get a bug fix submitted.
    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?

    Leave a comment:


  • replied
    Originally 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.

    Click image for larger version

Name:	log.jpg
Views:	90
Size:	137.7 KB
ID:	1855939
    ARGGHHH, I see the problem. That field isn't hooked up internally. I'll get a bug fix submitted.

    Leave a comment:


  • replied
    Originally 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.
    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.

    Click image for larger version

Name:	log.jpg
Views:	90
Size:	137.7 KB
ID:	1855939

    Leave a comment:


  • replied
    Originally 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.

    Click image for larger version

Name:	AbleBP.jpg
Views:	85
Size:	292.9 KB
ID:	1855888 ‚Äč

    The prints are outputting the expected world location and rotations, but it is spawning the actor at a zero'd transform.
    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:

Working...
X