XPacks Discussion

Brendon Pywell

Bob's Track Builder
Expansion Packs (XPacks)

BTB organises all Objects, Materials and Textures into Expansion Packs (XPacks). They are theme based so that the textures for the road surfaces, walls, trees and ground all look good together.

2eyaohs.jpg


By bunching objects, materials and textures together encourages a more aesthetic end result – although you will be free to use whatever XPacks you like!

This encourages two things:

1. People using your XPacks will create Tracks that are more aesthetic. That is the textures will look good together. Check how well objects from the Australia Rural XPack look against the road/ground textures.

2. Game performance will be increased by re-using the same objects/textures in creative ways rather than adding more objects from a number of XPacks. Good XPacks will reuse materials/textures, eg. the Texture for a house roof may be used on several House objects. When it comes to rendering performance, texture/material reuse is good.
These points will become even more important as the library of XPacks grow. Imagine having 12 different tree XPacks and trying to find some that match your terrain/theme.

Installation

Each XPack comes in the form of a Zip file. Additional XPacks will be created over time and installing them is a simple as dropping the Zip file into the BTB\XPacks folder. BTB reads directly from the Zip file, there is no need to extract the individual files/folders.

The initial BTB installation will not include much XPack material; they need to be downloaded from http://www.bobstrackbuilder.net/pro_users/XPacks.aspx .

Adding to your Venue

You use “File … Expansion Packs” to select which packs you want to be available in your Venue.

Each Venue (project) you create will exist in its own folder and all Textures and XPacks used in your project will be copied to an “XPacks” sub-folder. If you want to edit a Texture that you added to your project, you need to edit the one that gets copied to your Venue’s folder.

Updating XPacks

Over time XPacks will gain more Objects and Materials and you will want to get the latest one. Simply download again and drop into you BobsTrackBuilder\XPacks folder.
Your existing Venues will need to be manually updated by copying the XPack into the project’s XPacks folder and overwriting the existing one.

Creating XPacks

A new utility called XPacker is included to help you create your own XPacks. It will not build your objects or textures, but it does help you to organise them into the required XPack structure.
Press F1 for more XPacker help.

Creating a community of XPacks

I am not artistic in the slightest so it’s up to everyone here to help build a library of XPacks that everyone can use. My time will be focussed on coding more BTB/XPacker functions so I am relying on you guys to help out by submitting more material.
If you have textures, objects and materials that you think would be suitable, contact me ( bob at bobstrackbuilder.net ) and I’ll be happy to organise them into a suitable XPack. All work should be your own with all copyrights respected.

These are the current themes I have in mind:
- Alpine
- Desert
- City
- Rural Australia (Ennis)
- Coastal
- Forest
- Haywood Club (WeirdBeard)
- Jungle
- Racing (I need cones).
- Savannah Grasslands (Raceking)
- Snow
- Woodland
Feel free to come up with more (ideally along with your own contribution) or make suggestions on how to better categories these themes.

Object Import Format

The importing of objects can be done using either the Collada or 3ds formats.

I would encourage anyone looking to import objects to use the Collada format as it is far more robust and isn't plagued by the shortcomings of the 3ds format. For Max, you can get a free plugin for import/export from http://www.feelingsoftware.com/content/view/65/79/lang,en/ though I think you have to sign up before you can access the downloads.

I am happy to do the organising if you wish to send the XPacks my way ( bob@bobstrackbuilder.net ). Please feel free to give suggestions on how they should be structured or into what existing XPack you think they could be added. The textures should be your own work as I cannot use other people’s textures without their permission.

Advanced Editing

Creating Content

When adding one more object/material I always create a new XPack and test just that one item making sure it works ok in all games. Once it’s ready then I copy the contents of that XPack into the destination XPack and re-zip it.

This isolates the work so that I can test many times without the possibility of adding more materials/textures than required.

Editing Content

XPacks are just zip files. If you wish to change just one item of a project, it can be unzipped and so long as it keeps the same folder structure, BTB will use the unzipped version instead (restart BTB).

Say for instance you wish to change replace the colour of the Default\Barn object.

1. Locate the [yourVenue]\XPacks\Default.zip.
2. Extract the shed01_end.dds and shed01_side.dds so that they are in a folder [yourVenue]\XPacks\Default\Textures\Objects\Building\.
3. Replace the shed01_end.dds and shed01_side.dds file with your own.
4. Start BTB.

Any of the files can be replaced using this method.
 
Does anyone know how to make a rotating Light xpack? I tried using liquido's suggestions based on his windmill xpack but it doesn't work. I was wondering if any of the settings are different because its a light and an object instead of 2 objects. Anyone know what i'm doing wrong?

Lighthouse_Lens = the light I want to rotate.

This is my complex object:

<?xml version="1.0"?>
<Object>
<Description>Rotating Lighthouse Light</Description>
<IsComplexObject>True</IsComplexObject>
<Hierarcy>
<HierarcyObject>
<BObjectPath>Lighthouse_Base</BObjectPath>
<Scale x="1" y="1" z="1" />
<Rotation x="0" y="0" z="0" />
<Translation x="0" y="0" z="0" />
</HierarcyObject>
<HierarcyObject>
<BObjectPath>Lighthouse_Lens</BObjectPath>
<Scale x="1" y="1" z="1" />
<Rotation x="0" y="0" z="0" />
<Translation x="0" y="0" z="0" />
</HierarcyObject>
</Hierarcy>
<Collisions>False</Collisions>
<Moveable>True</Moveable>
<MoveablePart>SignRotateY</MoveablePart>
<LODIn>0</LODIn>
<LODOut>2000</LODOut>
<PolyLists />
</Object>


This is my "base" that my Light is rotating on:
<?xml version="1.0"?>
<Object>
<Description>Lighthouse_Base</Description>
<Collisions>False</Collisions>
<LODIn>0</LODIn>
<LODOut>2000</LODOut>
<PolyLists>
<PolyList>
<Material Path="Objects\Lighthouse_Base\mat0" />
<Vertices>
<Positions><![CDATA[-5.0314 0 -2.015294 -4.260996 0 3.349674 -5.364967 0 0.7704045 -3.349674 0 -4.260996 -2.015294 0 5.0314 -0.7704045 0 -5.364967 0.7704045 0 5.364967 2.015294 0 -5.0314 3.349674 0 4.260996 4.260996 0 -3.349674 5.0314 0 2.015294 5.364967 0 -0.7704045 ]]></Positions>
<UV0><![CDATA[0.04175108 -0.3173026 0.1117878 -0.8050269 0.01142679 -0.5705479 0.1946353 -0.1131479 0.3159426 -0.9579112 0.4291143 -0.01278682 0.5691879 -0.9882355 0.6823596 -0.0431111 0.8036669 -0.8878744 0.8865144 -0.1959954 0.9565511 -0.6837197 0.9868754 -0.4304744 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 1 4 3 4 5 3 4 6 5 6 7 5 6 8 7 8 9 7 8 10 9 10 11 9 ]]></FaceIndices>
</PolyList>
</PolyLists>
</Object>


And this is my light that I want to rotate around the bobs track builder "Y" axis:

<?xml version="1.0"?>
<Object>
<Description>Lighthouse_Lens</Description>
<Purpose>LightGlow</Purpose>
<Collisions>False</Collisions>
<LODIn>0</LODIn>
<LODOut>2000</LODOut>
<Moveable>True</Moveable>
<MoveablePart>SignRotateY</MoveablePart>
<Light RangeMax="50" Intensity="5">
<Position x="90" y="0" z="0" />
</Light>
<PolyLists>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat0" />
<Vertices>
<Positions><![CDATA[242.1319 4.109816 1.239156 2.135514 2.994294 0.006216529 2.131925 4.109816 1.239156 2.139103 1.878773 -1.226723 242.1391 1.878773 -1.226723 242.1355 2.994294 0.006216529 ]]></Positions>
<UV0><![CDATA[-34.28571 -0.9501068 -0.0005127307 -0.4750534 5.781642E-20 -0.9501068 -0.001025461 -2.496077E-22 -34.28674 -8.345742E-18 -34.28623 -0.4750534 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 3 4 0 4 5 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat0" />
<Vertices>
<Positions><![CDATA[2.135514 2.994294 0.006216529 242.1319 1.878773 1.239156 2.131925 1.878773 1.239156 2.139103 4.109816 -1.226723 242.1391 4.109816 -1.226723 242.1355 2.994294 0.006216529 ]]></Positions>
<UV0><![CDATA[-0.0005127307 0.04738488 -34.28571 0.5224383 5.781642E-20 0.5224383 -0.001025461 -0.4276685 -34.28674 -0.4276685 -34.28623 0.04738488 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 1 4 3 1 5 4 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat1" />
<Vertices>
<Positions><![CDATA[-2.139103 1.878773 1.226723 -1.556305 0.5703418 -0.9045839 -2.131925 1.878773 -1.239156 -1.561545 0.5703418 0.8955078 ]]></Positions>
<UV0><![CDATA[0 -1 0.865 0 1 -1 0.135 0 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat2" />
<Vertices>
<Positions><![CDATA[-2.139103 1.878773 1.226723 -0.005240107 0.5703418 1.800092 -1.561545 0.5703418 0.8955078 -0.00717823 1.878773 2.465879 ]]></Positions>
<UV0><![CDATA[1 -1 0.135 0 0.865 -4.440892E-16 0 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat7" />
<Vertices>
<Positions><![CDATA[-2.139103 4.109816 1.226723 -0.00717823 1.878773 2.465879 -2.139103 1.878773 1.226723 -0.00717823 4.109816 2.465879 -2.139103 4.109816 1.226723 -2.131925 1.878773 -1.239156 -2.131925 4.109816 -1.239156 -2.139103 1.878773 1.226723 -2.131925 1.878773 -1.239156 0.00717823 4.109816 -2.465879 -2.131925 4.109816 -1.239156 0.00717823 1.878773 -2.465879 -0.00717823 4.109816 2.465879 2.131925 1.878773 1.239156 -0.00717823 1.878773 2.465879 2.131925 4.109816 1.239156 2.139103 4.109816 -1.226723 2.131925 1.878773 1.239156 2.131925 4.109816 1.239156 2.139103 1.878773 -1.226723 2.139103 4.109816 -1.226723 0.00717823 1.878773 -2.465879 2.139103 1.878773 -1.226723 0.00717823 4.109816 -2.465879 ]]></Positions>
<UV0><![CDATA[2.048726 -2.01676 0.9598371 -1.031575 2.048726 -1.031575 0.9598371 -2.01676 1.968245 -2.004514 3.057134 -1.019329 3.057134 -2.004514 1.968245 -1.019329 2.958651 -1.017626 4.04754 -2.002811 2.958651 -2.002811 4.04754 -1.017626 1.05408 -2.001576 -0.03480878 -1.016391 1.05408 -1.016391 -0.03480878 -2.001576 0.9611463 -2.00168 2.050035 -1.016495 2.050035 -2.00168 0.9611463 -1.016495 2.054676 -2.000062 0.965787 -1.014877 2.054676 -1.014877 0.965787 -2.000062 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 4 6 5 5 7 4 8 10 9 9 11 8 12 14 13 13 15 12 16 18 17 17 19 16 20 22 21 21 23 20 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat8" />
<Vertices>
<Positions><![CDATA[-0.6174486 7.277327 0.3540916 -0.00717823 4.109816 2.465879 -2.139103 4.109816 1.226723 -0.002071984 7.277327 0.7117719 ]]></Positions>
<UV0><![CDATA[0.6443242 -1 -2.220446E-16 0 1 -2.220446E-16 0.3556758 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat11" />
<Vertices>
<Positions><![CDATA[-0.002071984 7.277327 0.7117719 2.131925 4.109816 1.239156 -0.00717823 4.109816 2.465879 0.6153766 7.277327 0.3576804 ]]></Positions>
<UV0><![CDATA[0.6443242 -1 0 0 1 -1.665335E-16 0.3556758 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat10" />
<Vertices>
<Positions><![CDATA[0.6174486 7.277327 -0.3540916 2.131925 4.109816 1.239156 0.6153766 7.277327 0.3576804 2.139103 4.109816 -1.226723 ]]></Positions>
<UV0><![CDATA[0.3556758 -1 1 0 0.6443242 -1 0 -1.110223E-16 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat9" />
<Vertices>
<Positions><![CDATA[0.6174486 7.277327 -0.3540916 0.00717823 4.109816 -2.465879 2.139103 4.109816 -1.226723 0.002071984 7.277327 -0.7117719 ]]></Positions>
<UV0><![CDATA[0.6443242 -1 -1.110223E-16 1.110223E-16 1 1.110223E-16 0.3556758 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat13" />
<Vertices>
<Positions><![CDATA[0.002071984 7.277327 -0.7117719 -2.131925 4.109816 -1.239156 0.00717823 4.109816 -2.465879 -0.6153766 7.277327 -0.3576804 ]]></Positions>
<UV0><![CDATA[0.6443242 -1 5.551115E-17 -2.220446E-16 1 0 0.3556758 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat12" />
<Vertices>
<Positions><![CDATA[-0.6153766 7.277327 -0.3576804 -2.139103 4.109816 1.226723 -2.131925 4.109816 -1.239156 -0.6174486 7.277327 0.3540916 ]]></Positions>
<UV0><![CDATA[0.6443242 -1 0 0 1 -2.220446E-16 0.3556758 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat6" />
<Vertices>
<Positions><![CDATA[-1.556305 0.5703418 -0.9045839 0.00717823 1.878773 -2.465879 -2.131925 1.878773 -1.239156 0.005240107 0.5703418 -1.800092 ]]></Positions>
<UV0><![CDATA[0.135 0 1 -1 -5.551115E-17 -1 0.865 -3.053113E-16 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat0" />
<Vertices>
<Positions><![CDATA[-1.556305 0 -0.9045839 0.005240107 0.5703418 -1.800092 -1.556305 0.5703418 -0.9045839 0.005240107 0 -1.800092 0.005240107 0 -1.800092 1.561545 0.5703418 -0.8955078 0.005240107 0.5703418 -1.800092 1.561545 0 -0.8955078 1.556305 0 0.9045839 1.561545 0.5703418 -0.8955078 1.561545 0 -0.8955078 1.556305 0.5703418 0.9045839 1.556305 0 0.9045839 -0.005240107 0.5703418 1.800092 1.556305 0.5703418 0.9045839 -0.005240107 0 1.800092 -0.005240107 0 1.800092 -1.561545 0.5703418 0.8955078 -0.005240107 0.5703418 1.800092 -1.561545 0 0.8955078 -1.556305 0 -0.9045839 -1.561545 0.5703418 0.8955078 -1.561545 0 0.8955078 -1.556305 0.5703418 -0.9045839 ]]></Positions>
<UV0><![CDATA[-0.4492641 0.1013426 -0.6025641 0.1984854 -0.4492641 0.1984854 -0.6025641 0.1013426 -0.4527584 0.1014854 -0.6060584 0.1986282 -0.4527584 0.1986282 -0.6060584 0.1014854 -0.7557183 0.1006495 -0.6024182 0.1977924 -0.6024182 0.1006495 -0.7557183 0.1977924 -0.6706986 0.09934931 -0.8239986 0.1964922 -0.6706986 0.1964922 -0.8239986 0.09934931 -0.6701162 0.09846112 -0.8234162 0.195604 -0.6701162 0.195604 -0.8234162 0.09846112 -1.051173 0.09878156 -0.8978729 0.1959244 -0.8978729 0.09878156 -1.051173 0.1959244 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 4 6 5 5 7 4 8 10 9 9 11 8 12 14 13 13 15 12 16 18 17 17 19 16 20 22 21 21 23 20 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat3" />
<Vertices>
<Positions><![CDATA[-0.00717823 1.878773 2.465879 1.556305 0.5703418 0.9045839 -0.005240107 0.5703418 1.800092 2.131925 1.878773 1.239156 ]]></Positions>
<UV0><![CDATA[1 -1 0.135 -2.220446E-16 0.865 0 0 -1 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat5" />
<Vertices>
<Positions><![CDATA[0.005240107 0.5703418 -1.800092 2.139103 1.878773 -1.226723 0.00717823 1.878773 -2.465879 1.561545 0.5703418 -0.8955078 ]]></Positions>
<UV0><![CDATA[0.135 -5.551115E-17 1 -1 0 -1 0.865 0 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
<PolyList>
<Material Path="Objects\Lighthouse_Lens\mat4" />
<Vertices>
<Positions><![CDATA[1.561545 0.5703418 -0.8955078 2.131925 1.878773 1.239156 2.139103 1.878773 -1.226723 1.556305 0.5703418 0.9045839 ]]></Positions>
<UV0><![CDATA[0.135 0 1 -1 0 -1 0.865 -4.440892E-16 ]]></UV0>
</Vertices>
<FaceIndices><![CDATA[0 2 1 1 3 0 ]]></FaceIndices>
</PolyList>
</PolyLists>
</Object>
 
Last edited:
Track illuminations are fixed coordinates. Vehicles have projectors. I do not know of any track projector…not to say it does not exist, but I never saw it used anywhere. Rotating light flares look good.


Thanks for the info! you saved me banging my head against a wall trying to do something that is impossible :thumbsup: I've got the light up and running and it looks fine without the light rotating.

Is there a way to speed up the rotation?
 
Is there a way to speed up the rotation?
'Signrotate' speed is fixed clockwise. The Instance is in place for people who use BTB only.
If you find the object’s center coordinates you can alter the speed and direction. Creating a pivot point is usually accomplished with other 3D programs.

I’m sure there are plenty of folks here who can assist you if need be.
 
here a script for xpacker to imported BTB xpacks to 3dsmax . made by MMtools : Mario moranis

you have to change the extension to *.mse to get it to work.(upload problem)

forgot to mention to unzip your xpacks into a new folder and point the script to your xpack file
 

Attachments

  • importXpack.rcs
    26.8 KB · Views: 306
Last edited:
spine objects , any help on make them, I have a road edge I needed to do. and I like it to be in splines mode has it more easy to bend around corners.then the other way of single pieces.

the objected is arced so I don't know if that will cause a problem when two are together, do I need to make a separate object for in-between objects.
 
xpacker file animation , not working correctly. animation count stays at 2 even if you changed the number in boxes

I sent you xpack, brendon, this forum inbox.

edited:
I had a look at the Xml and there doesn't seem to be a frame set counter.

<?xml version="1.0" encoding="utf-8"?>
<material>
<Description>water test</Description>
<PerMeterCoverage>12</PerMeterCoverage>
<SpecularPower>12</SpecularPower>
<SpecularColor R="255" G="255" B="255" />
<rFactorMaterialName>gras</rFactorMaterialName>
<UpNormals>True</UpNormals>
<AnimationType>TextureMaps</AnimationType>
<Method>Pendulum</Method>
<Rate>3</Rate>
<Sequence>0,1,2,3,4,5,6,7,8,9</Sequence>
</AnimationData>

<VisibilityType>4</VisibilityType>
<ShaderType>Diffuse</ShaderType>
<TransparencyType>Alpha</TransparencyType>
<TransparencyChromaColor R="255" G="255" B="255" />
<DiffMap>
<Path>water_Diffuse.png</Path>
<texture_coordinate>
<FlippedHorizontal>1</FlippedHorizontal>
<FlippedVertical>1</FlippedVertical>
<Angle>0</Angle>
<scale x="1" y="1" />
<offset x="0" y="0" />
</texture_coordinate>
<MIPBias>0</MIPBias>
</DiffMap>
</material>
 
Last edited:

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top