diff --git a/direct/src/actor/Actor.py b/direct/src/actor/Actor.py index 9af0c33fca..fad514628e 100644 --- a/direct/src/actor/Actor.py +++ b/direct/src/actor/Actor.py @@ -1832,6 +1832,11 @@ class Actor(DirectObject, NodePath): assert Actor.notify.debug('actor bundle %s, %s'% (bundle,bundle.this)) controlDict = self.__controlJoints.get(bundle.this, None) if controlDict: + # Before we apply any control joints, we have to make a + # copy of the bundle hierarchy, so we don't modify other + # Actors that share the same bundle. + animBundle = animBundle.copyBundle() + for jointName, node in controlDict.items(): if node: joint = animBundle.makeChildDynamic(jointName)