Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Apply radial damage node doesn't damage actors

My actors to which I am trying to apply damage have a capsule component (They are inherited from the Character unreal standart class). When capsule radius or height is big and actor's location vector doesn't overlap with radial damage, but its capsule does, my actor doesn't get any damage (Event AnyDamage isn't called). I have my own collision channel, my own prevention channel. I have tried all 3 ^ 3 settings for those 2 and Visibility channel.

Product Version: UE 4.15
more ▼

asked Mar 02 '17 at 08:46 AM in Blueprint Scripting

avatar image

630 12 14 52

avatar image Erumaru Mar 02 '17 at 08:58 AM

All other actor components have NoCollision preset.

avatar image Black Phoenyx Mar 02 '17 at 09:33 AM

How do you have the apply radial damage setup, can you post a screenshot?

avatar image Erumaru Mar 02 '17 at 09:35 AM

alt text

1.png (135.1 kB)
avatar image Black Phoenyx Mar 02 '17 at 09:43 AM

Why are you setting the damage to a negative value? it shouldn't be a negative value. Disconnect the pins from the breakspell and add manual values for testing, set the radius to something like 500 and the damage to a positive value like 100 or whatever values you are wanting to achieve with the damage and add a print string to you EventAnyDamage to see if it is firing.

avatar image Erumaru Mar 02 '17 at 09:50 AM

I have all damage/heal numbers in datatable, you are going wrong way, because our logic works for other actors. Only actors with capsule radius bigger than radial damage radius don't fire EventAnyDamage.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Apparently, after some experimenting on this, I found the possible source of this issue. ApplyRadialDamage calls ApplyRadialDamageWithFalloff, which traces lines to all overlapping components on Damage Prevention Channel for all dynamic objects. If trace line does not hit, then it uses the origin of the bounding box of the component. Then, I believe, hit location of this trace is passed to function, that calculates falloff. If the distance between hit location and origin bb is higher than the damage radius, function sets the actual damage to 0 and returns as if you passed 0 to base damage.

Solution: If your actor collision is bigger than the damage range, then you should set your collision channel to block on victim. Also, make sure that your component's collision is not static, since ApplyRadialDamage ignores it. I also recommend to ensure that collision components inside your actor do not overlap with each other, or at least their origins are outside of other collisions.

more ▼

answered Mar 02 '17 at 02:21 PM

avatar image

127 2 5 11

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question