Are the tiles already imported and streamed in with another level, or do you start the import process when getting close?
A sample project would be great - thanks!
Are the tiles already imported and streamed in with another level, or do you start the import process when getting close?
A sample project would be great - thanks!
I just create new empty map, drag and drop point cloud into, save map and that is one tile. Then is positioned in world map tiles. And that tile/map is automatically loaded when I will getting close.
Hmm, so I was created the new project in a UE 4.27 (my project is in 4.26) and there is everything smooth. So problem will be in old UE or some settings or in my project. I will try to upgrade to 4.27 and investigate further possible problems.
Well, my project is smooth in the 4.27, so its everything ok
One more question: is there any way how to change pointcloud settings in the blueprints in runtime (point size, shape etc.)?
@ BTW, how do you imported that hundred example files? Somewhat automatically? When I will import two point clouds into two tile maps then each tile is on different height and I have to manually position them. How you did it?
Function for align point clouds will move their pivot outside of their center but that will cause harder management (if will be moved by few kilometers away from the centre, then I will not even find it in the viewport) and I think there will be problem when the pivot will be very far from the center of level tile (maximum level size?). Also is impossible to align new tile to the already aligned tiles. I would like to have function that will align only Z axis, so the point clouds would be always on the center of level tile. Is that possible?
Hi
Glad you got it working under 4.27
Yes, you can change all those parameters via BP at runtime.
Re aligning
In the Content Browser, select all cloud tiles you want aligned, then right-click and just hit align. This will use their original pivot points to shift the locations, but maintain the overall center around point 0,0,0 so that the offset isnât too far, causing issues.
Alternatively, if youâre working with assets at runtime, there is an AlignClouds function in C++ and BP, where you can pass a list of assets you want aligned
@ And how I can change that parameters (point size etc.) via BP? I canât found it anywhere.
That aligning function is not suitable for me. Could be added possibility to get/set coords X, Y, Z in blueprints? That would solved everything for me. I need to set X and Y to 0 and keep original Z.
The parameter is found on Lidar Point Cloud Component - when you have the Actorâs reference, simply drag a pin from it and search for GetPointCloudComponent node. From there, you should be able to manipulate all parameters.
You could align them the way you mentioned, but youâd need to do that from C++. BP in UE4 do not work with the variable types, which are used to store the original coordinates.
@ Thanks, it is needed to uncheck âcontext sensitiveâ, that is reason why I did not found it.
And is there any way how to automatically position mesh to the center of aligned cloud in BP?
Not quite sure what you mean.
You can get the location of the point cloud actor (and bounds of the asset itself, if not centered), and simply use it to position your mesh
Hi there,
Iâm using the built-in LiDAR plugin in UE 4.27, but somehow when importing a point cloud, the Y-coordinates get a negative value. This happens with .las .pts and .e57 files. When viewing the point cloud in Recap, the coordinates are correct (see attached file).
Did I miss something while importing?
Hi @Lionhouse_NL
Canât remember now if Recap has the XYZ axes pointing in the same directions as the ones in UE - could you please confirm that? I assume they may have the Y axis flipped, hence the plugin is compensating by flipping the sign on the coordinate
@ Thanks, it works.
BTW, I have problems in the packaged game, it crashing when loading streaming levels is slow. The crash messages are various, for example this:
Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/PakFile/Private/IPlatformFilePak.cpp] [Line: 3846] LiveRequests.Num or NumLiveRawReqeusts was > 0 in ~FPakAsyncReadFileHandle!
UtrzenyVejfuky!FPakAsyncReadFileHandle::~FPakAsyncReadFileHandle()
UtrzenyVejfuky!FPakAsyncReadFileHandle::`vector deleting destructor'()
UtrzenyVejfuky!FLidarPointCloudOctree::~FLidarPointCloudOctree()
UtrzenyVejfuky!ULidarPointCloud::`vector deleting destructor'()
UtrzenyVejfuky!FAsyncPurge::TickPurge()
UtrzenyVejfuky!FProperty::ImportText_Internal()
UtrzenyVejfuky!IncrementalPurgeGarbage()
UtrzenyVejfuky!CollectGarbageInternal()
UtrzenyVejfuky!TryCollectGarbage()
UtrzenyVejfuky!UEngine::ConditionalCollectGarbage()
UtrzenyVejfuky!UWorld::Tick()
UtrzenyVejfuky!UGameEngine::Tick()
UtrzenyVejfuky!FEngineLoop::Tick()
UtrzenyVejfuky!GuardedMain()
UtrzenyVejfuky!GuardedMainWrapper()
UtrzenyVejfuky!LaunchWindowsStartup()
UtrzenyVejfuky!WinMain()
UtrzenyVejfuky!__scrt_common_main_seh() [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
Do you know how to fix that (some settings somewhere)? Because in the editor it is ok, only problem is in the packaged game. If I walking slowly through the levels, then it will not crash, because harddisk is not busy.
Hard to say, weâve done some fixes to how the data is being streamed when we were porting the plugin to Twinmotion, but a majority of those will not be eligible for a hotfix update.
In that case, I can try to put together a custom version with those fixes for you at some point. Keep in mind this would not be an officially supported build, however
@ Yes please, make that custom version. Currently I cannot release the game because it will crash soon or later. Only on SSD with low point bucked settings is possible to play a while.
BTW, I tried that setting point size etc. in blueprints and ended with this solution: I have to add this code into level blueprint of the all levels.
My time is currently very limited, so the custom version may take a while.
Re point size - Maybe try something like GetAllActorsOfType when the user changes the setting and apply it there.
It looks like Recap is pointing up correctly. I donât think Recap is the problem, it is showing the coordinates correctly (with positive y-values, which is correct according to the location of the project) for the original .las file (this file comes straight from a lidar scanner). The y-values get a negative value when importing the *.las file into Unreal. Iâve also tried to import a .pts and .e57 file into Unreal, same result, negative y-values.
What to do now? Iâm pretty sure the lidar files are correct.
edit Iâve converted the .las file to .txt. All y-values are positive, but when I import this .txt file into Unreal, all y-values are negative. Whatâs the place to report a bug for this plugin?
I think you misunderstood me regarding the Y axis - Iâm not suggesting itâs incorrect in Recap.
Different software packages may handle the direction of the axis differently. See this link for more info: https://www.techarthub.com/a-practical-guide-to-unreal-engine-4s-coordinate-system/
It seems Recapâs Y axis is pointing the opposite way of UEâs, hence why the plugin is flipping the coordinate.
As for the bug reporting, the plugin is maintained as part of the engine so you can use the normal bug reporting here: Report a Bug - Unreal Engine
Thanks for clarifying, this helps a lot
So if Iâm correct, I have to convert the pointcloud from right-handed to left-handed, which means multiplying all Y values by -1?