浏览代码

Continuation of #27562

[AnimationTree] Fix scale interpolation

(cherry picked from commit dbda5b6700a05c2305584638bfa537d9f885adae)
Guilherme Felipe 6 年之前
父节点
当前提交
21d3ad2e52
共有 1 个文件被更改,包括 4 次插入7 次删除
  1. 4 7
      scene/animation/animation_tree.cpp

+ 4 - 7
scene/animation/animation_tree.cpp

@@ -891,7 +891,7 @@ void AnimationTree::_process_graph(float p_delta) {
 								t->loc = Vector3();
 								t->rot = Quat();
 								t->rot_blend_accum = 0;
-								t->scale = Vector3();
+								t->scale = Vector3(1, 1, 1);
 							}
 
 							float prev_time = time - delta;
@@ -952,11 +952,9 @@ void AnimationTree::_process_graph(float p_delta) {
 								t->loc = loc;
 								t->rot = rot;
 								t->rot_blend_accum = 0;
-								t->scale = Vector3();
+								t->scale = scale;
 							}
 
-							scale -= Vector3(1.0, 1.0, 1.0); //helps make it work properly with Add nodes
-
 							if (err != OK)
 								continue;
 
@@ -1241,8 +1239,6 @@ void AnimationTree::_process_graph(float p_delta) {
 					Transform xform;
 					xform.origin = t->loc;
 
-					t->scale += Vector3(1.0, 1.0, 1.0); //helps make it work properly with Add nodes and root motion
-
 					xform.basis.set_quat_scale(t->rot, t->scale);
 
 					if (t->root_motion) {
@@ -1276,7 +1272,8 @@ void AnimationTree::_process_graph(float p_delta) {
 					t->object->set_indexed(t->subpath, t->value);
 
 				} break;
-				default: {} //the rest don't matter
+				default: {
+				} //the rest don't matter
 			}
 		}
 	}