1 / 53

Dynamic Navmesh: AI in the Dynamic Environment of Splinter Cell : Conviction

Dynamic Navmesh: AI in the Dynamic Environment of Splinter Cell : Conviction. Martin Walsh. Splinter Cell: Conviction Ubisoft Montréal. Dynamic Environment. Lots of objects Explosions Lots of NPCs Dynamic Traps. AI. React Interact Navigate. Overview. Compare Development

karik
Download Presentation

Dynamic Navmesh: AI in the Dynamic Environment of Splinter Cell : Conviction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dynamic Navmesh: AI in the DynamicEnvironment of SplinterCell: Conviction Martin Walsh Splinter Cell: Conviction Ubisoft Montréal

  2. Dynamic Environment Lots of objects Explosions Lots of NPCs Dynamic Traps

  3. AI React Interact Navigate

  4. Overview Compare Development Problems Cool Features

  5. Current Solutions Grid-based Two-tiered

  6. Two-Tiered Solutions Detailed Inconsistent

  7. Why a Dynamic Navmesh? One-tier solution NPCs instantly aware

  8. Dynamic Cover 1

  9. Dynamic Cover 2

  10. Blocked Paths

  11. Overview Compare Development Problems Cool Features

  12. What is a Dynamic Navmesh?

  13. Navmesh 2D representation of a 3D world • Triangles • Vertices • Edges • Walkable area • Extra information

  14. What Makes it Dynamic Modified in real time Fast Robust

  15. Basic Operations Adding Removing

  16. Adding an Object : Take 1 Cutting a hole

  17. Adding an Object -- In Action

  18. Adding an Object -- Paradigm Rip out a chunk Cut the hole Replug the new chunks

  19. Adding an Object -- Pipeline

  20. Bounding volume

  21. Points of Volume

  22. Points projected onto X-Y plane

  23. Convex hull

  24. Expanded convex hull

  25. Retessellated Navmesh

  26. Get Affected Navmesh Contours Find affected Triangles Make Homogeneous contours

  27. Combine Contours and Retessellate CSG Operation Tessellator

  28. Plug Triangles into Navmesh Will match up vertex for vertex No floating point comparisons Vertex pools Local border recalculation

  29. Removing an Object How can you plug up a hole?

  30. Removing an Object: Take 1 Use “Undo” to remove object

  31. Removing an Object: Take 2 Undoing is free but redoing is expensive What about subdividing?

  32. Removing an Object: Take 3 But first…

  33. Adding an Object: Take 2 How do you add an object so that you can remove it later?

  34. Hole vs. Patch Loss of information (Hole) Information retained (Patch)

  35. Removing an Object: Take 3 Un-tag affected “Patch” triangles Vertex clean-up

  36. Overview Compare Development Problems Cool Features

  37. Plugging Problem Vertex too close to edge of contour Floating point imprecision

  38. Degenerate Triangles Produced by tessellator (or bad input) Bad for Robustness

  39. Output Modification Angle-optimal triangulation Worked at first…

  40. Degenerate Triangles Return Stressing the system exposed problems Degenerate faces

  41. Input modification Control your intersection vertices Use vertex welding

  42. Robustness Recap Input/output modification Avoid floating point comparison Control your vertices

  43. Performance Recap Localize Pool Partition Thread

  44. Overview Compare Development Problems Cool Features

  45. The “Patch” system Allows for new solutions to AI problems

  46. Getting Stuck

  47. Getting Unstuck

  48. Interaction Based on State Patrol Combat Plow through small obstacles Bash doors • Avoid small obstacles • Open doors

  49. Guard and Civilians

  50. Don’t Be Omniscient Blocked door

More Related