Skip to main content

The reason I made the mmd loader

· 3 min read
noname0310

Hello, this is the first post I've written since I started making a document.

What is MMD?

MikuMikuDance (MMD) is a free 3D animation software developed by a Japanese programmer named Yu Higuchi. It was initially released in 2007 and gained popularity quickly within the anime and virtual idol communities. MMD allows users to create and animate 3D models, primarily focusing on humanoid characters, using a straightforward and intuitive interface.

MMD still has a large community, and all the high-quality 3D models and motion assets created from them are stored in MMD's custom formats, PMX(Polygon Model eXtended) and VMD(Vocaloid Motion Data). These assets are often shared on the Internet, and many people use them to create videos and images.

Advantages of Browser-based MMD

Generally, these assets consist of 3D models that perform dances synchronized to specific songs. In essence, they are consumable content. People typically don't want to download a 3D application just to view a brief 3-minute or so piece of content, which they watch once and then move on from.

Hence, the advantage lies in the ability to play MMD directly in the browser. No additional software installation is required, and with Babylon.js, it is possible to achieve outstanding visual effects.

Playing MMD in the browser allows users to experience seamless and clean creations, as real-time rendering takes place directly in their browser without any loss in quality, resulting in an immersive and captivating experience for the users.

Why Babylon.js?

I have been using the MMDLoader of Three.js for quite a long time and have discovered several flaws and missing features in it. Initially, I thought I could resolve these issues simply by redefining some functions, but as I attempted to make modifications, I realized it was not feasible.

As a result, in early 2023, I made the decision to create my own MMD loader, and my choice was Babylon.js. Babylon.js boasts exceptional code quality and, starting from version 6.0, it supports Havok Physics. Moreover, it provides essential elements required to implement MMD on the web, such as GPU skinning using textures, optimized morph targets, and material plugins. The completeness of these features seemed remarkably high.

Conclusion

If you have read this far, you might have sensed that I am truly passionate about this specific topic. As a result, the babylon-mmd has the best code quality I can do and is over-engineered to provide some optimization.

It's all for MMD in the web browser. If you, the reader, also create and share your creations using babylon-mmd, it would be wonderful.

Now, I'll wrap up this post. Thank you.