In this tutorial we are placing our Charatcer BP in the world and assigning an AI Controller to it. I followed the instuctions to a T. Here is the event graph for the AI Controller
Then I selected the appropriate AI Controller Class in the Details window of the Character BP. Auto Possess is set to default: Placed in World. And, of course, a made a big Nav Mesh Bounds Volume that clearly covers the ground. And yet, the character just stands there in idle mode. Can somebody suggest to me what obvious little detail I am missing? This is a beginner tutorial after all!
Maybe something more systemic there but I donât know what the tutorial is trying to accomplish. A MoveTo should have a location to MoveTo, so specifying 0,0,0 may be just moving to its spawn point every three seconds, which would be no movement. Trying giving it an actor to move to or a hard coded X and Y destination location (within your NavMesh) just to see what it does.
When Andreas Suika, the instructor, did it, the 0,0,0 coordinates moved the NPC to the world origin. He changes it later, but for demonstration purposes, it was a good first step. But my guy stands there. I even tried moving him around just to make sure I didnât place him on or near the world origin. Check it out for yourself at 53:00
Youâre a good man charlie brown. Youâre teaching me to debug! I am a very grateful noob. And a frustrated one. I did as you suggested and no string appeared in game.
No string is appearing because the Timer is set to 0.0. so Walk is not getting executed. Either change the Time input to something greater than 0 or put AI Move To in Begin Play and test again.
Iâm not sure why that would help, but here you go. The purple bot is the player, the blue is the BP Character with the AI Controller, BUT with the blueprints that tell it to collect the Orbs, which works. The green is another AI made from scratch (new BP-Character, New Ai Controller) with the original setup and it still doesnât work.
You can also put a âPossessedâ Event on your pawn, and have it print the controller itâs being controlled by to make sure itâs controlling the pawn.
Just check that world location x=0 y=0 z=0 is reachable by the AI. If the AI cannot reach the destination + the Acceptance Radius, it will not try to reach it. You can check by putting a sphere (or any actor) in the world and set itâs position to x=0 y=0 z=0, if it does not look reachable, move it to a reachable location and copy the coordinates and paste it into the AIMoveTo node.
You also do not have to have the timer looping, as once the AIMoveTo is started, it continues to execute until it has reached itâs destination.
That was it! And so obvious in retrospect. 0,0,0 was outside the NavMeshBoundsVolume. And to think I spent days trying to figure this out. Thank you EclecticBoogaloo, and to everyone helped. This is a surprisingly helpful community.
I did this 0,0,0 step only to show briefly how the setup works.
When in viewport you can also press âPâ to display the nav mesh and check if the point you are giving is valid.
In the tutorial that worked because I knew exactly where my origin is and that there nothing obstructing it. Normally you would try to give coordinates (or like I did later actors) that are reachable.
I did all of the above and I checked the area covered with the NavMeshBoundsVolume and still the AI bot wonât move. I have been working on this for 2 hours and no use.
Here is my blueprint and it always hits âSomething seems to block me!â
I had the same problem yesterday and I tried solutions in this page and they did not work. However the problem I had was different. My AI bot location was in the negative Z. I raised the landscape to be z>0 and that solved the problem.