├── .gitignore ├── .vsconfig ├── Config ├── DefaultEditor.ini ├── DefaultEngine.ini ├── DefaultGame.ini └── DefaultInput.ini ├── Content ├── NewMap.umap ├── NewMap_HLOD0_Instancing.uasset ├── NewPCGGraph.uasset ├── PCG_GetStartEndPoints.uasset ├── PCG_Pathfinding.uasset ├── __ExternalActors__ │ └── NewMap │ │ ├── 0 │ │ ├── 19 │ │ │ └── P6TW7XC9AP5UWY79STK9GK.uasset │ │ ├── 65 │ │ │ └── 3U8C974D5MOQ8LAHOO4OCF.uasset │ │ ├── 0E │ │ │ └── E7UFHHQZ7B8TLAL6Y74JRC.uasset │ │ ├── 2Y │ │ │ └── UYA7A5HTQTJSRWJ4MK2WT6.uasset │ │ ├── 4M │ │ │ └── EE3LUXOWULAYGXN1IPS4S2.uasset │ │ ├── BQ │ │ │ └── 39OTWHVDSI751PAH6731ID.uasset │ │ ├── GP │ │ │ └── 29WASR1BMNC6IXHW8I5KZ8.uasset │ │ ├── MY │ │ │ └── K9ZUEA69K5KJSH5045MJR1.uasset │ │ ├── QY │ │ │ └── YUZCOR8LUXX6PIBH0Q0BO9.uasset │ │ └── S7 │ │ │ └── BULBFMUS7ADZJMH54QGDK9.uasset │ │ ├── 1 │ │ ├── 40 │ │ │ └── 44UC22RK64JP3YG9GR8ZH4.uasset │ │ ├── 0H │ │ │ └── BMRPGXAA4ISZUWMZHYLHZI.uasset │ │ ├── 3C │ │ │ └── PEH7TW33XZKZ1EF9JBCDPX.uasset │ │ ├── 4E │ │ │ └── Q1KRQ2YOUWFAZ0SNJ2S0IF.uasset │ │ ├── 8Q │ │ │ └── VXH4MI02ODW8DKNLA2MOK3.uasset │ │ ├── DT │ │ │ └── ZX3WQ173AO0DO5BNMZ4U3K.uasset │ │ ├── DX │ │ │ └── KXAGD7OP6IEQ3K8LWI86RL.uasset │ │ ├── F8 │ │ │ └── S0M3NFTEJWDWQXLH8WL3P0.uasset │ │ ├── FP │ │ │ └── E0070ZPQ0510UOASJSCVAJ.uasset │ │ ├── GT │ │ │ └── JVWYK4152W5HDPU0DFIHL8.uasset │ │ ├── J6 │ │ │ └── P0NXNHI04JBPOHH6OHIDSK.uasset │ │ ├── LJ │ │ │ └── SX9JKDV4UA15T0E1TTFAVZ.uasset │ │ ├── R1 │ │ │ └── OHRQN7RF5THM8Z6O6262I4.uasset │ │ └── YN │ │ │ └── 85792LT2Y93I704I1JYP1K.uasset │ │ ├── 2 │ │ ├── 97 │ │ │ └── 3V83DZXP0WILS8G17CM3NX.uasset │ │ ├── 3Q │ │ │ └── WL4B65TFTACMIMHM4H03A7.uasset │ │ ├── 3T │ │ │ └── CK3DVSRDA9WTQU5TC2XO2V.uasset │ │ ├── 4C │ │ │ └── VZIZRHQCO6B7KG8DEJKZAU.uasset │ │ ├── 4X │ │ │ └── X4NPSX8ZUWI1DPH52YEUUP.uasset │ │ ├── 5S │ │ │ └── LKWFWDPYQSEQSQPB66JM48.uasset │ │ ├── IG │ │ │ └── Y65WPOHBQW42TNWBNMQ1L3.uasset │ │ ├── J7 │ │ │ └── QO5TQORWCXORVK1051S8GH.uasset │ │ ├── RD │ │ │ └── GHAKQAVACU5JIZXY0Y8JB5.uasset │ │ └── WD │ │ │ └── GI741NDVNZBKI2A7TXX224.uasset │ │ ├── 3 │ │ ├── 6N │ │ │ └── VZU403KFJ6UJQ2M3VY6736.uasset │ │ ├── 7K │ │ │ └── TMNUAYLY4F5HL33COW5OC3.uasset │ │ ├── AW │ │ │ └── 90QVEWVNXY6N07CS9SHQPM.uasset │ │ ├── DX │ │ │ └── JANFZ62JMG0U1Z3UNCQVKV.uasset │ │ ├── GN │ │ │ └── GA7D4CR7K6V687F7J61C3N.uasset │ │ ├── QY │ │ │ └── FL16ITLR22643N9B35THAR.uasset │ │ └── XV │ │ │ └── FQZFA2ZLA9XBN7XWV0QIN8.uasset │ │ ├── 4 │ │ ├── 5W │ │ │ └── 6XNNGY07XFQS1KA8BSIAGI.uasset │ │ ├── 6W │ │ │ └── J14X55NXI3UVJMVVIW1NAN.uasset │ │ ├── D8 │ │ │ └── YMDE4WERKLNXIT8TVTH5OW.uasset │ │ ├── FE │ │ │ └── 5RLM209RIBOSDPMFSWD7BM.uasset │ │ ├── OC │ │ │ └── ZNLH3RF59GXIC6NLPXICJV.uasset │ │ ├── OT │ │ │ └── Y23P0KHN1XII71UX7D1H8Q.uasset │ │ ├── Q7 │ │ │ └── HYGURXU7M62N8WAUIXLWPQ.uasset │ │ ├── Q8 │ │ │ └── QNW4NKCF3JB30PDQLYNK04.uasset │ │ └── TV │ │ │ └── 0XXSVY1Y0D2HIHA43BVMPH.uasset │ │ ├── 5 │ │ ├── DJ │ │ │ └── PLU0RE738EMG7CF7VC8D9S.uasset │ │ ├── J7 │ │ │ └── A965JVJJK99ZV7RSG0A80Y.uasset │ │ ├── K5 │ │ │ └── N5PQOIOOZA749OR27OS0F7.uasset │ │ ├── M2 │ │ │ └── 8TXEZSVIN8XJXFAAPYJ9PF.uasset │ │ ├── Q5 │ │ │ └── 9034HM4Y3YU11DE4XNPRA9.uasset │ │ ├── RD │ │ │ └── PZ5XNZU157V0GDAJAXC2DQ.uasset │ │ └── XG │ │ │ └── 8DSW2V35VY2X5SMHCJ0A83.uasset │ │ ├── 6 │ │ ├── 1C │ │ │ └── XX81YC0HUFD6L3IX7RWMS0.uasset │ │ ├── 2O │ │ │ └── DXFGF2WM4JJABUV0FET9FV.uasset │ │ ├── 5X │ │ │ └── 42927YT2PIUFMXJ9TCYHNH.uasset │ │ ├── 8V │ │ │ └── MRZ7RQN5KANFM03I7EKRCC.uasset │ │ ├── AA │ │ │ └── NURB0U7U9ZV4H4LX7FT8T2.uasset │ │ ├── FM │ │ │ └── N6HUV654J3L83XHWCME1XN.uasset │ │ ├── GW │ │ │ └── TAVO56E9B1HVH1F45RLBIA.uasset │ │ ├── HH │ │ │ └── WEV2UZOW80WMJE695BD7Q8.uasset │ │ ├── HN │ │ │ └── Y3GF0HWTXA7DHH1FL3IF9R.uasset │ │ └── UX │ │ │ └── 1HONC7HVU91I909A4N80W2.uasset │ │ ├── 7 │ │ ├── 69 │ │ │ └── K2DUYEPPDEHF7DXTMITAO4.uasset │ │ ├── 8U │ │ │ └── 4ND4ZK6J06I5L4DPSTPYW9.uasset │ │ ├── BH │ │ │ └── JV2GOVBPB8GZ9MQUICHC9S.uasset │ │ ├── OX │ │ │ └── U1S14RGV0J3HYBLRGYLFIH.uasset │ │ ├── P9 │ │ │ └── 5INQQWN21QET7O4P293LRP.uasset │ │ ├── YH │ │ │ └── J8JQXJ67F9KX47CCDA8ZMF.uasset │ │ ├── ZI │ │ │ └── H9Z8XD8BJTDFP4C3J5UYO5.uasset │ │ └── ZT │ │ │ └── XQN8LZWIDWMWIMOBUZOJDH.uasset │ │ ├── 8 │ │ ├── 03 │ │ │ └── XUBA90OKAR0F82M61W3CX8.uasset │ │ ├── 6Q │ │ │ └── 5E0J4DYSYB0DUPM0H3UFMJ.uasset │ │ ├── B3 │ │ │ └── RBYC3BLDB8MGWKK1EO1GW0.uasset │ │ ├── ED │ │ │ └── 4G06FUR85LXRX1UCMOAFBE.uasset │ │ ├── FF │ │ │ └── 4NBZKC5PVQODH9SVSYPY1E.uasset │ │ ├── KQ │ │ │ └── APFM7ONOEVP1TBHZZ5VTDA.uasset │ │ ├── PW │ │ │ └── B3NPG0KFON6BVW5ECZJSUI.uasset │ │ ├── RB │ │ │ └── UWT2EIZPYQICCJ0JNTZ85V.uasset │ │ └── V0 │ │ │ └── ZL0SLSEYGYT07XDJ00EIUF.uasset │ │ ├── 9 │ │ ├── 53 │ │ │ └── CHPLQ79FFGJWC3VACZJA90.uasset │ │ ├── 2R │ │ │ └── 7Y8MMR44XVULYO5P3YZL6Q.uasset │ │ ├── F0 │ │ │ └── 2PBKWHHRFBG1A4L1JXPK2N.uasset │ │ ├── KB │ │ │ └── H67VGU7BHNHPWWQEMQJ41J.uasset │ │ ├── MW │ │ │ └── 33JI6228IHMKP046YQI3NM.uasset │ │ ├── P8 │ │ │ └── B0WWH2443MBX8KNWBXHRF4.uasset │ │ ├── R1 │ │ │ └── 8BCEFBDGK0H81DULB6PL99.uasset │ │ ├── RS │ │ │ └── RPVI13LNVTY93V3EQ1Y4FV.uasset │ │ ├── S0 │ │ │ └── ZQAAAMNNZKH0GPXO0DBFMJ.uasset │ │ ├── TG │ │ │ └── JJD8SHJCMNFNMC34COATAM.uasset │ │ ├── TR │ │ │ └── EQW5T4BO9JJ206FV4WNNES.uasset │ │ ├── X7 │ │ │ └── GV76BBB2V0EFHV7ELK9A0Y.uasset │ │ └── XH │ │ │ └── RE3KCKBHLMM1GG0PY3DP2X.uasset │ │ ├── A │ │ ├── 36 │ │ │ └── SPYD0PSGU4M3NK7DI5RDRM.uasset │ │ ├── 97 │ │ │ └── TJ4C9PDLS1GUU3HZVA9VAW.uasset │ │ ├── 6Q │ │ │ └── T187Z8E2C6CPJLXCH06KRJ.uasset │ │ ├── DN │ │ │ └── K5XHNT2TJPQ6HM9TN0HG8R.uasset │ │ ├── HQ │ │ │ └── 88P9BDP4TVKYFOZOJN3QMQ.uasset │ │ ├── IO │ │ │ └── 8Z6TE7XPJH0N4NGDM5G8FO.uasset │ │ ├── KF │ │ │ └── 0HUUB8ZWRIJMRUKUDDMH1E.uasset │ │ ├── NH │ │ │ └── 500JBYKPF78U8D5OIH4ZTV.uasset │ │ ├── OY │ │ │ └── ET64S8Y7B7A56RDOXEXET4.uasset │ │ └── R1 │ │ │ └── 6S23OQXPMF10HYXLB9OEIP.uasset │ │ ├── B │ │ ├── 09 │ │ │ └── QCU8K2REN785K74C0JAHL8.uasset │ │ ├── 1O │ │ │ └── W74LG5Z5X560FBYOC0UL54.uasset │ │ ├── 8P │ │ │ └── CM2NN20XZG7JOWND4OKSFF.uasset │ │ ├── AQ │ │ │ └── TIHXLB5639NV4RM260YDTW.uasset │ │ ├── BV │ │ │ └── STFWH78SWHO1BT3JB2S9GT.uasset │ │ ├── EO │ │ │ └── 2UN44M3CSTF66URSISACO7.uasset │ │ ├── JN │ │ │ └── Y3DIUNQ632SK7RYD4GY9QB.uasset │ │ ├── MX │ │ │ └── VD8G2R3DRQURL3L2N8FK5A.uasset │ │ ├── OQ │ │ │ └── FH4UWQ2MQA5KPUZVXS23LJ.uasset │ │ ├── OZ │ │ │ └── 7UWDO77CF7TNVQ9BB75XCF.uasset │ │ ├── P6 │ │ │ └── UDWQC9DWW7DL22CPJ4RVSI.uasset │ │ ├── PP │ │ │ └── V9CAJRQOOCARULA8KSKFKF.uasset │ │ └── QO │ │ │ └── 2LS1PO2KB0MPBU3Q10JQLS.uasset │ │ ├── C │ │ ├── 7A │ │ │ └── 579A09SC2JTS2H6LSR13PL.uasset │ │ ├── H2 │ │ │ └── M58JIDBQC2JEOWYFQ17JSY.uasset │ │ ├── MP │ │ │ └── 7SW071I54YKZ7WANNW9ZNF.uasset │ │ ├── MZ │ │ │ └── 99H285CLZ96HCTKT3S7S79.uasset │ │ ├── Y6 │ │ │ └── L8FAOYPHJNQSTCW3XMMSJT.uasset │ │ ├── Z1 │ │ │ └── 5JJ1TP1XPKW9WSX7HGUMJU.uasset │ │ └── ZU │ │ │ └── N5WZ7N63Q2DBG05ZT1Y94V.uasset │ │ ├── D │ │ ├── 8Z │ │ │ └── 4LSU7JRUL69YYIDJGSE35W.uasset │ │ ├── BG │ │ │ └── Y8EZ2AXLMEN39WTAPXB6VM.uasset │ │ ├── CY │ │ │ └── 79499WIO2JEGDOHXKAVE2Q.uasset │ │ ├── JR │ │ │ └── WB3NI9RNBS8ZM7NAOBCUT1.uasset │ │ ├── T6 │ │ │ └── ELJ3HI994B42IQIWQEZNGD.uasset │ │ ├── WK │ │ │ └── NERX0MWYRICL228ZB8J0QW.uasset │ │ ├── Y8 │ │ │ └── 6BWZ3L18E7BG1L4FKVUZHM.uasset │ │ └── YE │ │ │ └── SR6HPODQM7KP47H3B60IL3.uasset │ │ ├── E │ │ ├── 7Z │ │ │ └── D90LOZ6OX06T5XEND5R79L.uasset │ │ ├── HU │ │ │ └── QBOG0EUDUJ3I7CKDLU6SM5.uasset │ │ ├── N8 │ │ │ └── PFO7BDZ0JAA14BRARTV0S0.uasset │ │ ├── SK │ │ │ └── 3B5158OKASMIKGFDZC9KRF.uasset │ │ └── X4 │ │ │ └── I3YAKOIE9OZW8RGU76MLDU.uasset │ │ └── F │ │ └── 47 │ │ └── SRE2F10IBLNCEHWHDB0R5Q.uasset └── __ExternalObjects__ │ └── NewMap │ ├── 1 │ └── RU │ │ └── 3FHCA0FW5IIFSQ2O54UZA9.uasset │ ├── 4 │ └── OA │ │ └── KV5NVW6RVGCY40C13H5F98.uasset │ ├── 7 │ └── AM │ │ └── 99MZXH85XVTY7NU0J1OJ8N.uasset │ └── 9 │ ├── 20 │ └── PV6HCV4P0GX9P77B63TXTQ.uasset │ └── EW │ └── DIR8ZHVIQ96U3XBY7PSRNI.uasset ├── DemoPCGGraphBP.png ├── LICENSE ├── PCGTest52.uproject ├── Platforms └── HoloLens │ └── Config │ └── HoloLensEngine.ini ├── README.md ├── Source ├── PCGTest52.Target.cs ├── PCGTest52 │ ├── CustomPoint.h │ ├── PCGPathfindHelper.cpp │ ├── PCGPathfindHelper.h │ ├── PCGTest52.Build.cs │ ├── PCGTest52.cpp │ ├── PCGTest52.h │ ├── PCGTest52GameModeBase.cpp │ ├── PCGTest52GameModeBase.h │ └── PriorityQueue.h └── PCGTest52Editor.Target.cs └── demo.webm /.gitignore: -------------------------------------------------------------------------------- 1 | # Visual Studio 2015 user specific files 2 | .vs/ 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | 22 | # Compiled Static libraries 23 | *.lai 24 | *.la 25 | *.a 26 | *.lib 27 | 28 | # Executables 29 | *.exe 30 | *.out 31 | *.app 32 | *.ipa 33 | 34 | # These project files can be generated by the engine 35 | *.xcodeproj 36 | *.xcworkspace 37 | *.sln 38 | *.suo 39 | *.opensdf 40 | *.sdf 41 | *.VC.db 42 | *.VC.opendb 43 | 44 | # Precompiled Assets 45 | SourceArt/**/*.png 46 | SourceArt/**/*.tga 47 | 48 | # Binary Files 49 | Binaries/* 50 | Plugins/*/Binaries/* 51 | 52 | # Builds 53 | Build/* 54 | 55 | # Whitelist PakBlacklist-.txt files 56 | !Build/*/ 57 | Build/*/** 58 | !Build/*/PakBlacklist*.txt 59 | 60 | # Don't ignore icon files in Build 61 | !Build/**/*.ico 62 | 63 | # Built data for maps 64 | *_BuiltData.uasset 65 | 66 | # Configuration files generated by the Editor 67 | Saved/* 68 | 69 | # Compiled source files for the engine to use 70 | Intermediate/* 71 | Plugins/*/Intermediate/* 72 | 73 | # Cache files for the editor to use 74 | DerivedDataCache/* 75 | Content/ParagonGreystone/ 76 | Packaged/ 77 | -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.Net.Component.4.6.2.TargetingPack", 5 | "Microsoft.VisualStudio.Component.VC.14.34.17.4.x86.x64", 6 | "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", 7 | "Microsoft.VisualStudio.Component.Windows10SDK", 8 | "Microsoft.VisualStudio.Workload.CoreEditor", 9 | "Microsoft.VisualStudio.Workload.ManagedDesktop", 10 | "Microsoft.VisualStudio.Workload.NativeDesktop", 11 | "Microsoft.VisualStudio.Workload.NativeGame" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Config/DefaultEditor.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Config/DefaultEditor.ini -------------------------------------------------------------------------------- /Config/DefaultEngine.ini: -------------------------------------------------------------------------------- 1 | 2 | 3 | [/Script/EngineSettings.GameMapsSettings] 4 | GameDefaultMap=/Game/NewMap.NewMap 5 | EditorStartupMap=/Game/NewMap.NewMap 6 | 7 | [/Script/WindowsTargetPlatform.WindowsTargetSettings] 8 | DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 9 | -D3D12TargetedShaderFormats=PCD3D_SM5 10 | +D3D12TargetedShaderFormats=PCD3D_SM6 11 | -D3D11TargetedShaderFormats=PCD3D_SM5 12 | +D3D11TargetedShaderFormats=PCD3D_SM5 13 | Compiler=Default 14 | AudioSampleRate=48000 15 | AudioCallbackBufferFrameSize=1024 16 | AudioNumBuffersToEnqueue=1 17 | AudioMaxChannels=0 18 | AudioNumSourceWorkers=4 19 | SpatializationPlugin= 20 | SourceDataOverridePlugin= 21 | ReverbPlugin= 22 | OcclusionPlugin= 23 | CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) 24 | CacheSizeKB=65536 25 | MaxChunkSizeOverrideKB=0 26 | bResampleForDevice=False 27 | MaxSampleRate=48000.000000 28 | HighSampleRate=32000.000000 29 | MedSampleRate=24000.000000 30 | LowSampleRate=12000.000000 31 | MinSampleRate=8000.000000 32 | CompressionQualityModifier=1.000000 33 | AutoStreamingThreshold=0.000000 34 | SoundCueCookQualityIndex=-1 35 | 36 | [/Script/HardwareTargeting.HardwareTargetingSettings] 37 | TargetedHardwareClass=Desktop 38 | AppliedTargetedHardwareClass=Desktop 39 | DefaultGraphicsPerformance=Scalable 40 | AppliedDefaultGraphicsPerformance=Scalable 41 | 42 | [/Script/Engine.RendererSettings] 43 | r.Mobile.ShadingPath=0 44 | r.Mobile.SupportGPUScene=False 45 | r.Mobile.AntiAliasing=1 46 | r.Mobile.FloatPrecisionMode=0 47 | r.Mobile.AllowDitheredLODTransition=False 48 | r.Mobile.VirtualTextures=False 49 | r.DiscardUnusedQuality=False 50 | r.Shaders.CompressionFormat=2 51 | r.AllowOcclusionQueries=True 52 | r.MinScreenRadiusForLights=0.030000 53 | r.MinScreenRadiusForDepthPrepass=0.030000 54 | r.MinScreenRadiusForCSMDepth=0.010000 55 | r.PrecomputedVisibilityWarning=False 56 | r.TextureStreaming=True 57 | Compat.UseDXT5NormalMaps=False 58 | r.VirtualTextures=False 59 | r.VT.EnableAutoImport=True 60 | r.VirtualTexturedLightmaps=False 61 | r.VT.AnisotropicFiltering=False 62 | bEnableVirtualTextureOpacityMask=False 63 | r.VT.TileSize=128 64 | r.VT.TileBorderSize=4 65 | r.vt.FeedbackFactor=16 66 | WorkingColorSpaceChoice=sRGB 67 | RedChromaticityCoordinate=(X=0.640000,Y=0.330000) 68 | GreenChromaticityCoordinate=(X=0.300000,Y=0.600000) 69 | BlueChromaticityCoordinate=(X=0.150000,Y=0.060000) 70 | WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000) 71 | r.ClearCoatNormal=False 72 | r.DynamicGlobalIlluminationMethod=1 73 | r.ReflectionMethod=1 74 | r.ReflectionCaptureResolution=128 75 | r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True 76 | r.Lumen.HardwareRayTracing=False 77 | r.Lumen.HardwareRayTracing.LightingMode=0 78 | r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False 79 | r.Lumen.TraceMeshSDFs=1 80 | r.Shadow.Virtual.Enable=1 81 | r.RayTracing=False 82 | r.RayTracing.Shadows=False 83 | r.RayTracing.Skylight=False 84 | r.RayTracing.UseTextureLod=False 85 | r.PathTracing=True 86 | r.GenerateMeshDistanceFields=True 87 | r.DistanceFields.DefaultVoxelDensity=0.200000 88 | r.Nanite.ProjectEnabled=True 89 | r.AllowStaticLighting=True 90 | r.NormalMapsForStaticLighting=False 91 | r.ForwardShading=False 92 | r.VertexFoggingForOpaque=True 93 | r.SeparateTranslucency=True 94 | r.TranslucentSortPolicy=0 95 | TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) 96 | vr.VRS.HMDFixedFoveationLevel=0 97 | vr.VRS.HMDFixedFoveationDynamic=False 98 | r.CustomDepth=1 99 | r.CustomDepthTemporalAAJitter=True 100 | r.PostProcessing.PropagateAlpha=0 101 | r.DefaultFeature.Bloom=True 102 | r.DefaultFeature.AmbientOcclusion=True 103 | r.DefaultFeature.AmbientOcclusionStaticFraction=True 104 | r.DefaultFeature.AutoExposure=False 105 | r.DefaultFeature.AutoExposure.Method=0 106 | r.DefaultFeature.AutoExposure.Bias=1.000000 107 | r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True 108 | r.DefaultFeature.MotionBlur=False 109 | r.DefaultFeature.LensFlare=False 110 | r.TemporalAA.Upsampling=True 111 | r.AntiAliasingMethod=0 112 | r.MSAACount=4 113 | r.DefaultFeature.LightUnits=1 114 | r.DefaultBackBufferPixelFormat=4 115 | r.Shadow.UnbuiltPreviewInGame=True 116 | r.StencilForLODDither=False 117 | r.EarlyZPass=3 118 | r.EarlyZPassOnlyMaterialMasking=False 119 | r.Shadow.CSMCaching=False 120 | r.DBuffer=True 121 | r.ClearSceneMethod=1 122 | r.VelocityOutputPass=1 123 | r.Velocity.EnableVertexDeformation=2 124 | r.SelectiveBasePassOutputs=False 125 | bDefaultParticleCutouts=False 126 | fx.GPUSimulationTextureSizeX=1024 127 | fx.GPUSimulationTextureSizeY=1024 128 | r.AllowGlobalClipPlane=False 129 | r.GBufferFormat=1 130 | r.MorphTarget.Mode=True 131 | r.GPUCrashDebugging=False 132 | vr.InstancedStereo=False 133 | r.MobileHDR=True 134 | vr.MobileMultiView=False 135 | r.Mobile.UseHWsRGBEncoding=False 136 | vr.RoundRobinOcclusion=False 137 | r.MeshStreaming=False 138 | r.HeterogeneousVolumes=True 139 | r.WireframeCullThreshold=5.000000 140 | r.SupportStationarySkylight=True 141 | r.SupportLowQualityLightmaps=True 142 | r.SupportPointLightWholeSceneShadows=True 143 | r.SupportSkyAtmosphere=True 144 | r.SupportSkyAtmosphereAffectsHeightFog=True 145 | r.SupportCloudShadowOnForwardLitTranslucent=False 146 | r.Shadow.TranslucentPerObject.ProjectEnabled=False 147 | r.Water.SingleLayerWater.SupportCloudShadow=False 148 | r.Substrate=False 149 | r.Substrate.OpaqueMaterialRoughRefraction=False 150 | r.Substrate.Debug.AdvancedVisualizationShaders=False 151 | r.Material.RoughDiffuse=False 152 | r.Material.EnergyConservation=False 153 | r.OIT.SortedPixels=False 154 | r.SkinCache.CompileShaders=False 155 | r.SkinCache.SkipCompilingGPUSkinVF=False 156 | r.SkinCache.DefaultBehavior=1 157 | r.SkinCache.SceneMemoryLimitInMB=128.000000 158 | r.Mobile.EnableStaticAndCSMShadowReceivers=True 159 | r.Mobile.EnableMovableLightCSMShaderCulling=True 160 | r.Mobile.Forward.EnableLocalLights=True 161 | r.Mobile.Forward.EnableClusteredReflections=False 162 | r.Mobile.EnableNoPrecomputedLightingCSMShader=False 163 | r.Mobile.AllowDistanceFieldShadows=True 164 | r.Mobile.AllowMovableDirectionalLights=True 165 | r.Mobile.EnableMovableSpotlightsShadow=False 166 | r.GPUSkin.Support16BitBoneIndex=False 167 | r.GPUSkin.Limit2BoneInfluences=False 168 | r.SupportDepthOnlyIndexBuffers=True 169 | r.SupportReversedIndexBuffers=True 170 | r.Mobile.AmbientOcclusion=False 171 | r.GPUSkin.UnlimitedBoneInfluences=False 172 | r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 173 | DefaultBoneInfluenceLimit=(Default=0,PerPlatform=()) 174 | MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256))) 175 | r.Mobile.PlanarReflectionMode=0 176 | r.Mobile.SupportsGen4TAA=True 177 | bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) 178 | bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) 179 | VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor 180 | VisualizeCalibrationCustomMaterialPath=None 181 | VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale 182 | 183 | [/Script/WorldPartitionEditor.WorldPartitionEditorSettings] 184 | CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' 185 | 186 | [/Script/Engine.UserInterfaceSettings] 187 | bAuthorizeAutomaticWidgetVariableCreation=False 188 | 189 | [/Script/Engine.Engine] 190 | +ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/PCGTest52") 191 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/PCGTest52") 192 | +ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="PCGTest52GameModeBase") 193 | 194 | [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] 195 | bEnablePlugin=True 196 | bAllowNetworkConnection=True 197 | SecurityToken=FCE353F5496C20ED1B7765B1933DA443 198 | bIncludeInShipping=False 199 | bAllowExternalStartInShipping=False 200 | bCompileAFSProject=False 201 | bUseCompression=False 202 | bLogFiles=False 203 | bReportStats=False 204 | ConnectionType=USBOnly 205 | bUseManualIPAddress=False 206 | ManualIPAddress= 207 | 208 | -------------------------------------------------------------------------------- /Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | 2 | [/Script/EngineSettings.GeneralProjectSettings] 3 | ProjectID=97EB05094DAC464E5307B495333D88DE 4 | 5 | [StartupActions] 6 | bAddPacks=True 7 | InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent") 8 | -------------------------------------------------------------------------------- /Config/DefaultInput.ini: -------------------------------------------------------------------------------- 1 | [/Script/Engine.InputSettings] 2 | -AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 3 | -AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 4 | -AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 5 | -AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 6 | -AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 7 | -AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 8 | -AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 9 | +AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 10 | +AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 11 | +AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 12 | +AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 13 | +AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 14 | +AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 15 | +AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 16 | +AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 17 | +AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 18 | +AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 19 | +AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 20 | +AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 21 | +AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 22 | +AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 23 | +AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 24 | +AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 25 | +AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 26 | +AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 27 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 28 | +AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 29 | +AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 30 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 31 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 32 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 33 | +AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 34 | +AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 35 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 36 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 37 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 38 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 39 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 40 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 41 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 42 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 43 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 44 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 45 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 46 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 47 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 48 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 49 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 50 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 51 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 52 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 53 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 54 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 55 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 56 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 57 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 58 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 59 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 60 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 61 | bAltEnterTogglesFullscreen=True 62 | bF11TogglesFullscreen=True 63 | bUseMouseForTouch=False 64 | bEnableMouseSmoothing=True 65 | bEnableFOVScaling=True 66 | bCaptureMouseOnLaunch=True 67 | bEnableLegacyInputScales=True 68 | bEnableMotionControls=True 69 | bFilterInputByPlatformUser=False 70 | bShouldFlushPressedKeysOnViewportFocusLost=True 71 | bAlwaysShowTouchInterface=False 72 | bShowConsoleOnFourFingerTap=True 73 | bEnableGestureRecognizer=False 74 | bUseAutocorrect=False 75 | DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown 76 | DefaultViewportMouseLockMode=LockOnCapture 77 | FOVScale=0.011110 78 | DoubleClickTime=0.200000 79 | DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput 80 | DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent 81 | DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks 82 | -ConsoleKeys=Tilde 83 | +ConsoleKeys=Tilde 84 | +ConsoleKeys=Caret 85 | 86 | -------------------------------------------------------------------------------- /Content/NewMap.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/NewMap.umap -------------------------------------------------------------------------------- /Content/NewMap_HLOD0_Instancing.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/NewMap_HLOD0_Instancing.uasset -------------------------------------------------------------------------------- /Content/NewPCGGraph.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/NewPCGGraph.uasset -------------------------------------------------------------------------------- /Content/PCG_GetStartEndPoints.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/PCG_GetStartEndPoints.uasset -------------------------------------------------------------------------------- /Content/PCG_Pathfinding.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/PCG_Pathfinding.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/0E/E7UFHHQZ7B8TLAL6Y74JRC.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/0E/E7UFHHQZ7B8TLAL6Y74JRC.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/19/P6TW7XC9AP5UWY79STK9GK.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/19/P6TW7XC9AP5UWY79STK9GK.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/2Y/UYA7A5HTQTJSRWJ4MK2WT6.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/2Y/UYA7A5HTQTJSRWJ4MK2WT6.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/4M/EE3LUXOWULAYGXN1IPS4S2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/4M/EE3LUXOWULAYGXN1IPS4S2.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/65/3U8C974D5MOQ8LAHOO4OCF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/65/3U8C974D5MOQ8LAHOO4OCF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/BQ/39OTWHVDSI751PAH6731ID.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/BQ/39OTWHVDSI751PAH6731ID.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/GP/29WASR1BMNC6IXHW8I5KZ8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/GP/29WASR1BMNC6IXHW8I5KZ8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/MY/K9ZUEA69K5KJSH5045MJR1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/MY/K9ZUEA69K5KJSH5045MJR1.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/QY/YUZCOR8LUXX6PIBH0Q0BO9.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/QY/YUZCOR8LUXX6PIBH0Q0BO9.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/0/S7/BULBFMUS7ADZJMH54QGDK9.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/0/S7/BULBFMUS7ADZJMH54QGDK9.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/0H/BMRPGXAA4ISZUWMZHYLHZI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/0H/BMRPGXAA4ISZUWMZHYLHZI.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/3C/PEH7TW33XZKZ1EF9JBCDPX.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/3C/PEH7TW33XZKZ1EF9JBCDPX.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/40/44UC22RK64JP3YG9GR8ZH4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/40/44UC22RK64JP3YG9GR8ZH4.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/4E/Q1KRQ2YOUWFAZ0SNJ2S0IF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/4E/Q1KRQ2YOUWFAZ0SNJ2S0IF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/8Q/VXH4MI02ODW8DKNLA2MOK3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/8Q/VXH4MI02ODW8DKNLA2MOK3.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/DT/ZX3WQ173AO0DO5BNMZ4U3K.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/DT/ZX3WQ173AO0DO5BNMZ4U3K.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/DX/KXAGD7OP6IEQ3K8LWI86RL.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/DX/KXAGD7OP6IEQ3K8LWI86RL.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/F8/S0M3NFTEJWDWQXLH8WL3P0.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/F8/S0M3NFTEJWDWQXLH8WL3P0.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/FP/E0070ZPQ0510UOASJSCVAJ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/FP/E0070ZPQ0510UOASJSCVAJ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/GT/JVWYK4152W5HDPU0DFIHL8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/GT/JVWYK4152W5HDPU0DFIHL8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/J6/P0NXNHI04JBPOHH6OHIDSK.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/J6/P0NXNHI04JBPOHH6OHIDSK.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/LJ/SX9JKDV4UA15T0E1TTFAVZ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/LJ/SX9JKDV4UA15T0E1TTFAVZ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/R1/OHRQN7RF5THM8Z6O6262I4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/R1/OHRQN7RF5THM8Z6O6262I4.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/1/YN/85792LT2Y93I704I1JYP1K.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/1/YN/85792LT2Y93I704I1JYP1K.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/3Q/WL4B65TFTACMIMHM4H03A7.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/3Q/WL4B65TFTACMIMHM4H03A7.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/3T/CK3DVSRDA9WTQU5TC2XO2V.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/3T/CK3DVSRDA9WTQU5TC2XO2V.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/4C/VZIZRHQCO6B7KG8DEJKZAU.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/4C/VZIZRHQCO6B7KG8DEJKZAU.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/4X/X4NPSX8ZUWI1DPH52YEUUP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/4X/X4NPSX8ZUWI1DPH52YEUUP.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/5S/LKWFWDPYQSEQSQPB66JM48.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/5S/LKWFWDPYQSEQSQPB66JM48.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/97/3V83DZXP0WILS8G17CM3NX.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/97/3V83DZXP0WILS8G17CM3NX.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/IG/Y65WPOHBQW42TNWBNMQ1L3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/IG/Y65WPOHBQW42TNWBNMQ1L3.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/J7/QO5TQORWCXORVK1051S8GH.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/J7/QO5TQORWCXORVK1051S8GH.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/RD/GHAKQAVACU5JIZXY0Y8JB5.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/RD/GHAKQAVACU5JIZXY0Y8JB5.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/2/WD/GI741NDVNZBKI2A7TXX224.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/2/WD/GI741NDVNZBKI2A7TXX224.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/6N/VZU403KFJ6UJQ2M3VY6736.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/6N/VZU403KFJ6UJQ2M3VY6736.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/7K/TMNUAYLY4F5HL33COW5OC3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/7K/TMNUAYLY4F5HL33COW5OC3.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/AW/90QVEWVNXY6N07CS9SHQPM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/AW/90QVEWVNXY6N07CS9SHQPM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/DX/JANFZ62JMG0U1Z3UNCQVKV.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/DX/JANFZ62JMG0U1Z3UNCQVKV.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/GN/GA7D4CR7K6V687F7J61C3N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/GN/GA7D4CR7K6V687F7J61C3N.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/QY/FL16ITLR22643N9B35THAR.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/QY/FL16ITLR22643N9B35THAR.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/3/XV/FQZFA2ZLA9XBN7XWV0QIN8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/3/XV/FQZFA2ZLA9XBN7XWV0QIN8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/5W/6XNNGY07XFQS1KA8BSIAGI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/5W/6XNNGY07XFQS1KA8BSIAGI.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/6W/J14X55NXI3UVJMVVIW1NAN.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/6W/J14X55NXI3UVJMVVIW1NAN.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/D8/YMDE4WERKLNXIT8TVTH5OW.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/D8/YMDE4WERKLNXIT8TVTH5OW.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/FE/5RLM209RIBOSDPMFSWD7BM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/FE/5RLM209RIBOSDPMFSWD7BM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/OC/ZNLH3RF59GXIC6NLPXICJV.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/OC/ZNLH3RF59GXIC6NLPXICJV.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/OT/Y23P0KHN1XII71UX7D1H8Q.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/OT/Y23P0KHN1XII71UX7D1H8Q.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/Q7/HYGURXU7M62N8WAUIXLWPQ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/Q7/HYGURXU7M62N8WAUIXLWPQ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/Q8/QNW4NKCF3JB30PDQLYNK04.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/Q8/QNW4NKCF3JB30PDQLYNK04.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/4/TV/0XXSVY1Y0D2HIHA43BVMPH.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/4/TV/0XXSVY1Y0D2HIHA43BVMPH.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/DJ/PLU0RE738EMG7CF7VC8D9S.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/DJ/PLU0RE738EMG7CF7VC8D9S.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/J7/A965JVJJK99ZV7RSG0A80Y.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/J7/A965JVJJK99ZV7RSG0A80Y.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/K5/N5PQOIOOZA749OR27OS0F7.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/K5/N5PQOIOOZA749OR27OS0F7.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/M2/8TXEZSVIN8XJXFAAPYJ9PF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/M2/8TXEZSVIN8XJXFAAPYJ9PF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/Q5/9034HM4Y3YU11DE4XNPRA9.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/Q5/9034HM4Y3YU11DE4XNPRA9.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/RD/PZ5XNZU157V0GDAJAXC2DQ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/RD/PZ5XNZU157V0GDAJAXC2DQ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/5/XG/8DSW2V35VY2X5SMHCJ0A83.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/5/XG/8DSW2V35VY2X5SMHCJ0A83.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/1C/XX81YC0HUFD6L3IX7RWMS0.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/1C/XX81YC0HUFD6L3IX7RWMS0.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/2O/DXFGF2WM4JJABUV0FET9FV.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/2O/DXFGF2WM4JJABUV0FET9FV.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/5X/42927YT2PIUFMXJ9TCYHNH.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/5X/42927YT2PIUFMXJ9TCYHNH.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/8V/MRZ7RQN5KANFM03I7EKRCC.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/8V/MRZ7RQN5KANFM03I7EKRCC.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/AA/NURB0U7U9ZV4H4LX7FT8T2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/AA/NURB0U7U9ZV4H4LX7FT8T2.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/FM/N6HUV654J3L83XHWCME1XN.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/FM/N6HUV654J3L83XHWCME1XN.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/GW/TAVO56E9B1HVH1F45RLBIA.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/GW/TAVO56E9B1HVH1F45RLBIA.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/HH/WEV2UZOW80WMJE695BD7Q8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/HH/WEV2UZOW80WMJE695BD7Q8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/HN/Y3GF0HWTXA7DHH1FL3IF9R.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/HN/Y3GF0HWTXA7DHH1FL3IF9R.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/6/UX/1HONC7HVU91I909A4N80W2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/6/UX/1HONC7HVU91I909A4N80W2.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/69/K2DUYEPPDEHF7DXTMITAO4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/69/K2DUYEPPDEHF7DXTMITAO4.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/8U/4ND4ZK6J06I5L4DPSTPYW9.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/8U/4ND4ZK6J06I5L4DPSTPYW9.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/BH/JV2GOVBPB8GZ9MQUICHC9S.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/BH/JV2GOVBPB8GZ9MQUICHC9S.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/OX/U1S14RGV0J3HYBLRGYLFIH.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/OX/U1S14RGV0J3HYBLRGYLFIH.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/P9/5INQQWN21QET7O4P293LRP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/P9/5INQQWN21QET7O4P293LRP.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/YH/J8JQXJ67F9KX47CCDA8ZMF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/YH/J8JQXJ67F9KX47CCDA8ZMF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/ZI/H9Z8XD8BJTDFP4C3J5UYO5.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/ZI/H9Z8XD8BJTDFP4C3J5UYO5.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/7/ZT/XQN8LZWIDWMWIMOBUZOJDH.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/7/ZT/XQN8LZWIDWMWIMOBUZOJDH.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/03/XUBA90OKAR0F82M61W3CX8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/03/XUBA90OKAR0F82M61W3CX8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/6Q/5E0J4DYSYB0DUPM0H3UFMJ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/6Q/5E0J4DYSYB0DUPM0H3UFMJ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/B3/RBYC3BLDB8MGWKK1EO1GW0.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/B3/RBYC3BLDB8MGWKK1EO1GW0.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/ED/4G06FUR85LXRX1UCMOAFBE.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/ED/4G06FUR85LXRX1UCMOAFBE.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/FF/4NBZKC5PVQODH9SVSYPY1E.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/FF/4NBZKC5PVQODH9SVSYPY1E.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/KQ/APFM7ONOEVP1TBHZZ5VTDA.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/KQ/APFM7ONOEVP1TBHZZ5VTDA.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/PW/B3NPG0KFON6BVW5ECZJSUI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/PW/B3NPG0KFON6BVW5ECZJSUI.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/RB/UWT2EIZPYQICCJ0JNTZ85V.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/RB/UWT2EIZPYQICCJ0JNTZ85V.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/8/V0/ZL0SLSEYGYT07XDJ00EIUF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/8/V0/ZL0SLSEYGYT07XDJ00EIUF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/2R/7Y8MMR44XVULYO5P3YZL6Q.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/2R/7Y8MMR44XVULYO5P3YZL6Q.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/53/CHPLQ79FFGJWC3VACZJA90.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/53/CHPLQ79FFGJWC3VACZJA90.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/F0/2PBKWHHRFBG1A4L1JXPK2N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/F0/2PBKWHHRFBG1A4L1JXPK2N.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/KB/H67VGU7BHNHPWWQEMQJ41J.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/KB/H67VGU7BHNHPWWQEMQJ41J.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/MW/33JI6228IHMKP046YQI3NM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/MW/33JI6228IHMKP046YQI3NM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/P8/B0WWH2443MBX8KNWBXHRF4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/P8/B0WWH2443MBX8KNWBXHRF4.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/R1/8BCEFBDGK0H81DULB6PL99.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/R1/8BCEFBDGK0H81DULB6PL99.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/RS/RPVI13LNVTY93V3EQ1Y4FV.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/RS/RPVI13LNVTY93V3EQ1Y4FV.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/S0/ZQAAAMNNZKH0GPXO0DBFMJ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/S0/ZQAAAMNNZKH0GPXO0DBFMJ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/TG/JJD8SHJCMNFNMC34COATAM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/TG/JJD8SHJCMNFNMC34COATAM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/TR/EQW5T4BO9JJ206FV4WNNES.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/TR/EQW5T4BO9JJ206FV4WNNES.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/X7/GV76BBB2V0EFHV7ELK9A0Y.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/X7/GV76BBB2V0EFHV7ELK9A0Y.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/9/XH/RE3KCKBHLMM1GG0PY3DP2X.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/9/XH/RE3KCKBHLMM1GG0PY3DP2X.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/36/SPYD0PSGU4M3NK7DI5RDRM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/36/SPYD0PSGU4M3NK7DI5RDRM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/6Q/T187Z8E2C6CPJLXCH06KRJ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/6Q/T187Z8E2C6CPJLXCH06KRJ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/97/TJ4C9PDLS1GUU3HZVA9VAW.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/97/TJ4C9PDLS1GUU3HZVA9VAW.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/DN/K5XHNT2TJPQ6HM9TN0HG8R.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/DN/K5XHNT2TJPQ6HM9TN0HG8R.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/HQ/88P9BDP4TVKYFOZOJN3QMQ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/HQ/88P9BDP4TVKYFOZOJN3QMQ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/IO/8Z6TE7XPJH0N4NGDM5G8FO.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/IO/8Z6TE7XPJH0N4NGDM5G8FO.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/KF/0HUUB8ZWRIJMRUKUDDMH1E.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/KF/0HUUB8ZWRIJMRUKUDDMH1E.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/NH/500JBYKPF78U8D5OIH4ZTV.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/NH/500JBYKPF78U8D5OIH4ZTV.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/OY/ET64S8Y7B7A56RDOXEXET4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/OY/ET64S8Y7B7A56RDOXEXET4.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/A/R1/6S23OQXPMF10HYXLB9OEIP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/A/R1/6S23OQXPMF10HYXLB9OEIP.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/09/QCU8K2REN785K74C0JAHL8.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/09/QCU8K2REN785K74C0JAHL8.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/1O/W74LG5Z5X560FBYOC0UL54.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/1O/W74LG5Z5X560FBYOC0UL54.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/8P/CM2NN20XZG7JOWND4OKSFF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/8P/CM2NN20XZG7JOWND4OKSFF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/AQ/TIHXLB5639NV4RM260YDTW.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/AQ/TIHXLB5639NV4RM260YDTW.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/BV/STFWH78SWHO1BT3JB2S9GT.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/BV/STFWH78SWHO1BT3JB2S9GT.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/EO/2UN44M3CSTF66URSISACO7.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/EO/2UN44M3CSTF66URSISACO7.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/JN/Y3DIUNQ632SK7RYD4GY9QB.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/JN/Y3DIUNQ632SK7RYD4GY9QB.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/MX/VD8G2R3DRQURL3L2N8FK5A.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/MX/VD8G2R3DRQURL3L2N8FK5A.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/OQ/FH4UWQ2MQA5KPUZVXS23LJ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/OQ/FH4UWQ2MQA5KPUZVXS23LJ.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/OZ/7UWDO77CF7TNVQ9BB75XCF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/OZ/7UWDO77CF7TNVQ9BB75XCF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/P6/UDWQC9DWW7DL22CPJ4RVSI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/P6/UDWQC9DWW7DL22CPJ4RVSI.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/PP/V9CAJRQOOCARULA8KSKFKF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/PP/V9CAJRQOOCARULA8KSKFKF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/B/QO/2LS1PO2KB0MPBU3Q10JQLS.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/B/QO/2LS1PO2KB0MPBU3Q10JQLS.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/7A/579A09SC2JTS2H6LSR13PL.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/7A/579A09SC2JTS2H6LSR13PL.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/H2/M58JIDBQC2JEOWYFQ17JSY.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/H2/M58JIDBQC2JEOWYFQ17JSY.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/MP/7SW071I54YKZ7WANNW9ZNF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/MP/7SW071I54YKZ7WANNW9ZNF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/MZ/99H285CLZ96HCTKT3S7S79.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/MZ/99H285CLZ96HCTKT3S7S79.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/Y6/L8FAOYPHJNQSTCW3XMMSJT.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/Y6/L8FAOYPHJNQSTCW3XMMSJT.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/Z1/5JJ1TP1XPKW9WSX7HGUMJU.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/Z1/5JJ1TP1XPKW9WSX7HGUMJU.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/C/ZU/N5WZ7N63Q2DBG05ZT1Y94V.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/C/ZU/N5WZ7N63Q2DBG05ZT1Y94V.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/8Z/4LSU7JRUL69YYIDJGSE35W.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/8Z/4LSU7JRUL69YYIDJGSE35W.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/BG/Y8EZ2AXLMEN39WTAPXB6VM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/BG/Y8EZ2AXLMEN39WTAPXB6VM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/CY/79499WIO2JEGDOHXKAVE2Q.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/CY/79499WIO2JEGDOHXKAVE2Q.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/JR/WB3NI9RNBS8ZM7NAOBCUT1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/JR/WB3NI9RNBS8ZM7NAOBCUT1.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/T6/ELJ3HI994B42IQIWQEZNGD.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/T6/ELJ3HI994B42IQIWQEZNGD.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/WK/NERX0MWYRICL228ZB8J0QW.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/WK/NERX0MWYRICL228ZB8J0QW.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/Y8/6BWZ3L18E7BG1L4FKVUZHM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/Y8/6BWZ3L18E7BG1L4FKVUZHM.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/D/YE/SR6HPODQM7KP47H3B60IL3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/D/YE/SR6HPODQM7KP47H3B60IL3.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/E/7Z/D90LOZ6OX06T5XEND5R79L.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/E/7Z/D90LOZ6OX06T5XEND5R79L.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/E/HU/QBOG0EUDUJ3I7CKDLU6SM5.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/E/HU/QBOG0EUDUJ3I7CKDLU6SM5.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/E/N8/PFO7BDZ0JAA14BRARTV0S0.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/E/N8/PFO7BDZ0JAA14BRARTV0S0.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/E/SK/3B5158OKASMIKGFDZC9KRF.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/E/SK/3B5158OKASMIKGFDZC9KRF.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/E/X4/I3YAKOIE9OZW8RGU76MLDU.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/E/X4/I3YAKOIE9OZW8RGU76MLDU.uasset -------------------------------------------------------------------------------- /Content/__ExternalActors__/NewMap/F/47/SRE2F10IBLNCEHWHDB0R5Q.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalActors__/NewMap/F/47/SRE2F10IBLNCEHWHDB0R5Q.uasset -------------------------------------------------------------------------------- /Content/__ExternalObjects__/NewMap/1/RU/3FHCA0FW5IIFSQ2O54UZA9.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalObjects__/NewMap/1/RU/3FHCA0FW5IIFSQ2O54UZA9.uasset -------------------------------------------------------------------------------- /Content/__ExternalObjects__/NewMap/4/OA/KV5NVW6RVGCY40C13H5F98.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalObjects__/NewMap/4/OA/KV5NVW6RVGCY40C13H5F98.uasset -------------------------------------------------------------------------------- /Content/__ExternalObjects__/NewMap/7/AM/99MZXH85XVTY7NU0J1OJ8N.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalObjects__/NewMap/7/AM/99MZXH85XVTY7NU0J1OJ8N.uasset -------------------------------------------------------------------------------- /Content/__ExternalObjects__/NewMap/9/20/PV6HCV4P0GX9P77B63TXTQ.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalObjects__/NewMap/9/20/PV6HCV4P0GX9P77B63TXTQ.uasset -------------------------------------------------------------------------------- /Content/__ExternalObjects__/NewMap/9/EW/DIR8ZHVIQ96U3XBY7PSRNI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/Content/__ExternalObjects__/NewMap/9/EW/DIR8ZHVIQ96U3XBY7PSRNI.uasset -------------------------------------------------------------------------------- /DemoPCGGraphBP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/DemoPCGGraphBP.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Nick 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PCGTest52.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "5.2", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "PCGTest52", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default" 11 | } 12 | ], 13 | "Plugins": [ 14 | { 15 | "Name": "ModelingToolsEditorMode", 16 | "Enabled": true, 17 | "TargetAllowList": [ 18 | "Editor" 19 | ] 20 | }, 21 | { 22 | "Name": "PCG", 23 | "Enabled": true 24 | }, 25 | { 26 | "Name": "PCGGeometryScriptInterop", 27 | "Enabled": true 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /Platforms/HoloLens/Config/HoloLensEngine.ini: -------------------------------------------------------------------------------- 1 | 2 | 3 | [/Script/HoloLensPlatformEditor.HoloLensTargetSettings] 4 | bBuildForEmulation=False 5 | bBuildForDevice=True 6 | bUseNameForLogo=True 7 | bBuildForRetailWindowsStore=False 8 | bAutoIncrementVersion=False 9 | bShouldCreateAppInstaller=False 10 | AppInstallerInstallationURL= 11 | HoursBetweenUpdateChecks=0 12 | bEnablePIXProfiling=False 13 | TileBackgroundColor=(B=64,G=0,R=0,A=255) 14 | SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) 15 | +PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) 16 | TargetDeviceFamily=Windows.Holographic 17 | MinimumPlatformVersion=10.0.18362.0 18 | MaximumPlatformVersionTested=10.0.19041.0 19 | MaxTrianglesPerCubicMeter=500.000000 20 | SpatialMeshingVolumeSize=20.000000 21 | CompilerVersion=Default 22 | Windows10SDKVersion=10.0.18362.0 23 | +CapabilityList=internetClientServer 24 | +CapabilityList=privateNetworkClientServer 25 | +Uap2CapabilityList=spatialPerception 26 | bSetDefaultCapabilities=False 27 | SpatializationPlugin= 28 | SourceDataOverridePlugin= 29 | ReverbPlugin= 30 | OcclusionPlugin= 31 | SoundCueCookQualityIndex=-1 32 | 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PCGPathfinding 2 | 3 | An A* pathfinding implementation that can be used with PCG (Procedural Content Generation) to generate custom splines. 4 | 5 | Project is made in Unreal 5.2 6 | 7 | # PCG Graph 8 | 9 | ![Demonstration](DemoPCGGraphBP.png) 10 | 11 | # Explanation 12 | 13 | 1. Surface Sampler generates a grid of points with settings: 14 | - Points Per Squared Meter = 1.0 15 | - Point Extents = (500,500,500) 16 | - Looseness = 0.0 17 | 2. 2 Get Actor Data nodes find an object with tag "Start" and "End" 18 | 3. **PCG Get Start End Points** goes through each point on the sampled grid (from step 1) and adds attributes for DistanceToStart and DistanceToEnd and outputs them. 19 | 4. Select the smallest DistanceToStart and DistanceToEnd and passes them as points to the BPCG Pathfinding node 20 | 5. BPCG Pathfinding does some magic to calculate the shortest path between the start and end in the A* pathfinding and outputs it as Points 21 | 6. These Points are passed to Create Spline 22 | 23 | 24 | 25 | Demonstration Video 26 | 27 | [demo.webm](https://github.com/spood/PCGPathfinding/assets/1010965/a454cfc6-68fd-463b-9a1a-3ab2908bb638) 28 | 29 | # Blueprints 30 | 31 | Feel free to inspect the blueprints without having to open the project: 32 | 33 | PCG_Pathfinding (ExecuteWithContext) https://blueprintue.com/blueprint/m-o5o5_1/ 34 | 35 | PCG_GetStartEndPoints (ExecuteWithContext) https://blueprintue.com/blueprint/6nzzw6e9/ 36 | 37 | PCG_GetStartEndPoints (PointLoopBody) https://blueprintue.com/blueprint/lnuqqy4n/ 38 | -------------------------------------------------------------------------------- /Source/PCGTest52.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class PCGTest52Target : TargetRules 7 | { 8 | public PCGTest52Target( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | DefaultBuildSettings = BuildSettingsVersion.V2; 12 | IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1; 13 | ExtraModuleNames.Add("PCGTest52"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Source/PCGTest52/CustomPoint.h: -------------------------------------------------------------------------------- 1 | // CustomPoint.h 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Containers/UnrealString.h" 7 | #include "UObject/NoExportTypes.h" 8 | #include "CustomPoint.generated.h" 9 | 10 | const double CustomPointEpsilon = 0.001; // Define a small tolerance value for floating-point comparison 11 | 12 | USTRUCT(BlueprintType) 13 | struct FCustomPoint 14 | { 15 | GENERATED_BODY() 16 | 17 | UPROPERTY(BlueprintReadWrite, EditAnywhere) 18 | double X; 19 | 20 | UPROPERTY(BlueprintReadWrite, EditAnywhere) 21 | double Y; 22 | 23 | UPROPERTY(BlueprintReadWrite, EditAnywhere) 24 | double Z; 25 | 26 | // Default constructor 27 | FCustomPoint() : X(0), Y(0), Z(0) {} 28 | 29 | // Constructor with parameters 30 | FCustomPoint(double InX, double InY, double InZ) : X(InX), Y(InY), Z(InZ) {} 31 | 32 | FCustomPoint(const FVector& Vector) : X(Vector.X), Y(Vector.Y), Z(Vector.Z) {} 33 | 34 | operator FVector() const 35 | { 36 | return FVector(X, Y, Z); 37 | } 38 | 39 | // Equality comparison operator 40 | bool operator==(const FCustomPoint& Other) const 41 | { 42 | return FMath::Abs(X - Other.X) < CustomPointEpsilon && 43 | FMath::Abs(Y - Other.Y) < CustomPointEpsilon && 44 | FMath::Abs(Z - Other.Z) < CustomPointEpsilon; 45 | } 46 | bool operator!=(const FCustomPoint& Other) const 47 | { 48 | return !(*this == Other); 49 | } 50 | 51 | // Overloaded + operator for adding two FCustomPoint instances 52 | FCustomPoint operator+(const FCustomPoint& Other) const 53 | { 54 | return FCustomPoint(X + Other.X, Y + Other.Y, Z + Other.Z); 55 | } 56 | 57 | // Calculate the squared Euclidean distance between two points (faster than calculating full Euclidean distance) 58 | double GetSquaredDistance(const FCustomPoint& Other) const 59 | { 60 | double DX = X - Other.X; 61 | double DY = Y - Other.Y; 62 | double DZ = Z - Other.Z; 63 | return DX * DX + DY * DY + DZ * DZ; 64 | } 65 | 66 | double GetEuclideanDistance(const FCustomPoint& Other) const 67 | { 68 | double DX = X - Other.X; 69 | double DY = Y - Other.Y; 70 | double DZ = Z - Other.Z; 71 | return FMath::Sqrt(DX * DX + DY * DY + DZ * DZ); 72 | } 73 | }; 74 | 75 | USTRUCT(BlueprintType) 76 | struct FGraphNode 77 | { 78 | GENERATED_BODY() 79 | 80 | UPROPERTY(BlueprintReadWrite, EditAnywhere) 81 | FCustomPoint Position; 82 | 83 | UPROPERTY(BlueprintReadWrite, EditAnywhere) 84 | TArray ConnectedNodeIndices; 85 | 86 | // Equality comparison operator for FGraphNode 87 | bool operator==(const FGraphNode& Other) const 88 | { 89 | return Position == Other.Position; //&& ConnectedNodeIndices == Other.ConnectedNodeIndices; 90 | } 91 | 92 | 93 | }; 94 | 95 | FORCEINLINE uint32 GetTypeHash(const FCustomPoint& Point) 96 | { 97 | return HashCombine(GetTypeHash(Point.X), HashCombine(GetTypeHash(Point.Y), GetTypeHash(Point.Z))); 98 | } 99 | 100 | FORCEINLINE uint32 GetTypeHash(const FGraphNode& Node) 101 | { 102 | return GetTypeHash(Node.Position); 103 | } 104 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGPathfindHelper.cpp: -------------------------------------------------------------------------------- 1 | // PCGPathfindHelper.cpp 2 | 3 | #include "PCGPathfindHelper.h" 4 | #include "Containers/Array.h" 5 | #include "Algo/Reverse.h" 6 | #include "PriorityQueue.h" 7 | #include "Containers/Array.h" 8 | #include 9 | 10 | float UPCGPathfindHelper::Heuristic(const FGraphNode& Node, const FGraphNode& Goal) 11 | { 12 | return Node.Position.GetEuclideanDistance(Goal.Position); 13 | } 14 | 15 | float UPCGPathfindHelper::Cost(const FGraphNode& Node1, const FGraphNode& Node2) 16 | { 17 | float DistanceXY = FVector2D(Node1.Position.X - Node2.Position.X, Node1.Position.Y - Node2.Position.Y).Size(); 18 | float DistanceZ = FMath::Abs(Node1.Position.Z - Node2.Position.Z); 19 | 20 | // Define a threshold for the maximum allowed Z difference for walking on slopes 21 | float MaxAllowedZDifference = 100.0f; 22 | 23 | // Define a factor to multiply the Z difference for cost calculation 24 | float ZFactor = 1; // Change this factor as per your requirement. 25 | 26 | // Check if the Z difference exceeds the maximum allowed threshold 27 | if (DistanceZ > MaxAllowedZDifference) 28 | { 29 | // Assign a very high cost to discourage walking on steep slopes 30 | return 999999.0f; 31 | } 32 | 33 | return DistanceXY + ZFactor * DistanceZ; 34 | } 35 | 36 | TArray UPCGPathfindHelper::GetNeighbors(FGraphNode CurrentNode, TArray PathPoints) 37 | { 38 | TArray Neighbors; 39 | 40 | // Assuming ConnectedNodeIndices is an array of indices 41 | for (int Index : CurrentNode.ConnectedNodeIndices) 42 | { 43 | // Check if the index is valid 44 | if (Index >= 0 && Index < PathPoints.Num()) 45 | { 46 | Neighbors.Add(PathPoints[Index]); 47 | } 48 | } 49 | 50 | return Neighbors; 51 | } 52 | 53 | 54 | 55 | void UPCGPathfindHelper::SetupNodeConnections(TArray& Nodes, FGraphNode& StartNode, FGraphNode& EndNode) 56 | { 57 | if (Nodes.Num() == 0) 58 | { 59 | return; 60 | } 61 | 62 | FVector MinPosition = Nodes[0].Position; 63 | FVector MaxPosition = Nodes[0].Position; 64 | 65 | // Find the minimum and maximum positions 66 | for (const FGraphNode& gnode : Nodes) 67 | { 68 | MinPosition = MinPosition.ComponentMin(gnode.Position); 69 | MaxPosition = MaxPosition.ComponentMax(gnode.Position); 70 | } 71 | 72 | // Calculate the dimensions 73 | FVector Dimensions = MaxPosition - MinPosition; 74 | 75 | // Assuming uniform grid, calculate the number of nodes in each dimension 76 | int32 NodeCountX = 1, NodeCountY = 1, NodeCountZ = 1; 77 | for (const FGraphNode& Node : Nodes) 78 | { 79 | if (FMath::IsNearlyEqual(Node.Position.X, MinPosition.X)) 80 | NodeCountY *= (FMath::IsNearlyEqual(Node.Position.Y, MinPosition.Y) ? NodeCountZ++ : NodeCountZ); 81 | else if (FMath::IsNearlyEqual(Node.Position.Y, MinPosition.Y)) 82 | NodeCountX++; 83 | } 84 | 85 | // Calculate the distances between nodes in each dimension 86 | float DistanceX = Dimensions.X / (NodeCountX - 1); 87 | float DistanceY = Dimensions.Y / (NodeCountY - 1); 88 | float DistanceZ = NodeCountZ > 1 ? Dimensions.Z / (NodeCountZ - 1) : FLT_MAX; 89 | 90 | // Calculate the maximum connection distance (considering diagonally adjacent nodes) 91 | float ConnectionDistance = FMath::Sqrt(FMath::Pow(DistanceX, 2) + FMath::Pow(DistanceY, 2) + FMath::Pow(DistanceZ, 2)); 92 | 93 | // Now setup the connections using the calculated connection distance 94 | for (int i = 0; i < Nodes.Num(); ++i) 95 | { 96 | for (int j = i + 1; j < Nodes.Num(); ++j) 97 | { 98 | // Check if the nodes are within the connection distance and not the same node 99 | if (Nodes[i].Position != Nodes[j].Position && 100 | FVector::Dist(Nodes[i].Position, Nodes[j].Position) <= ConnectionDistance) 101 | { 102 | // If they are, add each node to the other's list of connections 103 | Nodes[i].ConnectedNodeIndices.Add(j); 104 | Nodes[j].ConnectedNodeIndices.Add(i); 105 | } 106 | } 107 | } 108 | 109 | // Add connections for StartNode and EndNode 110 | for (int i = 0; i < Nodes.Num(); ++i) 111 | { 112 | if (FVector::Dist(StartNode.Position, Nodes[i].Position) <= ConnectionDistance) 113 | { 114 | StartNode.ConnectedNodeIndices.Add(i); 115 | Nodes[i].ConnectedNodeIndices.Add(Nodes.IndexOfByKey(StartNode)); 116 | } 117 | 118 | if (FVector::Dist(EndNode.Position, Nodes[i].Position) <= ConnectionDistance) 119 | { 120 | EndNode.ConnectedNodeIndices.Add(i); 121 | Nodes[i].ConnectedNodeIndices.Add(Nodes.IndexOfByKey(EndNode)); 122 | } 123 | } 124 | 125 | 126 | // Output some debug info to ensure connections are set up correctly 127 | for (int i = 0; i < Nodes.Num(); ++i) 128 | { 129 | FString Neighbors; 130 | for (int Index : Nodes[i].ConnectedNodeIndices) 131 | { 132 | if (Index >= 0 && Index < Nodes.Num()) 133 | { 134 | Neighbors += FString::Printf(TEXT("(%f, %f, %f) "), Nodes[Index].Position.X, Nodes[Index].Position.Y, Nodes[Index].Position.Z); 135 | } 136 | } 137 | UE_LOG(LogTemp, Warning, TEXT("Node at position (%f, %f, %f) is connected to: %s"), Nodes[i].Position.X, Nodes[i].Position.Y, Nodes[i].Position.Z, *Neighbors); 138 | } 139 | } 140 | 141 | 142 | 143 | TArray UPCGPathfindHelper::FindPath(FPCGPoint StartPoint, FPCGPoint EndPoint, TArray PathPoints) 144 | { 145 | 146 | // Create nodes for the start and end points 147 | FGraphNode StartNode = { StartPoint.Transform.GetLocation(), {} }; 148 | FGraphNode EndNode = { EndPoint.Transform.GetLocation(), {} }; 149 | 150 | // Create a graph from path points 151 | TArray GraphNodes; 152 | for (FPCGPoint Point : PathPoints) 153 | { 154 | FGraphNode Node = { Point.Transform.GetLocation(), {} }; 155 | if (Point.Transform.Equals(StartPoint.Transform)) { 156 | StartNode = Node; 157 | } 158 | else if (Point.Transform.Equals(EndPoint.Transform)) { 159 | EndNode = Node; 160 | } 161 | GraphNodes.Add(Node); 162 | } 163 | 164 | SetupNodeConnections(GraphNodes, StartNode, EndNode); 165 | 166 | // Constants for handling negative costs 167 | const float CostOffset = 100000.0f; 168 | 169 | PriorityQueue Frontier; 170 | 171 | // Use the index in GraphNodes array as the key in CameFrom and CostSoFar maps 172 | TMap CameFrom; 173 | TArray CostSoFar; 174 | CostSoFar.Init(MAX_FLT, GraphNodes.Num()); 175 | 176 | // Initialize start node cost to 0 177 | int32 StartNodeIndex = GraphNodes.IndexOfByKey(StartNode); 178 | CostSoFar[StartNodeIndex] = 0; 179 | 180 | Frontier.Enqueue(StartNode, 0); 181 | CameFrom.Add(StartNodeIndex, StartNode); 182 | 183 | while (!Frontier.IsEmpty()) 184 | { 185 | FGraphNode Current = Frontier.Dequeue(); 186 | 187 | if (Current.Position == EndNode.Position) 188 | { 189 | break; 190 | } 191 | 192 | int32 CurrentIndex = GraphNodes.IndexOfByKey(Current); 193 | 194 | for (FGraphNode Next : GetNeighbors(Current, GraphNodes)) 195 | { 196 | int32 NextIndex = GraphNodes.IndexOfByKey(Next); 197 | 198 | float NewCost = CostSoFar[CurrentIndex] + Cost(Current, Next); 199 | float HeuristicValue = Heuristic(Next, EndNode); 200 | 201 | // Add CostOffset to all costs to handle negative costs 202 | //NewCost += CostOffset; 203 | 204 | if (NewCost < CostSoFar[NextIndex] && NewCost != 999999.0f) 205 | { 206 | CostSoFar[NextIndex] = NewCost; 207 | float Priority = NewCost + HeuristicValue; 208 | Frontier.Enqueue(Next, Priority); 209 | CameFrom.Add(NextIndex, Current); 210 | } 211 | } 212 | } 213 | 214 | TArray Path; 215 | FGraphNode Current = EndNode; 216 | 217 | // Use a stack to reverse the order of nodes 218 | TArray PathNodes; 219 | const float DistanceThreshold = 0.1f; // Adjust this threshold as needed 220 | while (FVector::Dist(Current.Position, StartNode.Position) > DistanceThreshold) { 221 | int32 CurrentIndex = GraphNodes.IndexOfByKey(Current); 222 | if (!CameFrom.Contains(CurrentIndex)) 223 | { 224 | UE_LOG(LogTemp, Warning, TEXT("Could not find the previous node for node at position (%f, %f, %f)"), Current.Position.X, Current.Position.Y, Current.Position.Z); 225 | return TArray(); // return an empty path to indicate an error 226 | } 227 | 228 | PathNodes.Add(Current); 229 | Current = CameFrom[CurrentIndex]; 230 | } 231 | 232 | // Add the start node to the path 233 | PathNodes.Add(StartNode); 234 | 235 | // Reverse the order of nodes 236 | Algo::Reverse(PathNodes); 237 | 238 | // Convert path nodes to FPCGPoint 239 | for (const FGraphNode& Node : PathNodes) 240 | { 241 | Path.Add(ConvertToPCGPoint(FCustomPoint(Node.Position))); 242 | } 243 | 244 | return Path; 245 | } 246 | 247 | 248 | 249 | FCustomPoint UPCGPathfindHelper::ConvertToFVector(const FPCGPoint& Point) 250 | { 251 | return FCustomPoint(Point.Transform.GetLocation().X, Point.Transform.GetLocation().Y, Point.Transform.GetLocation().Z); 252 | } 253 | 254 | FPCGPoint UPCGPathfindHelper::ConvertToPCGPoint(const FCustomPoint& Point) 255 | { 256 | FPCGPoint Result; 257 | Result.Transform.SetLocation(FVector(Point.X, Point.Y, Point.Z)); 258 | return Result; 259 | } -------------------------------------------------------------------------------- /Source/PCGTest52/PCGPathfindHelper.h: -------------------------------------------------------------------------------- 1 | // PCGPathfindHelper.h 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "UObject/NoExportTypes.h" 7 | #include "PCGContext.h" 8 | #include "PCGSettings.h" 9 | #include "PCGPoint.h" 10 | #include "CustomPoint.h" 11 | 12 | #include "PCGPathfindHelper.generated.h" 13 | 14 | UCLASS() 15 | class PCGTEST52_API UPCGPathfindHelper : public UBlueprintFunctionLibrary 16 | { 17 | GENERATED_BODY() 18 | 19 | public: 20 | UFUNCTION(BlueprintCallable, Category = "Pathfinding") 21 | static TArray FindPath(FPCGPoint StartPoint, FPCGPoint EndPoint, TArray PathPoints); 22 | 23 | private: 24 | // Utility function to convert FPCGPoint to FCustomPoint 25 | static FCustomPoint ConvertToFVector(const FPCGPoint& Point); 26 | 27 | // Utility function to convert FCustomPoint to FPCGPoint 28 | static FPCGPoint ConvertToPCGPoint(const FCustomPoint& Point); 29 | 30 | static TArray FindShortestPathAStar(const TMap>& Graph, const FCustomPoint& Start, const FCustomPoint& End); 31 | static TArray BuildGraph(const TArray& PathPoints, float DistanceThreshold); 32 | 33 | static float Heuristic(const FGraphNode& Node, const FGraphNode& Goal); 34 | static float Cost(const FGraphNode& Node1, const FGraphNode& Node2); 35 | static TArray GetNeighbors(FGraphNode CurrentNode, TArray PathPoints); 36 | static void SetupNodeConnections(TArray& Nodes, FGraphNode& StartNode, FGraphNode& EndNode); 37 | }; 38 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGTest52.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class PCGTest52 : ModuleRules 6 | { 7 | public PCGTest52(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 10 | 11 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "PCG" }); 12 | 13 | PrivateDependencyModuleNames.AddRange(new string[] { }); 14 | 15 | // Uncomment if you are using Slate UI 16 | // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); 17 | 18 | // Uncomment if you are using online features 19 | // PrivateDependencyModuleNames.Add("OnlineSubsystem"); 20 | 21 | // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGTest52.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "PCGTest52.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, PCGTest52, "PCGTest52" ); 7 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGTest52.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | 7 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGTest52GameModeBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | 4 | #include "PCGTest52GameModeBase.h" 5 | 6 | -------------------------------------------------------------------------------- /Source/PCGTest52/PCGTest52GameModeBase.h: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameModeBase.h" 7 | #include "PCGTest52GameModeBase.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class PCGTEST52_API APCGTest52GameModeBase : public AGameModeBase 14 | { 15 | GENERATED_BODY() 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /Source/PCGTest52/PriorityQueue.h: -------------------------------------------------------------------------------- 1 | // PriorityQueue.h 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "Containers/Array.h" 7 | #include "UObject/NoExportTypes.h" 8 | 9 | template 10 | class PriorityQueue 11 | { 12 | private: 13 | // Internal storage for the heap 14 | TArray> Heap; 15 | 16 | // Function to compare the priorities of two elements 17 | bool ShouldSwap(int32 IndexA, int32 IndexB) const 18 | { 19 | return Heap[IndexA].Value < Heap[IndexB].Value; 20 | } 21 | 22 | // Function to swap two elements in the heap 23 | void Swap(int32 IndexA, int32 IndexB) 24 | { 25 | TPair Temp = Heap[IndexA]; 26 | Heap[IndexA] = Heap[IndexB]; 27 | Heap[IndexB] = Temp; 28 | } 29 | 30 | // Recursive function to heapify a subtree rooted at given index 31 | void Heapify(int32 Index) 32 | { 33 | int32 LeftChild = (2 * Index) + 1; 34 | int32 RightChild = (2 * Index) + 2; 35 | int32 Smallest = Index; 36 | 37 | if (LeftChild < Heap.Num() && ShouldSwap(LeftChild, Smallest)) 38 | { 39 | Smallest = LeftChild; 40 | } 41 | 42 | if (RightChild < Heap.Num() && ShouldSwap(RightChild, Smallest)) 43 | { 44 | Smallest = RightChild; 45 | } 46 | 47 | if (Smallest != Index) 48 | { 49 | Swap(Index, Smallest); 50 | Heapify(Smallest); 51 | } 52 | } 53 | 54 | public: 55 | // Function to add an element to the heap 56 | void Enqueue(T Element, double Priority) 57 | { 58 | Heap.Add(TPair(Element, Priority)); 59 | 60 | // Bubble up 61 | int32 Index = Heap.Num() - 1; 62 | while (Index != 0 && ShouldSwap(Index, (Index - 1) / 2)) 63 | { 64 | Swap(Index, (Index - 1) / 2); 65 | Index = (Index - 1) / 2; 66 | } 67 | } 68 | 69 | // Function to remove and return the highest priority element from the heap 70 | T Dequeue() 71 | { 72 | T Element = Heap[0].Key; 73 | 74 | // Replace the root of the heap with the last element 75 | Heap[0] = Heap.Last(); 76 | Heap.RemoveAt(Heap.Num() - 1); 77 | 78 | // Heapify the root element 79 | Heapify(0); 80 | 81 | return Element; 82 | } 83 | 84 | // Function to check if the heap is empty 85 | bool IsEmpty() const 86 | { 87 | return Heap.Num() == 0; 88 | } 89 | }; 90 | -------------------------------------------------------------------------------- /Source/PCGTest52Editor.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class PCGTest52EditorTarget : TargetRules 7 | { 8 | public PCGTest52EditorTarget( TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | DefaultBuildSettings = BuildSettingsVersion.V2; 12 | IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1; 13 | ExtraModuleNames.Add("PCGTest52"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /demo.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spood/PCGPathfinding/58d8a0c4f5036be917ea6ffa5379b7a261b19995/demo.webm --------------------------------------------------------------------------------