(c) model : http://mikumikudance.wikia.com/wiki/Miku_Hatsune_(Lat) (c) motion: http://mmd.nomeu.org/thumbs/sm13622845
Simple MMD(PMD, VMD) loader in C++. MMDLoader is written in portable manner. No dependency except for C++ STL.
Simply copy mmd_*
, pmd_*
and vmd_*
files to your project.
#include "pmd_reader.h"
#include "vmd_reader.h"
#include "mmd_scene.h"
#include "mmd_math.h"
PMDModel* model = NULL;
VMDAnimation* anim = NULL;
MMDScene* scene = NULL;
char* pmdmodel = "input.pmd";
char* vmdmodel = "input.vmd";
PMDReader pmdreader;
model = pmdreader.LoadFromFile(pmdmodel);
assert(model);
VMDReader vmdreader;
anim = vmdreader.LoadFromFile(vmdmodel);
assert(anim);
MMDScene* scene = new MMDScene();
scene->SetModel(model);
scene->AttachAnimation(anim);
OpenGL(GLUT) example viewer is included(see viewer_main.cc).
Supported
- PMD model loading.
- VMD motion loading.
- Bone animation(IK).
- Morph.
TODOs (Contributors welcome!)
- Physics(Bullet)
- W.I.P.
Here is the list of premake options.
--with-glm : Use glm
--with-bullet : Use Bullet physics(Set path to bullet in `premake4.lua`)
--with-euler-camera : Use Euler camera(Adds glm dependency)
Syoyo Fujita(syoyo@lighttransport.com)
Jerry Chen(onlyuser@gmail.com) : glm, Bullet physics, Euler camera, split screen vr
3-clause BSD.