I'm pretty sure this would have to be done by overriding the clone() method and do everything the current clone() method does plus inheriting any additional properties that you've added to your extended class. I personally prefer to wrap Object3D in my new classes rather than extending it (makes things like this easier to do without having the jPCT sourcecode to reference).

What kind of hit would I take if I make new instances for moving characters?edit: I guess I'll just put about 20 in a scene and see how it works. If not, I'll try to figure out a wrapper. The problem is I extended everything from an actor class, so there are two extensions above Object3D. BTW, if anyone can post a brief summary on how they clone characters with animations in a class and still get access from the world, I'd appreciate it.

public SuperObject3D cloneObject() { return ( new SuperObject3D( basicObject3D.cloneObject() /*other args*/ ) ); }}And then I extend that for various subcategories of objects. I would think that you could use the same infrastructure for animations -- doesn't cloneObject() also clone the Object3D's animations as well?

I'm currently using the Object3D(Object3D) for my extended class constructors, but I don't understand how to clone my extended class, since Object3d.cloneObject() returns an Object3D, so if I do an extendedClass ec = extendedClassInstance.cloneObect(), I get imcompatible types because it returns an Object3D.I looked at robombs source but it's over my head.Would I send the cloned Object3D back into the constructor of my extended class, but then it seems it would no longer need the animations added which come after the constructor?

It works to send a cloned object in the constructor as long as I clear translation for some reason. I only load the animation on the first instance and all of them are animating. If I don't clear translation first I get odd behavior on the first move.

..but I don't understand how to clone my extended class, since Object3d.cloneObject() returns an Object3D, so if I do an extendedClass ec = extendedClassInstance.cloneObect(), I get imcompatible types because it returns an Object3D.

not true. since java 5, java supports covariant return types. that means when you override a method, your return type can be a sub type of original return type.