tag:blogger.com,1999:blog-1272803659321539598.post992555271039758539..comments2024-03-28T00:38:03.399-07:00Comments on Digesting Duck: Very Temporary Obstacle AvoidanceMikko Mononenhttp://www.blogger.com/profile/11900996590678707801noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-1272803659321539598.post-68449298255382614942012-01-24T21:18:35.754-08:002012-01-24T21:18:35.754-08:00@Chris, I see now, I failed to read your ascii a l...@Chris, I see now, I failed to read your ascii a little :)<br /><br />I've tested few heuristics in the past, for example at some point I calculated the obstacle size perpendicular to the desired movement direction. I remember struggling a lot in certain cases where the agent would just oscillate between a couple of almost as good choices. Your idea about considering the whole cluster sounds good.Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-14646667993218179482012-01-24T14:04:16.556-08:002012-01-24T14:04:16.556-08:00Are you speaking of a single circular obstacle, wh...Are you speaking of a single circular obstacle, where the distance to each tangential point will always be equal? <br /><br />What about non-circular obstacles, such as a single rectangle (I tried to illustrate a rectangle in the diagram, but failed) or even a large cluster of circular obstacles, where the distance to each tangential point is not equal? I imagine some additional steps beyond a distance estimation would be required in these cases, but nothing comes to mind yet!Chrishttps://www.blogger.com/profile/05219221234955709780noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-23782949268466427352012-01-24T13:40:52.029-08:002012-01-24T13:40:52.029-08:00The distance from then agent to the tangential poi...The distance from then agent to the tangential points is the same for left and right tangent. To break ties and the singularity case really close to the obstacle, I think I used similar side bias as the HRVO uses, that is, one side is favored over the other. Or it could be that I just did not handle that case in my proto.Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-87041101034186864742012-01-24T13:24:26.172-08:002012-01-24T13:24:26.172-08:00Hi Mikko,
You mentioned an approach to select whi...Hi Mikko,<br /><br />You mentioned an approach to select which tangent of an obstacle an agent should seek, based on whichever tangent results in the shortest distance from the agent to the tangent to the goal.<br /><br />Is that approach always correct? What about the following case?<br /><br />............<br />......G.....<br />............<br />.L--------|.<br />.|........|.<br />.|....0...|.<br />.|........|.<br />AR--------|.<br />............<br /><br />(Agent 'A' is trying to reach goal 'G'. Obstacle 'O' is obstructing the path. The agent may select either left tangent 'L' or right tangent 'R'.)<br /><br />When an agent gets very close to a tangent, the agent-to-tangent distance approaches zero, leaving the tangent-to-goal distance as the dominant term. I find this results in the incorrect tangent being selected ('R' in the diagram) since the correct tangent ('L' in the diagram) has a slightly greater total distance.<br /><br />How does one reject these incorrect tangents? Are there further steps required when selecting tangents?<br /><br />Thanks!Chrishttps://www.blogger.com/profile/05219221234955709780noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-45912270833970967952011-02-12T23:45:17.535-08:002011-02-12T23:45:17.535-08:00Tomat, There area a couple of other cases in the D...Tomat, There area a couple of other cases in the DetourCrowd that needs to handle similar cases, like how to handle animations/game-logic during off-mesh connection (aka jump link), and how to handle dead-locks with anima/game-logic.<br /><br />My plan is to detect those cases, find potential locations to resolve the cases, and then build a list of agents which need to be updated by the game. That way the game can poll the list of agents which needs to be update in some special way and things will be fast. Basically the game just needs to update the animations.<br /><br />Namreeb, Yes and no. Some games, which have simpler scnerarios and have just few obstacles here and should work fine with this method. I will keep working on the "correct" method too of regenerating the navmesh.Mikko Mononenhttps://www.blogger.com/profile/11900996590678707801noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-42217640301957352732011-02-12T17:36:37.394-08:002011-02-12T17:36:37.394-08:00Is this intended to replace the regeneration of a ...Is this intended to replace the regeneration of a navigation mesh? Or augment it for "even more temporary" obstacles?namreebhttps://www.blogger.com/profile/13477975788225074014noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-7635839863945440012011-02-12T13:16:50.234-08:002011-02-12T13:16:50.234-08:00and with power of your experience, how would you d...and with power of your experience, how would you do such interaction of game-logic\animation <-> pathfinder in this case<br />>>the pathfinder cannot help you since it does not know about the blocker<br />ie character could use jump-over anims to pass barrels <br /><br />+ via callback in pathfinder on each obstacle<br />+ completely offload all work ( obstacle processing, animation choose ) to custom game-logic<br />+ custom pathfinder with integrated game-logic, to able to use pathfinder related dataTomathttps://www.blogger.com/profile/02952992582989049005noreply@blogger.comtag:blogger.com,1999:blog-1272803659321539598.post-33513924046067756022011-02-12T09:05:42.488-08:002011-02-12T09:05:42.488-08:00love the pics and videos you put into your blog, i...love the pics and videos you put into your blog, it show your interest in the subject!Unknownhttps://www.blogger.com/profile/04513509530511673910noreply@blogger.com