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!
#122
02/06/2014 (5:15 pm)
I think the issue may present it self with the error message (console):GuiBitmapBorderCtrl: Could not construct bitmap array for profile 'GuiDefaultProfile'
#123
02/06/2014 (5:18 pm)
Huh. I always thought that was unrelated. I'll keep it in mind but it's not a high priority for me right now - I'm starting to work on options for dealing with water bodies.
#124
Try this, it works for me...
In ToolsToolbar.ed.gui :
change the extent to:
02/06/2014 (5:51 pm)
Correction!!! The error is indeed unrelated! Sorry about that Daniel!Try this, it works for me...
In ToolsToolbar.ed.gui :
%guiContent = new GuiContainer(EWToolsToolbar) {
canSaveDynamicFields = "0";
Enabled = "0";
internalName = "ToolsToolbar";
isContainer = "1";
Profile = "editorMenubarProfile";
HorizSizing = "right";
VertSizing = "bottom";
Position = "0 31";
Extent = (29 + 4) * 14 + 12 SPC "33";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
isClosed = "0";
isDynamic = "0";change the extent to:
Extent = (29 + 4) * 14 + 45 SPC "33";
#125
02/06/2014 (6:04 pm)
Or maybe just change that 14 to a 15? I have no idea how the editor GUI is structured or I'd suggest that number should be calculated dynamically.
#126
02/06/2014 (6:12 pm)
@Daniel, Yes it's the same. And it should be dynamically. I'll implement this in the (Dark) UI-recourse :)
#127
02/06/2014 (8:24 pm)
Thanks Dan and Nils, changing that to 15 worked all the way.... for the life of me I cant seem to get my AI to crouch!! I did steves resource and it works but I cant figure out how to put it in uaisk when my guy goes for cover???
#128
02/06/2014 (8:46 pm)
Thanks for that, Nils :). Donnie, I've never really tried to get them to crouch - are you having trouble finding the right spot to put the crouching in the UAISK code? Or is it just not happening when the bots are UAISK-controlled? (Or Walkabout-controlled?)
#129
02/07/2014 (10:52 am)
Having trouble finding the right spot in uaisk??? however on coverpoints theres stand, crouch, and prone, so if I got them to crouch in uaisk how would i tie that into my cover point?? Driving me crazy, using steves resource works in command window, when I know the ai's ID # but their never the same.... any help would be great and cause less harm to my loved ones... jk on the last part!!
#130
I started by editing the scripts/server/player.cs ::onDamage() to test it and have them crouch if hit and not killed.
For examples; scripts/server/UAISK/aiMovement.cs ... onReachDestination() could be used to have them crouch if they reach their destination and they are guarding.
Also check on "movementPositionFilter()" ... consider adding a function to there to have the AI "stand up", to counter any crouch, etc.
In my code base, I use that to plan the next recast path, so all new movements go there first.
EDIT: I'd start by looking at the code in UAISK "where your guy goes to cover" ... where ever that exists, as its not stock UAISK to go to cover far as I know.
02/07/2014 (3:50 pm)
Donnie@ decide first of all, when/where you want them using the poses. I started by editing the scripts/server/player.cs ::onDamage() to test it and have them crouch if hit and not killed.
For examples; scripts/server/UAISK/aiMovement.cs ... onReachDestination() could be used to have them crouch if they reach their destination and they are guarding.
Also check on "movementPositionFilter()" ... consider adding a function to there to have the AI "stand up", to counter any crouch, etc.
In my code base, I use that to plan the next recast path, so all new movements go there first.
EDIT: I'd start by looking at the code in UAISK "where your guy goes to cover" ... where ever that exists, as its not stock UAISK to go to cover far as I know.
#131
02/07/2014 (8:21 pm)
hey jeff, guess my biggest prob right now is finding out how to get the id number in script so I can use steves resource to crouch?? to be more clear, when any ai take damage they are to crouch, i dont understand how to deal with their id numbers to assign like 5454.setaipose(1);!! is their a function for that, hell i just confused myself, lol....
#132
Here's a little sneak peek of what I'm working on right now...

02/08/2014 (5:02 am)
Donnie, in whatever callback function you use, the object should be passed. So, for example, damage callbacks look something like this:function PlayerData::onDamage(%this, %obj, %amount, ...)
{
...%this will contain the ID number of the datablock, and %obj the ID of the player that got hurt.Here's a little sneak peek of what I'm working on right now...

#133
02/11/2014 (6:14 pm)
thank you so much guys,in aiThought, I used %obj.setAIPose(1); in defending to have my enemy crouch when hit and %obj.setAIPose(0); in attacking so he stands back up... works great with www.garagegames.com/community/resources/view/22501!!! If you think theres a better place to do it please let me know.... Now to add walkabout for seeking cover and pathfinding!! Thanks again Daniel...
#134
02/11/2014 (6:35 pm)
Great to hear you got it working :).
#135
I had to abandon Walkabout for the Flexible A* resource on here, because of this missing feature that I needed.
Do you know when we'll be able to get our hands on an update?
02/13/2014 (10:37 am)
@Daniel: Are you also working on allowing linking between meshes?I had to abandon Walkabout for the Flexible A* resource on here, because of this missing feature that I needed.
Do you know when we'll be able to get our hands on an update?
#136
02/13/2014 (12:44 pm)
Sorin, which A* resource do you refer to? The one built into 3.5?
#137
I'm terrible at sticking to promises about when I might release something, but hopefully within a week or two. I've added basic water handling, and factored in the code changes in the 3.5 release, and I'm in the process of updating the documentation.
02/13/2014 (11:52 pm)
Sorin, sorry to hear this is stil causing pain. Could you tell me a bit more about your use case so I can mull over possible solutions? Andy, the navigation code in 3.5 is an upgraded version of my earlier recast resource, basically a subset of Walkabout. Sorin's referring to an earlier resource that dates back to TGE if I'm not mistaken.I'm terrible at sticking to promises about when I might release something, but hopefully within a week or two. I've added basic water handling, and factored in the code changes in the 3.5 release, and I'm in the process of updating the documentation.
#138
Expose getNearestMeshPosition(or_whatever_it's_called) to console, k thx buy ;)
I suppose the use of multiple connected meshes might be useful for HUGE maps ... but might be a pain in the bum to code ...
02/14/2014 (6:00 am)
@DanielExpose getNearestMeshPosition(or_whatever_it's_called) to console, k thx buy ;)
I suppose the use of multiple connected meshes might be useful for HUGE maps ... but might be a pain in the bum to code ...
#139
02/14/2014 (1:31 pm)
Sounds very nice daniel!
Torque Owner Richard Ranft
Roostertail Games
Anyway, I agree with Dan regardless of the actual mechanism. Shouldn't be too tough to extend the palette though.