io_export_diffmap & MetaMorph: Resurrecting a dead project.

It seems that the original author of io_export_diffmap for Blender and MetaMorph for Unity has killed the original website and various scant ramblings on forums have led me to discover that it is essentially an orphaned project now. I’ve decided to take it on, update it to blender 2.74 and start work on porting the javascript to C# for Unity5. My work is stored over at github as usual.

io_export_diffmap original screenshot
Working from a slightly updated version of io_export_diffmap stored on dropbox which worked with blender 2.63. I sought out, Blender 2.63’s latest build on the old build repository. However, blender 2.63 doesn’t run with MacOS 10.10. So it was either a choice of blindly attempting to upgrade the code or rebuilding blender 2.63 to work with 10.10. I muddled through blindly with a little bit of hackery, and some good luck got the code working without resorting to rebuilding blender.

Shape key animation in blender is an excellent way of animating objects on a vertex level. Allowing you to deform and manipulate an object in essentially any way you can imagine. It’s the most appropriate form of animation in cases where you’re deforming the original mesh in a non-axis aligned, non-linear way. For instance with facial/lip movements, or character twisting and emotive expressions and movements. io_export_diffmap adds an export format to blender, which produces an image for each shape key and a text file describing the dope-sheet animations. Each “diffmap” stored as a TGA file encodes the X, Y, Z displacement of a vertex into the R, G, B values of vertex colours. This is then baked to a UV projected 2D texture. Along with the textual metadata this allows the Unity script MetaMorph to import diffmaps created with io_export_diffmap and play the animations.

Update 23/8/2015: Added initial C# port of MetaMorph to git repo. It should work fine, but I haven’t had a chance to build the test scenes yet.