diff --git a/include/Engine/Rendering/ModelJob.h b/include/Engine/Rendering/ModelJob.h
index 21f7c1ca..6598b950 100644
--- a/include/Engine/Rendering/ModelJob.h
+++ b/include/Engine/Rendering/ModelJob.h
@@ -42,6 +42,7 @@ struct ModelJob : RenderJob
FillColor = fillColor;
FillPercentage = fillPercentage;
+
Skeleton = Model->m_RawModel->m_Skeleton;
if (world->HasComponent(Entity, "Animation") && Skeleton != nullptr) {
diff --git a/resources/Schema/Entities/AnimationTests.xml b/resources/Schema/Entities/AnimationTests.xml
index 453a18cb..578db574 100644
--- a/resources/Schema/Entities/AnimationTests.xml
+++ b/resources/Schema/Entities/AnimationTests.xml
@@ -12,7 +12,8 @@
Models/Core/UnitPlane.mesh
-
+
+
@@ -34,7 +35,7 @@
Run
-
+
1
@@ -82,9 +83,9 @@
-
-
-
+
+
+
@@ -95,7 +96,7 @@
Walk
-
+
1
@@ -111,12 +112,9 @@
Crouch Walk
-
+
1
-
-
-
Models/AssaultAnimated.mesh
@@ -127,6 +125,17 @@
+
+
+
+ Models/Core/UnitCube.mesh
+
+
+
+
+
+
+
diff --git a/src/Engine/Rendering/AnimationSystem.cpp b/src/Engine/Rendering/AnimationSystem.cpp
index c79b5a36..9c1e68cf 100644
--- a/src/Engine/Rendering/AnimationSystem.cpp
+++ b/src/Engine/Rendering/AnimationSystem.cpp
@@ -15,6 +15,12 @@ void AnimationSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& a
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
+
+ if(skeleton == nullptr) {
+ return;
+ }
+
+
const Skeleton::Animation* animation = skeleton->GetAnimation(animationComponent["AnimationName"]);
if(animation != nullptr) {
diff --git a/src/Engine/Rendering/DrawFinalPass.cpp b/src/Engine/Rendering/DrawFinalPass.cpp
index b5808117..66c4d52b 100644
--- a/src/Engine/Rendering/DrawFinalPass.cpp
+++ b/src/Engine/Rendering/DrawFinalPass.cpp
@@ -156,7 +156,6 @@ void DrawFinalPass::Draw(RenderScene& scene)
if (modelJob->Model->m_RawModel->m_Skeleton != nullptr) {
std::vector frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animation, modelJob->AnimationTime);
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
-
}
glBindVertexArray(modelJob->Model->VAO);
diff --git a/src/Engine/Rendering/PickingPass.cpp b/src/Engine/Rendering/PickingPass.cpp
index b509bd3d..4c39bfc9 100644
--- a/src/Engine/Rendering/PickingPass.cpp
+++ b/src/Engine/Rendering/PickingPass.cpp
@@ -89,11 +89,8 @@ void PickingPass::Draw(RenderScene& scene)
glUniform2fv(glGetUniformLocation(shaderHandle, "PickingColor"), 1, glm::value_ptr(glm::vec2(pickColor[0], pickColor[1])));
if (modelJob->Model->m_RawModel->m_Skeleton != nullptr) {
-
- if (modelJob->Animation != nullptr) {
std::vector frameBones = modelJob->Skeleton->GetFrameBones(modelJob->Animation, modelJob->AnimationTime);
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
- }
}
glBindVertexArray(modelJob->Model->VAO);