CR2 Importer for morphing 3D models

CR2 Importer for morphing 3D models


Today there is a large number of various platforms and systems for creation of 3D animation. They include tools for the realization of a wide range of tasks and some of them are focused on the creation of human 3D models. For example:

- Poser

- MakeHuman

- Daz3D

These applications allow creating 3D models of the person adding a certain character to the model (clothes, hairstyle, gesticulation, emotionality).

For one of our projects, we needed to develop the solution for a morphing of human 3D model, the transformation of one model into another. For example, there is a model of the elderly person of an overweight constitution, and it is necessary to create a new model of the young man of a harmonious constitution on the basis of the present model. At the same time, we should make such functionality, that if you change one parameter all criteria of a model will change, for example, you have changed the parameter age, all existing criteria of the human model change, up to the size and the shape of muscles.



We have analyzed the existing possibilities of the 3D systems of modeling, we have come to the decision to add the functionality of the Daz3D application to the universal 3D system of modeling Blender3D. Also, it was necessary to realize convenient control of a human model, such that the changing of one parameter the whole complex of characteristics would be changed.

One of the popular formats of storage of human 3D models which allows designers to adjust various anatomic features of the human is CR2.

An excellent example of CR2 model, the list of the operating parameters allowing to adjust slightly not all existing characteristics of a human body in excellent naturalistic quality is the Apollo Maximus model

This tremendous model created by Anton Kisiel and uploaded publicly became a starting point of our work.

Let's consider details.   

We have developed the importer for importing the CR2 file which allows loading not only skeletons (Bones of Armature) but also morphs (Morphs) into Blender3D.

As we know, Poser and Blender3D have various mathematical theories for representation dial-influence. Blender3D uses Weight-map. We can't calculate initial data of Weight-map when we import the CR2 file.

Therefore, we load only a part of the weight of data from the CR2 file, by means of our changed importer, then they are processed in Blender3D for improvement of the quality of morph to an appropriate level.

For the purpose of simplification of the process of working with weights, we developed a script for import and export of weights to our own JRW format.

Let's consider how it works. For example, you load the mesh, the CR2 file, process weights to necessary quality, spending on it a lot of time. Result from this, on purpose not to repeat this process every time, we exported them to the external file then we can import/load weights instead of processing them again.

Also, we needed to save correlation between several layers of shape key. For example, the lowest layer is a lower part of a hand, the highest layer is a sex or an age. For this purpose we used Python driven logic, some Python formula instead of the linear interaction is used. For implementation, we added the file (the is the Python file which works from Blender3D and uses API Blender3D, and it is also stored in memory) formulas, and at the second stage of loading we only appropriated formulas to a special field (in IpoCurve Transform properties). It gave the chance to make nonlinear interaction. Also, it gives the chance of the structural control of the model, when it is changing one of the model parameters, the whole complex of parameters changes that simplify modification of the model.

For the implementation of this project we used:

- Python

- Blender3D API

Thus, the creation of this application, and adding a functionality in the universal application, gives to users additional opportunities of the creation of human models in the 3D system Blender3D.

If you need some custom development on 3D modeling we are ready to help you and create something special for you. For any questions, let's contact us.



To enable comments sign up for a Disqus account and enter your Disqus shortname in the Articulate node settings.