Hi Josh, yeah you can do this! I just did myself (
https://www.tumblr.com/londonsimblr...-is-just-a-test) Yours was one of the threads I found when I was searching about how to do this before so I thought I'd come back and let u know what I found
You will need to familiarise yourself with editing the following parts of objects, there are good tutorials on these, if you haven't done these before I would start with some simpler projects that allow you to practice each of them:
- meshing, s3pe, tsrw
- editing shaders; using the landmark shader
- editing footprints
- editing xmls
- basic script editing using visual studio or sharpdevelop
- it may also help to read up on geostates to understand the concept of them and what they do, but I'll explain how to set them up for your shell
To have an object function as a shell, it needs:
- a custom class derived from GameObjects.BuildableShell - this is a few lines to tell the game your shell is a unique shell, and load your xml. You can basically copy and paste the script from any Late Night shell; use a getter instead of "=>" if it won't compile
- a custom tuning xml - this again can be copied and pasted from one of the Late Night shells. They are annotated outlining what each line does, so are easy to edit. Mostly it tells the game what sound effects to use for your shell, and what door to give it.
- At least three footprints: Two to set out the area of the floors you can build inside the shell, and one to mark the thick outside walls of the shell as unroutable
- At least two geostates: Level0 (walls and roof down), Level1 (roof down, and walls revealing the next buildable floor down), and the default state which is all walls and roof up. If you open a Late Night shell in TSRW and change between the visible geostates you can see how EA meshed theirs. The geostate names are the hashed names of level0 and level1.
The aspects that are unique to shells and won't be covered in other tutorials are these:
Footprints
If you clone the FTPT resource of a Late Night shell you will see 3 footprint areas inside. Two are flagged ForShell and one is not. The two that are flagged ForShell allow you to set out the area that you can build inside in build mode for each level using the closed polygon coordinates. Your footprint for level 1 has a level offset of 1; you should also edit the elevation offset to the height of your upper buildable floor minus three meters.
Geostates
Your shell needs two geostates. The easiest way to set these up is by splitting your mesh into groups according to which parts will be disappeared in each state. For example, my roof should only be shown in the default state and not in the level0 or level1 state, so it should be in a group only with other faces that are only shown in the default state. You will probably also split groups further beyond that for your materials.
Once you have your mesh imported to the package, open it in S3PE. Open the MLOD with group number 0x00000000 - this is your high detail mesh.
Open chunk entry 00 and open meshes. This lists your object groups.
In each group that should disappear in a given state, add that state (its hash) in the geometry states for its group. If it should be shown in a state, do not add that state. If you have groups that are visible in all states (eg your foundation) you do not need to give that group any geostates. You also do not need to edit the other fields beyond the state's name - leave them all as 0x00000000.
I know this is a very high level overview - would be hard to cover every aspect of the creation of the object itself, but if you get stuck I'm sure I can lend a hand!