Skip to content
This repository has been archived by the owner on Mar 9, 2021. It is now read-only.

[canary] Unable to see #2586

Open
3 tasks done
Chronos77 opened this issue Feb 7, 2021 · 5 comments
Open
3 tasks done

[canary] Unable to see #2586

Chronos77 opened this issue Feb 7, 2021 · 5 comments

Comments

@Chronos77
Copy link
Contributor

Chronos77 commented Feb 7, 2021

  • I have searched existing issues (https://github.com/topaz-next/topaz/issues) to see if the issue has already been opened
  • I have checked the commit log to see if the issue has been resolved since my server was last updated
  • This issue occurs on canary branch (if other branch, please specify)

Additional Information (Steps to reproduce/Expected behavior) :

Sometimes i have an unable to see when i want to range. Some friends have the same when they start fighting a mob when we after we move it's ok

Cristena.2021-02-07.12-53-12.mp4
@Chronos77
Copy link
Contributor Author

I bring a little more precision on this ticket. When I reported the problem, @zach2good you thought it came from the elevation and indeed I have the impression that this is it, because sometimes to hit the mob I have to be at the same elevation otherwise it puts me unable to see

@TeoTwawki
Copy link
Contributor

TeoTwawki commented Feb 14, 2021

has to do with the raycast being done form each entities feet, so the tiniest of bumps results in line of sight breakage and this is all but guaranteed on most slopes.

Note that I have this problem on retail but far less often (on retail I see it in east altepa trying to engage cactaurs)

@zach2good
Copy link
Contributor

https://docs.unrealengine.com/en-US/API/Runtime/Navmesh/Detour/dtNavMeshQuery/raycast/index.html

Casts a 'walkability' ray along the surface of the navigation mesh from the start position toward the end position.
This method is meant to be used for quick, short distance checks.

The raycast ignores the y-value of the end position. (2D check.) This places significant limits on how it can be used. For example:

Consider a scene where there is a main floor with a second floor balcony that hangs over the main floor. So the first floor mesh extends below the balcony mesh. The start position is somewhere on the first floor. The end position is on the balcony.

The raycast will search toward the end position along the first floor mesh. If it reaches the end position's xz-coordinates it will indicate FLT_MAX (no wall hit), meaning it reached the end position. This is one example of why this method is meant for short distance checks.

We should probably be doing a very vague distance check between the two points, and also filtering by Y distance (Z in FFXI land).

I haven't looked very close into it, but we might be able to use dtNavMeshQuery::findStraightPath to navigate a very skinny corridor towards the target:
https://docs.unrealengine.com/en-US/API/Runtime/Navmesh/Detour/dtNavMeshQuery/findStraightPath/index.html

@zach2good
Copy link
Contributor

Also, raycast isn't even cheap, it's just as expensive as short findPath or point validation

@TeoTwawki
Copy link
Contributor

TeoTwawki commented Feb 15, 2021

We should probably be doing a very vague distance check between the two points, and also filtering by Y distance (Z in FFXI land).

I haven't looked very close into it, but we might be able to use dtNavMeshQuery::findStraightPath to navigate a very skinny corridor towards the target:
https://docs.unrealengine.com/en-US/API/Runtime/Navmesh/Detour/dtNavMeshQuery/findStraightPath/index.html

the current check was added to stop me from casting form behind minor obstacles/around corners. So we want whatever can give is a straight line with no further moves between 2 points as cheaply as we can. 👍

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants