Hello,
at first I'd like to say that you're awesome Gildor! Without you, I wouldn't gain so much Unreal Engine experience!
I'm commercial Level Designer/ Game Designer on Unreal Engine III (UDK). I'm trying something impossible - porting console exclusive to PC. I'm enough experienced to understand all facts of Unreal Engine schemes and etc. but still I need help, and you're the best here Gildor!
So, I started by unpacking .ISO file from Silent Hill: Downpour (Xbox360). By doing this I ended with bunch of .XXX files and some additional .UPK's mostly of them are just CookingData. I've made a mass decompress, uncook and batch export of all files there. I've ended with exported .PSKX/.PSK/.TGA etc. files that I've already imported to my UDK instance (that was about 7,000 shit, took me hours to import/ save). Today I did decompress cooked scripts. I made it to decompile all possible scripst there so I ended with 'bout 2,700 .UC classes. I'll write config files and try to compile all of 'em on my UDK instance and if any error - try to rewrite conflict class (not a big problem, already have experience, because I'm remaking Postal 2 on UDK so I had to rewrite many Unreal 2.0 classes to UDK). But there is a still problem I can't solve. I've got everything (without sounds because of this idiot Xbox360 sound compression) without maps.
Maps scheme example:
Name: 00_pe_diner.xxx
GUID: c00577e3-8291-89b4-67e8-fc45420c5598
Ver: 756/ engine 7026/ cook 113
Cooked: True
Build: Default
Map Tree:
00_pe_dinner.xxx (main? Core map?)
00_pe_diner_ai.xxx (With _ai prefix - Probably a part of map with AI control due to level transmission and zones on map. I see also event meshes like doors and collectibles too; physicalMaterial referrences too; RigidBodies too; Particles; SoundCue referrence)
00_pe_diner_sd.xxx (With _sd prefix - Shitload of soundNodes and it's build)
And log from UE Explorer (I know it's not related to UModel, but it's just to show map build log from this software)
PostProcess: (Good!)
UberPostProcess example decompiled build:
begin object name=OurUberPostProcessEffect_12 class=OurUberPostProcessEffect
SceneShadows=(X=0.0,Y=0.0,Z=0.0)
SceneHighLights=(X=2.0,Y=2.0,Z=2.0)
SceneMidTones=(X=1.250,Y=1.250,Z=1.250)
SceneDesaturation=0.80
NodePosY=102
NodePosX=314
DrawWidth=183
DrawHeight=47
OutDrawY=136
InDrawY=136
object end
// Reference: OurUberPostProcessEffect'ppr_postprocess.07_Otherworlds.ppr_ao_otherworld_low_flash02.OurUberPostProcessEffect_12'
PostProcesses are not problem. But the main problems are I need location (X, Y, Z - world) in World for StaticMesh'es placements and BSP Draw3D, position, rotation etc.
This is example build of decompiled StaticMesh on map:
Outer: InterpActor //So, I know that this StaticMeshComponent is Mover; Probably Sky? Or any other RigidBody
ObjectSize: 401 // 401 of what!?
Object Offset: 1318111
Refference: PersisentLevel //I see it's out of Level Streaming zone.
Table Index:936
Table Offset:0x00017B45
Table Size:0x00000044
begin object name=StaticMeshComponent_12 class=StaticMeshComponent
// This object has no properties!
object end
// Reference: StaticMeshComponent'TheWorld.PersistentLevel.InterpActor.StaticMeshComponent_12'
Another StaticMesh instance from _AI, this time more decompiled info:
Table Index:5054
Table Offset:0x00073E9D
Table Size:0x00000044
begin object name=cellar01_din_ao class=StaticMesh
begin object name=RB_BodySetup class=RB_BodySetup
PreCachedPhysDataVersion=34079889
AggGeom=ConvexElems=/* Array type was not detected. */,VertexData=/* Array type was not detected. */,
/* Exception thrown while deserializing AggGeom
System.ArgumentOutOfRangeException: Indeks był spoza zakresu. Musi mieć wartość nieujemną i mniejszą niż rozmiar kolekcji.
Nazwa parametru: index
w UELib.UName.Deserialize(IUnrealStream stream)
w UELib.UObjectStream.ReadNameReference()
w UELib.Core.UDefaultProperty.Deserialize()
w UELib.Core.UDefaultProperty.DeserializeDefaultPropertyValue(PropertyType type, DeserializeFlags& deserializeFlags) */
object end
// Reference: RB_BodySetup'env_din01_sm.cellar01_din_ao.RB_BodySetup'
BodySetup=RB_BodySetup
LightMapCoordinateIndex=1
LightMapResolution=16
object end
// Reference: StaticMesh'env_din01_sm.cellar01_din_ao'
Now I know what's this object, what's LightMap setting (not really neccesary). Also, now I know gull path to model, but still there's not the most important info about model Draw3D, rotation and position. So, Gildor and anyone here:
how can I get info about Rotation, Draw3D, Scale or position of SM on map? I remember I had a MapInfo software when I was having fun with L2 modding (about 3-4 years ago, so I don't remember name or anything that can help me to find it) that shown me every object instance in map.
Is there any software which one can show some important info about UE3 map and it's build?
Is there any way to see SM's infos on map?
Thank you very much!
EDIT: Opened map by HexEditor and saw that there's uncompiled Kismet nodes, example:
05 42 6F 6F 6C - |Bool
*Shit load of compiled HEX*
08 54 75 72 6E 20 4F 6E - Turn On