Quellcode durchsuchen

Merge pull request #3991 from JoshuaGrams/issue-3711

Issue 3711
Rémi Verschelde vor 9 Jahren
Ursprung
Commit
1dad6eca81
2 geänderte Dateien mit 10 neuen und 3 gelöschten Zeilen
  1. 7 1
      core/variant_op.cpp
  2. 3 2
      scene/animation/animation_tree_player.cpp

+ 7 - 1
core/variant_op.cpp

@@ -3461,12 +3461,18 @@ void Variant::blend(const Variant& a, const Variant& b, float c, Variant &r_dst)
 					   const Rect2 *rb = reinterpret_cast<const Rect2*>(b._data._mem);
 					   r_dst=Rect2(ra->pos + rb->pos * c, ra->size + rb->size * c);
 				   } return;
-		case VECTOR3:{ r_dst=*reinterpret_cast<const Vector2*>(a._data._mem)+*reinterpret_cast<const Vector2*>(b._data._mem)*c; } return;
+		case VECTOR3:{ r_dst=*reinterpret_cast<const Vector3*>(a._data._mem)+*reinterpret_cast<const Vector3*>(b._data._mem)*c; } return;
 		case _AABB:{
 					   const AABB *ra = reinterpret_cast<const AABB*>(a._data._mem);
 					   const AABB *rb = reinterpret_cast<const AABB*>(b._data._mem);
 					   r_dst=AABB(ra->pos + rb->pos * c, ra->size + rb->size * c);
 				   } return;
+		case QUAT:{
+					  Quat empty_rot;
+					  const Quat *qa = reinterpret_cast<const Quat*>(a._data._mem);
+					  const Quat *qb = reinterpret_cast<const Quat*>(b._data._mem);
+					  r_dst=*qa * empty_rot.slerp(*qb,c);
+				   } return;
 		case COLOR:{
 					   const Color *ca = reinterpret_cast<const Color*>(a._data._mem);
 					   const Color *cb = reinterpret_cast<const Color*>(b._data._mem);

+ 3 - 2
scene/animation/animation_tree_player.cpp

@@ -861,8 +861,9 @@ void AnimationTreePlayer::_process_animation(float p_delta) {
 
 		if (!t.node)
 			continue;
-		//if (E->get()->t.type!=Animation::TYPE_TRANSFORM)
-		//	continue;
+
+		if(t.property)  // value track; was applied in step 2
+			continue;
 
 		Transform xform;
 		xform.basis=t.rot;