Collisions on static buildings
by Nathan Allen · in Torque X 3D · 04/11/2010 (7:54 pm) · 2 replies
this is the code in my level file. I have the book on order, but in the mean time, I need to know how to make a room where you can't walk through doorways, etc
It doesn't work. I just end up walking through the walls. Any help would be appreciated.
Thanks in advance
<?xml version="1.0" encoding="UTF-8"?>
<TorqueSceneData>
<Version>1.0</Version>
<SceneData>
<ObjectTypeDeclaration>
<LockTypes>false</LockTypes>
<ObjectTypes />
</ObjectTypeDeclaration>
<SceneGraph type="GarageGames.Torque.T3D.T3DSceneGraph" name="SceneGraph" />
</SceneData>
<Materials>
<TerrainDetailMaterial type="GarageGames.Torque.Materials.DetailMaterial" name="TerrainDetailMaterial">
<TextureFilename>data/terrains/SandDetail01</TextureFilename>
<DetailTextureRepeat>256</DetailTextureRepeat>
<DetailDistance>50</DetailDistance>
<EffectFilename>DetailEffect</EffectFilename>
</TerrainDetailMaterial>
<SunMaterial1 type="GarageGames.Torque.Materials.SimpleMaterial" name="SunMaterial1">
<TextureFilename>data/skies/corona01</TextureFilename>
<EffectFilename>SimpleEffect</EffectFilename>
</SunMaterial1>
<SunMaterial2 type="GarageGames.Torque.Materials.SimpleMaterial" name="SunMaterial2">
<TextureFilename>data/skies/corona02</TextureFilename>
<EffectFilename>SimpleEffect</EffectFilename>
</SunMaterial2>
<DistanceFogMaterial type="GarageGames.Torque.Materials.DistanceFog" name="DistanceFogMaterial">
<FogColorAsVector3>
<X>0.941</X>
<Y>0.859</Y>
<Z>0.612</Z>
</FogColorAsVector3>
<FogNearDistance>700</FogNearDistance>
<FogFarDistance>1000</FogFarDistance>
<EffectFilename>DistanceFog</EffectFilename>
</DistanceFogMaterial>
</Materials>
<Objects>
<Sun type="GarageGames.Torque.T3D.Sun" name="Sun">
<Material1 nameRef="SunMaterial1" />
<Material2 nameRef="SunMaterial2" />
<Components>
<T3DSceneComponent type="GarageGames.Torque.T3D.T3DSceneComponent" name="" />
<T3DLightComponent type="GarageGames.Torque.Lighting.T3DLightComponent" name="">
<LightList>
<Light type="GarageGames.Torque.Lighting.DirectionalLight">
<DiffuseColor>
<X>0.9</X>
<Y>0.9</Y>
<Z>0.63</Z>
</DiffuseColor>
<AmbientColor>
<X>0.4</X>
<Y>0.5</Y>
<Z>0.65</Z>
</AmbientColor>
<Direction>
<X>0</X>
<Y>-0.8191521</Y>
<Z>-0.5735765</Z>
</Direction>
<ConstantAttenuation>1</ConstantAttenuation>
<LinearAttenuation>0</LinearAttenuation>
</Light>
</LightList>
<IsEnabled>true</IsEnabled>
</T3DLightComponent>
</Components>
<Size>35</Size>
<RotationSpeed1>0</RotationSpeed1>
<RotationSpeed2>0</RotationSpeed2>
<Scale1>1</Scale1>
<Scale2>0.8</Scale2>
<LightDirection>
<X>0</X>
<Y>-0.8191521</Y>
<Z>-0.5735765</Z>
</LightDirection>
</Sun>
<Terrain type="GarageGames.Torque.T3D.XTerrain" name="Terrain">
<Components>
<T3DSceneComponent type="GarageGames.Torque.T3D.T3DSceneComponent" name="">
<SceneGroup>Terrain</SceneGroup>
</T3DSceneComponent>
<T3DRigidComponent type="GarageGames.Torque.T3D.T3DRigidComponent" name="">
<GravityScale>0</GravityScale>
<Mass>0</Mass>
<Kinetic>true</Kinetic>
<Immovable>true</Immovable>
<Velocity>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Velocity>
<RotationScale>1</RotationScale>
<ResolveCollisions>true</ResolveCollisions>
<CollisionShapes>
<CollisionShape>
<Shape type="GarageGames.Torque.T3D.RigidCollision.CollisionXTerrainShape" />
</CollisionShape>
</CollisionShapes>
<RigidManager nameRef="RigidManager" />
<AnimateCollisionOffsets>false</AnimateCollisionOffsets>
<RenderCollisionBounds>false</RenderCollisionBounds>
<RigidMaterial type="GarageGames.Torque.T3D.RigidCollision.RigidMaterial">
<Restitution>0.0</Restitution>
</RigidMaterial>
<SceneGroupName>Terrain</SceneGroupName>
</T3DRigidComponent>
</Components>
<Position>
<X>1024</X>
<Y>1024</Y>
<Z>0</Z>
</Position>
<HorizontalScale>8</HorizontalScale>
<VerticalScale>1</VerticalScale>
<Scale>
<X>8</X>
<Y>8</Y>
<Z>1</Z>
</Scale>
<Repeat>true</Repeat>
<RepeatX>true</RepeatX>
<RepeatY>true</RepeatY>
<Data type="GarageGames.Torque.T3D.TGETerrainData">
<TerrainFilename>data\terrains\terrain.ter</TerrainFilename>
<LightMapFilename>data\terrains\lightmap.png</LightMapFilename>
<TexturePathSubstitution>data\terrains</TexturePathSubstitution>
<DetailMaterial>
</DetailMaterial>
</Data>
<ViewError>2</ViewError>
<LODError>0.5</LODError>
<LevelZeroError>0</LevelZeroError>
</Terrain>
<TorqueObject type="GarageGames.Torque.Core.TorqueObject" name="FreeCamera">
<IsTemplate>true</IsTemplate>
</TorqueObject>
<Sky type="GarageGames.Torque.T3D.Sky" name="Sky">
<SkyDistance>5</SkyDistance>
<Sides>
<string>data\skies\bright_front</string>
<string>data\skies\bright_right</string>
<string>data\skies\bright_back</string>
<string>data\skies\bright_left</string>
<string>data\skies\bright_top</string>
<string>data\skies\bright_bottom</string>
</Sides>
<RenderBottom>true</RenderBottom>
</Sky>
<RigidCollisionManager type="GarageGames.Torque.T3D.RigidCollision.RigidCollisionManager" name="RigidManager">
<MaxUpdateSetp>0.01</MaxUpdateSetp>
</RigidCollisionManager>
<TorqueObject type="GarageGames.Torque.Core.TorqueObject" name="Camera">
<Components>
<T3DCameraComponent type="GarageGames.Torque.T3D.T3DCameraComponent" name="CameraComponent">
<FOV>1.570796</FOV>
<FarDistance>1000</FarDistance>
<PositionOffset>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</PositionOffset>
<RotatedPositionOffset>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</RotatedPositionOffset>
<RotationOffset>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</RotationOffset>
<Name>CameraComponent</Name>
</T3DCameraComponent>
<T3DSceneComponent type="GarageGames.Torque.T3D.T3DSceneComponent" name="">
<Position>
<X>1024</X>
<Y>1024</Y>
<Z>265</Z>
</Position>
</T3DSceneComponent>
</Components>
</TorqueObject>
<TorqueObject type="GarageGames.Torque.Core.TorqueObject" name="living room">
<Components>
<T3DSceneComponent type="GarageGames.Torque.T3D.T3DSceneComponent" name="">
<SceneGroup>TorqueObject_35104124</SceneGroup>
<Position>
<X>1024.273</X>
<Y>1025.777</Y>
<Z>259.6826</Z>
</Position>
<Scale>
<X>0.5</X>
<Y>0.5</Y>
<Z>0.25</Z>
</Scale>
</T3DSceneComponent>
<T3DStaticTSRenderComponent type="GarageGames.Torque.T3D.T3DStaticTSRenderComponent" name="">
<CollisionEnabled>true</CollisionEnabled>
<ShapeName>data\Models\structure\living room\living room.dts</ShapeName>
<SceneGroupName>TorqueObject_35104124</SceneGroupName>
</T3DStaticTSRenderComponent>
<T3DRigidComponent type="GarageGames.Torque.T3D.T3DRigidComponent" name="">
<GravityScale>1</GravityScale>
<Mass>0</Mass>
<Kinetic>true</Kinetic>
<Immovable>true</Immovable>
<Velocity>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Velocity>
<RotationScale>1</RotationScale>
<ResolveCollisions>true</ResolveCollisions>
<CollisionShapes>
<CollisionShape>
<Shape type="GarageGames.Torque.T3D.RigidCollision.CollisionBoxShape">
<Size>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Size>
<Center>
<X>0.0</X>
<Y>0.0</Y>
<Z>0.0</Z>
</Center>
</Shape>
</CollisionShape>
</CollisionShapes>
<RigidManager nameRef="RigidManager" />
<AnimateCollisionOffsets>false</AnimateCollisionOffsets>
<RenderCollisionBounds>false</RenderCollisionBounds>
<RigidMaterial type="GarageGames.Torque.T3D.RigidCollision.RigidMaterial">
<Restitution>0.0</Restitution>
</RigidMaterial>
<SceneGroupName>TorqueObject_35104124</SceneGroupName>
</T3DRigidComponent>
</Components>
</TorqueObject>
<Terrain type="GarageGames.Torque.T3D.XTerrain" name="Terrain">
<Components>
<T3DSceneComponent type="GarageGames.Torque.T3D.T3DSceneComponent" name="">
<SceneGroup>Terrain</SceneGroup>
</T3DSceneComponent>
<T3DRigidComponent type="GarageGames.Torque.T3D.T3DRigidComponent" name="">
<GravityScale>0</GravityScale>
<Mass>0</Mass>
<Kinetic>true</Kinetic>
<Immovable>true</Immovable>
<Velocity>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Velocity>
<RotationScale>1</RotationScale>
<ResolveCollisions>true</ResolveCollisions>
<CollisionShapes>
<CollisionShape>
<Shape type="GarageGames.Torque.T3D.RigidCollision.CollisionXTerrainShape" />
</CollisionShape>
</CollisionShapes>
<RigidManager nameRef="RigidManager" />
<AnimateCollisionOffsets>false</AnimateCollisionOffsets>
<RenderCollisionBounds>false</RenderCollisionBounds>
<RigidMaterial type="GarageGames.Torque.T3D.RigidCollision.RigidMaterial">
<Restitution>0.0</Restitution>
</RigidMaterial>
<SceneGroupName>Terrain</SceneGroupName>
</T3DRigidComponent>
</Components>
<Position>
<X>1028</X>
<Y>1028</Y>
<Z>0</Z>
</Position>
<HorizontalScale>8</HorizontalScale>
<VerticalScale>1</VerticalScale>
<Scale>
<X>8</X>
<Y>8</Y>
<Z>1</Z>
</Scale>
<Repeat>true</Repeat>
<RepeatX>true</RepeatX>
<RepeatY>true</RepeatY>
<Data type="GarageGames.Torque.T3D.TGETerrainData">
<TerrainFilename>data\terrains\terrain.ter</TerrainFilename>
<LightMapFilename>data\terrains\lightmap.png</LightMapFilename>
<TexturePathSubstitution>data\terrains</TexturePathSubstitution>
<DetailMaterial>
</DetailMaterial>
</Data>
<ViewError>2</ViewError>
<LODError>0.5</LODError>
<LevelZeroError>0</LevelZeroError>
</Terrain>
</Objects>
</TorqueSceneData>It doesn't work. I just end up walking through the walls. Any help would be appreciated.
Thanks in advance
About the author
#2
ie..
<Shape type="GarageGames.Torque.T3D.RigidCollision.CollisionBoxShape">
<Size>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Size>
This will only create one single box..BTW
!!!!-actually I am wrong...the T3DStaticGeometeryComponent creates its own collision shape..I use xml for all of my models..I will look into my code, and see what I can find..plus..I am not sure about spaces in your group name...
05/10/2010 (8:56 am)
I am no expert but I believe you actualy have to have a collision box size greater than 0...ie..
<Shape type="GarageGames.Torque.T3D.RigidCollision.CollisionBoxShape">
<Size>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Size>
This will only create one single box..BTW
!!!!-actually I am wrong...the T3DStaticGeometeryComponent creates its own collision shape..I use xml for all of my models..I will look into my code, and see what I can find..plus..I am not sure about spaces in your group name...
Torque Owner Nathan Allen
Default Studio Name
But would it be efficient to do it using code? What would the code look like to make the collision on a static building?