[Bf-blender-cvs] [2744ce7] master: Revert part of D1074 related to acceleration taked into account. It has been reverted because it was affecting obstacle avoidance (T44041).

Jorge Bernal noreply at git.blender.org
Sat Mar 21 17:55:17 CET 2015


Commit: 2744ce77dea394026bc524e68c687050bc8e0c28
Author: Jorge Bernal
Date:   Sat Mar 21 17:53:18 2015 +0100
Branches: master
https://developer.blender.org/rB2744ce77dea394026bc524e68c687050bc8e0c28

Revert part of D1074 related to acceleration taked into account.
It has been reverted because it was affecting obstacle avoidance
(T44041).

This fix should be backported to 2.74

===================================================================

M	source/blender/blenloader/intern/versioning_270.c
M	source/gameengine/Ketsji/KX_SteeringActuator.cpp

===================================================================

diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index ee015fa..adf5f93 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -616,18 +616,6 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 				}
 			}
 		}
-
-		if (!DNA_struct_elem_find(fd->filesdna, "bSteeringActuator", "float", "acceleration")) {
-			for (ob = main->object.first; ob; ob = ob->id.next) {
-				bActuator *act;
-				for (act = ob->actuators.first; act; act = act->next) {
-					if (act->type == ACT_STEERING) {
-						bSteeringActuator *sact = act->data;
-						sact->acceleration = 1000.f;
-					}
-				}
-			}
-		}
 	}
 
 	if (!MAIN_VERSION_ATLEAST(main, 273, 9)) {
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.cpp b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
index f859b1c..83597f9 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
@@ -263,12 +263,12 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
 
 		if (apply_steerforce)
 		{
-			MT_Vector3 newvel;
 			bool isdyna = obj->IsDynamic();
 			if (isdyna)
 				m_steerVec.z() = 0;
 			if (!m_steerVec.fuzzyZero())
 				m_steerVec.normalize();
+			MT_Vector3 newvel = m_velocity * m_steerVec;
 
 			//adjust velocity to avoid obstacles
 			if (m_simulation && m_obstacle /*&& !newvel.fuzzyZero()*/)
@@ -281,16 +281,13 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
 					KX_RasterizerDrawDebugLine(mypos, mypos + newvel, MT_Vector3(0.0, 1.0, 0.0));
 			}
 
-			HandleActorFace(m_steerVec);
+			HandleActorFace(newvel);
 			if (isdyna)
 			{
-				//TODO: Take into account angular velocity on turns
+				//temporary solution: set 2D steering velocity directly to obj
+				//correct way is to apply physical force
 				MT_Vector3 curvel = obj->GetLinearVelocity();
 
-				newvel = (curvel.length() * m_steerVec) + (m_acceleration * delta) * m_steerVec;
-				if (newvel.length2() >= (m_velocity * m_velocity))
-					newvel = m_velocity * m_steerVec;
-
 				if (m_lockzvel)
 					newvel.z() = 0.0f;
 				else




More information about the Bf-blender-cvs mailing list