Force proper update of box probe when attenuation changes

Fixed multiple case sensitivity issues
Adds GL ARB check for cubemap arrays for certain cases where the driver only supports the extension, not as core
Fixes undeeded namespace declaration in an inline operator function
Cleaned up/reordered some modules default in the data dir
WIP of Das Boot test map
Begun refactoring visualizer tools
Added default cloud and water textures to core/rendering so water and cloud objects work correctly
Added default Fog_Cube mesh so volumetric fog works correctly
This commit is contained in:
Areloch 2019-08-19 01:14:34 -05:00
parent 142da31156
commit e916d14440
697 changed files with 11775 additions and 7072 deletions

View file

@ -0,0 +1,9 @@
<ImageAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock_ambientOcclusion"
imageFile="@assetFile=greyrock_ambientOcclusion.png"
useMips="true"
isHDRImage="false"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_ambientOcclusion.png"
VersionId="1" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 MiB

View file

@ -0,0 +1,9 @@
<ImageAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock_diffuse"
imageFile="@assetFile=greyrock_diffuse.dds"
useMips="true"
isHDRImage="false"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_diffuse.dds"
VersionId="1" />

Binary file not shown.

View file

@ -0,0 +1,9 @@
<ImageAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock_metallic"
imageFile="@assetFile=greyrock_metallic.png"
useMips="true"
isHDRImage="false"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_metallic.png"
VersionId="1" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

View file

@ -0,0 +1,9 @@
<ImageAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock_normal"
imageFile="@assetFile=greyrock_normal.dds"
useMips="true"
isHDRImage="false"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_normal.dds"
VersionId="1" />

Binary file not shown.

View file

@ -0,0 +1,9 @@
<ImageAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock_roughness"
imageFile="@assetFile=greyrock_roughness.png"
useMips="true"
isHDRImage="false"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_roughness.png"
VersionId="1" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 MiB

View file

@ -0,0 +1,10 @@
function Rocks::onCreate(%this)
{
}
function Rocks::onDestroy(%this)
{
}

View file

@ -0,0 +1,25 @@
<ModuleDefinition
canSave="true"
canSaveDynamicFields="true"
ModuleId="Rocks"
VersionId="1"
Group="Game"
scriptFile="Rocks.cs"
CreateFunction="onCreate"
DestroyFunction="onDestroy">
<DeclaredAssets
canSave="true"
canSaveDynamicFields="true"
Extension="asset.taml"
Recurse="true" />
<AutoloadAssets
canSave="true"
canSaveDynamicFields="true"
AssetType="ComponentAsset"
Recurse="true" />
<AutoloadAssets
canSave="true"
canSaveDynamicFields="true"
AssetType="GUIAsset"
Recurse="true" />
</ModuleDefinition>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmfive"
fileName="@assetFile=chasmfive.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:greyrock"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmfive.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmfiveDAE)
{
baseShape = "./chasmfive.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmfour"
fileName="@assetFile=chasmfour.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmfour.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmfourDAE)
{
baseShape = "./chasmfour.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmone"
fileName="@assetFile=chasmone.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmone.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmoneDAE)
{
baseShape = "./chasmone.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,10 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmseven"
fileName="@assetFile=chasmseven.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
materialSlot1="@Asset=Rocks:greyrock"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmseven.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmsevenDAE)
{
baseShape = "./chasmseven.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmsix"
fileName="@assetFile=chasmsix.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmsix.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmsixDAE)
{
baseShape = "./chasmsix.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmthree"
fileName="@assetFile=chasmthree.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmthree.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmthreeDAE)
{
baseShape = "./chasmthree.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="chasmtwo"
fileName="@assetFile=chasmtwo.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR225G198B87-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/chasmtwo.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(ChasmtwoDAE)
{
baseShape = "./chasmtwo.DAE";
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
<ShapeAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="cliffwallone"
fileName="@assetFile=cliffwallone.DAE"
isNewShape="1"
materialSlot0="@Asset=Rocks:ColorEffectR88G143B225-material"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/cliffwallone.DAE"
VersionId="1" />

View file

@ -0,0 +1,5 @@
singleton TSShapeConstructor(CliffwalloneDAE)
{
baseShape = "./cliffwallone.DAE";
};

View file

@ -0,0 +1,14 @@
<MaterialAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="greyrock"
scriptFile="@assetFile=greyrock.cs"
materialDefinitionName="greyrock"
imageMap0="@Asset=Rocks:greyrock_diffuse"
imageMap1="@Asset=Rocks:greyrock_normal"
imageMap2="@Asset=Rocks:greyrock_metallic"
imageMap3="@Asset=Rocks:greyrock_roughness"
imageMap4="@Asset=Rocks:greyrock_ambientOcclusion"
originalFilePath="E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock"
shaderGraph="data/Rocks/materials/greyrock.sgf"
VersionId="1" />

View file

@ -0,0 +1,16 @@
//--- OBJECT WRITE BEGIN ---
singleton Material(greyrock) {
mapTo = "greyrock";
DiffuseMapAsset[0] = "Rocks:greyrock_diffuse";
NormalMap[0] = "data/Rocks/Images/greyrock_normal.dds";
NormalMapAsset[0] = "Rocks:greyrock_normal";
RoughMap[0] = "E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_roughness.png";
RoughMapAsset[0] = "Rocks:greyrock_roughness";
AOMap[0] = "E:/Gamedev/Art/Pacific/art/shapes/rocks/greyrock_ambientOcclusion.png";
AOMapAsset[0] = "Rocks:greyrock_ambientOcclusion";
diffuseMap[0] = "data/Rocks/Images/greyrock_diffuse.dds";
AOMapAsset0 = "Rocks:greyrock_ambientOcclusion";
NormalMapAsset0 = "Rocks:greyrock_normal";
RoughMapAsset0 = "Rocks:greyrock_roughness";
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,19 @@
function Verve::create( %this )
{
exec("data/Verve/gui/verveCinematic.gui");
exec("data/Verve/scripts/server/verveCinematicController.cs");
exec("data/Verve/scripts/server/verveCinematicTrigger.cs");
exec("data/Verve/scripts/server/vervePathTutorialData.cs");
if(isObject(DatablockFilesList))
{
DatablockFilesList.add( "data/Verve/scripts/datablocks/verve/VerveActorData.cs" );
DatablockFilesList.add( "data/Verve/scripts/datablocks/verve/VervePathTutorialData.cs" );
}
}
function Verve::destroy( %this )
{
}

View file

@ -0,0 +1,9 @@
<ModuleDefinition
ModuleId="Verve"
VersionId="1"
Description="Module that implements Verve."
ScriptFile="Verve.cs"
CreateFunction="create"
DestroyFunction="destroy"
Group="Game">
</ModuleDefinition>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author />
<authoring_tool>Torque 3D 2009 Interior Exporter</authoring_tool>
<comments />
</contributor>
<created>8/09/2009 2:52:45 PM</created>
<modified>8/09/2009 2:52:45 PM</modified>
<revision />
<title />
<subject />
<keywords />
<unit meter="1.000000" />
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="PILLAR128X128G-Diffuse" name="PILLAR128X128G-Diffuse">
<init_from>file://PILLAR128X128G.png</init_from>
</image>
<image id="FULL128X128G-Diffuse" name="FULL128X128G-Diffuse">
<init_from>file://FULL128X128G.png</init_from>
</image>
<image id="BLACK-Diffuse" name="BLACK-Diffuse">
<init_from>file://BLACK.png</init_from>
</image>
</library_images>
<library_materials>
<material id="PILLAR128X128G" name="PILLAR128X128G">
<instance_effect url="#PILLAR128X128G-fx" />
</material>
<material id="FULL128X128G" name="FULL128X128G">
<instance_effect url="#FULL128X128G-fx" />
</material>
<material id="BLACK" name="BLACK">
<instance_effect url="#BLACK-fx" />
</material>
</library_materials>
<library_effects>
<effect id="PILLAR128X128G-fx" name="PILLAR128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="PILLAR128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="FULL128X128G-fx" name="FULL128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="FULL128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="BLACK-fx" name="BLACK-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="BLACK-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="Door-lib" name="DoorMesh">
<mesh>
<source id="Door-Position">
<float_array id="Door-Position-array" count="24">
2.0000 -0.2500 -2.0000
2.0000 -0.2500 2.0000
2.0000 0.2500 -2.0000
2.0000 0.2500 2.0000
-2.0000 -0.2500 -2.0000
-2.0000 0.2500 -2.0000
-2.0000 -0.2500 2.0000
-2.0000 0.2500 2.0000
</float_array>
<technique_common>
<accessor source="#Door-Position-array" count="8" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="Door-Normal">
<float_array id="Door-Normal-array" count="18">
1.0000 -0.0000 -0.0000
-1.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 -1.0000 -0.0000
-0.0000 -0.0000 1.0000
-0.0000 -0.0000 -1.0000
</float_array>
<technique_common>
<accessor source="#Door-Normal-array" count="6" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="Door-UV0">
<float_array id="Door-UV0-array" count="28">
5.7500 0.0000
5.7500 1.0000
6.0000 0.0000
6.0000 1.0000
-5.7500 0.0000
-6.0000 0.0000
-5.7500 1.0000
-6.0000 1.0000
1.0000 0.0000
0.0000 0.0000
1.0000 1.0000
0.0000 1.0000
8.0000 0.0000
8.0000 1.0000
</float_array>
<technique_common>
<accessor source="#Door-UV0-array" count="14" stride="2">
<param name="S" type="float" />
<param name="T" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="Door-Vertex">
<input semantic="POSITION" source="#Door-Position" />
</vertices>
<triangles material="PILLAR128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 0 3 1 0 1 0 0 0
2 0 2 3 0 3 0 0 0
7 1 7 5 1 5 4 1 4
6 1 6 7 1 7 4 1 4
</p>
</triangles>
<triangles material="FULL128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 2 11 2 2 9 5 2 8
7 2 10 3 2 11 5 2 8
1 3 10 6 3 11 4 3 9
0 3 8 1 3 10 4 3 9
</p>
</triangles>
<triangles material="BLACK" count="4">
<input semantic="VERTEX" offset="0" source="#Door-Vertex" />
<input semantic="NORMAL" offset="1" source="#Door-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#Door-UV0" />
<p>
3 4 13 7 4 11 6 4 9
1 4 12 3 4 13 6 4 9
2 5 11 0 5 9 4 5 12
5 5 13 2 5 11 4 5 12
</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="Door" name="Door">
<instance_geometry url="#Door-lib">
<bind_material>
<technique_common>
<instance_material symbol="PILLAR128X128G" target="#PILLAR128X128G" />
<instance_material symbol="FULL128X128G" target="#FULL128X128G" />
<instance_material symbol="BLACK" target="#BLACK" />
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#RootNode" />
</scene>
</COLLADA>

View file

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author />
<authoring_tool>Torque 3D 2009 Interior Exporter</authoring_tool>
<comments />
</contributor>
<created>12/09/2009 9:50:04 AM</created>
<modified>12/09/2009 9:50:04 AM</modified>
<revision />
<title />
<subject />
<keywords />
<unit meter="1.000000" />
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="DemoRoomLrg_PILLAR128X128G-Diffuse" name="DemoRoomLrg_PILLAR128X128G-Diffuse">
<init_from>file://PILLAR128X128G.png</init_from>
</image>
<image id="DemoRoomLrg_FULL128X128G-Diffuse" name="DemoRoomLrg_FULL128X128G-Diffuse">
<init_from>file://FULL128X128G.png</init_from>
</image>
</library_images>
<library_materials>
<material id="DemoRoomLrg_PILLAR128X128G" name="DemoRoomLrg_PILLAR128X128G">
<instance_effect url="#DemoRoomLrg_PILLAR128X128G-fx" />
</material>
<material id="DemoRoomLrg_FULL128X128G" name="DemoRoomLrg_FULL128X128G">
<instance_effect url="#DemoRoomLrg_FULL128X128G-fx" />
</material>
</library_materials>
<library_effects>
<effect id="DemoRoomLrg_PILLAR128X128G-fx" name="DemoRoomLrg_PILLAR128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="DemoRoomLrg_PILLAR128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
<effect id="DemoRoomLrg_FULL128X128G-fx" name="DemoRoomLrg_FULL128X128G-fx">
<profile_COMMON>
<technique sid="standard">
<phong>
<diffuse>
<texture texture="DemoRoomLrg_FULL128X128G-Diffuse" texcoord="CHANNEL0">
<extra>
<technique profile="MAYA">
<wrapU sid="wrapU0">TRUE</wrapU>
<wrapV sid="wrapV0">TRUE</wrapV>
<blend_mode>ADD</blend_mode>
</technique>
</extra>
</texture>
</diffuse>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="ElevatorPlatform_5c1b8cbb-lib" name="ElevatorPlatform_5c1b8cbbMesh">
<mesh>
<source id="ElevatorPlatform_5c1b8cbb-Position">
<float_array id="ElevatorPlatform_5c1b8cbb-Position-array" count="24">
2.0000 -1.7500 -0.2500
2.0000 -1.7500 0.2500
2.0000 1.7500 -0.2500
2.0000 1.7500 0.2500
-2.0000 -1.7500 -0.2500
-2.0000 1.7500 -0.2500
-2.0000 -1.7500 0.2500
-2.0000 1.7500 0.2500
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-Position-array" count="8" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ElevatorPlatform_5c1b8cbb-Normal">
<float_array id="ElevatorPlatform_5c1b8cbb-Normal-array" count="18">
1.0000 -0.0000 -0.0000
-1.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 -1.0000 -0.0000
-0.0000 -0.0000 1.0000
-0.0000 -0.0000 -1.0000
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-Normal-array" count="6" stride="3">
<param name="X" type="float" />
<param name="Y" type="float" />
<param name="Z" type="float" />
</accessor>
</technique_common>
</source>
<source id="ElevatorPlatform_5c1b8cbb-UV0">
<float_array id="ElevatorPlatform_5c1b8cbb-UV0-array" count="16">
3.2500 -1.0000
3.0000 -1.0000
3.2500 0.0000
3.0000 0.0000
0.0000 -1.0000
0.0000 0.0000
1.0000 -1.0000
1.0000 0.0000
</float_array>
<technique_common>
<accessor source="#ElevatorPlatform_5c1b8cbb-UV0-array" count="8" stride="2">
<param name="S" type="float" />
<param name="T" type="float" />
</accessor>
</technique_common>
</source>
<vertices id="ElevatorPlatform_5c1b8cbb-Vertex">
<input semantic="POSITION" source="#ElevatorPlatform_5c1b8cbb-Position" />
</vertices>
<triangles material="DemoRoomLrg_PILLAR128X128G" count="8">
<input semantic="VERTEX" offset="0" source="#ElevatorPlatform_5c1b8cbb-Vertex" />
<input semantic="NORMAL" offset="1" source="#ElevatorPlatform_5c1b8cbb-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#ElevatorPlatform_5c1b8cbb-UV0" />
<p>
3 0 3 1 0 1 0 0 0
2 0 2 3 0 3 0 0 0
7 1 1 5 1 0 4 1 2
6 1 3 7 1 1 4 1 2
3 2 1 2 2 0 5 2 2
7 2 3 3 2 1 5 2 2
1 3 3 6 3 1 4 3 0
0 3 2 1 3 3 4 3 0
</p>
</triangles>
<triangles material="DemoRoomLrg_FULL128X128G" count="4">
<input semantic="VERTEX" offset="0" source="#ElevatorPlatform_5c1b8cbb-Vertex" />
<input semantic="NORMAL" offset="1" source="#ElevatorPlatform_5c1b8cbb-Normal" />
<input semantic="TEXCOORD" offset="2" set="0" source="#ElevatorPlatform_5c1b8cbb-UV0" />
<p>
3 4 7 7 4 5 6 4 4
1 4 6 3 4 7 6 4 4
2 5 5 0 5 4 4 5 6
5 5 7 2 5 5 4 5 6
</p>
</triangles>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="ElevatorPlatform_5c1b8cbb" name="ElevatorPlatform_5c1b8cbb">
<instance_geometry url="#ElevatorPlatform_5c1b8cbb-lib">
<bind_material>
<technique_common>
<instance_material symbol="DemoRoomLrg_PILLAR128X128G" target="#DemoRoomLrg_PILLAR128X128G" />
<instance_material symbol="DemoRoomLrg_FULL128X128G" target="#DemoRoomLrg_FULL128X128G" />
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#RootNode" />
</scene>
</COLLADA>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -0,0 +1,179 @@
//--- Door.dae MATERIALS BEGIN ---
singleton Material(Door_PILLAR128X128G)
{
mapTo = "PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(Door_FULL128X128G)
{
mapTo = "FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(Door_BLACK)
{
mapTo = "BLACK";
diffuseMap[0] = "BLACK";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- Door.dae MATERIALS END ---
//--- DemoRoomLrg.dae MATERIALS BEGIN ---
singleton Material(DemoRoomLrg_BLACK)
{
mapTo = "BLACK";
diffuseMap[0] = "BLACK";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_FULL128X128G)
{
mapTo = "FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_PILLAR128X128G)
{
mapTo = "PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(DemoRoomLrg_FULL64X64G)
{
mapTo = "FULL64X64G";
diffuseMap[0] = "FULL64X64G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- DemoRoomLrg.dae MATERIALS END ---
//--- ElevatorPlatform.dae MATERIALS BEGIN ---
singleton Material(ElevatorPlatform_DemoRoomLrg_PILLAR128X128G)
{
mapTo = "DemoRoomLrg_PILLAR128X128G";
diffuseMap[0] = "PILLAR128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
singleton Material(ElevatorPlatform_DemoRoomLrg_FULL128X128G)
{
mapTo = "DemoRoomLrg_FULL128X128G";
diffuseMap[0] = "FULL128X128G";
normalMap[0] = "";
specularMap[0] = "";
diffuseColor[0] = "1 1 1 1";
specular[0] = "1 1 1 1";
specularPower[0] = 8;
pixelSpecular[0] = false;
emissive[0] = false;
doubleSided = false;
translucent = false;
translucentBlendOp = "None";
};
//--- ElevatorPlatform.dae MATERIALS END ---

View file

@ -0,0 +1,43 @@
//--- OBJECT WRITE BEGIN ---
%guiContent = new GameTSCtrl(VerveCinematicGui) {
canSaveDynamicFields = "1";
Enabled = "1";
isContainer = "1";
Profile = "GuiContentProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = "0 0";
Extent = "1024 768";
MinExtent = "8 8";
canSave = "1";
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
Margin = "0 0 0 0";
Padding = "0 0 0 0";
AnchorTop = "1";
AnchorBottom = "0";
AnchorLeft = "1";
AnchorRight = "0";
cameraZRot = "0";
forceFOV = "0";
helpTag = "0";
noCursor = "1";
new VFadeControl( VFadeControlGui ) {
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "0";
Profile = "GuiTransparentProfile";
HorizSizing = "width";
VertSizing = "height";
position = "0 0";
Extent = "1024 768";
MinExtent = "8 8";
canSave = "1";
Visible = "1";
tooltipprofile = "GuiToolTipProfile";
hovertime = "1000";
};
};
//--- OBJECT WRITE END ---

View file

@ -0,0 +1,68 @@
//-----------------------------------------------------------------------------
// Copyright (c) 2012 GarageGames, LLC
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
// Load up all datablocks. This function is called when
// a server is constructed.
// Do the sounds first -- later scripts/datablocks may need them
exec("./audioProfiles.cs");
// LightFlareData and LightAnimData(s)
exec("./lights.cs");
// Do the various effects next -- later scripts/datablocks may need them
exec("./particles.cs");
exec("./environment.cs");
exec("./triggers.cs");
// Add a rigid example
exec("./rigidShape.cs");
exec("./health.cs");
// Load our supporting weapon datablocks, effects and such. They must be
// loaded before any weapon that uses them.
exec("./weapon.cs");
exec("./weapons/grenadefx.cs");
exec("./weapons/rocketfx.cs");
// Load the weapon datablocks
exec("./weapons/Lurker.cs");
exec("./weapons/Ryder.cs");
exec("./weapons/ProxMine.cs");
exec("./weapons/Turret.cs");
exec("./teleporter.cs");
// Load the default player datablocks
exec("./player.cs");
// Load our other player datablocks
exec("./aiPlayer.cs");
// Load the vehicle datablocks
exec("./vehicles/cheetahCar.cs");
// Load Verve Data.
exec("./verve/VerveActorData.cs");
exec("./verve/VervePathTutorialData.cs");

View file

@ -0,0 +1,40 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
function VHumanoidActorData::create( %dataBlock )
{
%actorObject = new VHumanoidActor()
{
dataBlock = %dataBlock;
};
return %actorObject;
}
//-----------------------------------------------------------------------------
datablock VHumanoidActorData( VSoldierActorData )
{
Category = "VActor";
ShapeFile = "data/Verve/art/shapes/actors/Soldier/soldier_rigged.DAE";
};

View file

@ -0,0 +1,34 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock StaticShapeData( VervePathTutorial_DoorData )
{
Category = "VerveTutorialData";
shapeFile = "data/Verve/art/shapes/VervePathTutorial/Door.dae";
};
datablock StaticShapeData( VervePathTutorial_ElevatorPlatformData )
{
Category = "VerveTutorialData";
shapeFile = "data/Verve/art/shapes/VervePathTutorial/ElevatorPlatform.dae";
};

View file

@ -0,0 +1,130 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
$Verve::CinematicController = 0;
//-----------------------------------------------------------------------------
function Verve::GetCinematicController()
{
// Valid Controller?
if ( !isObject( $Verve::CinematicController ) )
{
$Verve::CinematicController = new VController()
{
Class = "VerveCinematicController";
};
}
// Return Controller.
return $Verve::CinematicController;
}
//-----------------------------------------------------------------------------
// Verve::PlayCinematic( "sequences/BurgFlythrough.vsf" );
function Verve::PlayCinematic( %sequenceFile )
{
if ( !isFile( %sequenceFile ) )
{
error ( "Verve::PlayCinematic() - Invalid Sequence File." );
return 0;
}
// Fetch Controller.
%controller = Verve::GetCinematicController();
// Already Playing?
if ( %controller.isPlaying() )
{
error ( "Verve::PlayCinematic() - Cinematic in Progress." );
return 0;
}
// Load the Sequence.
if ( !%controller.readFile( %sequenceFile ) )
{
return 0;
}
// Stop Input.
if ( isObject( moveMap ) )
{
moveMap.pop();
}
// Store the Current Gui.
$Verve::StoredGui = Canvas.getContent();
// Valid GUI?
if ( !isObject( VerveCinematicGui ) )
{
// Execute GUI Script.
exec( "art/gui/VerveCinematic.gui" );
}
// Set the Cinematic Gui.
Canvas.setContent( VerveCinematicGui );
// Clear First Person.
%clientCount = ClientGroup.getCount();
for ( %i = 0; %i < %clientCount; %i++ )
{
// Fetch Client.
%clientConnection = ClientGroup.getObject( %i );
// Store Status.
%clientConnection.FirstPerson = %clientConnection.isFirstPerson();
// Clear.
%clientConnection.setFirstPerson( false );
}
// Play the Sequence.
%controller.play();
// Return the Controller.
return %controller;
}
//-----------------------------------------------------------------------------
function VerveCinematicController::onStop( %this )
{
// Reset First Person Status.
%clientCount = ClientGroup.getCount();
for ( %i = 0; %i < %clientCount; %i++ )
{
// Fetch Client.
%clientConnection = ClientGroup.getObject( %i );
// Reset.
%clientConnection.setFirstPerson( %clientConnection.FirstPerson );
}
// Reset the Canvas.
Canvas.setContent( $Verve::StoredGui );
// Resume Input.
if ( isObject( moveMap ) )
{
moveMap.push();
}
}

View file

@ -0,0 +1,35 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock TriggerData( VerveCinematicTrigger )
{
Field = "Value";
};
//-----------------------------------------------------------------------------
function VerveCinematicTrigger::onEnterTrigger( %this, %trigger, %object )
{
// Play Sequence.
Verve::PlayCinematic( %trigger.SequenceFile );
}

View file

@ -0,0 +1,34 @@
//-----------------------------------------------------------------------------
// Verve
// Copyright (C) 2014 - Violent Tulip
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//-----------------------------------------------------------------------------
datablock StaticShapeData( VervePathTutorial_DoorData )
{
Category = "VerveTutorialData";
shapeFile = "art/shapes/VervePathTutorial/Door.dae";
};
datablock StaticShapeData( VervePathTutorial_ElevatorPlatformData )
{
Category = "VerveTutorialData";
shapeFile = "art/shapes/VervePathTutorial/ElevatorPlatform.dae";
};

View file

@ -0,0 +1,85 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>1000</Duration>
<TimeScale>1</TimeScale>
<Loop>1</Loop>
<LoopBackwards>1</LoopBackwards>
<LoopCount>0</LoopCount>
<LoopDelay>500</LoopDelay>
<ResetOnCompletion>1</ResetOnCompletion>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="DoorGroup0_LeftPath" Value="DoorPath_Left" />
<DataItem Type="STATIC" Name="DoorGroup0_Left" Value="DoorShape0_Left" />
<DataItem Type="STATIC" Name="DoorGroup0_RightPath" Value="DoorPath_Right" />
<DataItem Type="STATIC" Name="DoorGroup0_Right" Value="DoorShape0_Right" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup0_Left</Label>
<Reference>DoorGroup0_Left</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup0_LeftPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup0_Right</Label>
<Reference>DoorGroup0_Right</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup0_RightPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>

View file

@ -0,0 +1,87 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>1000</Duration>
<TimeScale>1</TimeScale>
<Loop>1</Loop>
<LoopBackwards>1</LoopBackwards>
<LoopDelay>500</LoopDelay>
<ResetOnCompletion>1</ResetOnCompletion>
<name>VerveEditorController</name>
<parentGroup>RootGroup</parentGroup>
<canSaveDynamicFields>1</canSaveDynamicFields>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="DoorGroup1_Right" Value="DoorShape1_Right" />
<DataItem Type="STATIC" Name="DoorGroup1_Left" Value="DoorShape1_Left" />
<DataItem Type="STATIC" Name="DoorGroup1_RightPath" Value="DoorPath_Right" />
<DataItem Type="STATIC" Name="DoorGroup1_LeftPath" Value="DoorPath_Left" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup1_Left</Label>
<Reference>DoorGroup1_Left</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup1_LeftPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>1</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>DoorGroup1_Right</Label>
<Reference>DoorGroup1_Right</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>DoorGroup1_RightPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>1</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>1000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" ?>
<VerveControllerSequence Version="0.0.0a">
<Properties>
<Time>0</Time>
<Duration>5000</Duration>
<TimeScale>1</TimeScale>
<Loop>0</Loop>
<LoopBackwards>0</LoopBackwards>
<LoopCount>-1</LoopCount>
<LoopDelay>0</LoopDelay>
<ResetOnCompletion>0</ResetOnCompletion>
<name>VerveEditorController</name>
<parentGroup>RootGroup</parentGroup>
<canSaveDynamicFields>1</canSaveDynamicFields>
</Properties>
<DataTable>
<DataItem Type="STATIC" Name="ElevatorPlatformGroup" Value="ElevatorPlatformShape" />
<DataItem Type="STATIC" Name="ElevatorPlatformGroupPath" Value="ElevatorPlatformPath" />
</DataTable>
<VObject Type="VSceneObjectGroup">
<Properties>
<Enabled>1</Enabled>
<Label>ElevatorPlatformGroup</Label>
<Reference>ElevatorPlatformGroup</Reference>
</Properties>
<VObject Type="VMotionTrack">
<Properties>
<Enabled>1</Enabled>
<Label>MotionTrack</Label>
<Reference>ElevatorPlatformGroupPath</Reference>
<OrientationMode>FREE</OrientationMode>
<OrientationData></OrientationData>
<Relative>0</Relative>
</Properties>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>0</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
<VObject Type="VMotionEvent">
<Properties>
<Enabled>1</Enabled>
<Label>MotionEvent</Label>
<TriggerTime>5000</TriggerTime>
<Duration>0</Duration>
</Properties>
</VObject>
</VObject>
</VObject>
</VerveControllerSequence>