A chat in a Discord server about Sonic and Rouge sparked this idea off. Basically, I was already sorta familiar with shapekeys in Blender which let you move vertices from one position to another, basically morphing the mesh. They are often used for stuff like changing facial expressions but it occurred to me that they could also be used to morph characters and so I decided to give it a try.
Figuring it would be easy, I went to the The Models Resource and downloaded the models from Mario & Sonic at the Rio 2016 Olympic Games (they seemed good looking and recent). It turned out to not be so easy because while there are a lot of tutorials for morphing in Blender, the vast majority of them use something called "shrinkwrap". While it's great for morphing between complex and simple objects (cube, sphere, etc), it's not so useful when morphing from complex shapes to complex shapes.
I tried a couple of different techniques, and indeed got shrinkwrap working for one or two places, but I gradually realised I'd have to reposition every single vertex myself if I wanted this to work right. I started with the shoes, and worked on the simplest parts of the model first before moving to the more complex. I found tools in Blender that made the task easier, such as a "snap to face" mode that would let me move a vertex on one model so it instantly moved to the surface of another (really helped aligning the morphed models)
This morphed the shape of one of the models to look the same shape as the other, but it would retain its original colours. My next step was to tweak a shader so that it would switch between the two materials, and make a new set of UVs for the model so it would pull the right colours from the second texture. So shape and colour were now morphed.
Honestly, some bits of the model were so messy I just fudged it a bit... but overall, it came out looking good. Nice smooth transformation!
Sorry if I'm a bit technical with this post, but I learned a lot in knowing how to do it, and I thought I should post some of the info in case other 3D modellers wanted to try something similar. (I incidentally havn't figured out how to make this work well with skeletal rigging, so if anyone has any suggestions please send them my way!)
Figuring it would be easy, I went to the The Models Resource and downloaded the models from Mario & Sonic at the Rio 2016 Olympic Games (they seemed good looking and recent). It turned out to not be so easy because while there are a lot of tutorials for morphing in Blender, the vast majority of them use something called "shrinkwrap". While it's great for morphing between complex and simple objects (cube, sphere, etc), it's not so useful when morphing from complex shapes to complex shapes.
I tried a couple of different techniques, and indeed got shrinkwrap working for one or two places, but I gradually realised I'd have to reposition every single vertex myself if I wanted this to work right. I started with the shoes, and worked on the simplest parts of the model first before moving to the more complex. I found tools in Blender that made the task easier, such as a "snap to face" mode that would let me move a vertex on one model so it instantly moved to the surface of another (really helped aligning the morphed models)
This morphed the shape of one of the models to look the same shape as the other, but it would retain its original colours. My next step was to tweak a shader so that it would switch between the two materials, and make a new set of UVs for the model so it would pull the right colours from the second texture. So shape and colour were now morphed.
Honestly, some bits of the model were so messy I just fudged it a bit... but overall, it came out looking good. Nice smooth transformation!
Sorry if I'm a bit technical with this post, but I learned a lot in knowing how to do it, and I thought I should post some of the info in case other 3D modellers wanted to try something similar. (I incidentally havn't figured out how to make this work well with skeletal rigging, so if anyone has any suggestions please send them my way!)
Category All / All
Species Unspecified / Any
Gender Any
Size 510 x 540px
File Size 4.77 MB
These are cool! Though I do like how you can see the hip shape better with the lighter blue color in the alt, either way these morphs are neat!
Damn, that's smooth. Didn't think you pull that off in Blender.
Ever consider making a video showing what you did? I'd love for my animations to be this smooth.
Ever consider making a video showing what you did? I'd love for my animations to be this smooth.
I did plan on doing that at some point, but creating a video is a bit complex, and I'm not sure I'd properly cover all the details. Also, I currently don't have something on my plate that I could demonstrate the technique with (didn't do a record of the above because I was still learning).
Dang!
Could you at least explain how you did the thing with the UVs?
Could you at least explain how you did the thing with the UVs?
Basically, a mesh can have more than one UV map (the UI for this is just under ShapeKeys). I created one that I named "SonicUV" for matching the Sonic material, and another one called "RougeUV" for Rogue. Since I'm working of pre-existing models (ripped from games), I'd usually have one of the UV maps already done, but I'd have to redo it for the other model.
Next, I'd find out what materials each of the original models used, and merge them both into a single material by copying their Shader Nodes in the Shader Editor. Both materials previously just used a texture with whatever the default UV map is, so firstly you have to edit them to specifically use the right UV map. Usually done by routing the "UV Map" node directly into the Vector of Image Texture node.
You should now have two Texture/Materials for the model, but only be able to switch between the two in the Shader Editor. So at the end of the nodes, add a "Mix Shader" node that will take the two different materials as input, so that you can now seamlessly crossfade between the materials just by going between 0 and 1 on the Material settings.
Next, I'd find out what materials each of the original models used, and merge them both into a single material by copying their Shader Nodes in the Shader Editor. Both materials previously just used a texture with whatever the default UV map is, so firstly you have to edit them to specifically use the right UV map. Usually done by routing the "UV Map" node directly into the Vector of Image Texture node.
You should now have two Texture/Materials for the model, but only be able to switch between the two in the Shader Editor. So at the end of the nodes, add a "Mix Shader" node that will take the two different materials as input, so that you can now seamlessly crossfade between the materials just by going between 0 and 1 on the Material settings.
Comments