A modern, web-based 3D model viewer for .bmd files, the format used in the game MU Online. This application is built with TypeScript, Three.js, and Vite, providing a smooth and interactive experience for inspecting game models and their animations.
- BMD Model Loading: Load
.bmdfiles via a simple drag-and-drop interface. - Texture Support: Apply various texture formats, including
.jpg,.png,.tga,.ozj, and.ozt. - Animation Playback: View all embedded animations with adjustable playback speed.
- External Animations: Load bone animations from a different
.bmdfile. - GLB Export: Export models and their animations to the standard
.glbformat for use in other 3D software like Blender or Unity. - Texture Export: Export all applied textures to
.pngformat. - Interactive Controls:
- Orbit, pan, and zoom the camera.
- Toggle wireframe and skeleton visibility.
- Adjust model scale and scene brightness.
- Auto-rotate the model.
- Lock the animation on a specific frame.
- Diagnostics Panel: View real-time information about the loaded model, including mesh, bone, and animation counts, as well as FPS.
-
Clone the repository or download the source code.
-
Open a terminal in the project directory.
-
Install the required dependencies:
npm install
To run the application locally with hot-reloading, use the following command:
npm run devThis will start a development server, and you can view the application in your browser at the provided URL (usually http://localhost:5173).
To create an optimized build for deployment, run:
npm run buildThe production-ready files will be generated in the dist directory.
- Load a Model: Drag and drop a
.bmdfile onto the designated area on the left panel, or click to open the file selector. - Apply Textures: Once the model is loaded, the viewer will show which textures are required. Drag and drop the corresponding texture files onto the texture area.
- Control Animations: Use the buttons to play different animations and the slider to control the speed.
- Export: Use the export buttons to save the model as a
.glbfile or to save the textures as.pngfiles.