[page:Loader] →

# [name]

A loader for `MMD` resources.
[name] creates Three.js Objects from MMD resources as PMD, PMX, VMD, and VPD files. See [page:MMDAnimationHelper] for MMD animation handling as IK, Grant, and Physics.
If you want raw content of MMD resources, use .loadPMD/PMX/VMD/VPD methods.

## Import

[name] is an add-on, and must be imported explicitly. See [link:#manual/introduction/Installation Installation / Addons].

`import { MMDLoader } from 'three/addons/loaders/MMDLoader.js';`

## Code Example

`// Instantiate a loader const loader = new MMDLoader(); // Load a MMD model loader.load( // path to PMD/PMX file 'models/mmd/miku.pmd', // called when the resource is loaded function ( mesh ) { scene.add( mesh ); }, // called when loading is in progresses function ( xhr ) { console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' ); }, // called when loading has errors function ( error ) { console.log( 'An error happened' ); } );`

## Examples

[example:webgl_loader_mmd]
[example:webgl_loader_mmd_pose]
[example:webgl_loader_mmd_audio]

## Constructor

### [name]( [param:LoadingManager manager] )

[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].

Creates a new [name].

## Properties

See the base [page:Loader] class for common properties.

## Methods

See the base [page:Loader] class for common methods.

### [method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )

[page:String url] — A string containing the path/URL of the `.pmd` or `.pmx` file.
[page:Function onLoad] — A function to be called after the loading is successfully completed.
[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.
[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.

Begin loading PMD/PMX model file from url and fire the callback function with the parsed [page:SkinnedMesh] containing [page:BufferGeometry] and an array of [page:MeshToonMaterial].

### [method:undefined loadAnimation]( [param:String url], [param:Object3D object], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )

[page:String url] — A string or an array of string containing the path/URL of the `.vmd` file(s).If two or more files are specified, they'll be merged.
[page:Object3D object] — [page:SkinnedMesh] or [page:Camera]. Clip and its tracks will be fitting to this object.
[page:Function onLoad] — A function to be called after the loading is successfully completed.
[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.
[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.

Begin loading VMD motion file(s) from url(s) and fire the callback function with the parsed [page:AnimationClip].

### [method:undefined loadWithAnimation]( [param:String modelUrl], [param:String vmdUrl], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )

[page:String modelUrl] — A string containing the path/URL of the `.pmd` or `.pmx` file.
[page:String vmdUrl] — A string or an array of string containing the path/URL of the `.vmd` file(s).
[page:Function onLoad] — A function to be called after the loading is successfully completed.
[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.
[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.

Begin loading PMD/PMX model file and VMD motion file(s) from urls and fire the callback function with an [page:Object] containing parsed [page:SkinnedMesh] and [page:AnimationClip] fitting to the [page:SkinnedMesh].

### [method:this setAnimationPath]( [param:String animationPath] )

[page:String animationPath] — Base path for loading animation data (VMD/VPD files).

Set the base path for additional resources like textures.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/MMDLoader.js examples/jsm/loaders/MMDLoader.js]