I suggest a text based asset design, similar to what we use in DirectScene. It’s pure Json, optimized to be easy readable and editable.
Subnodes of the object can be defined inline as usual, or as an external reference, in case they are too bloated or if they are binary files.
Example Scene
As you can see in the following example, assets are divided in N files (only 4 of N files are listed here, material, tracks and regions are left out for clarity)
For example, the mesh reference just links to a binary object, this is the original unreal asset.
With this system you have an extremely clear view of what happens in your assets and you can work inside any editor to text copy parts, using find, replace etc.
Scene.Waldhaus1
{
"Scene": {
"Description": "Testscene for Grand Hotel Waldhaus",
"FloatTest" : 3.1415,
"Version": "1.0.0",
"PlayerStart" : [0.0,0.0,200.0],
"Tracks":
"Track.Floor1",
"Track.Cube1",
"Track.Camera1",
"Track.Boy6"
]
}
}
Track.Boy6
{
"Track" : {
"Name" : "Boy6",
"Actor" : "Boy1",
"Loop" : 1,
"Speed" : 1,
"Regions" :
"AnimationRegion.Boy6"
]
}
}
Actor.Boy1
{
"Actor": {
"Name" : "Boy1",
"Type" : "Skeletal",
"Mesh" : "Boy",
"Material" : "",
"Location": [100.0, 0.0, 100.0],
"Rotation": [0.0, 90.0, 0.0]
}
}
Mesh.Boy
{
"Mesh" : {
"Name" : "Boy",
"Path" : "/Engine/shared/Meshes/boy/boy_SKELMESH"
}
}