Resource icon

Misc Vintage Garage 0.1

Login or Register an account to download this content
"to show modding the objects,pssg file is possible."

Hello! How did you manage it? This is very important for the future modding of the game.
hi mate! he said that to me on our discord server (if you want to enter, here's the link: https://discord.gg/ujb4KpK3 )

It's possible but not easy, because you must export the pssg as xml file and edit there the root node because Ego pssg only supports car and interior nodes.
So export the objects.pssg with 3dsimed -> edit in Blender and add Car nodes -> export as usually -> edit the pssg as xml file and and change the track nodes to car nodes -> import the modded files -> edit the pssg again and change car nodes back to track nodes.
But i fear it's a pain in the ass to do this.
 
Hi,

like colephelps said, it's possible but not easy. We still need to figure out many things. But i wan't to share my findings so far.

Exporting a 3dmodel with ego pssg engine from F1 2013 objects.pssg.

If you try to export you get the Error "Support for node LODVISIBLERENDERNOTE not implemented."

In Ego Pssg Editor select the 2nd Libary and export.

tut1.jpg
tut2.jpg


save as node.xml and open in Notepad++. In Notepad++ go to search and replace, replace LODVISIBLERENDERNODE with NODE.

tut.jpg



should look like that:
tut4.png



save the node.xml and import again into the objects.pssg file with ego pssg editor. Now you can export the 3d objects fine.

Importing the 3D objects back into Objects.pssg

Importing the 3D objects doesn't work because ego pssg editor expects a ROOTNODE named "Scene Root" but in the objects.pssg there are several ROOTNODEs named like the 3d object. For example "fe_dome ROOT". So in Blender i created a ROOTNODE like Ego PSSG Editor would expect for Cars:

tut5.png


After Importing it would not work in Game, i had to export and edit the ROOTNODE in Notepad++.

This time i just select ROOTNODE and export as xml

tut7.png


This is how the XML code looks after importing the 3d object with ego pssg editor
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<PSSGFILE version="1.0.0.0">
<ROOTNODE stopTraversal="0" nickname="Scene Root" id="Scene Root">
<TRANSFORM>
1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000
0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 </TRANSFORM>
<BOUNDINGBOX>
0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 </BOUNDINGBOX>
<NODE stopTraversal="0" nickname="LOD0_" id="LOD0_">
<TRANSFORM>
1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000
0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 </TRANSFORM>
<BOUNDINGBOX>
0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 </BOUNDINGBOX>
<RENDERNODE stopTraversal="0" nickname="fe_dome" id="fe_dome">
<TRANSFORM>
1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000
0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 2.602196693e+000 -1.379601508e-001 -2.435080051e+000 1.000000000e+000 </TRANSFORM>
<BOUNDINGBOX>
-6.372869968e+000 -2.625182867e-001 -3.868690014e+000 7.321029663e+000 3.599829912e+000 8.118259430e+000 </BOUNDINGBOX>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS0" streamCount="0" shader="#helicopter_rotor" id="!RSI0">
<RENDERINSTANCESOURCE source="#!RDS0" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS1" streamCount="0" shader="#lights!0" id="!RSI1">
<RENDERINSTANCESOURCE source="#!RDS1" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS2" streamCount="0" shader="#lights" id="!RSI2">
<RENDERINSTANCESOURCE source="#!RDS2" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS3" streamCount="0" shader="#tools" id="!RSI3">
<RENDERINSTANCESOURCE source="#!RDS3" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS4" streamCount="0" shader="#objects" id="!RSI4">
<RENDERINSTANCESOURCE source="#!RDS4" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS5" streamCount="0" shader="#building" id="!RSI5">
<RENDERINSTANCESOURCE source="#!RDS5" />
</RENDERSTREAMINSTANCE>
</RENDERNODE>
</NODE>
</ROOTNODE>
</PSSGFILE>

and after i edited it in Notepad++:

Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<PSSGFILE version="1.0.0.0">
<ROOTNODE stopTraversal="0" id="fe_dome Root">
<TRANSFORM>
1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000
0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 </TRANSFORM>
<BOUNDINGBOX>
0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 </BOUNDINGBOX>
<LODVISIBLERENDERNODE stopTraversal="0" nickname="lod" id="lod!0">
<TRANSFORM>
1.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 0.000000000e+000
0.000000000e+000 0.000000000e+000 1.000000000e+000 0.000000000e+000 2.602196693e+000 -1.379601508e-001 -2.435080051e+000 1.000000000e+000 </TRANSFORM>
<BOUNDINGBOX>
-6.372869968e+000 -2.625182867e-001 -3.868690014e+000 7.321029663e+000 3.599829912e+000 8.118259430e+000 </BOUNDINGBOX>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS0" streamCount="0" shader="#helicopter_rotor" id="!RSI0">
<RENDERINSTANCESOURCE source="#!RDS0" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS1" streamCount="0" shader="#lights!0" id="!RSI1">
<RENDERINSTANCESOURCE source="#!RDS1" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS2" streamCount="0" shader="#lights" id="!RSI2">
<RENDERINSTANCESOURCE source="#!RDS2" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS3" streamCount="0" shader="#tools" id="!RSI3">
<RENDERINSTANCESOURCE source="#!RDS3" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS4" streamCount="0" shader="#objects" id="!RSI4">
<RENDERINSTANCESOURCE source="#!RDS4" />
</RENDERSTREAMINSTANCE>
<RENDERSTREAMINSTANCE sourceCount="1" indices="#!RDS5" streamCount="0" shader="#building" id="!RSI5">
<RENDERINSTANCESOURCE source="#!RDS5" />
</RENDERSTREAMINSTANCE>
<LODRENDERINSTANCES />
</LODVISIBLERENDERNODE>
</ROOTNODE>
</PSSGFILE>

My edited ROOTNODE code is all but not accurate, but it somehow works ingame.

There are still problems for example the materials use several textures with different UV Maps. But after importing only the first UV Map gets used. This messed up the textures.

20230609051240_1.jpg


To fix this i had to bake the texture from the first UV Map into the 2nd UV Map, then remove the first UV Map and edit the materials to use the fresh baked textures.

I hope @Petar Tasev has a hint how we can set the UV Map that a Material uses for a Texture. But i fear this is not implemented in Ego Engine Editor.
 

Latest News

What's needed for simracing in 2024?

  • More games, period

  • Better graphics/visuals

  • Advanced physics and handling

  • More cars and tracks

  • AI improvements

  • AI engineering

  • Cross-platform play

  • New game Modes

  • Other, post your idea


Results are only viewable after voting.
Back
Top