Walkabout Navigation Toolkit help thread
by Daniel Buckmaster · in General Add-On Discussion · 11/08/2012 (3:57 pm) · 223 replies
This is the official Walkabout help thread. If you need a hand installing or using Walkabout, please ask away! But before you do, I'd really appreciate if you could follow a couple of guidelines:
- Re-read the installation instructions! Seriously, I know how often I run into some ridiculous issue, then realise I'd missed a step or misread a line. It helps me and you!
- If you're reporting an error in compilation, please tell me the errors you get and what files they're in, if you can!
- If you're reporting a bug, please provide steps I can take to reproduce it!
Known issues
- Release 1 Patch 3: no navmeshes appear in the browser list in the nav editor. Fix
- Engine version > 3.5.1: project generator scripts are incorrect. Fix. Also, be sure not to include the Recast module in your project configuration!
- On platforms that are not Windows, you may need to replace FLT_MAX with F32_MAX. In fact this is probably a good idea in Windows as well.
About the author
Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!
#182
03/17/2014 (10:41 am)
I did compile it to debug to check it out and I really dont know if rtti is causing it or not, my skills are very limited in c++... Im gonna do more testing to see what I can for ya and hope I can assist!! rtti was the one thing that did show when stepping thru it and when I looked it up on microsoft it said that You usually need the /GR option when your code uses dynamic_cast Operator or typeid. I made sure it was enabled in the options but it the prob is I dont have the rtti.cpp file its looking for, so i dont know if its my prob or not?? The game runs great pathfinding and all just cant get the coverpoint to return the size like we talked about, but i will keep looking.....
#183
error:
same for mQuality, mPeekLeft, mPeekRight, mPeekOver, mOccupied..... again dont know if it helps....
in struct CoverSearch......CoverPoint *point; and point = NULL; same errors!!
I dont think its the rtti file but I also dont know enough either...
03/17/2014 (4:00 pm)
Hey dan, i did get this error in the following line:getContainer()->findObjects(box, MarkerObjectType, findCoverCallback, &s);
error:
mSize = CXX0030: Error: expression cannot be evaluated
same for mQuality, mPeekLeft, mPeekRight, mPeekOver, mOccupied..... again dont know if it helps....
in struct CoverSearch......CoverPoint *point; and point = NULL; same errors!!
I dont think its the rtti file but I also dont know enough either...
#184
mCoverData.cover is giving this error;
03/19/2014 (7:20 pm)
Ok Dan, step it thru to this, in aiplayer.h/// Get cover we are moving to.
CoverPoint *getCover() { return mCoverData.cover; }mCoverData.cover is giving this error;
mObject = CXX0030: Error: expression cannot be evaluated mRefCount = CXX0030: Error: expression cannot be evaluated
#185
My teleporters work fine, but when I add a link and rebuild the navmesh it never turns black to my Bots never use it.
Is there a trick ... I have attached a screenshot of what I am trying to do. The green Teleporter is an Entrance and the Red is the exit for that one.
respawn.gobbogamessa.com/screenshots/Teleporter_Link_Mode.png
Maybe I am doing something wrong. 8-{
03/22/2014 (11:34 pm)
@Daniel: How do you get Teleporter Link Modes to work?My teleporters work fine, but when I add a link and rebuild the navmesh it never turns black to my Bots never use it.
Is there a trick ... I have attached a screenshot of what I am trying to do. The green Teleporter is an Entrance and the Red is the exit for that one.
respawn.gobbogamessa.com/screenshots/Teleporter_Link_Mode.png
Maybe I am doing something wrong. 8-{
#186
Quinton: Odd. I'll check tomorrow night and make sure they work for me. Your setup seems fine.
03/26/2014 (3:06 am)
Donnie: I've never seen that before. When I get time (hopefully tomorrow) I'll double check and see if I can repro your error.Quinton: Odd. I'll check tomorrow night and make sure they work for me. Your setup seems fine.
#187
03/26/2014 (3:31 am)
@Daniel: Thanks ... they also seem to be ignoring my jump links as well. 8-{
#188
EDIT: Quinton: jump and teleport links still seem to work fine for me. No console errors on your end, while building the mesh or otherwise? Do other kinds of links (i.e. drop) work?
03/27/2014 (11:52 pm)
Donnie: I found the error. I hadn't realised that the reference to the found cover point won't survive outside the call to findCover. I'm just testing new code at the moment, and I'll post up a patch to Walkabout tonight. With water :).EDIT: Quinton: jump and teleport links still seem to work fine for me. No console errors on your end, while building the mesh or otherwise? Do other kinds of links (i.e. drop) work?
#189
03/28/2014 (12:47 am)
Dan: Outstanding, cant wait..... thank you so much!!!
#190
03/28/2014 (1:18 am)
Check your email ;).
#191
Thanks
03/28/2014 (1:28 am)
@Daniel: I will run some more tests this weekend, I am not seeing any errors on my side. I will double check everything now that I know it is all working as expected.Thanks
#192
and half like this;
thanks for any help....
03/29/2014 (9:35 am)
Hey Dan, recompiled.... got 52 errors half are like this;Error 85 error LNK2005: "public: virtual void __thiscall duDebugDrawTorque::depthMask(bool)" (?depthMask@duDebugDrawTorque@@UAEX_N@Z) already defined in duDebugDrawTorque.obj C:\SatansFall\Torque3D\My Projects\SatansFall\buildFiles\VisualStudio 2010\projects\navMeshDraw.obj
and half like this;
Error 103 error LNK2005: "public: __thiscall dtQueryFilter::dtQueryFilter(void)" (??0dtQueryFilter@@QAE@XZ) already defined in DetourNavMeshQuery.obj C:\SatansFall\Torque3D\My Projects\SatansFall\buildFiles\VisualStudio 2010\projects\librecast.lib(DetourNavMeshQuery.obj)
thanks for any help....
#193
inside duDebugDrawTorque.cpp
inside navMeshDraw.cpp
header files are the same too, but diff includes... so question;
do i need duDebugDrawTorque.cpp , duDebugDrawTorque.h, and torqueRecast.h or just get rid of navMeshDraw.cpp, navMeshDraw.h, and nav.h??
Ok dan, im gonna remove nav.h and both navMeshDraw from my build, looks like those werent included in the patch......
also getting this;
which i think is because the last patch had recast in the walkabout dir.. now its a engine lib if im right??
03/29/2014 (9:53 am)
looks like duDebugDrawTorque.cpp and navMeshDraw.cpp are the same file?? only diff is this;inside duDebugDrawTorque.cpp
#include "torqueRecast.h" #include "duDebugDrawTorque.h"
inside navMeshDraw.cpp
#include "navMeshDraw.h"
header files are the same too, but diff includes... so question;
do i need duDebugDrawTorque.cpp , duDebugDrawTorque.h, and torqueRecast.h or just get rid of navMeshDraw.cpp, navMeshDraw.h, and nav.h??
Ok dan, im gonna remove nav.h and both navMeshDraw from my build, looks like those werent included in the patch......
also getting this;
Error 85 error LNK2005: "public: __thiscall dtQueryFilter::dtQueryFilter(void)" (??0dtQueryFilter@@QAE@XZ) already defined in DetourNavMeshQuery.obj C:\SatansFall\Torque3D\My Projects\SatansFall\buildFiles\VisualStudio 2010\projects\librecast.lib(DetourNavMeshQuery.obj)
which i think is because the last patch had recast in the walkabout dir.. now its a engine lib if im right??
#194
03/29/2014 (12:23 pm)
Compiled no errors... all I did was remove recast directory from the walkabout engine directory and excluded it from my build and removed nav.h and both navMeshDraw from my build and the walkabout engine directory.... now to test!!!
#195
03/29/2014 (2:49 pm)
Yep, sorry about that Donnie - those files were removed some time ago in favour of putting the Recast files in Engine/lib. I should make it clearer in patch instructions that some files may need to be removed, rather than just copy/pasting the patch over the existing installation!
#196
03/29/2014 (4:08 pm)
Ya thats ok Dan, This is a great addon and thank you for letting me bug you so much.... Plus its great learning for me anyways!!
#197
I had them flying off the walkways in the Factory map ... slowed them down and the Suicide rate has dropped dramatically. 8-}
04/14/2014 (4:52 am)
@Daniel: I think I found the problem. My bots were running at double the speed of the normal player datablock and this seemed to make them run off the platforms.I had them flying off the walkways in the Factory map ... slowed them down and the Suicide rate has dropped dramatically. 8-}
#198
04/14/2014 (7:05 am)
Right. The current ledge code is fairly dumb - it raycasts downwards in front of the AIPlayer and assumes that if it doesn't find a anything, then it's hanging over a ledge. Obviously if your characters move fast enough, they'll be all the way off the ledge before they think of jumping. Kind of like Wile E. Coyote. If your characters are going really fast you may want to think about modifying that ledge detection code in aiPlayer.cpp.
#199
Just wondering how I'd go about determining whether or not my mouse click hit a NavMesh or not. It also just dawned on me that without a collision mesh perhaps there is nothing for the raycast to hit. Anyhow, any way of gathering the data could be helpful. Thanks in advance for any help of course.
06/09/2014 (3:35 pm)
I have a quick question for you Danny (I hope). I have a pretty large map I'm working with, in addition to several smaller ones. For the larger map I was interested in using more than one NavMesh, and using a simple .setMoveDestination() to navigate between the areas that use a NavMesh. The problem I'm having is I'd like to use the NavMesh class as a $Typemask so that when I cast a ray onMouseDown() I can determine whether or not a 'hit' landed on a NavMesh or not. Given this information, I believe I'd be equipped to handle the rest of the logic :) Just wondering how I'd go about determining whether or not my mouse click hit a NavMesh or not. It also just dawned on me that without a collision mesh perhaps there is nothing for the raycast to hit. Anyhow, any way of gathering the data could be helpful. Thanks in advance for any help of course.
#200
How large is your large map? With Walkabout's support for tiling navmeshes you should be able to at least try covering the whole map with one mesh.
As for your specific question of raycasting against a mesh - Recast/Detour doesn't provide a way to do this so I haven't implemented it yet. However I'll definitely add it to my to-do list. It would just require a bit of effort on my part. But I do want to have that ability!
06/09/2014 (5:02 pm)
Hey Jesse. How large is this large map? Unfortunately Walkabout doesn't support pathfinding across different navmeshes. The multiple mesh support is mainly intended to let different character classes navigate differently - you may need to use different navmesh parameters to generate appropriate navigation for large characters, for example, or vehicles.How large is your large map? With Walkabout's support for tiling navmeshes you should be able to at least try covering the whole map with one mesh.
As for your specific question of raycasting against a mesh - Recast/Detour doesn't provide a way to do this so I haven't implemented it yet. However I'll definitely add it to my to-do list. It would just require a bit of effort on my part. But I do want to have that ability!
Torque Owner Daniel Buckmaster
T3D Steering Committee