Replies: 0 (Who?), Viewed: 79 times.
Me? Sarcastic? Never.
staff: administrator
Original Poster
#1 Old 22nd Sep 2022 at 5:03 PM
Default Creating Pool Lights
This tutorial is focused on turning an existing wall light into a pool light. Reason is I wanted some NL neon lights as pool lights. If you have a cc wall light then just make a new clone of that first, ensure it works, then continue the tutorial. Taking an existing working wall light was quicker and easier (imo) than trying to clone the pool light and adding a bunch of light as well as making it recolorable. So this tutorial is a bit specific in that regard. This tutorial does not take into account any lights moved down the wall, aka, down low objects.

If you use Blender, some of the quirks of Milkshape probably won't apply. If you don't have this issue, then go to the next step.
This is not a beginners tutorial, you should know your way around SimPE and be able to create basic objects already, preferably with knowledge of lights.

Step 1 - Moving mesh
Wall lights sit in about the top third section of the wall. As seen in the image, the wall is three grids tall. Pools are one level below ground, so the three grids below the purple line are where the pool is. Select the mesh and move it down to be in the top third section of where the pool sits. You move the mesh on the Y-axis, I move it about -3.

Once you move the mesh, import into this project the lightingwallpoolsimple_tslocator_gmdc.obj in the attached files. This is the clickable area for the pool light, and without it trying to select the pool light would be ... challenging. Milkshape does a weird thing with group names, if it's longer than the characters allowed, it creates a second "dummy" group. Delete the one that is empty.

Step 2 - GMDC
Import your mesh, choosing replace for each option except for the lightingwallpoolsimple_clickabl subset where you choose Add.

The quirk of Milkshape again due to the limited characters allowed for a group, it cuts off the last letter. So click the groups tab, then select [ilightingwallpoolsimple_clickabl[/i] and add an e to the end. Commit.

Step 3 - SHPE
Since we've added a subset in the GMDC we want to also define it in the SHPE. Click add on the right, you will get another line. It will either show :, or it will duplicate a line if you have selected one of the existing subsets. Both are okay. Paste lightingwallpoolsimple_clickableinto the Subset Name line as well as the Material Definition File line. Commit.

Step 4 - BHAV
We are now going to replace the BHAV, OBJD and OBJF. These all have to do with placements and defining that they are pool lights. After replacing these resources, remember to get new GUIDs.
1. Delete the OBJF and OBJD, and the Function Init (0x1000)
2. Drag the xml file (which links to the new OBJD, OBJF, BHAV) into SimPE. This is basic drag-n-drop Windows functions.

Depending on the light you cloned, it is possible that the Function Init (Stub) shares an instance with a BHAV in the package. If so, just change the instance to one more than the highest in the package, using the Resource tab at the bottom.

If you had to change the Function Init (Stub) instance, then you also need to edit the OBJF to see that change. Select the OBJF with the instance of 0x00041A9 and change the instance for the Action BHAV to match what you changed your added one to. Commit.

Step 5 - CRES
Where the light shines is defined in the CRES. Since we moved our wall light down by an entire floor, the light isn't shining in the pool. Select the CRES, then select the CRES Hierarchie tab, then select the cLightRefNode(has the bulb).

Choose the cTransformNodeTab and look at the values in the Translation boxes. These define the location on the x,y,z axis. x-Axis is left/right, y-Axis is front/back, and z-Axis is up/down. **Note that yz axis are flipped from SimPE to Mesh editor. Notice the z-Axis is 2.420037. This means is is roughly in the top third of a wall above ground. We want this in the top third of the wall, but below ground. For reference a pool light is x(-0.247224) and z(-0.564182). So we will change it to that to start with.

And tada! A claw light with a flame in the water.

You will need to create a custom thumbnail if you want something in the tiny box in game, otherwise it will show blank. Since I've been working with maxis objects, I was able to simply do the OBJD and the STR steps, there was no need to create/import the other resources.
Download - please read all instructions before downloading any files!
File Type: 7z pool lights.7z (1.6 KB, 0 downloads)
Back to top