Transitions between states is your only tricky bit there really, you either need lots of animations or bone based animation to make this right.
.obj - good for simple static data, or multiple if you want animation.
.3ds - good for complicated rendering information, pain in the rear to write a loader/reader tho. There is a 3ds lib hanging around but you've still got to render the sucker...
.md2 - Single mesh key frame animation. Simple but well used and appreciated. Code for reading is immensely simple - I accidently wrote a loader for this as my first ever venture into Java3D.
.md3 - Multiple mesh MD2 - with support for linking up models (i.e. gun/torso/head/legs etc). Essentially an extension to MD2 though a bit harder to work with (there is some matrix math).
All of the above formats will happily support texturing information. You might consider going for md5 (doom3 models) there a loader for JME that might not be too hard to rip off
If you want really nice looking stuff you're going to want bone based models - I think this is where collada comes in though I don't know much about it.
Blender - hard to get into due to dodgy UI, immensely powerful and quick once you do.
Milkshape - cheap, simple to work with. Has problems working back from non-milkshape models, i.e. working with an existing MD2 isn't great.
If you're going to use milkshape your best bet is to write a loader for MS3D (the native Milkshape format). There are quite a few resources round for how to do this and its a well known fully featured format.
However, if you're going to the trouble - have you considered using a scenegraph with this sort of thing built in?