"Dynamic actor" changes dRot behavior ?

Why dRot actuator turns the object to the opposite direction if the Actor/Dynamic option is set ?

Try this: two cubes on a plane, both with a motion actuator: dRot = (0,0,0.1,local). Make one of them Dynamic Actor and leave the other as it is (not an actor).
Result: one turns to the left and the other to the right.

Other question: is it possible to know in a python script if the object is dynamic?

Thanks
SL

I have confirmed the problem you are reporting. It is a bug, and I have traced it back to Blender 2.43. Versions 2.42a and prior handle dRot correctly.

One of the developers should be notified, though I’m not sure what the best way to do that is at present.

Two methods of identifying dynamic objects in Python:
Non-dynamic objects always return a mass of 0, so you can use this hack to tell whether an object is a dynamic actor or not:

cont = GameLogic.getCurrentController()
own = cont.getOwner()

if own.mass > 0:
     # The object is dynamic
elif own.mass == 0:
     # The object is not dynamic

This will not work for dynamic objects with a mass of 0, though. They will incorrectly be identified as non-dynamic.

Alternately, you could give every object a boolean property named “isDynamic” and set it to TRUE for dynamic objects and FALSE for non-dynamic objects. Then you could use this Python code:

cont = GameLogic.getCurrentController()
own = cont.getOwner()

if own.isDynamic:
     # The object is dynamic
elif not own.isDynamic:
     # The object is not dynamic

This method will work even for dynamic objects with a mass of 0.

Thanks blendenzo for the help. I prefer option 1.

I think that the right rotation (by definition) is the one of the dynamic actor. know the “rigth hand” rule?


So I guess that Erwin coded it correctly in bullet libraries and the old part of the code remains wrong.

The problem fixing this bug is that all the old blender files will start to behave in wierd ways.

SL