x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

如何导出UE4的导航数据

我们项目遇到一个问题,就是如何导出导航数据给服务器使用,我们查看了UE4的代码,无法找到一个可用的函数,能导出Recast Navigation格式的导航数据。希望有人能帮我们解决一下,谢谢。

Product Version: UE 4.11
Tags:
more ▼

asked Jul 05 '16 at 12:57 AM in C++ Programming

avatar image

yelei8363
1 5 10 10

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

目前引擎有一个命令行,输入 ExportNavigation 就可以导出这些数据。

如果需要细节可以直接看下相应的代码:

RecastNavMeshGenerator.cpp

 static class FNavigationGeomExec : private FSelfRegisteringExec
 {
    ...
    Generator->ExportNavigationData( FString::Printf( TEXT("%s/%s"), *FPaths::GameSavedDir(), *Name ));
    ...
 }

more ▼

answered Jul 05 '16 at 07:38 AM

avatar image

TIANMIN STAFF
25 3 4 4

avatar image yelei8363 Jul 06 '16 at 08:21 AM

这个方法,我已经试过了,导出的数据不是Recast Navigation格式的导航数据,目前我是将UE4的代码进行了修改,暴露了Recast Navigation的导航数据,才实现了导航数据的导出。如果想知道具体怎么做的,可以通过邮箱联系我。邮箱地址:ye_lei_@126.com

avatar image TIANMIN STAFF Jul 06 '16 at 08:30 AM

能把你要的 导航数据 更详细的描述一下吗?我先前错误理解了你的意图。

如果可以的话,分享一下你的代码修改也许对以后类似问题的人能有帮助。

avatar image yelei8363 Jul 07 '16 at 07:20 AM

我目前使用UE4开发MMORPG游戏,服务器是使用Recast Navigation导航。通过代码发现UE4导航底层也是Recast Navigation,只不过做了一些修改,所以我想将客户端的导航数据导出给服务器使用。 但是通过代码查看,UE4是没有提供导出导航数据的接口的,所以我们决定自己写。但是遇到了问题,FPImplRecastNavMesh类是可以获取到导航数据(dtNavMesh),但是想获取FPImplRecastNavMesh对象却是保护的,所以我修改了RecastNavMesh.h里面的代码,将protected改成了public。 alt text

希望UE4下个版本能暴露dtNavMesh数据,让我们可以获取,或者提供一个函数导出导航数据。

11.png (9.3 kB)
avatar image TIANMIN STAFF Jul 07 '16 at 07:24 AM

明白你的需求了。

看起来这么做也没什么问题。

不过我想交流下,通常 MMORPG 的话,服务端都是大世界,服务端的寻路数据应该比客户端简单得多,以提高服务器本身的性能。AI 在服务器上进行寻路计算后,在服务器和客户端之间只做位置同步即可。

你这边如果把客户端的寻路数据给服务端用,如果地形不复杂也许还行,如果地形复杂的话,尤其是当 AI 很多的时候,对服务器也会造成一些压力。你们需要留意一下。

当然这个话题已经脱离你的主题了。我们 CLOSE 这个 THREAD 吧。谢谢你提供的方法和代码。

avatar image yelei8363 Jul 07 '16 at 09:08 AM

是的,这个我们也会考虑的,客户端导航数据确实很多,但是服务器不会用那么多数据的。只要Recast Navigation的必要数据即可。你能通过我的邮箱和我联系吗,论坛联系还是太麻烦了,我们这边遇到很多问题,想私底下和你交流一下。

avatar image TIANMIN STAFF Jul 08 '16 at 04:18 AM

我们通常不做私下交流(坏笑)

技术问题欢迎继续在 AnswerHub 讨论,也有利于其他开发人员收益。

引擎业务的合作欢迎通过邮箱联系我们。 egc-business@epicgames.com

avatar image yelei8363 Jul 11 '16 at 06:25 AM

您好TIANMIN,能不能帮我回答一下这个问题https://answers.unrealengine.com/questions/448506/%E5%A6%82%E4%BD%95%E5%B0%86ue4%E5%8D%95%E4%BD%8D%E6%94%B9%E6%88%90%E7%B1%B3.html 已经挂了二天了,没有人回答。

avatar image sha hu Jun 12 '18 at 11:06 PM

Is this issue finally solved by ue4.19? I want to obtain all the points' positions, i.e., (x,y,z) from the .obj file generated by the ExportNavigation command. Is it possible with current ue4.19?

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question