Code a plugin for Unreal Engine 5 in c++
Budget: £20 – £250 GBP
I'm looking for a pluigin for Unreal Engine 5; https://docs.unrealengine.com/5.0/en-US/
This plugin needs to grab a xml file by name via a textbox (It searches a folder to get this file). So if i enter "l1z3" it needs to find an xml called "l1z3.p3dxml". It then needs to parse the xml into a string and grab a specific set of data by a predfined name.
The plugin needs a GUI, to import different data. So buttons like (import instanced objects, import paths, import roads, import intersections, import locater items).
For an idea, please watch this video, from 3:16 to 4:00. https://www.youtube.com/watch?v=8-1vNmmbEow&ab_channel=reubs
EXAMPLE:
Data can be found using a header / section called: "<Chunk Type="0x120103">" This contains a file name, and some coordinates.
<Value Name="Name" Value="l1_streetlamp_1" /> (This is the name, "l1_streetlamp_1").
<Value Name="Transform" M11="0.6010455" M12="0" M13="0.79921484" M14="0" M21="0" M22="1" M23="-0" M24="0" M31="-0.79921484" M32="-0" M33="0.6010455" M34="-0" M41="257.419434" M42="-1.56149864" M43="-471.327972" M44="1" />
^^^ That is the coordinates. We need M41, M42, M43.
Once it has the data (which will be a name and set of coords), it needs to do some maths on the coords;
Y & Z need to be swapped.
Y needs to be inverted.
These then need multiplying by 100x.
For example:
M41="257.419434" M42="-1.56149864" M43="-471.327972" (From the XML file)
M41 = X
M42 = Y
M43 = Z
X="257.419434"
Y="-1.56149864"
Z="-471.327972"
Y and Z swapped would make it
X="257.419434"
Y="-471.327972"
Z="-1.56149864"
Y inverted would make it
X="257.419434"
Y="471.327972" (Remove the "-" or add one if there isn't one).
Z="-1.56149864"
Then multiply by 100
X="25741.9434"
Y="47132.7972"
Z="-156.149864"
(Move the decimal place back two places)
It will need to do this several times within the same xml for the different objects we need, we can use <Chunk Type="0x120103"> to find.
Once it has this data (name and coordinates) it would need to spawn in a static mesh in Unreal 5, like the video example. It can do this by searching the project contents in unreal for a static mesh with name the same as the one we pulled from the XML.
So:
Parse XML -> Pull data (Name and coords) -> Calculate maths on coords -> Store / save this -> Loop through all the rows with "<Chunk Type="0x120103">" calculating the maths on coords and saving them with the object name, storing the name and coords for each instance -> Spawn object in Unreal engine 5 world at the coords calculated.
I've attached an xml as an example for you. This video shows you what i want: 3:16 Onwards: https://www.youtube.com/watch?v=8-1vNmmbEow
Unreal Engine 5: https://docs.unrealengine.com/5.0/en-US/
Rough idea of an alternative way that could help in writing the code: https://dev.epicgames.com/community/learning/tutorials/Gj/unreal-engine-importing-coordinates-for-automatic-static-mesh-placement
Please get in contact ASAP as this is urgent.
This plugin needs to grab a xml file by name via a textbox (It searches a folder to get this file). So if i enter "l1z3" it needs to find an xml called "l1z3.p3dxml". It then needs to parse the xml into a string and grab a specific set of data by a predfined name.
The plugin needs a GUI, to import different data. So buttons like (import instanced objects, import paths, import roads, import intersections, import locater items).
For an idea, please watch this video, from 3:16 to 4:00. https://www.youtube.com/watch?v=8-1vNmmbEow&ab_channel=reubs
EXAMPLE:
Data can be found using a header / section called: "<Chunk Type="0x120103">" This contains a file name, and some coordinates.
<Value Name="Name" Value="l1_streetlamp_1" /> (This is the name, "l1_streetlamp_1").
<Value Name="Transform" M11="0.6010455" M12="0" M13="0.79921484" M14="0" M21="0" M22="1" M23="-0" M24="0" M31="-0.79921484" M32="-0" M33="0.6010455" M34="-0" M41="257.419434" M42="-1.56149864" M43="-471.327972" M44="1" />
^^^ That is the coordinates. We need M41, M42, M43.
Once it has the data (which will be a name and set of coords), it needs to do some maths on the coords;
Y & Z need to be swapped.
Y needs to be inverted.
These then need multiplying by 100x.
For example:
M41="257.419434" M42="-1.56149864" M43="-471.327972" (From the XML file)
M41 = X
M42 = Y
M43 = Z
X="257.419434"
Y="-1.56149864"
Z="-471.327972"
Y and Z swapped would make it
X="257.419434"
Y="-471.327972"
Z="-1.56149864"
Y inverted would make it
X="257.419434"
Y="471.327972" (Remove the "-" or add one if there isn't one).
Z="-1.56149864"
Then multiply by 100
X="25741.9434"
Y="47132.7972"
Z="-156.149864"
(Move the decimal place back two places)
It will need to do this several times within the same xml for the different objects we need, we can use <Chunk Type="0x120103"> to find.
Once it has this data (name and coordinates) it would need to spawn in a static mesh in Unreal 5, like the video example. It can do this by searching the project contents in unreal for a static mesh with name the same as the one we pulled from the XML.
So:
Parse XML -> Pull data (Name and coords) -> Calculate maths on coords -> Store / save this -> Loop through all the rows with "<Chunk Type="0x120103">" calculating the maths on coords and saving them with the object name, storing the name and coords for each instance -> Spawn object in Unreal engine 5 world at the coords calculated.
I've attached an xml as an example for you. This video shows you what i want: 3:16 Onwards: https://www.youtube.com/watch?v=8-1vNmmbEow
Unreal Engine 5: https://docs.unrealengine.com/5.0/en-US/
Rough idea of an alternative way that could help in writing the code: https://dev.epicgames.com/community/learning/tutorials/Gj/unreal-engine-importing-coordinates-for-automatic-static-mesh-placement
Please get in contact ASAP as this is urgent.