Compare commits

..

11 Commits

Author SHA1 Message Date
viktorljung a65d8c86d1 3rd person reload effect 2016-03-14 01:48:48 +01:00
viktorljung 0764c9bab2 Merge remote-tracking branch 'origin/master' into Movement 2016-03-14 01:20:20 +01:00
viktorljung 424dffd1e0 removed shadows on 1st person hands and weapons
added shielded component on 3rd person weapons
2016-03-14 00:47:21 +01:00
viktorljung d1c11f20f2 Merge remote-tracking branch 'origin/master' into Movement 2016-03-14 00:39:16 +01:00
viktorljung 1bba40449f Tracers done 2016-03-14 00:38:36 +01:00
viktorljung f5343251c5 fixed for real now? 2016-03-14 00:28:30 +01:00
viktorljung 5207248a49 3rd person tracers fixed 2016-03-14 00:04:51 +01:00
viktorljung 1bf65d896a Sidearm tracer fixed 2016-03-13 23:42:21 +01:00
viktorljung 4adf7dc507 Assault tracer fixed 2016-03-13 23:29:50 +01:00
viktorljung 73bcc6e382 Merge branch 'Movement' of github.com:teamfisk/TacticalZ into Movement 2016-03-13 23:12:59 +01:00
viktorljung f393a22011 defender tracer fixed 2016-03-13 23:12:45 +01:00
56 changed files with 12206 additions and 53023 deletions
+1 -1
Submodule assets updated: 9e9d799f11...b6027bf49f
+1 -1
Submodule deps updated: 49ef585366...ed45883a44
+6 -6
View File
@@ -48,13 +48,13 @@ bool RayVsTriangle(const Ray& ray,
bool trueOnNegativeDistance = false); bool trueOnNegativeDistance = false);
//Return true if the ray hits any of the triangles in the model. Stops checking when a hit is detected. //Return true if the ray hits any of the triangles in the model. Stops checking when a hit is detected.
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix); const glm::mat4& modelMatrix);
//Return true if the ray hits any of the triangles in the model. //Return true if the ray hits any of the triangles in the model.
//Also returns the position of the intersection point. Will loop through all the whole model indices. //Also returns the position of the intersection point. Will loop through all the whole model indices.
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
glm::vec3& outHitPosition); glm::vec3& outHitPosition);
@@ -62,7 +62,7 @@ bool RayVsModel(const Ray& ray,
//Also returns the distance from the ray origin to the closest //Also returns the distance from the ray origin to the closest
//intersection point, and the barycentric u,v-coordinates. Will loop through all the whole model indices. //intersection point, and the barycentric u,v-coordinates. Will loop through all the whole model indices.
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
float& outDistance, float& outDistance,
@@ -70,7 +70,7 @@ bool RayVsModel(const Ray& ray,
float& outVCoord); float& outVCoord);
bool AABBvsTriangles(const AABB& box, bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
glm::vec3& boxVelocity, glm::vec3& boxVelocity,
@@ -80,7 +80,7 @@ bool AABBvsTriangles(const AABB& box,
//Detects collision, but does not resolve. //Detects collision, but does not resolve.
bool AABBvsTriangles(const AABB& box, bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix); const glm::mat4& modelMatrix);
@@ -92,7 +92,7 @@ enum Output
}; };
//Detects intersection and containment. //Detects intersection and containment.
Output AABBvsTrianglesWContainment(const AABB& box, Output AABBvsTrianglesWContainment(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix); const glm::mat4& modelMatrix);
@@ -213,7 +213,6 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
} }
} }
EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands"); EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands");
if (firstPersonModel.Valid()) { if (firstPersonModel.Valid()) {
if (val > 0) { // Walk/Run if (val > 0) { // Walk/Run
+6 -12
View File
@@ -16,18 +16,15 @@ private:
public: public:
~Model(); ~Model();
const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_Materials; } const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_RawModel->m_Materials; }
unsigned int NumberOfVertices() const { return m_Vertices.size(); } const glm::mat4& Matrix() const { return m_RawModel->m_Matrix; }
const RawModel::Vertex* Vertices() const { return m_RawModel->Vertices(); }
unsigned int NumberOfVertices() const { return m_RawModel->NumVertices(); }
const AABB& Box() const { return m_Box; } const AABB& Box() const { return m_Box; }
bool IsSkinned() const { return m_IsSkinned; } bool IsSkinned() const { return m_RawModel->IsSkinned(); }
GLuint VAO; GLuint VAO;
GLuint ElementBuffer; GLuint ElementBuffer;
//RawModel* m_RawModel; RawModel* m_RawModel;
Skeleton* m_Skeleton = nullptr;
std::vector<glm::vec3> m_Vertices;
std::vector<unsigned int> m_Indices;
private: private:
AABB m_Box; AABB m_Box;
@@ -37,9 +34,6 @@ private:
GLuint TangentNormalsBuffer; GLuint TangentNormalsBuffer;
GLuint BiTangentNormalsBuffer; GLuint BiTangentNormalsBuffer;
GLuint TextureCoordBuffer; GLuint TextureCoordBuffer;
std::vector<RawModel::MaterialProperties> m_Materials;
bool m_IsSkinned;
}; };
#endif #endif
+1 -1
View File
@@ -110,7 +110,7 @@ struct ModelJob : RenderJob
} }
if (model->IsSkinned()) { if (model->IsSkinned()) {
Skeleton = Model->m_Skeleton; Skeleton = Model->m_RawModel->m_Skeleton;
if (Skeleton != nullptr) { if (Skeleton != nullptr) {
EntityWrapper entityWrapper = EntityWrapper(world, modelComponent.EntityID); EntityWrapper entityWrapper = EntityWrapper(world, modelComponent.EntityID);
+16 -39
View File
@@ -13,7 +13,6 @@
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/endian/buffers.hpp>
#include "../Common.h" #include "../Common.h"
#include "../GLM.h" #include "../GLM.h"
#include "../Core/ResourceManager.h" #include "../Core/ResourceManager.h"
@@ -21,17 +20,22 @@
#include "Skeleton.h" #include "Skeleton.h"
#include "ShaderProgram.h" #include "ShaderProgram.h"
#include "boost\endian\buffers.hpp"
class RawModelCustom : public Resource class RawModelCustom : public Resource
{ {
friend class ResourceManager; friend class ResourceManager;
friend class Model;
protected: protected:
RawModelCustom(std::string fileName); RawModelCustom(std::string fileName);
public: public:
~RawModelCustom(); ~RawModelCustom();
struct RenderVertex { struct Vertex
{
glm::vec3 Position; glm::vec3 Position;
glm::vec3 Normal; glm::vec3 Normal;
glm::vec3 Tangent; glm::vec3 Tangent;
@@ -39,7 +43,7 @@ public:
glm::vec2 TextureCoords; glm::vec2 TextureCoords;
}; };
struct SkinedVertex : public RenderVertex { struct SkinedVertex : public Vertex {
glm::vec4 BoneIndices; glm::vec4 BoneIndices;
glm::vec4 BoneWeights; glm::vec4 BoneWeights;
}; };
@@ -87,7 +91,7 @@ public:
unsigned int ShaderID = 0; unsigned int ShaderID = 0;
}; };
const RenderVertex* Vertices() const { const Vertex* Vertices() const {
if (hasSkin) { if (hasSkin) {
return m_SkinedVertices.data(); return m_SkinedVertices.data();
} else { } else {
@@ -95,16 +99,16 @@ public:
} }
}; };
unsigned int VertexSize() const { unsigned int VertexSize() const {
if (hasSkin) { if (hasSkin) {
return sizeof(SkinedVertex); return sizeof(SkinedVertex);
} }
else { else {
return sizeof(RenderVertex); return sizeof(Vertex);
} }
}; };
size_t NumVertices() const { unsigned int NumVertices() const {
if (hasSkin) { if (hasSkin) {
return m_SkinedVertices.size(); return m_SkinedVertices.size();
} else { } else {
@@ -112,39 +116,17 @@ public:
} }
}; };
const std::vector<unsigned int>& Indices() const {
return m_Indices;
}
bool IsSkinned() const { return hasSkin; }; bool IsSkinned() const { return hasSkin; };
const std::vector<glm::vec3>& CollisionVertices();
size_t NumCollisionVertices() const {
return m_CollisionVertices.size();
};
const std::vector<unsigned int>& CollisionIndices() const {
if (hasCollisionMesh) {
return m_CollisionIndices;
} else {
return m_Indices;
}
};
std::vector<MaterialProperties> m_Materials; std::vector<MaterialProperties> m_Materials;
std::vector<unsigned int> m_Indices;
Skeleton* m_Skeleton = nullptr; Skeleton* m_Skeleton = nullptr;
glm::mat4 m_Matrix; glm::mat4 m_Matrix;
private: private:
bool hasSkin; bool hasSkin;
bool hasCollisionMesh = false; std::vector<Vertex> m_Vertices;
std::vector<unsigned int> m_Indices;
std::vector<unsigned int> m_CollisionIndices;
std::vector<glm::vec3> m_CollisionVertices;
std::vector<RenderVertex> m_Vertices;
std::vector<SkinedVertex> m_SkinedVertices; std::vector<SkinedVertex> m_SkinedVertices;
void ReadMeshFile(std::string filePath); void ReadMeshFile(std::string filePath);
@@ -167,12 +149,7 @@ private:
void ReadAnimationClips(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int numberOfClips); void ReadAnimationClips(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int numberOfClips);
void ReadAnimationClipSingle(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int clipIndex); void ReadAnimationClipSingle(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int clipIndex);
void ReadAnimationKeyFrame(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, std::vector<Skeleton::Animation::Keyframe>& animation); void ReadAnimationKeyFrame(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, std::vector<Skeleton::Animation::Keyframe>& animation);
void ReadCollisionFile(std::string filePath);
void ReadCollisionFileData(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
const std::vector<glm::vec3>& ConstructCollisionList();
//void CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID); //void CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID);
}; };
-1
View File
@@ -8,7 +8,6 @@
#include "Events/ESpawnerSpawn.h" #include "Events/ESpawnerSpawn.h"
#include "Core/TransformSystem.h" #include "Core/TransformSystem.h"
#include "Core/EntityFile.h" #include "Core/EntityFile.h"
#include "Rendering/Model.h"
class SpawnerSystem : public System class SpawnerSystem : public System
{ {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

+3 -1
View File
@@ -29,4 +29,6 @@ K=TakeDamage,1500
F2=PerformanceTimingResetAllTimers F2=PerformanceTimingResetAllTimers
F3=PerformanceTimingCreateExcelData F3=PerformanceTimingCreateExcelData
Comma=SwapToClassPick Comma=SwapToClassPick
Period=SwapToTeamPick Period=SwapToTeamPick
Enter=PickClass,1
F5=DisconnectFromServer
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+159 -265
View File
@@ -3,7 +3,7 @@
<Components> <Components>
<c:CapturePointGameMode> <c:CapturePointGameMode>
<RespawnTime>0.10012471663946698</RespawnTime> <RespawnTime>0.35657206405745967</RespawnTime>
<MaxRespawnTime>0.5</MaxRespawnTime> <MaxRespawnTime>0.5</MaxRespawnTime>
</c:CapturePointGameMode> </c:CapturePointGameMode>
<c:Transform> <c:Transform>
@@ -19,11 +19,7 @@
<Red/> <Red/>
</Team> </Team>
</c:Team> </c:Team>
<c:PlayerSpawn> <c:PlayerSpawn/>
<AssaultFile>Schema/Entities/PlayerAssaultBlue.xml</AssaultFile>
<DefenderFile>Schema/Entities/PlayerDefenderBlue.xml</DefenderFile>
<SniperFile></SniperFile>
</c:PlayerSpawn>
<c:Spawner> <c:Spawner>
<EntityFile>Schema/Entities/PlayerDefenderBlue.xml</EntityFile> <EntityFile>Schema/Entities/PlayerDefenderBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
@@ -94,11 +90,7 @@
<Blue/> <Blue/>
</Team> </Team>
</c:Team> </c:Team>
<c:PlayerSpawn> <c:PlayerSpawn/>
<AssaultFile>Schema/Entities/PlayerAssaultBlue.xml</AssaultFile>
<DefenderFile>Schema/Entities/PlayerDefenderBlue.xml</DefenderFile>
<SniperFile></SniperFile>
</c:PlayerSpawn>
<c:Spawner> <c:Spawner>
<EntityFile>Schema/Entities/PlayerAssaultBlue.xml</EntityFile> <EntityFile>Schema/Entities/PlayerAssaultBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
@@ -115,7 +107,7 @@
<Color A="1" B="1" G="0.254901975" R="0"/> <Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="-0.600000024" Y="0" Z="0.549540162"/> <Position X="0.800000012" Y="0" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -128,7 +120,7 @@
<Color A="1" B="1" G="0.254901975" R="0"/> <Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.800000012" Y="0" Z="0"/> <Position X="-0.600000024" Y="0" Z="0.549540162"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -277,7 +269,7 @@
</c:RaptorCopter> </c:RaptorCopter>
<c:Transform> <c:Transform>
<Position X="0" Y="-30.6910019" Z="0"/> <Position X="0" Y="-30.6910019" Z="0"/>
<Orientation X="0" Y="43.4443054" Z="0"/> <Orientation X="0" Y="39.1253624" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -425,7 +417,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>AssaultPoseF</AnimationName> <AnimationName>AssaultPoseF</AnimationName>
<Time>0.65905298965262915</Time> <Time>2.2728534617500387</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -441,7 +433,7 @@
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.160869107" Y="1.21468747" Z="-0.151224568"/> <Position X="0.160869107" Y="1.21713078" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/> <Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -824,7 +816,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DefenderPoseF</AnimationName> <AnimationName>DefenderPoseF</AnimationName>
<Time>2.3258911684973569</Time> <Time>1.4396916405947664</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -840,8 +832,8 @@
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.195810497" Y="0.711551607" Z="0.0388058722"/> <Position X="0.196064115" Y="0.705373585" Z="0.0272535309"/>
<Orientation X="-1.3924278" Y="-0.0973876044" Z="0.332219511"/> <Orientation X="-1.3924278" Y="-0.0973875821" Z="0.332219422"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1097,6 +1089,22 @@
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="-0.21800001" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight"> <Entity name="TopRight">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -1128,22 +1136,6 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="-0.21800001" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft"> <Entity name="TopLeft">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -1185,7 +1177,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>SniperPoseF</AnimationName> <AnimationName>SniperPoseF</AnimationName>
<Time>0.058984111921155602</Time> <Time>1.6727845840185651</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -1201,8 +1193,8 @@
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="-0.0454485416" Y="1.07162762" Z="-0.12548463"/> <Position X="-0.0454485044" Y="1.06437671" Z="-0.125484675"/>
<Orientation X="-1.50533807" Y="1.34000039" Z="-1.34724486"/> <Orientation X="-1.50533736" Y="1.34000039" Z="-1.34724414"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1436,14 +1428,14 @@
<Entity name="PickTeamHUD"> <Entity name="PickTeamHUD">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0" Y="0.0200000014" Z="-0.63500005"/> <Position X="0" Y="0" Z="-0.63500005"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
<Entity name="TeamBluePick"> <Entity name="TeamBluePick">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="-0.131000012" Y="0.0190000013" Z="0"/> <Position X="-0.114000008" Y="0.0190000013" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -1455,14 +1447,14 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture> <DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground> <BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0.768627465" G="0" R="0"/> <Color A="0.392156869" B="0.349019617" G="0" R="0"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton> <c:InputCmdButton>
<Command>PickTeam</Command> <Command>PickTeam</Command>
<PressValue>3</PressValue> <PressValue>3</PressValue>
</c:InputCmdButton> </c:InputCmdButton>
<c:Transform> <c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/> <Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1479,10 +1471,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/> <Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/> <Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1496,10 +1487,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/> <Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -1512,10 +1502,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/> <Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/> <Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1529,10 +1518,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/> <Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/> <Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1546,7 +1534,6 @@
<c:Text> <c:Text>
<Content>Blue</Content> <Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment> <Alignment>
<Left/> <Left/>
</Alignment> </Alignment>
@@ -1558,27 +1545,127 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity> </Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.114" Y="0.0189999994" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components> <Components>
<c:Button/>
<c:Sprite> <c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model> <Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/BlueTeam.png</DiffuseTexture> <DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder> <BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.556862772"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/> <Scale X="0.207000017" Y="0.249000013" Z="1"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Red</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.0890000015" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="TeamSpectatorPick"> <Entity name="TeamSpectatorPick">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.184000015" Z="0"/> <Position X="0" Y="-0.153000012" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -1593,11 +1680,11 @@
<Color A="0.392156869" B="0" G="0" R="0"/> <Color A="0.392156869" B="0" G="0" R="0"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton> <c:InputCmdButton>
<Command>PickTeam_</Command> <Command>PickTeam</Command>
<PressValue>1</PressValue> <PressValue>1</PressValue>
</c:InputCmdButton> </c:InputCmdButton>
<c:Transform> <c:Transform>
<Scale X="0.502000034" Y="0.0530000031" Z="1"/> <Scale X="0.435000032" Y="0.0520000011" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1606,7 +1693,7 @@
<Components> <Components>
<c:Text> <c:Text>
<Content>Spectator</Content> <Content>Spectator</Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
</c:Text> </c:Text>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.00800000038" Z="0.00499999989"/> <Position X="0" Y="-0.00800000038" Z="0.00499999989"/>
@@ -1627,10 +1714,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.248000011" Y="-0.0230000019" Z="0.00499999989"/> <Position X="0.214000016" Y="-0.0230000019" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/> <Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1644,10 +1730,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.247000009" Y="0.0240000002" Z="0.00499999989"/> <Position X="0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -1660,10 +1745,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.247000009" Y="-0.023" Z="0.00499999989"/> <Position X="-0.214000002" Y="-0.023" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/> <Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1677,10 +1761,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.247000009" Y="0.0240000002" Z="0.00499999989"/> <Position X="-0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/> <Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1691,141 +1774,6 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.130999997" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.90196079"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.00900000054" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/RedTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
@@ -2234,60 +2182,6 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="KillFeed">
<Components>
<c:KillFeed/>
<c:Transform>
<Position X="0.494000018" Y="0.252000004" Z="0"/>
<Scale X="0.0149999997" Y="0.0149999997" Z="0.0149999997"/>
</c:Transform>
</Components>
<Children>
<Entity name="KillFeed1">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="KillFeed2">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="0" Y="-1" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="KillFeed3">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="0" Y="-2" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
@@ -2428,7 +2322,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>AssaultPoseF</AnimationName> <AnimationName>AssaultPoseF</AnimationName>
<Time>1.8811652556773666</Time> <Time>0.9949657277747761</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -2444,7 +2338,7 @@
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.160869107" Y="1.21425688" Z="-0.151224568"/> <Position X="0.160869107" Y="1.21340287" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/> <Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -2827,7 +2721,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DefenderPoseF</AnimationName> <AnimationName>DefenderPoseF</AnimationName>
<Time>1.9813738768539579</Time> <Time>1.0951743489513674</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -2843,8 +2737,8 @@
<Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.195940435" Y="0.708098531" Z="0.0331460983"/> <Position X="0.195622981" Y="0.70677036" Z="0.0300085638"/>
<Orientation X="-1.39242768" Y="-0.0973874852" Z="0.332219243"/> <Orientation X="-1.39242733" Y="-0.0973875821" Z="0.332219303"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -3188,7 +3082,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>SniperPoseF</AnimationName> <AnimationName>SniperPoseF</AnimationName>
<Time>1.89819787670897</Time> <Time>1.0119983488063795</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -3204,8 +3098,8 @@
<Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="-0.0454485491" Y="1.06597364" Z="-0.125484616"/> <Position X="-0.045448523" Y="1.06568146" Z="-0.125484601"/>
<Orientation X="-1.50533819" Y="1.34000039" Z="-1.34724486"/> <Orientation X="-1.50533819" Y="1.34000111" Z="-1.3472451"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
+170 -214
View File
@@ -8,7 +8,7 @@
</c:RaptorCopter> </c:RaptorCopter>
<c:Transform> <c:Transform>
<Position X="0" Y="-30.6910019" Z="0"/> <Position X="0" Y="-30.6910019" Z="0"/>
<Orientation X="0" Y="43.2517357" Z="0"/> <Orientation X="0" Y="43.1977272" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -69,21 +69,6 @@
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="0.217999995" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomRight"> <Entity name="BottomRight">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -100,6 +85,21 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="0.217999995" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft"> <Entity name="BottomLeft">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -157,7 +157,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>AssaultPoseF</AnimationName> <AnimationName>AssaultPoseF</AnimationName>
<Time>0.32571926651889171</Time> <Time>1.725669683907423</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -173,7 +173,7 @@
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.160869107" Y="1.21624839" Z="-0.151224568"/> <Position X="0.160869107" Y="1.21322453" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/> <Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -556,7 +556,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DefenderPoseF</AnimationName> <AnimationName>DefenderPoseF</AnimationName>
<Time>1.9925574453636195</Time> <Time>0.89250786275215077</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -572,8 +572,8 @@
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.195935503" Y="0.708206475" Z="0.0333581194"/> <Position X="0.195243329" Y="0.708130419" Z="0.0326478258"/>
<Orientation X="-1.39242768" Y="-0.0973875299" Z="0.332219183"/> <Orientation X="-1.39242756" Y="-0.0973875225" Z="0.332219273"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -829,22 +829,6 @@
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.142000005" Y="-0.217999995" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomRight"> <Entity name="BottomRight">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -876,6 +860,22 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.142000005" Y="-0.217999995" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft"> <Entity name="TopLeft">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -917,7 +917,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>SniperPoseF</AnimationName> <AnimationName>SniperPoseF</AnimationName>
<Time>2.2256503887874182</Time> <Time>1.1256008061759495</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -933,8 +933,8 @@
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="-0.0454485565" Y="1.06937242" Z="-0.125484601"/> <Position X="-0.0454485789" Y="1.06511343" Z="-0.125484645"/>
<Orientation X="-1.50533795" Y="1.34000087" Z="-1.34724462"/> <Orientation X="-1.50533736" Y="1.34000039" Z="-1.34724438"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1168,14 +1168,14 @@
<Entity name="PickTeamHUD"> <Entity name="PickTeamHUD">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0" Y="0.0200000014" Z="-0.63500005"/> <Position X="0" Y="0" Z="-0.63500005"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
<Entity name="TeamBluePick"> <Entity name="TeamBluePick">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="-0.131000012" Y="0.0190000013" Z="0"/> <Position X="-0.114000008" Y="0.0190000013" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -1187,14 +1187,14 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture> <DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground> <BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0.768627465" G="0" R="0"/> <Color A="0.392156869" B="0.349019617" G="0" R="0"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton> <c:InputCmdButton>
<Command>PickTeam</Command> <Command>PickTeam</Command>
<PressValue>3</PressValue> <PressValue>3</PressValue>
</c:InputCmdButton> </c:InputCmdButton>
<c:Transform> <c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/> <Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1211,10 +1211,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/> <Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/> <Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1228,10 +1227,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/> <Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -1244,10 +1242,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/> <Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/> <Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1261,10 +1258,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/> <Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/> <Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1278,7 +1274,6 @@
<c:Text> <c:Text>
<Content>Blue</Content> <Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment> <Alignment>
<Left/> <Left/>
</Alignment> </Alignment>
@@ -1290,27 +1285,127 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity> </Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.114" Y="0.0189999994" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components> <Components>
<c:Button/>
<c:Sprite> <c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model> <Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/BlueTeam.png</DiffuseTexture> <DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder> <BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.556862772"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/> <Scale X="0.207000017" Y="0.249000013" Z="1"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Red</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.0890000015" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="TeamSpectatorPick"> <Entity name="TeamSpectatorPick">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.184000015" Z="0"/> <Position X="0" Y="-0.153000012" Z="0"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -1325,11 +1420,11 @@
<Color A="0.392156869" B="0" G="0" R="0"/> <Color A="0.392156869" B="0" G="0" R="0"/>
</c:Sprite> </c:Sprite>
<c:InputCmdButton> <c:InputCmdButton>
<Command>PickTeam_</Command> <Command>PickTeam</Command>
<PressValue>1</PressValue> <PressValue>1</PressValue>
</c:InputCmdButton> </c:InputCmdButton>
<c:Transform> <c:Transform>
<Scale X="0.502000034" Y="0.0530000031" Z="1"/> <Scale X="0.435000032" Y="0.0520000011" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -1338,7 +1433,7 @@
<Components> <Components>
<c:Text> <c:Text>
<Content>Spectator</Content> <Content>Spectator</Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
</c:Text> </c:Text>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.00800000038" Z="0.00499999989"/> <Position X="0" Y="-0.00800000038" Z="0.00499999989"/>
@@ -1359,10 +1454,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.248000011" Y="-0.0230000019" Z="0.00499999989"/> <Position X="0.214000016" Y="-0.0230000019" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/> <Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1376,10 +1470,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.247000009" Y="0.0240000002" Z="0.00499999989"/> <Position X="0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -1392,10 +1485,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.247000009" Y="-0.023" Z="0.00499999989"/> <Position X="-0.214000002" Y="-0.023" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/> <Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1409,10 +1501,9 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture> <DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear> <Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.247000009" Y="0.0240000002" Z="0.00499999989"/> <Position X="-0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/> <Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/> <Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform> </c:Transform>
@@ -1423,141 +1514,6 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.130999997" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.90196079"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.00900000054" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/RedTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
@@ -1578,7 +1534,7 @@
<Entity name="RespawnTimer"> <Entity name="RespawnTimer">
<Components> <Components>
<c:Text> <c:Text>
<Content>1</Content> <Content>2</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
<Color A="1" B="0" G="1" R="0.784313738"/> <Color A="1" B="0" G="1" R="0.784313738"/>
</c:Text> </c:Text>
@@ -2160,7 +2116,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>AssaultPoseF</AnimationName> <AnimationName>AssaultPoseF</AnimationName>
<Time>1.5478315325436292</Time> <Time>0.44778194993216047</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -2176,7 +2132,7 @@
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.160869107" Y="1.21257317" Z="-0.151224568"/> <Position X="0.160869107" Y="1.21565855" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/> <Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -2559,7 +2515,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DefenderPoseF</AnimationName> <AnimationName>DefenderPoseF</AnimationName>
<Time>1.6480401537202205</Time> <Time>0.54799057110875182</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -2575,8 +2531,8 @@
<Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.196060285" Y="0.705655158" Z="0.0279245265"/> <Position X="0.194819659" Y="0.710372686" Z="0.0368246883"/>
<Orientation X="-1.3924278" Y="-0.0973875448" Z="0.332219273"/> <Orientation X="-1.39242768" Y="-0.0973874852" Z="0.332219452"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -2920,7 +2876,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>SniperPoseF</AnimationName> <AnimationName>SniperPoseF</AnimationName>
<Time>1.5648641535752326</Time> <Time>0.46481457096376388</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -2936,8 +2892,8 @@
<Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource> <Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="-0.0454485565" Y="1.06404948" Z="-0.12548466"/> <Position X="-0.0454485677" Y="1.06916106" Z="-0.125484571"/>
<Orientation X="-1.5053376" Y="1.34000039" Z="-1.34724426"/> <Orientation X="-1.50533819" Y="1.34000111" Z="-1.3472451"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
+15 -242
View File
@@ -572,7 +572,6 @@
<c:Shielded/> <c:Shielded/>
<c:HiddenForLocalPlayer/> <c:HiddenForLocalPlayer/>
<c:Model> <c:Model>
<GlowIntensity>2.2000000476837158</GlowIntensity>
<Resource>Models/Characters/Assault/AssaultBlue.mesh</Resource> <Resource>Models/Characters/Assault/AssaultBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
@@ -587,8 +586,8 @@
<EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile> <EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.165036291" Y="1.03316653" Z="-0.230842277"/> <Position X="0.128669813" Y="1.08486295" Z="-0.361068189"/>
<Orientation X="-0.0310075935" Y="-0.0666775182" Z="0.132169068"/> <Orientation X="-0.0353792347" Y="-0.0854677409" Z="0.133094937"/>
</c:Transform> </c:Transform>
<c:WeaponAttachment> <c:WeaponAttachment>
<Weapon>AssaultWeapon</Weapon> <Weapon>AssaultWeapon</Weapon>
@@ -608,8 +607,8 @@
<EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile> <EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.165036291" Y="1.03316653" Z="-0.230842277"/> <Position X="0.128669813" Y="1.08486295" Z="-0.361068189"/>
<Orientation X="-0.0310075935" Y="-0.0666775182" Z="0.132169068"/> <Orientation X="-0.0353792347" Y="-0.0854677409" Z="0.133094937"/>
</c:Transform> </c:Transform>
<c:WeaponAttachment> <c:WeaponAttachment>
<Weapon>SidearmWeapon</Weapon> <Weapon>SidearmWeapon</Weapon>
@@ -676,7 +675,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchStrafeLeftF</AnimationName> <AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.47961568648540975</Time> <Time>0.14513013667773755</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -687,7 +686,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName> <AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.40693714843619233</Time> <Time>0.072451598628520131</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -700,7 +699,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchWalkF</AnimationName> <AnimationName>CrouchWalkF</AnimationName>
<Time>0.1853111336135953</Time> <Time>0.8508255838059231</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -713,7 +712,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchF</AnimationName> <AnimationName>CrouchF</AnimationName>
<Time>1.8585386305602865</Time> <Time>1.5240530807526143</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -756,7 +755,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>WalkF</AnimationName> <AnimationName>WalkF</AnimationName>
<Time>0.87165493950985962</Time> <Time>0.35598021321569639</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -767,7 +766,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>RunF</AnimationName> <AnimationName>RunF</AnimationName>
<Time>0.33980950828232714</Time> <Time>0.3084600556940007</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -791,7 +790,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>StrafeLeftF</AnimationName> <AnimationName>StrafeLeftF</AnimationName>
<Time>0.94251814368380415</Time> <Time>0.91116869109547771</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -803,7 +802,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>StrafeRightF</AnimationName> <AnimationName>StrafeRightF</AnimationName>
<Time>0.019929152519770454</Time> <Time>0.98857969993144401</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -819,7 +818,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleF</AnimationName> <AnimationName>IdleF</AnimationName>
<Time>0.55386718012173475</Time> <Time>0.85485929533452953</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -945,7 +944,7 @@
<c:Blend> <c:Blend>
<Pose1>AssaultWeapon</Pose1> <Pose1>AssaultWeapon</Pose1>
<Pose2>SidearmWeapon</Pose2> <Pose2>SidearmWeapon</Pose2>
<Weight>0</Weight> <Weight>1</Weight>
<SubTreeRoot>true</SubTreeRoot> <SubTreeRoot>true</SubTreeRoot>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
@@ -1006,7 +1005,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName> <AnimationName>IdleAssaultRifleU</AnimationName>
<Time>1.502794625658133</Time> <Time>1.9871198993639698</Time>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -1109,232 +1108,6 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Lights">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="Elbow_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0546795987" Y="0.970895708" Z="-0.395071507"/>
<Orientation X="-2.67347836" Y="-1.14967656" Z="-2.35179591"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.119805202" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0430894755" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.311819345" Y="1.00506735" Z="-0.00708915293"/>
<Orientation X="1.66802835" Y="1.3856616" Z="0.553554595"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.119999997" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0430000015" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Head">
<Components>
<c:BoneAttachment>
<BoneName>Head</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0847049356" Y="1.25094736" Z="-0.146904141"/>
<Orientation X="-0.270355761" Y="-0.134028792" Z="-0.181556195"/>
</c:Transform>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.117407471" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.116999999" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_top_left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Top</BoneName>
<PositionOffset X="-0.116000004" Y="0.0500000007" Z="0.0360000022"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.187708378" Y="0.720764816" Z="0.0189282075"/>
<Orientation X="0.690089703" Y="-0.0030452935" Z="-0.0742322952"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_top_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Top</BoneName>
<PositionOffset X="0.0800000057" Y="0.0730000064" Z="0.064000003"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.149033397" Y="0.743774891" Z="0.0911710933"/>
<Orientation X="0.00418904377" Y="-0.590482414" Z="0.240698725"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_bottom_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Bottomdw</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.121549807" Y="0.396206558" Z="-0.258821368"/>
<Orientation X="0.0123701356" Y="0.0872921124" Z="-0.0923962742"/>
</c:Transform>
</Components>
<Children>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_bottom_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.184887171" Y="0.323244393" Z="0.0367886424"/>
<Orientation X="-0.714135528" Y="-0.644820809" Z="0.337111086"/>
</c:Transform>
</Components>
<Children>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="AABBStanding"> <Entity name="AABBStanding">
+15 -297
View File
@@ -579,7 +579,6 @@
<c:Shielded/> <c:Shielded/>
<c:HiddenForLocalPlayer/> <c:HiddenForLocalPlayer/>
<c:Model> <c:Model>
<GlowIntensity>2.2000000476837158</GlowIntensity>
<Resource>Models/Characters/Defender/DefenderBlue.mesh</Resource> <Resource>Models/Characters/Defender/DefenderBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
@@ -594,8 +593,8 @@
<EntityFile>Schema/Entities/WeaponDefenderBlueWorld.xml</EntityFile> <EntityFile>Schema/Entities/WeaponDefenderBlueWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.150445178" Y="1.04946244" Z="-0.300744236"/> <Position X="0.160437703" Y="1.04422736" Z="-0.295565188"/>
<Orientation X="-0.100557618" Y="-0.0389867723" Z="0.143711939"/> <Orientation X="-0.105441377" Y="-0.0721141845" Z="0.143959135"/>
</c:Transform> </c:Transform>
<c:WeaponAttachment> <c:WeaponAttachment>
<Weapon>DefenderWeapon</Weapon> <Weapon>DefenderWeapon</Weapon>
@@ -615,8 +614,8 @@
<EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile> <EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.150445178" Y="1.04946244" Z="-0.300744236"/> <Position X="0.160437703" Y="1.04422736" Z="-0.295565188"/>
<Orientation X="-0.100557618" Y="-0.0389867723" Z="0.143711939"/> <Orientation X="-0.105441377" Y="-0.0721141845" Z="0.143959135"/>
</c:Transform> </c:Transform>
<c:WeaponAttachment> <c:WeaponAttachment>
<Weapon>SidearmWeapon</Weapon> <Weapon>SidearmWeapon</Weapon>
@@ -683,7 +682,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchStrafeLeftF</AnimationName> <AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.75511438140459752</Time> <Time>0.89884525886057709</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -694,7 +693,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName> <AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.6824358433553801</Time> <Time>0.82616672081135967</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -707,7 +706,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchWalkF</AnimationName> <AnimationName>CrouchWalkF</AnimationName>
<Time>0.46080982853278307</Time> <Time>0.60454070598876264</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -720,7 +719,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchF</AnimationName> <AnimationName>CrouchF</AnimationName>
<Time>1.1340373254794738</Time> <Time>0.27776820293545335</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -763,7 +762,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>WalkF</AnimationName> <AnimationName>WalkF</AnimationName>
<Time>0.080924354358268502</Time> <Time>0.10969533539853593</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -774,7 +773,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>RunF</AnimationName> <AnimationName>RunF</AnimationName>
<Time>0.75834833797914492</Time> <Time>0.81589030005967977</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -798,7 +797,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>StrafeLeftF</AnimationName> <AnimationName>StrafeLeftF</AnimationName>
<Time>0.36105697338062193</Time> <Time>0.41859893546115678</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -810,7 +809,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>StrafeRightF</AnimationName> <AnimationName>StrafeRightF</AnimationName>
<Time>0.43846798221658823</Time> <Time>0.49600994429712308</Time>
<Speed>2</Speed> <Speed>2</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
@@ -826,7 +825,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleF</AnimationName> <AnimationName>IdleF</AnimationName>
<Time>0.29646465130559285</Time> <Time>1.1919024261691025</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -915,7 +914,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShieldFrontU</AnimationName> <AnimationName>ShieldFrontU</AnimationName>
<Time>0.39092668139446118</Time> <Time>0.41969766243472861</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -964,7 +963,7 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName> <AnimationName>IdleAssaultRifleU</AnimationName>
<Time>1.7120640405065419</Time> <Time>0.74083502154680936</Time>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -1065,287 +1064,6 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Lights">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="Head">
<Components>
<c:BoneAttachment>
<BoneName>Head</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0811523944" Y="1.25871587" Z="-0.135778293"/>
<Orientation X="-0.242026433" Y="-0.103642859" Z="-0.186734527"/>
</c:Transform>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Radius>0.5</Radius>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0938162878" Y="0.0610048659" Z="-0.00614821212"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Radius>0.5</Radius>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0939999968" Y="0.0610048659" Z="-0.00614821212"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Back">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.00160108448" Y="0.112655103" Z="0.116904415"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Armor_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Shoulder_Armor_Joint</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0336125046" Y="1.14461756" Z="-0.198084712"/>
<Orientation X="-0.123359792" Y="-1.02261281" Z="-0.192506254"/>
</c:Transform>
</Components>
<Children>
<Entity name="light">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.259081453" Y="0.0924699008" Z="0.0193806943"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Armor_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Shoulder_Armor_Joint</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.124662042" Y="1.18803668" Z="0.0253864676"/>
<Orientation X="-0.350490361" Y="-0.987647295" Z="0.0760278776"/>
</c:Transform>
</Components>
<Children>
<Entity name="light">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.259000003" Y="0.0924699008" Z="0.0193806943"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0963651165" Y="0.979782283" Z="-0.387918979"/>
<Orientation X="-2.3728857" Y="-0.868270874" Z="-2.74759817"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0530259758" Y="0.0710293874" Z="-0.0176120717"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0404068455" Y="-0.0798887387" Z="-0.000667487504"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.308187783" Y="1.08455598" Z="-0.083610706"/>
<Orientation X="1.80888307" Y="1.43675375" Z="1.20322716"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0529999994" Y="0.0710293874" Z="-0.0176120717"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0399999991" Y="-0.0798887387" Z="-0.000667487504"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Chest">
<Components>
<c:BoneAttachment>
<BoneName>Spine_3</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0399524719" Y="1.09024417" Z="-0.0680764914"/>
<Orientation X="-0.50802201" Y="-0.93734026" Z="0.267742336"/>
</c:Transform>
</Components>
<Children>
<Entity name="Back">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0.0223282184" Z="0.16728729"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_Bottom_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.121582747" Y="0.396609098" Z="-0.250624388"/>
<Orientation X="0.0343631394" Y="0.0808496028" Z="-0.090051204"/>
</c:Transform>
</Components>
<Children>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.09705697" Y="-0.0529966503" Z="0.026842406"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0758597851" Y="-0.0458693244" Z="0.0236873701"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_Bottom_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.183104694" Y="0.325414658" Z="0.0393271334"/>
<Orientation X="-0.702914894" Y="-0.64635247" Z="0.335363626"/>
</c:Transform>
</Components>
<Children>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.09705697" Y="-0.0529966503" Z="0.026842406"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0758597851" Y="-0.0458693244" Z="0.0236873701"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="AABBStanding"> <Entity name="AABBStanding">
+1 -4
View File
@@ -5,6 +5,7 @@
<c:Lifetime> <c:Lifetime>
<Lifetime>0.079999998211860657</Lifetime> <Lifetime>0.079999998211860657</Lifetime>
</c:Lifetime> </c:Lifetime>
<c:NetworkComponent/>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -17,10 +18,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/> <Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="0"/> <Scale X="1" Y="0.0700000003" Z="0"/>
</c:Transform> </c:Transform>
@@ -35,10 +34,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/> <Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0700000003" Z="0"/> <Scale X="1" Y="0.0700000003" Z="0"/>
</c:Transform> </c:Transform>
@@ -5,6 +5,7 @@
<c:Lifetime> <c:Lifetime>
<Lifetime>0.079999998211860657</Lifetime> <Lifetime>0.079999998211860657</Lifetime>
</c:Lifetime> </c:Lifetime>
<c:NetworkComponent/>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -17,12 +18,10 @@
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/> <Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="0"/> <Scale X="1" Y="0.0700000003" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -35,12 +34,10 @@
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/> <Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0700000003" Z="0"/> <Scale X="1" Y="0.0700000003" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
+3 -6
View File
@@ -3,11 +3,12 @@
<Components> <Components>
<c:Lifetime> <c:Lifetime>
<Lifetime>0.08</Lifetime> <Lifetime>0.080000000000000002</Lifetime>
</c:Lifetime> </c:Lifetime>
<c:Fade> <c:Fade>
<FadeTime>0.08</FadeTime> <FadeTime>0.080000000000000002</FadeTime>
</c:Fade> </c:Fade>
<c:NetworkComponent/>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -20,10 +21,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/> <Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0250000004" Z="0"/> <Scale X="1" Y="0.0250000004" Z="0"/>
</c:Transform> </c:Transform>
@@ -38,10 +37,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture> <DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/> <Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio> <KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/> <Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0250000004" Z="0"/> <Scale X="1" Y="0.0250000004" Z="0"/>
</c:Transform> </c:Transform>
@@ -6,12 +6,14 @@
<Lifetime>2</Lifetime> <Lifetime>2</Lifetime>
</c:Lifetime> </c:Lifetime>
<c:ExplosionEffect> <c:ExplosionEffect>
<ColorByDistance>true</ColorByDistance> <Velocity X="1.78000009" Y="0.0320000015" Z="0"/>
<Velocity X="1.63300014" Y="0.0320000015" Z="0"/> <ExplosionOrigin X="0" Y="0.142000005" Z="-0.659000039"/>
<ExplosionOrigin X="0" Y="0.0790000036" Z="-0.329000026"/> <EndColor A="0" B="19.6078434" G="0.00392156886" R="1.96078432"/>
<ExponentialAccelaration>true</ExponentialAccelaration> <RandomnessScalar>1.3399996757507324</RandomnessScalar>
<EndColor A="0" B="19.6078434" G="19.6078434" R="0"/>
<Randomness>true</Randomness> <Randomness>true</Randomness>
<ColorByDistance>true</ColorByDistance>
<ExponentialAccelaration>true</ExponentialAccelaration>
<ColorDistanceScalar>5.0899982452392578</ColorDistanceScalar>
</c:ExplosionEffect> </c:ExplosionEffect>
<c:Model> <c:Model>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
@@ -18,8 +18,8 @@
<Color A="1" B="0.117647059" G="0.117647059" R="0.117647059"/> <Color A="1" B="0.117647059" G="0.117647059" R="0.117647059"/>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="-0.00200000009" Y="-0.0730000064" Z="-0.0270000007"/> <Position X="-0.00700000022" Y="-0.0310000014" Z="-0.0270000007"/>
<Scale X="0.268000007" Y="0.102000006" Z="1"/> <Scale X="0.292000026" Y="0.064000003" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -40,8 +40,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/> <Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.00300000003" Y="-0.0460000038" Z="0"/> <Position X="-0.088000007" Y="-0.0350000001" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/> <Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -56,8 +56,8 @@
</Alignment> </Alignment>
</c:Text> </c:Text>
<c:Transform> <c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/> <Position X="-0.361000031" Y="-0.562000036" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/> <Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -80,8 +80,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/> <Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.00300000003" Y="-0.076000005" Z="0"/> <Position X="0" Y="-0.0350000001" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/> <Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -96,8 +96,8 @@
</Alignment> </Alignment>
</c:Text> </c:Text>
<c:Transform> <c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/> <Position X="-0.380000025" Y="-0.561999977" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/> <Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -120,8 +120,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/> <Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Position X="0.00300000003" Y="-0.107000008" Z="0"/> <Position X="0.088000007" Y="-0.0350000001" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/> <Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -136,8 +136,8 @@
</Alignment> </Alignment>
</c:Text> </c:Text>
<c:Transform> <c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/> <Position X="-0.387000024" Y="-0.561999977" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/> <Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -2,6 +2,7 @@
<Entity name="SidearmWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd"> <Entity name="SidearmWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components> <Components>
<c:Shielded/>
<c:Model> <c:Model>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
@@ -9,16 +10,37 @@
</Components> </Components>
<Children> <Children>
<Entity name="WeaponMuzzle"> <Entity name="Muzzle">
<Components> <Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.0123999491" Y="0.102453232" Z="-0.273824364"/> <Position X="-0.0169804785" Y="-0.0188358482" Z="-0.222064406"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0.125075191" Z="-0.206788138"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0240342002" Y="0.116005458" Z="-0.0419839472"/>
<Scale X="0.5" Y="0.5" Z="0.5"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity> </Entity>
</Children> </Children>
+38 -17
View File
@@ -11,17 +11,6 @@
</Components> </Components>
<Children> <Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/Ray2Red.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0.105000004" Z="-0.256000012"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="AmmunitionHUD"> <Entity name="AmmunitionHUD">
<Components> <Components>
<c:TextFieldReader> <c:TextFieldReader>
@@ -38,8 +27,9 @@
<Entity name="AmmunitionHUDBackground"> <Entity name="AmmunitionHUDBackground">
<Components> <Components>
<c:Sprite> <c:Sprite>
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture> <Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
<Color A="0.588235319" B="0" G="0" R="0"/> <Color A="0.588235319" B="0" G="0" R="0"/>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
@@ -56,16 +46,16 @@
<Children> <Children>
<Entity name="MagazineAmmo"> <Entity name="MagazineAmmo">
<Components> <Components>
<c:TextFieldReader>
<ParentEntityName>Player</ParentEntityName>
<ComponentType>SidearmWeapon</ComponentType>
<Field>MagazineAmmo</Field>
</c:TextFieldReader>
<c:Text> <c:Text>
<Content>16</Content> <Content>16</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource> <Resource>Fonts/DroidSans.ttf,64</Resource>
<Color A="1" B="3.92156863" G="1.17647064" R="0"/> <Color A="1" B="3.92156863" G="1.17647064" R="0"/>
</c:Text> </c:Text>
<c:TextFieldReader>
<ParentEntityName>Player</ParentEntityName>
<ComponentType>SidearmWeapon</ComponentType>
<Field>MagazineAmmo</Field>
</c:TextFieldReader>
<c:Transform> <c:Transform>
<Position X="0" Y="-0.00600000005" Z="0"/> <Position X="0" Y="-0.00600000005" Z="0"/>
<Scale X="0.0599999987" Y="0.0599999987" Z="0.0599999987"/> <Scale X="0.0599999987" Y="0.0599999987" Z="0.0599999987"/>
@@ -92,6 +82,37 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0" Z="-0.155046776"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Scale X="0.5" Y="0.5" Z="0.5"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
File diff suppressed because it is too large Load Diff
@@ -8,6 +8,7 @@
</c:BlendAdditive> </c:BlendAdditive>
<c:Model> <c:Model>
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource> <Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -90,9 +91,10 @@
<c:Model> <c:Model>
<GlowIntensity>1.5</GlowIntensity> <GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.120748267" Y="-0.22843127" Z="-0.181454584"/> <Position X="0.120748267" Y="-0.22843127" Z="-0.181454599"/>
<Orientation X="0.0102799674" Y="-0.00312504289" Z="0.0428140014"/> <Orientation X="0.0102799674" Y="-0.00312504289" Z="0.0428140014"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -131,7 +133,7 @@
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile> <EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.00123506912" Y="-0.00209517847" Z="-0.681198895"/> <Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -2,6 +2,7 @@
<Entity name="AssaultWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd"> <Entity name="AssaultWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components> <Components>
<c:Shielded/>
<c:Model> <c:Model>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
@@ -9,17 +10,6 @@
</Components> </Components>
<Children> <Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00644115033" Y="0.096679531" Z="-0.436609417"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ReloadSpawner"> <Entity name="ReloadSpawner">
<Components> <Components>
<c:Spawner> <c:Spawner>
@@ -29,6 +19,38 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.00728808995" Y="0.0896582007" Z="-0.643795013"/>
<Orientation X="6.27600002" Y="0.00499999989" Z="0.00600000005"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="-8.41593719e-05" Y="-0.000816107844" Z="0.0612007342"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive> </c:BlendAdditive>
<c:Model> <c:Model>
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource> <Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -154,7 +155,7 @@
<InheritScale>true</InheritScale> <InheritScale>true</InheritScale>
</c:BoneAttachment> </c:BoneAttachment>
<c:Transform> <c:Transform>
<Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546911"/> <Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546926"/>
<Orientation X="0.00124507793" Y="0.077417776" Z="0.00737103401"/> <Orientation X="0.00124507793" Y="0.077417776" Z="0.00737103401"/>
<Scale X="0.300000012" Y="0.300000042" Z="0.299999952"/> <Scale X="0.300000012" Y="0.300000042" Z="0.299999952"/>
</c:Transform> </c:Transform>
@@ -244,9 +245,10 @@
</c:BoneAttachment> </c:BoneAttachment>
<c:Model> <c:Model>
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.120748043" Y="-0.228436321" Z="-0.151475549"/> <Position X="0.120748043" Y="-0.228436321" Z="-0.151475564"/>
<Orientation X="0.0102800643" Y="-0.00312487315" Z="0.0428144038"/> <Orientation X="0.0102800643" Y="-0.00312487315" Z="0.0428144038"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -265,7 +267,7 @@
<Entity name="Muzzle"> <Entity name="Muzzle">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0.137428522" Y="-0.145251781" Z="-0.590083241"/> <Position X="0.119734153" Y="-0.145251781" Z="-0.564532101"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -275,7 +277,7 @@
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile> <EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.0180841181" Y="0.0252480619" Z="-0.663679719"/> <Position X="0" Y="0" Z="-0.109966502"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -286,7 +288,7 @@
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile> <EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/> <Position X="0.0201820824" Y="0" Z="0"/>
<Scale X="1.5" Y="1.5" Z="1"/> <Scale X="1.5" Y="1.5" Z="1"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -2,6 +2,7 @@
<Entity name="ThirdPersonWeaponModel" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd"> <Entity name="ThirdPersonWeaponModel" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components> <Components>
<c:Shielded/>
<c:Model> <c:Model>
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
@@ -9,17 +10,6 @@
</Components> </Components>
<Children> <Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/DefenderRayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.000284185546" Y="0.0318552479" Z="-0.193328083"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ThirdPersonReloadSpawner"> <Entity name="ThirdPersonReloadSpawner">
<Components> <Components>
<c:Spawner> <c:Spawner>
@@ -29,6 +19,38 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="-0.0100463303" Y="0.0624945536" Z="-0.372351319"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0180841181" Y="0.0252480619" Z="-0.135249734"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/>
<Scale X="1.5" Y="1.5" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive> </c:BlendAdditive>
<c:Model> <c:Model>
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource> <Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -183,6 +184,7 @@
<c:Model> <c:Model>
<GlowIntensity>1.2999999523162842</GlowIntensity> <GlowIntensity>1.2999999523162842</GlowIntensity>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.185786247" Y="-0.21622014" Z="-0.412707269"/> <Position X="0.185786247" Y="-0.21622014" Z="-0.412707269"/>
@@ -204,7 +206,7 @@
<Entity name="Muzzle"> <Entity name="Muzzle">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/> <Position X="0.189540595" Y="-0.114737265" Z="-0.681462705"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -213,9 +215,7 @@
<c:Spawner> <c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile> <EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform/>
<Position X="0" Y="0" Z="-0.155046776"/>
</c:Transform>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive> </c:BlendAdditive>
<c:Model> <c:Model>
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource> <Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -86,7 +87,7 @@
<BoneName>R_Ammo_Joint</BoneName> <BoneName>R_Ammo_Joint</BoneName>
</c:BoneAttachment> </c:BoneAttachment>
<c:Transform> <c:Transform>
<Position X="0.109812573" Y="-0.0832190216" Z="-0.373473197"/> <Position X="0.109812573" Y="-0.0832190216" Z="-0.373473227"/>
<Orientation X="0.00118373742" Y="0.077411525" Z="0.00458352407"/> <Orientation X="0.00118373742" Y="0.077411525" Z="0.00458352407"/>
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/> <Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
</c:Transform> </c:Transform>
@@ -183,9 +184,10 @@
<c:Model> <c:Model>
<GlowIntensity>1.5</GlowIntensity> <GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.18578662" Y="-0.216220587" Z="-0.382728696"/> <Position X="0.18578662" Y="-0.216220587" Z="-0.382728726"/>
<Orientation X="0.010279973" Y="-0.00312555139" Z="0.0428142436"/> <Orientation X="0.010279973" Y="-0.00312555139" Z="0.0428142436"/>
</c:Transform> </c:Transform>
</Components> </Components>
@@ -204,10 +206,19 @@
<Entity name="Muzzle"> <Entity name="Muzzle">
<Components> <Components>
<c:Transform> <c:Transform>
<Position X="0.196999997" Y="-0.116999999" Z="-0.668634355"/> <Position X="0.192775041" Y="-0.117133088" Z="-0.647809923"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash"> <Entity name="WeaponMuzzleFlash">
<Components> <Components>
<c:Spawner> <c:Spawner>
@@ -219,17 +230,6 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0" Z="-0.155000001"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
-76
View File
@@ -1,76 +0,0 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Axyz"
#define MyAppVersion "1.0"
#define MyAppURL "https://github.com/teamfisk/TacticalZ"
#define MyAppExeName "Axyz.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{38D77EB2-6B56-4B4F-BAAE-43F9E6E1A191}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=Axyz Setup
SetupIconFile=..\Axyz.ico
Compression=lzma2
SolidCompression=yes
; "ArchitecturesAllowed=x64" specifies that Setup cannot run on
; anything but x64.
ArchitecturesAllowed=x64
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
; done in "64-bit mode" on x64, meaning it should use the native
; 64-bit Program Files directory and the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64
OutputDir=.
DisableWelcomePage=false
;WizardSmallImageFile=
WizardImageFile=Setup Banner.bmp
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "..\..\bin\Audio\*"; DestDir: "{app}\Audio\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Fonts\*"; DestDir: "{app}\Fonts\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Licenses\*"; DestDir: "{app}\Licenses\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Models\*"; DestDir: "{app}\Models\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Schema\*"; DestDir: "{app}\Schema\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Shaders\*"; DestDir: "{app}\Shaders\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Textures\*"; DestDir: "{app}\Textures\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\assimp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\DefaultConfig.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\DefaultInput.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\glew32.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\glfw3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\imgui.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\Input.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\libpng16.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\Axyz.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\xerces-c_3_1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\zlib.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\deps\redist\VC_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[INI]
Filename: "{app}\Config.ini"; Section: "Networking"; Key: "Name"; String: "{%USERNAME}"; Flags: createkeyifdoesntexist
[Run]
Filename: "{tmp}\VC_redist.x64.exe"; Parameters: "/norestart /passive"; StatusMsg: "Installing Microsoft Visual C++ 2015 x64 Redistributable....";
[ThirdParty]
UseRelativePaths=True
Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.
+17 -17
View File
@@ -146,14 +146,14 @@ bool RayVsTriangle(const Ray& ray,
} }
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix) const glm::mat4& modelMatrix)
{ {
for (int i = 0; i < modelIndices.size();) { for (int i = 0; i < modelIndices.size();) {
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
if (RayVsTriangle(ray, v0, v1, v2)) { if (RayVsTriangle(ray, v0, v1, v2)) {
return true; return true;
} }
@@ -194,7 +194,7 @@ bool RayVsTriangle(const Ray& ray,
} }
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
float& outDistance, float& outDistance,
@@ -204,9 +204,9 @@ bool RayVsModel(const Ray& ray,
outDistance = INFINITY; outDistance = INFINITY;
bool hit = false; bool hit = false;
for (int i = 0; i < modelIndices.size();) { for (int i = 0; i < modelIndices.size();) {
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix); glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
float dist = outDistance; float dist = outDistance;
float u; float u;
float v; float v;
@@ -221,7 +221,7 @@ bool RayVsModel(const Ray& ray,
} }
bool RayVsModel(const Ray& ray, bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
glm::vec3& outHitPosition) glm::vec3& outHitPosition)
@@ -548,7 +548,7 @@ BoxTriRes AABBvsTriangle(const AABB& box,
} }
Output AABBvsTriangles(const AABB& box, Output AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
glm::vec3& boxVelocity, glm::vec3& boxVelocity,
@@ -565,9 +565,9 @@ Output AABBvsTriangles(const AABB& box,
glm::vec3 originalBoxVelocity(boxVelocity); glm::vec3 originalBoxVelocity(boxVelocity);
for (int i = 0; i < modelIndices.size(); ) { for (int i = 0; i < modelIndices.size(); ) {
std::array<glm::vec3, 3> triVertices = { std::array<glm::vec3, 3> triVertices = {
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix), TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix), TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix) TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix)
}; };
glm::vec3 outVec; glm::vec3 outVec;
bool collideWithGround = isOnGround; bool collideWithGround = isOnGround;
@@ -595,7 +595,7 @@ Output AABBvsTriangles(const AABB& box,
} }
bool AABBvsTriangles(const AABB& box, bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix, const glm::mat4& modelMatrix,
glm::vec3& boxVelocity, glm::vec3& boxVelocity,
@@ -615,7 +615,7 @@ bool AABBvsTriangles(const AABB& box,
} }
bool AABBvsTriangles(const AABB& box, bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix) const glm::mat4& modelMatrix)
{ {
@@ -633,7 +633,7 @@ bool AABBvsTriangles(const AABB& box,
} }
Output AABBvsTrianglesWContainment(const AABB& box, Output AABBvsTrianglesWContainment(const AABB& box,
const std::vector<glm::vec3>& modelVertices, const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices, const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix) const glm::mat4& modelMatrix)
{ {
@@ -741,7 +741,7 @@ boost::optional<EntityAABB> EntityFirstHitByRay(const Ray& ray, std::vector<Enti
continue; continue;
} }
float u, v; float u, v;
if (RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) { if (RayVsModel(ray, model->Vertices(), model->m_RawModel->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
outIntersectPos = ray.Origin() + outDistance * ray.Direction(); outIntersectPos = ray.Origin() + outDistance * ray.Direction();
return entityBox; return entityBox;
} }
+6 -6
View File
@@ -41,15 +41,15 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
// Don't collide against invisible models. // Don't collide against invisible models.
continue; continue;
} }
Model* model; RawModel* model;
std::string res = (std::string)boxB.Entity["Model"]["Resource"]; std::string res = (std::string)boxB.Entity["Model"]["Resource"];
try { try {
model = ResourceManager::Load<Model, true>(res); model = ResourceManager::Load<RawModel, true>(res);
} catch (const std::exception&) { } catch (const std::exception&) {
continue; continue;
} }
float u, v; float u, v;
hit = Collision::RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v); hit = Collision::RayVsModel(ray, model->Vertices(), model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v);
} else { } else {
hit = Collision::RayVsAABB(ray, boxB, dist); hit = Collision::RayVsAABB(ray, boxB, dist);
} }
@@ -86,9 +86,9 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
// Don't collide against invisible models. // Don't collide against invisible models.
continue; continue;
} }
Model* model; RawModel* model;
try { try {
model = ResourceManager::Load<Model, true>(boxB.Entity["Model"]["Resource"]); model = ResourceManager::Load<RawModel, true>(boxB.Entity["Model"]["Resource"]);
} catch (const std::exception&) { } catch (const std::exception&) {
continue; continue;
} }
@@ -98,7 +98,7 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"]; glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"];
bool isOnGround = (bool)cPhysics["IsOnGround"]; bool isOnGround = (bool)cPhysics["IsOnGround"];
float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"]; float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"];
if (Collision::AABBvsTriangles(boxA, model->m_Vertices, model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) { if (Collision::AABBvsTriangles(boxA, model->Vertices(), model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) {
//Move the position to previous position if it is not moving in the xz-plane, else resolve with the resolution vector. //Move the position to previous position if it is not moving in the xz-plane, else resolve with the resolution vector.
(Field<glm::vec3>)cTransform["Position"] += resolutionVector; (Field<glm::vec3>)cTransform["Position"] += resolutionVector;
boxA = *Collision::EntityAbsoluteAABB(entity); boxA = *Collision::EntityAbsoluteAABB(entity);
+3 -3
View File
@@ -10,11 +10,11 @@ void TriggerSystem::UpdateComponent(EntityWrapper& triggerEntity, ComponentWrapp
return; return;
} }
Model* triggerModel = nullptr; RawModel* triggerModel = nullptr;
glm::mat4 triggerModelMat; glm::mat4 triggerModelMat;
if (triggerEntity.HasComponent("Model")) { if (triggerEntity.HasComponent("Model")) {
try { try {
triggerModel = ResourceManager::Load<Model, true>(triggerEntity["Model"]["Resource"]); triggerModel = ResourceManager::Load<RawModel, true>(triggerEntity["Model"]["Resource"]);
triggerModelMat = TransformSystem::ModelMatrix(triggerEntity); triggerModelMat = TransformSystem::ModelMatrix(triggerEntity);
} catch (const std::exception&) { } catch (const std::exception&) {
} }
@@ -38,7 +38,7 @@ void TriggerSystem::UpdateComponent(EntityWrapper& triggerEntity, ComponentWrapp
? Collision::Output::OutContained ? Collision::Output::OutContained
: Collision::AABBvsTrianglesWContainment( : Collision::AABBvsTrianglesWContainment(
colliderBox, colliderBox,
triggerModel->m_Vertices, triggerModel->Vertices(),
triggerModel->m_Indices, triggerModel->m_Indices,
triggerModelMat); triggerModelMat);
+5 -5
View File
@@ -37,7 +37,7 @@ void AnimationSystem::CreateBlendTrees()
continue;; continue;;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
continue; continue;
} }
@@ -79,7 +79,7 @@ void AnimationSystem::UpdateAnimations(double dt)
continue; continue;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
continue; continue;
} }
@@ -177,7 +177,7 @@ bool AnimationSystem::OnAutoAnimationBlend(Events::AutoAnimationBlend& e)
return false; return false;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
LOG_ERROR("%s, RootNode skeleton invalid %s", e.NodeName, e.RootNode.Name().c_str()); LOG_ERROR("%s, RootNode skeleton invalid %s", e.NodeName, e.RootNode.Name().c_str());
return false; return false;
@@ -300,7 +300,7 @@ bool AnimationSystem::OnEntityDeleted(Events::EntityDeleted& e)
return false; return false;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
return false; return false;
} }
@@ -331,7 +331,7 @@ bool AnimationSystem::OnSetBlendWeight(Events::SetBlendWeight& e)
return false; return false;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
return false; return false;
} }
+3 -3
View File
@@ -22,7 +22,7 @@ void AutoBlendQueue::Insert(AutoBlendJob autoBlendJob)
return; return;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
return; return;
} }
@@ -130,7 +130,7 @@ bool AutoBlendQueue::HasActiveBlendJob()
return HasActiveBlendJob(); return HasActiveBlendJob();
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
m_BlendQueue.pop_front(); m_BlendQueue.pop_front();
return HasActiveBlendJob(); return HasActiveBlendJob();
@@ -173,7 +173,7 @@ std::shared_ptr<BlendTree> AutoBlendQueue::GetBlendTree()
return nullptr; return nullptr;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) { if (skeleton == nullptr) {
return nullptr; return nullptr;
} }
@@ -26,7 +26,7 @@ void BoneAttachmentSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapp
return; return;
} }
Skeleton* skeleton = model->m_Skeleton; Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if(skeleton == nullptr) { if(skeleton == nullptr) {
return; return;
+17 -3
View File
@@ -332,6 +332,14 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
glClearStencil(0x00); glClearStencil(0x00);
glClear(GL_STENCIL_BUFFER_BIT); glClear(GL_STENCIL_BUFFER_BIT);
//Fill depth buffer
state->Enable(GL_STENCIL_TEST);
state->StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
state->StencilFunc(GL_ALWAYS, 1, 0xFF);
state->StencilMask(0xFF);
state->DepthMask(GL_FALSE);
//DrawToDepthStencilBuffer(scene.Jobs.ShieldObjects, scene);
state->DepthMask(GL_TRUE);
//Draw Opaque shielded objects //Draw Opaque shielded objects
state->Disable(GL_STENCIL_TEST); state->Disable(GL_STENCIL_TEST);
@@ -346,10 +354,10 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
GLERROR("OpaqueObjects"); GLERROR("OpaqueObjects");
//state->Disable(GL_STENCIL_TEST); //state->Disable(GL_STENCIL_TEST);
//Draw Transparen objects //Draw Transparen Shielded objects
state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
DrawModelRenderQueuesWithShieldCheck(scene.Jobs.TransparentObjects, scene); //might need changing DrawModelRenderQueuesWithShieldCheck(scene.Jobs.TransparentObjects, scene); //might need changing
GLERROR("Transparent objects"); GLERROR("Shielded Transparent objects");
//Generate blur texture. //Generate blur texture.
delete state; delete state;
@@ -371,6 +379,12 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
} else { } else {
stateSprite = new DrawFinalPassState(m_FinalPassFrameBuffer->GetHandle()); stateSprite = new DrawFinalPassState(m_FinalPassFrameBuffer->GetHandle());
} }
//Draw Transparen objects
//state->BlendFunc(GL_ONE, GL_ONE);
//state->StencilFunc(GL_EQUAL, 1, 0xFF);
//DrawModelRenderQueues(scene.Jobs.TransparentObjects, scene);
GLERROR("TransparentObjects");
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
stateSprite->Enable(GL_DEPTH_TEST); stateSprite->Enable(GL_DEPTH_TEST);
//stateSprite->AlphaFunc(GL_GEQUAL, 0.05f); //stateSprite->AlphaFunc(GL_GEQUAL, 0.05f);
//stateSprite->Enable(GL_ALPHA_TEST); //stateSprite->Enable(GL_ALPHA_TEST);
@@ -624,7 +638,7 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
std::vector<glm::mat4> frameBones; std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) { if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose(); frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) { } else {
frameBones = modelJob->Skeleton->GetTPose(); frameBones = modelJob->Skeleton->GetTPose();
} }
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0])); glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+12 -24
View File
@@ -3,9 +3,9 @@
Model::Model(std::string fileName) Model::Model(std::string fileName)
{ {
//Try loading the model asyncronously, if it throws any exceptions then let it propagate back to caller. //Try loading the model asyncronously, if it throws any exceptions then let it propagate back to caller.
auto rawModel = ResourceManager::Load<RawModel, true>(fileName); m_RawModel = ResourceManager::Load<RawModel, true>(fileName);
for (auto& materialProperty : rawModel->m_Materials) { for (auto& materialProperty : m_RawModel->m_Materials) {
switch (materialProperty.type) { switch (materialProperty.type) {
case RawModel::MaterialType::SingleTextures: case RawModel::MaterialType::SingleTextures:
{ {
@@ -46,11 +46,11 @@ Model::Model(std::string fileName)
glGenBuffers(1, &buffer); glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, rawModel->NumVertices() * rawModel->VertexSize(), rawModel->Vertices(), GL_STATIC_DRAW); glBufferData(GL_ARRAY_BUFFER, m_RawModel->NumVertices() * m_RawModel->VertexSize(), m_RawModel->Vertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ElementBuffer); glGenBuffers(1, &ElementBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ElementBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ElementBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, rawModel->Indices().size() * sizeof(unsigned int), rawModel->Indices().data(), GL_STATIC_DRAW); glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_RawModel->m_Indices.size() * sizeof(unsigned int), &m_RawModel->m_Indices[0], GL_STATIC_DRAW);
glGenVertexArrays(1, &VAO); glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO); glBindVertexArray(VAO);
@@ -58,7 +58,7 @@ Model::Model(std::string fileName)
glBindBuffer(GL_ARRAY_BUFFER, buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer);
std::vector<int> structSizes; std::vector<int> structSizes;
if (rawModel->IsSkinned()) { if (m_RawModel->IsSkinned()) {
structSizes = { 3, 3, 3, 3, 2, 4, 4 }; structSizes = { 3, 3, 3, 3, 2, 4, 4 };
} else { } else {
structSizes = { 3, 3, 3, 3, 2 }; structSizes = { 3, 3, 3, 3, 2 };
@@ -77,7 +77,7 @@ Model::Model(std::string fileName)
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++; glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++; glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++; glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
if (rawModel->IsSkinned()) { if (m_RawModel->IsSkinned()) {
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++; glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++; glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
} }
@@ -89,7 +89,7 @@ Model::Model(std::string fileName)
glEnableVertexAttribArray(2); glEnableVertexAttribArray(2);
glEnableVertexAttribArray(3); glEnableVertexAttribArray(3);
glEnableVertexAttribArray(4); glEnableVertexAttribArray(4);
if (rawModel->IsSkinned()) { if (m_RawModel->IsSkinned()) {
glEnableVertexAttribArray(5); glEnableVertexAttribArray(5);
glEnableVertexAttribArray(6); glEnableVertexAttribArray(6);
} }
@@ -99,29 +99,17 @@ Model::Model(std::string fileName)
glm::vec3 mini(INFINITY); glm::vec3 mini(INFINITY);
glm::vec3 maxi(-INFINITY); glm::vec3 maxi(-INFINITY);
for (unsigned int i = 0; i < rawModel->NumVertices(); i++) {
const auto& v = rawModel->Vertices()[i]; for (unsigned int i = 0; i < m_RawModel->NumVertices(); i++) {
const auto& v = m_RawModel->Vertices()[i];
mini = glm::min(mini, v.Position); mini = glm::min(mini, v.Position);
maxi = glm::max(maxi, v.Position); maxi = glm::max(maxi, v.Position);
} }
m_Box = AABB(mini, maxi); m_Box = AABB(mini, maxi);
m_Skeleton = rawModel->m_Skeleton;
m_Materials = rawModel->m_Materials;
m_Indices = rawModel->CollisionIndices();
m_IsSkinned = rawModel->IsSkinned();
// Copy vertex positions for collisions later
m_Vertices = rawModel->CollisionVertices();
ResourceManager::Release("RawModel", fileName);
} }
Model::~Model() Model::~Model()
{ {
if (m_Skeleton != nullptr) {
delete m_Skeleton;
}
for (auto material : m_Materials) {
delete material.material;
}
} }
+1 -1
View File
@@ -115,7 +115,7 @@ void PickingPass::Draw(RenderScene& scene)
std::vector<glm::mat4> frameBones; std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) { if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose(); frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) { } else {
frameBones = modelJob->Skeleton->GetTPose(); frameBones = modelJob->Skeleton->GetTPose();
} }
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0])); glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+9 -86
View File
@@ -11,7 +11,6 @@ RawModelCustom::RawModelCustom(std::string fileName)
ReadMeshFile(fileName); ReadMeshFile(fileName);
ReadMaterialFile(fileName); ReadMaterialFile(fileName);
ReadAnimationFile(fileName); ReadAnimationFile(fileName);
ReadCollisionFile(fileName);
} }
void RawModelCustom::ReadMeshFile(std::string filePath) void RawModelCustom::ReadMeshFile(std::string filePath)
@@ -72,11 +71,11 @@ void RawModelCustom::ReadVertices(std::size_t& offset, char* fileData, const uns
memcpy(&m_SkinedVertices[0], fileData + offset, m_SkinedVertices.size() * sizeof(SkinedVertex)); memcpy(&m_SkinedVertices[0], fileData + offset, m_SkinedVertices.size() * sizeof(SkinedVertex));
offset += m_SkinedVertices.size() * sizeof(SkinedVertex); offset += m_SkinedVertices.size() * sizeof(SkinedVertex);
} else { } else {
if (offset + m_Vertices.size() * sizeof(RenderVertex) > fileByteSize) { if (offset + m_Vertices.size() * sizeof(Vertex) > fileByteSize) {
throw Resource::FailedLoadingException("Reading vertices failed"); throw Resource::FailedLoadingException("Reading vertices failed");
} }
memcpy(&m_Vertices[0], fileData + offset, m_Vertices.size() * sizeof(RenderVertex)); memcpy(&m_Vertices[0], fileData + offset, m_Vertices.size() * sizeof(Vertex));
offset += m_Vertices.size() * sizeof(RenderVertex); offset += m_Vertices.size() * sizeof(Vertex);
} }
#else #else
#endif #endif
@@ -492,90 +491,14 @@ void RawModelCustom::ReadAnimationKeyFrame(std::size_t& offset, char* fileData,
} }
void RawModelCustom::ReadCollisionFile(std::string filePath) {
char* fileData;
filePath += ".colli";
std::ifstream in(filePath.c_str(), std::ios_base::binary | std::ios_base::ate);
if (!in.is_open()) {
return;
}
unsigned int fileByteSize = static_cast<unsigned int>(in.tellg());
in.seekg(0, std::ios_base::beg);
fileData = new char[fileByteSize];
in.read(fileData, fileByteSize);
in.close();
std::size_t offset = 0;
if (fileByteSize > 0) {
ReadCollisionFileData(offset, fileData, fileByteSize);
}
hasCollisionMesh = true;
delete[] fileData;
}
const std::vector<glm::vec3>& RawModelCustom::CollisionVertices() {
if (hasCollisionMesh) {
return m_CollisionVertices;
}
else if (hasSkin) {
// We don't do collisions against skinned meshes now.
m_CollisionVertices = std::vector<glm::vec3>();
return m_CollisionVertices;
}
else {
return ConstructCollisionList();
}
};
void RawModelCustom::ReadCollisionFileData(std::size_t& offset, char* fileData, const unsigned int& fileByteSize){
m_CollisionVertices.resize(static_cast<std::size_t>(*(unsigned int*)(fileData + offset)));
offset += sizeof(unsigned int);
m_CollisionIndices.resize(static_cast<std::size_t>(*(unsigned int*)(fileData + offset)));
offset += sizeof(unsigned int);
if (offset + m_CollisionVertices.size() * sizeof(glm::vec3) > fileByteSize) {
throw Resource::FailedLoadingException("Reading collision vertices failed");
}
memcpy(&m_CollisionVertices[0], fileData + offset, m_CollisionVertices.size() * sizeof(glm::vec3));
offset += m_CollisionVertices.size() * sizeof(glm::vec3);
if (offset + m_CollisionIndices.size() * sizeof(unsigned int) > fileByteSize) {
throw Resource::FailedLoadingException("Reading collision indices failed");
}
memcpy(&m_CollisionIndices[0], fileData + offset, m_CollisionIndices.size() * sizeof(unsigned int));
offset += m_CollisionIndices.size() * sizeof(unsigned int);
}
const std::vector<glm::vec3>& RawModelCustom::ConstructCollisionList()
{
if (!hasCollisionMesh && m_CollisionVertices.size() == 0) {
if (hasSkin) {
m_CollisionVertices.reserve(m_SkinedVertices.size());
for (const auto& vertex : m_SkinedVertices) {
m_CollisionVertices.push_back(vertex.Position);
}
} else {
m_CollisionVertices.reserve(m_Vertices.size());
for (const auto& vertex : m_Vertices) {
m_CollisionVertices.push_back(vertex.Position);
}
}
}
return m_CollisionVertices;
}
RawModelCustom::~RawModelCustom() RawModelCustom::~RawModelCustom()
{ {
// Ownership of skeleton and materials get transferred to Model if (m_Skeleton != nullptr) {
// if (m_Skeleton != nullptr) { delete m_Skeleton;
// delete m_Skeleton; }
// } for (auto material : m_Materials) {
//for (auto material : m_Materials) { delete material.material;
// delete material.material; }
//}
} }
#endif #endif
+1 -1
View File
@@ -259,7 +259,7 @@ void ShadowPass::Draw(RenderScene & scene)
std::vector<glm::mat4> frameBones; std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) { if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose(); frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) { } else {
frameBones = modelJob->Skeleton->GetTPose(); frameBones = modelJob->Skeleton->GetTPose();
} }
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0])); glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+2 -3
View File
@@ -53,11 +53,10 @@ target_link_libraries(Game
${LIBRARIES} ${LIBRARIES}
) )
add_executable(Axyz add_executable(TacticalZ
main.cpp main.cpp
${CMAKE_SOURCE_DIR}/resources/TacticalZ.rc
) )
target_link_libraries(Axyz target_link_libraries(TacticalZ
Game Game
${LIBRARIES} ${LIBRARIES}
) )
+3 -3
View File
@@ -112,15 +112,15 @@ bool SpawnerSystem::spawnedEntityIsColliding(EntityWrapper spawnedEntity, Entity
if (!spawnedBox.Entity.HasComponent("Model")) { if (!spawnedBox.Entity.HasComponent("Model")) {
return true; return true;
} }
Model* model = nullptr; RawModel* model = nullptr;
try { try {
model = ResourceManager::Load<Model, true>(otherEntity["Model"]["Resource"]); model = ResourceManager::Load<RawModel, true>(otherEntity["Model"]["Resource"]);
} catch (const std::exception&) { } catch (const std::exception&) {
} }
if (model != nullptr && Collision::AABBvsTriangles( if (model != nullptr && Collision::AABBvsTriangles(
spawnedBox, spawnedBox,
model->m_Vertices, model->Vertices(),
model->m_Indices, model->m_Indices,
TransformSystem::ModelMatrix(otherEntity))) { TransformSystem::ModelMatrix(otherEntity))) {
return true; return true;
@@ -235,7 +235,8 @@ void AssaultWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
float distance = traceRayDistance(origin, direction); float distance = traceRayDistance(origin, direction);
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner); EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
if (ray.Valid()) { if (ray.Valid()) {
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance); ((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
} }
} }
//MuzzleFlash //MuzzleFlash
@@ -395,9 +395,12 @@ void DefenderWeaponBehaviour::spawnTracers(ComponentWrapper cWeapon, WeaponInfo&
glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle); glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle);
glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle); glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle);
rayOrigin = muzzlePosition;
glm::vec3 muzzleToHit = hitPosition - muzzlePosition; glm::vec3 muzzleToHit = hitPosition - muzzlePosition;
rayOrigin = muzzlePosition + (muzzleToHit/2.f);
glm::vec3 lookVector = glm::normalize(-muzzleToHit); glm::vec3 lookVector = glm::normalize(-muzzleToHit);
float pitch = std::asin(-lookVector.y); float pitch = std::asin(-lookVector.y);
float yaw = std::atan2(lookVector.x, lookVector.z); float yaw = std::atan2(lookVector.x, lookVector.z);
@@ -459,8 +462,8 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
} }
// Temp hit decal // Temp hit decal
EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World); // EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World);
(Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position; // (Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position;
// Don't let us shoot ourselves in the foot somehow // Don't let us shoot ourselves in the foot somehow
if (victim == LocalPlayer) { if (victim == LocalPlayer) {
@@ -477,12 +480,17 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
// Check for friendly fire // Check for friendly fire
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) { if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) {
// TODO: Ammo sharing // Give boost
Events::PlayerDamage ePlayerDamage;
ePlayerDamage.Inflictor = wi.Player;
ePlayerDamage.Victim = victim;
ePlayerDamage.Damage = 0;
m_EventBroker->Publish(ePlayerDamage);
continue; continue;
} }
damageSum[victim] += pelletDamage; damageSum[victim] += pelletDamage;
((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f); // ((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f);
} }
// Deal damage! // Deal damage!
@@ -493,7 +501,6 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
ePlayerDamage.Victim = kv.first; ePlayerDamage.Victim = kv.first;
ePlayerDamage.Damage = kv.second; ePlayerDamage.Damage = kv.second;
m_EventBroker->Publish(ePlayerDamage); m_EventBroker->Publish(ePlayerDamage);
LOG_DEBUG("Dealt %f damage to #%i", kv.second, kv.first.ID);
} }
} }
@@ -223,15 +223,16 @@ void SidearmWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
return; return;
} }
//Tracer // Tracer
EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay"); EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay");
if (tracerSpawner.Valid()) { if (tracerSpawner.Valid()) {
glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner); glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner);
glm::vec3 direction = TransformSystem::AbsoluteOrientation(tracerSpawner) * glm::vec3(0, 0, -1); glm::vec3 direction = glm::quat(TransformSystem::AbsoluteOrientationEuler(tracerSpawner)) * glm::vec3(0, 0, -1);
float distance = traceRayDistance(origin, direction); float distance = traceRayDistance(origin, direction);
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner); EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
if (ray.Valid()) { if (ray.Valid()) {
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance); ((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
} }
} }
+5 -22
View File
@@ -5,7 +5,7 @@ Export::Export()
} }
bool Export::Meshes(std::string pathName, bool selectedOnly, bool isCollision) bool Export::Meshes(std::string pathName, bool selectedOnly)
{ {
MStatus status; MStatus status;
if (pathName.empty()) { if (pathName.empty()) {
@@ -92,14 +92,8 @@ bool Export::Meshes(std::string pathName, bool selectedOnly, bool isCollision)
Objects.append(node); Objects.append(node);
} }
} }
GetMeshData(Objects, isCollision); GetMeshData(Objects);
WriteMeshData(pathName);
if (!isCollision) {
WriteMeshData(pathName);
} else {
WriteCollisionData(pathName);
}
MGlobal::displayInfo(MString() + "Enabling IKSolvers"); MGlobal::displayInfo(MString() + "Enabling IKSolvers");
status = MGlobal::executeCommand("doEnableNodeItems true all;"); status = MGlobal::executeCommand("doEnableNodeItems true all;");
if (status != MS::kSuccess) { if (status != MS::kSuccess) {
@@ -150,9 +144,9 @@ bool Export::Animations(std::string pathName, std::vector<AnimationInfo> animInf
return true; return true;
} }
bool Export::GetMeshData(MObjectArray object, bool collision) bool Export::GetMeshData(MObjectArray object)
{ {
meshes = m_MeshHandler.GetMeshData(object, collision); meshes = m_MeshHandler.GetMeshData(object);
return true; return true;
} }
@@ -191,17 +185,6 @@ void Export::WriteMeshData(std::string pathName)
m_MeshFile.CloseFiles(); m_MeshFile.CloseFiles();
} }
void Export::WriteCollisionData(std::string pathName) {
m_ColliFile.ASCIIFilePath(pathName + "_colli.txt");
m_ColliFile.binaryFilePath(pathName + ".colli");
m_ColliFile.OpenFiles();
m_ColliFile.writeToFiles((OutputData*)&meshes);
m_ColliFile.CloseFiles();
}
void Export::WriteAnimData(std::string pathName) void Export::WriteAnimData(std::string pathName)
{ {
if (allBindPoses.size() > 0) { if (allBindPoses.size() > 0) {
+2 -4
View File
@@ -22,19 +22,18 @@ public:
int End; int End;
}; };
bool Meshes(std::string pathName, bool selectedOnly = false, bool isCollision = false); bool Meshes(std::string pathName, bool selectedOnly = false);
bool Materials(std::string pathName); bool Materials(std::string pathName);
bool Animations(std::string pathName, std::vector<AnimationInfo> animInfo); bool Animations(std::string pathName, std::vector<AnimationInfo> animInfo);
private: private:
bool GetMeshData(MObjectArray object, bool collision); bool GetMeshData(MObjectArray object);
bool GetMaterialData(); bool GetMaterialData();
bool GetAnimationData(AnimationInfo info); bool GetAnimationData(AnimationInfo info);
void WriteMeshData(std::string pathName); void WriteMeshData(std::string pathName);
void WriteAnimData(std::string pathName); void WriteAnimData(std::string pathName);
void WriteMaterialData(std::string pathName); void WriteMaterialData(std::string pathName);
void WriteCollisionData(std::string pathName);
Material m_MaterialHandler; Material m_MaterialHandler;
Skeleton m_SkeletonHandler; Skeleton m_SkeletonHandler;
@@ -45,7 +44,6 @@ private:
WriteToFile m_MeshFile; WriteToFile m_MeshFile;
WriteToFile m_AnimFile; WriteToFile m_AnimFile;
WriteToFile m_MtrlFile; WriteToFile m_MtrlFile;
WriteToFile m_ColliFile;
//Mesh Data //Mesh Data
Mesh meshes; Mesh meshes;
+30 -35
View File
@@ -25,7 +25,6 @@ Menu::Menu(QDialog* dialog)
m_ExportSelectedButton = new QCheckBox(tr("&Export Selected")); m_ExportSelectedButton = new QCheckBox(tr("&Export Selected"));
m_ExportAnimationsButton = new QCheckBox(tr("&Export Animations")); m_ExportAnimationsButton = new QCheckBox(tr("&Export Animations"));
m_ExportMaterialButton = new QCheckBox(tr("&Export Material"));; m_ExportMaterialButton = new QCheckBox(tr("&Export Material"));;
m_IsCollision = new QCheckBox(tr("&Export as collision mesh"));
m_ExportAnimationsButton->setChecked(true); m_ExportAnimationsButton->setChecked(true);
m_ExportMaterialButton->setChecked(true); m_ExportMaterialButton->setChecked(true);
@@ -33,7 +32,6 @@ Menu::Menu(QDialog* dialog)
vbox->addWidget(m_ExportSelectedButton); vbox->addWidget(m_ExportSelectedButton);
vbox->addWidget(m_ExportAnimationsButton); vbox->addWidget(m_ExportAnimationsButton);
vbox->addWidget(m_ExportMaterialButton); vbox->addWidget(m_ExportMaterialButton);
vbox->addWidget(m_IsCollision);
vbox->addStretch(1); vbox->addStretch(1);
optionsBox->setLayout(vbox); optionsBox->setLayout(vbox);
@@ -48,7 +46,6 @@ Menu::Menu(QDialog* dialog)
connect(m_ExportSelectedButton, SIGNAL(clicked(bool)), this, SLOT(NULL)); connect(m_ExportSelectedButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_ExportAnimationsButton, SIGNAL(clicked(bool)), this, SLOT(NULL)); connect(m_ExportAnimationsButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_ExportMaterialButton, SIGNAL(clicked(bool)), this, SLOT(NULL)); connect(m_ExportMaterialButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_IsCollision, SIGNAL(clicked(bool)), this, SLOT(NULL));
// Creating several layouts, adding widgets & adding them to one layout in the end // Creating several layouts, adding widgets & adding them to one layout in the end
QHBoxLayout* topLayout = new QHBoxLayout; QHBoxLayout* topLayout = new QHBoxLayout;
@@ -166,42 +163,40 @@ void Menu::RemoveClipClicked(bool)
void Menu::ExportAll(bool) void Menu::ExportAll(bool)
{ {
if (m_ExportPath->text().isEmpty()) { if (m_ExportPath->text().isEmpty()) {
MGlobal::displayError(MString() + "Please select a folder."); MGlobal::displayError(MString() + "Please select a folder.");
return; return;
} }
//Export meshes //Export meshes
if (!m_Export.Meshes(m_ExportPath->text().toLocal8Bit().constData(), m_ExportSelectedButton->isChecked(), m_IsCollision->isChecked())) { if (!m_Export.Meshes(m_ExportPath->text().toLocal8Bit().constData(), m_ExportSelectedButton->isChecked())) {
MGlobal::displayError(MString() + "Could not export mesh"); MGlobal::displayError(MString() + "Could not export mesh");
return; return;
} }
if (!m_IsCollision->isChecked()){ if (m_ExportMaterialButton->isChecked()) {
if (m_ExportMaterialButton->isChecked()) { if (!m_Export.Materials(m_ExportPath->text().toLocal8Bit().constData())) {
if (!m_Export.Materials(m_ExportPath->text().toLocal8Bit().constData())) { MGlobal::displayError(MString() + "Could not export materials");
MGlobal::displayError(MString() + "Could not export materials"); return;
return; }
} }
}
std::vector<Export::AnimationInfo> animations; std::vector<Export::AnimationInfo> animations;
for (unsigned int i = 0; i < m_AnimationClipName.size(); i++) { for (unsigned int i = 0; i < m_AnimationClipName.size(); i++) {
Export::AnimationInfo thisClip; Export::AnimationInfo thisClip;
thisClip.Name = std::string(m_AnimationClipName[i]->text().toLocal8Bit().constData()); thisClip.Name = std::string(m_AnimationClipName[i]->text().toLocal8Bit().constData());
thisClip.Start = m_StartFrameLines[i]->text().toInt(); thisClip.Start = m_StartFrameLines[i]->text().toInt();
thisClip.End = m_EndFrameLines[i]->text().toInt(); thisClip.End = m_EndFrameLines[i]->text().toInt();
animations.push_back(thisClip); animations.push_back(thisClip);
} }
if (m_ExportAnimationsButton->isChecked()) { if (m_ExportAnimationsButton->isChecked()) {
//Export Animations //Export Animations
if (!m_Export.Animations(m_ExportPath->text().toLocal8Bit().constData(), animations)) { if (!m_Export.Animations(m_ExportPath->text().toLocal8Bit().constData(), animations)) {
MGlobal::displayError(MString() + "Could not export animations"); MGlobal::displayError(MString() + "Could not export animations");
return; return;
} }
} }
}
} }
void Menu::CancelClicked(bool) void Menu::CancelClicked(bool)
-1
View File
@@ -66,7 +66,6 @@ private:
QCheckBox* m_ExportSelectedButton = nullptr; QCheckBox* m_ExportSelectedButton = nullptr;
QCheckBox* m_ExportAnimationsButton = nullptr; QCheckBox* m_ExportAnimationsButton = nullptr;
QCheckBox* m_ExportMaterialButton = nullptr; QCheckBox* m_ExportMaterialButton = nullptr;
QCheckBox* m_IsCollision = nullptr;
QLineEdit* m_ExportPath = nullptr; QLineEdit* m_ExportPath = nullptr;
QFileDialog* m_FileDialog = nullptr; QFileDialog* m_FileDialog = nullptr;
+58 -62
View File
@@ -94,37 +94,33 @@ MeshClass::MeshClass()
// return weightMap; // return weightMap;
//} //}
Mesh MeshClass::GetMeshData(MObjectArray object, bool collision) Mesh MeshClass::GetMeshData(MObjectArray object)
{ {
MS status; MS status;
Mesh newMesh; Mesh newMesh;
newMesh.isCollison = collision;
vector<VertexLayout>& vertexList = newMesh.Vertices; vector<VertexLayout>& vertexList = newMesh.Vertices;
map<string, vector<int>>& indexLists = newMesh.Indices; map<string, vector<int>>& indexLists = newMesh.Indices;
for (int ObjectID = 0; ObjectID < object.length(); ObjectID++) { for (int ObjectID = 0; ObjectID < object.length(); ObjectID++) {
if (!object[ObjectID].hasFn(MFn::kMesh)) if (!object[ObjectID].hasFn(MFn::kMesh))
continue; continue;
MObject node = object[ObjectID]; MObject node = object[ObjectID];
MFnDependencyNode thisNode(node); MFnDependencyNode thisNode(node);
MPlugArray connections; MPlugArray connections;
thisNode.findPlug("inMesh").connectedTo(connections, true, true); thisNode.findPlug("inMesh").connectedTo(connections, true, true);
MPlug weightList, weights; MPlug weightList, weights;
MObject weightListObject; MObject weightListObject;
for (unsigned int i = 0; i < connections.length(); i++) {
if (connections[i].node().apiType() == MFn::kSkinClusterFilter) {
MFnSkinCluster skinCluster(connections[i].node());
weightList = skinCluster.findPlug("weightList", &status);
weightListObject = weightList.attribute();
weights = skinCluster.findPlug("weights");
newMesh.hasSkin = true;
break;
}
}
if (!collision) {
for (unsigned int i = 0; i < connections.length(); i++) {
if (connections[i].node().apiType() == MFn::kSkinClusterFilter) {
MFnSkinCluster skinCluster(connections[i].node());
weightList = skinCluster.findPlug("weightList", &status);
weightListObject = weightList.attribute();
weights = skinCluster.findPlug("weights");
newMesh.hasSkin = true;
break;
}
}
}
// In here, we retrieve triangulated polygons from the mesh // In here, we retrieve triangulated polygons from the mesh
MFnMesh mesh(object[ObjectID]); MFnMesh mesh(object[ObjectID]);
@@ -261,62 +257,62 @@ Mesh MeshClass::GetMeshData(MObjectArray object, bool collision)
thisVertex.Pos[0] = pos.x; thisVertex.Pos[0] = pos.x;
thisVertex.Pos[1] = pos.y; thisVertex.Pos[1] = pos.y;
thisVertex.Pos[2] = pos.z; thisVertex.Pos[2] = pos.z;
thisVertex.isCollision = collision;
if (!collision) { status = faceVert.getNormal(normal, MSpace::kObject);
status = faceVert.getNormal(normal, MSpace::kObject); if (status != MS::kSuccess) {
if (status != MS::kSuccess) { MGlobal::displayError(MString() + "faceVert.getNormal() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
MGlobal::displayError(MString() + "faceVert.getNormal() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName()); break;
break; }
}
thisVertex.Normal[0] = normal[0]; thisVertex.Normal[0] = normal[0];
thisVertex.Normal[1] = normal[1]; thisVertex.Normal[1] = normal[1];
thisVertex.Normal[2] = normal[2]; thisVertex.Normal[2] = normal[2];
MFloatVector Tangent = Tangents[faceVert.tangentId()]; MFloatVector Tangent = Tangents[faceVert.tangentId()];
//MVector tmp = faceVert.getTangent(MSpace::kObject, NULL); //MVector tmp = faceVert.getTangent(MSpace::kObject, NULL);
//tmp.get(biTangent); //tmp.get(biTangent);
thisVertex.Tangent[0] = Tangent[0]; thisVertex.Tangent[0] = Tangent[0];
thisVertex.Tangent[1] = Tangent[1]; thisVertex.Tangent[1] = Tangent[1];
thisVertex.Tangent[2] = Tangent[2]; thisVertex.Tangent[2] = Tangent[2];
MFloatVector biNormal = biNormals[faceVert.tangentId()]; MFloatVector biNormal = biNormals[faceVert.tangentId()];
//faceVert.getBinormal().get(biNormal); //faceVert.getBinormal().get(biNormal);
thisVertex.BiNormal[0] = biNormal[0]; thisVertex.BiNormal[0] = biNormal[0];
thisVertex.BiNormal[1] = biNormal[1]; thisVertex.BiNormal[1] = biNormal[1];
thisVertex.BiNormal[2] = biNormal[2]; thisVertex.BiNormal[2] = biNormal[2];
status = faceVert.getUV(UV); status = faceVert.getUV(UV);
if (status != MS::kSuccess) { if (status != MS::kSuccess) {
MGlobal::displayError(MString() + " faceVert.getUV() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName()); MGlobal::displayError(MString() + " faceVert.getUV() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
break; break;
} }
thisVertex.Uv[0] = UV[0]; thisVertex.Uv[0] = UV[0];
thisVertex.Uv[1] = UV[1]; thisVertex.Uv[1] = UV[1];
if (newMesh.hasSkin) { if (newMesh.hasSkin) {
thisVertex.useWeights = true; thisVertex.useWeights = true;
float totalWeight = 0.0f; float totalWeight = 0.0f;
unsigned int totalBones = 0; unsigned int totalBones = 0;
MIntArray jointIDs /* ??? */; MIntArray jointIDs /* ??? */;
weights.selectAncestorLogicalIndex(vertexIndex, weightListObject); weights.selectAncestorLogicalIndex(vertexIndex, weightListObject);
weights.getExistingArrayAttributeIndices(jointIDs); weights.getExistingArrayAttributeIndices(jointIDs);
for (unsigned int i = 0; i < jointIDs.length() && i < 4; i++) { for (unsigned int i = 0; i < jointIDs.length() && i < 4; i++) {
if (weights[i].asFloat() > 0.001f) { if (weights[i].asFloat() > 0.001f) {
thisVertex.BoneIndices[totalBones] = jointIDs[i]; thisVertex.BoneIndices[totalBones] = jointIDs[i];
thisVertex.BoneWeights[totalBones] = weights[i].asFloat(); thisVertex.BoneWeights[totalBones] = weights[i].asFloat();
totalWeight = totalWeight + weights[i].asFloat(); totalWeight = totalWeight + weights[i].asFloat();
totalBones++; totalBones++;
} }
} }
for (unsigned int i = 0; i < 4; i++) { for (unsigned int i = 0; i < 4; i++) {
//thisVertex.BoneWeights[i] = thisVertex.BoneWeights[i] / totalWeight; //thisVertex.BoneWeights[i] = thisVertex.BoneWeights[i] / totalWeight;
} }
} } else {
thisVertex.useWeights = false;
} }
//float totalWeight = thisVertex.BoneWeights[0] + thisVertex.BoneWeights[1] + thisVertex.BoneWeights[2] + thisVertex.BoneWeights[3]; //float totalWeight = thisVertex.BoneWeights[0] + thisVertex.BoneWeights[1] + thisVertex.BoneWeights[2] + thisVertex.BoneWeights[3];
//if (totalWeight > 0.0001f) { //if (totalWeight > 0.0001f) {
// thisVertex.BoneWeights[0] /= totalWeight; // thisVertex.BoneWeights[0] /= totalWeight;
+23 -32
View File
@@ -11,8 +11,7 @@
class VertexLayout : public OutputData class VertexLayout : public OutputData
{ {
public: public:
bool isCollision = false; bool useWeights = true;
bool useWeights = false;
float Pos[3]{ 0 }; float Pos[3]{ 0 };
float Normal[3]{ 0 }; float Normal[3]{ 0 };
float Tangent[3]{ 0 }; float Tangent[3]{ 0 };
@@ -24,31 +23,28 @@ public:
virtual void WriteBinary(std::ostream& out) virtual void WriteBinary(std::ostream& out)
{ {
out.write((char*)&Pos, sizeof(float) * 3); out.write((char*)&Pos, sizeof(float) * 3);
if (!isCollision) { out.write((char*)&Normal, sizeof(float) * 3);
out.write((char*)&Normal, sizeof(float) * 3); out.write((char*)&Tangent, sizeof(float) * 3);
out.write((char*)&Tangent, sizeof(float) * 3); out.write((char*)&BiNormal, sizeof(float) * 3);
out.write((char*)&BiNormal, sizeof(float) * 3); out.write((char*)&Uv, sizeof(float) * 2);
out.write((char*)&Uv, sizeof(float) * 2); if (useWeights) {
if (useWeights) { out.write((char*)&BoneIndices, sizeof(float) * 4);
out.write((char*)&BoneIndices, sizeof(float) * 4); out.write((char*)&BoneWeights, sizeof(float) * 4);
out.write((char*)&BoneWeights, sizeof(float) * 4);
}
} }
} }
virtual void WriteASCII(std::ostream& out) const virtual void WriteASCII(std::ostream& out) const
{ {
out << Pos[0] << " " << Pos[1] << " " << Pos[2] << endl; out << Pos[0] << " " << Pos[1] << " " << Pos[2] << endl;
if (!isCollision) { out << Normal[0] << " " << Normal[1] << " " << Normal[2] << endl;
out << Normal[0] << " " << Normal[1] << " " << Normal[2] << endl; out << Tangent[0] << " " << Tangent[1] << " " << Tangent[2] << endl;
out << Tangent[0] << " " << Tangent[1] << " " << Tangent[2] << endl; out << BiNormal[0] << " " << BiNormal[1] << " " << BiNormal[2] << endl;
out << BiNormal[0] << " " << BiNormal[1] << " " << BiNormal[2] << endl; out << Uv[0] << " " << Uv[1] << endl;
out << Uv[0] << " " << Uv[1] << endl; if (useWeights) {
if (useWeights) { out << BoneIndices[0] << " " << BoneIndices[1] << " " << BoneIndices[2] << " " << BoneIndices[3] << endl;
out << BoneIndices[0] << " " << BoneIndices[1] << " " << BoneIndices[2] << " " << BoneIndices[3] << endl; out << BoneWeights[0] << " " << BoneWeights[1] << " " << BoneWeights[2] << " " << BoneWeights[3] << endl;
out << BoneWeights[0] << " " << BoneWeights[1] << " " << BoneWeights[2] << " " << BoneWeights[3] << endl;
}
} }
} }
bool operator==(const VertexLayout& right) bool operator==(const VertexLayout& right)
{ {
@@ -66,7 +62,6 @@ public:
class Mesh : public OutputData { class Mesh : public OutputData {
public: public:
bool isCollison = false;
bool hasSkin = false; bool hasSkin = false;
unsigned int NumVertices; unsigned int NumVertices;
unsigned int NumIndices; unsigned int NumIndices;
@@ -75,9 +70,7 @@ public:
virtual void WriteBinary(std::ostream& out) virtual void WriteBinary(std::ostream& out)
{ {
if (!isCollison) { out.write((char*)&hasSkin, sizeof(bool));
out.write((char*)&hasSkin, sizeof(bool));
}
out.write((char*)&NumVertices, sizeof(int)); out.write((char*)&NumVertices, sizeof(int));
out.write((char*)&NumIndices, sizeof(int)); out.write((char*)&NumIndices, sizeof(int));
for (auto aVertex : Vertices) { for (auto aVertex : Vertices) {
@@ -93,13 +86,11 @@ public:
virtual void WriteASCII(std::ostream& out) const virtual void WriteASCII(std::ostream& out) const
{ {
out << "New Mesh _ not in binary" << endl; out << "New Mesh _ not in binary" << endl;
if (!isCollison) { out << "hasSkin: ";
out << "hasSkin: "; if(hasSkin)
if (hasSkin) out << "true" << endl;
out << "true" << endl; else
else out << "false" << endl;
out << "false" << endl;
}
out << "Number of vertices: " << NumVertices << endl; out << "Number of vertices: " << NumVertices << endl;
out << "number of indices: " << NumIndices << endl; out << "number of indices: " << NumIndices << endl;
int vertexNumber = 0; int vertexNumber = 0;
@@ -124,7 +115,7 @@ class MeshClass
{ {
public: public:
MeshClass(); MeshClass();
Mesh GetMeshData(MObjectArray Object, bool collision = false); Mesh GetMeshData(MObjectArray Object);
~MeshClass(); ~MeshClass();
private: private:
struct WeightInfo { struct WeightInfo {