Note that these objects can still be rotated with Logic Bricks or Python code.
Their physics meshes will update when you do these rotations - so collisions will be based on the new orientations.
The mistake I made originally was thinking that changing the tick group of my character was the solution, you need to change the tick group of whatever it is that your particles are attached to (i.e. Hey Erio and Hyperdr1ve, As you've noticed this is a known issue that was referenced with UE-3358.
= 0); bt Vector3 local Inertia(0,0,0); if (is Dynamic) else //Get position and rotation info from c4d object to pass to Collision Shape Vector pos = op-Get Rot(); bt Transform my Transform; my Identity(); my Origin(bt Vector3(-pos.x,pos.y,pos.z)); bt Quaternion bt Rot; bt Euler(rot.x, rot.y, -rot.z); my Rotation(bt Rot); return true; } and a quick video showing the results.
first drop seems ok, the second drop is where the real oddity happens. If anyone can give me some advice on rotations and in general keeping objects in sync with the simulation I'd be much appreciated:) thanks, kvb Well, I ended up figuring it out:) In the end I used a bt Matrix3x3 that I fill and retrieve rotation values through get/set Basis and the get/set Euler YPR functions of the bt Matrix class (with an inverted z-axis).
For the most part, completely reprocessing isn't too bad, but there's the possibility of some fairly high poly objects being used as collision shapes. I'd rather not have to repopulate a trimesh object fresh (that's where the processing overhead becomes a problem).
Reprocessing those objects can take a second or two when having to fill a trimesh and I have to keep these objects in sync quite frequently. I haven't found a way to "update" the triangles in a trimesh.