Sunday, October 8, 2017

52. XNA 4.0 & MonoGame Robot Mech Attachments


       The is my robot animation processor based off the Robot Game Starter Kit running in XNA 4.0 and MonoGame. It took a while to figure out how to attach models to the mech "correctly". By multiplying the bone-transform of the specific bone index of the mech, to the parent-bone index of the model, I was able to attach them. This works for both animated and non-animated models. Figuring out how to attach the models to the mech was the first challenge. However, due to the complexity of the animation processor, positioning the models correctly on the mech model was the biggest challenge. Now that attachments work, I am programming customization options for the mech.


Jet-Pack Screenshots














Gun Screenshots




























       Besides guns, I was able to attach melee weapons to the mech such as swords. I will be working on a way to program the mech's animation processor to somehow mimic the animations of other animated characters. This will help save time when creating melee animations for sword attacks and blocks. Performing melee sword attacks also while jet-packing could make for some interesting gameplay. 


Dual-Wielding Swords Screenshots

















The Map in First-Person
























My FPS Engine Project Template (Left)
&
Call of Duty Modern Warfare 2 (Right)



5 comments:

  1. This is incredible game development.

    --------------------------

    Zobacz monitoring komputera

    ReplyDelete
    Replies
    1. Thank you!! I greatly appreciate your comment. That's motivational!

      Delete
  2. Jordan, do you know how they exported these animations to XML files? So that basing on this Robot sample, we couls use other custom animated FBX models?

    ReplyDelete
    Replies
    1. That is a great question! A South Korean game development company called Zepetto originally developed the Robot Mini Game for XNA. I am not sure how to create the actual .Animation XML files but I assume they created a special script in their 3d modeling/animation program which exports to .Animation XML based files. I am currently working on getting custom animated .fbx models to work with the robot animation processor. The robot .fbx model files are not actually skinned. They are animated by just moving the bones/meshes. This is similar to rigid animation. I created a custom skinned animation processor based off the XNAnimation library. My current approach to get this working is by multiplying each bone transforms of my animated character model to the bone data of the mech model.

      I am getting the program to play animations on individual bones rather than the entire skeleton. In theory this would allow me to “mix” animations. In my program, I distinguish when the mech lower and upper animations are playing based on the .Animation XML files and when animations stored in the animated .fbx models are playing. So while the shader is actually doing the “skinning”, the program tells that specific bone to stop playing the animation clip stored in the .fbx file whenever a mech animation is playing. This will allow the specific bone in the animated .fbx model to move according to the bone it is multiplied to in the mech grund .fbx model when a mech animation is playing. The trick would be to get the bone transform information right and correctly mapping the bones. It’s kind of a lazy approach but it’s the best I can do for now.

      Delete
  3. Thank you for the kind comment. I greatly appreciate it and for bookmarking my website. I haven't posted anything in a while and I've made a lot of progress since this post. I hope to post more updates in the near future. Thank you again

    ReplyDelete