I am trying to make a 3D game for android using the Rajawali engine to render the 3D graphics and blender for designing my models(exporting as .md2), and I want my character to be able to change weapons, armor, helm, etc.

Rendering every possible animation would be too much: if I had 10 different weapons, 10 armor and 10 helm, I would have to create 1000 animations with every possible equipment and if I add boots to list it would be even worse.

I read somewhere you can use bones for this; but in Android, I only get the object itself to work with.

Does anyone has an idea how i can solve this? If I make the weapon a different object how do I parent it to my models in my game?


2 Answers 2


MD2 files are just mesh frame arrays. There is no skeleton. Actions are just mesh frame sequences in the array.

You can copy the character's md2 file for each weapon. Carefully replace the character mesh with a positioned weapon mesh for each action sequence frame.

While labor intensive, this approach allows you to give the weapon movement much more realism than the usual "welded to skeleton" effect.

Rajawali has the usual parenting (addChild) and visibility settings for objects, so managing the weapons is easy.


for a similar requirement in a prototype (all be it on unity for desktop) but i think the logic, planning & structure should stay the same.

  1. i was able to create a parent object for each class of weapon with different animations.

  2. then i added all the different appearance of the different models as children of that parent object and simply animated the class parent objects

  3. finally you hide all of the irrelevant models and only show the necessary one, eg what the player has in their hands

the overall structure was many different models of only a few different types, but they all shared the same animations within each type

2h Sword Container 'Parent'
 - Claymore
 - Broadsword
 - Frostmourne
 - Ice

Dagger Container 'Parent'
 - Sting
 - Heartseeker
 - Perditions Blade

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .