MMDLoader.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="list.js"></script>
  7. <script src="page.js"></script>
  8. <link type="text/css" rel="stylesheet" href="page.css" />
  9. </head>
  10. <body>
  11. [page:Loader] &rarr;
  12. <h1>MMD加载器([name])</h1>
  13. <p class="desc">一个用于加载<a href="http://www.geocities.jp/higuchuu4/index_e.htm"><em>MMD</em></a>资源的加载器。<br /><br />
  14. [name]从MMD资源(例如PMD、PMX、VMD和VPD文件)中创建Three.js物体(对象)。
  15. 请参阅[page:MMDAnimationHelper]来了解MMD动画的处理,例如IK、Grant和Physics。<br /><br />
  16. 如果你想要MMD资源的原始内容,请使用.loadPMD/PMX/VMD/VPD方法。
  17. <h2>示例</h2>
  18. <code>
  19. // Instantiate a loader
  20. var loader = new THREE.MMDLoader();
  21. // Load a MMD model
  22. loader.load(
  23. // path to PMD/PMX file
  24. 'models/mmd/miku.pmd',
  25. // called when the resource is loaded
  26. function ( mesh ) {
  27. scene.add( mesh );
  28. },
  29. // called when loading is in progresses
  30. function ( xhr ) {
  31. console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
  32. },
  33. // called when loading has errors
  34. function ( error ) {
  35. console.log( 'An error happened' );
  36. }
  37. );
  38. </code>
  39. [example:webgl_loader_mmd]<br />
  40. [example:webgl_loader_mmd_pose]<br />
  41. [example:webgl_loader_mmd_audio]<br />
  42. <br />
  43. <hr>
  44. <h2>构造函数</h2>
  45. <h3>[name]( [param:LoadingManager manager] )</h3>
  46. <p>
  47. [page:LoadingManager manager] — 加载器使用的[page:LoadingManager loadingManager](加载管理器),默认值是[page:LoadingManager THREE.DefaultLoadingManager]。
  48. </p>
  49. <p>
  50. 创建一个新的[name]。
  51. </p>
  52. <h2>属性</h2>
  53. <h2>方法</h2>
  54. <h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
  55. <p>
  56. [page:String url] — 一个包含有<em>.pmd</em>或<em>.pmx</em>文件的路径或URL的字符串。<br />
  57. [page:Function onLoad] — 当加载过程成功完成以后将被调用的函数。<br />
  58. [page:Function onProgress] — (可选)加载过程正在进行的时候被调用的函数。其参数是一个XMLHttpRequest实例,其包含了[page:Integer total] bytes(总的字节数)和[page:Integer loaded] bytes(已经载入的字节数)。<br />
  59. [page:Function onError] — (可选) 加载过程中若发生了错误将被调用的函数。这一函数接收错误作为参数。<br />
  60. </p>
  61. <p>
  62. 开始从URL中加载PMD/PMX模型文件,并使用包含有已被解析的[page:SkinnedMesh]和[page:MeshToonMaterial]数组的[page:BufferGeometry]对象来触发回调函数。
  63. </p>
  64. <h3>[method:null loadAnimation]( [param:String url], [param:Object3D object], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
  65. <p>
  66. [page:String url] — 一个包含有<em>.vmd</em>文件的路径或URL的字符串或字符串数组。如果两个及以上文件被指定,它们将会合并。<br />
  67. [page:Object3D object] — [page:SkinnedMesh] 或 [page:Camera]。 剪辑及其轨道将会适应到该对象。<br />
  68. [page:Function onLoad] — 成功加载完成后被调用的函数。<br />
  69. [page:Function onProgress] — (可选)当加载正在进行时被调用的函数,参数将是XMLHttpRequest实例,其包含了 .[page:Integer total] (总的)和 .[page:Integer loaded] (已加载的)字节数。<br />
  70. [page:Function onError] — (可选)如果加载过程中发生错误时被调用的函数,该函数接受一个错误来作为参数。<br />
  71. </p>
  72. <p>
  73. 开始从url(s)加载VMD动画文件(可能有多个文件),并使用已解析的[page:AnimatioinClip]触发回调函数。
  74. </p>
  75. <h3>[method:null loadWithAnimation]( [param:String modelUrl], [param:String vmdUrl], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
  76. <p>
  77. [page:String modelUrl] — 一个包含有<em>.pmd</em>或<em>.pmx</em>文件的路径或URL的字符串。<br />
  78. [page:String vmdUrl] — 一个包含有<em>.vmd</em>文件的路径或URL的字符串或字符串数组。<br />
  79. [page:Function onLoad] — 成功加载完成后被调用的函数。<br />
  80. [page:Function onProgress] — (可选)当加载正在进行时被调用的函数,参数将是XMLHttpRequest实例,其包含了 .[page:Integer total] (总的)和 .[page:Integer loaded] (已加载的)字节数。<br />
  81. [page:Function onError] — (可选)如果加载过程中发生错误时被调用的函数,该函数接受一个错误来作为参数。<br />
  82. </p>
  83. <p>
  84. 开始从URL中加载PMD/PMX模型文件和VMD动画文件(可能有多个文件),并使用一个[page:Object] —— 包含有已解析的[page:SkinnedMesh]和适应[page:SkinnedMesh]的[page:AnimationClip],来触发回调函数。
  85. </p>
  86. <h3>[method:MMDLoader setCrossOrigin]( [param:String crossOrigin] )</h3>
  87. <p>
  88. [page:String crossOrigin] — crossOrigin字符串,用于实现CORS,以便从一个允许CORS的其它域加载url。
  89. </p>
  90. <h3>[method:MMDLoader setAnimationPath]( [param:String animationPath] )</h3>
  91. <p>
  92. [page:String animationPath] — 用于加载动画数据(VMD/VPD 文件)的基础路径。 Base path for loading animation data (VMD/VPD files).
  93. </p>
  94. <p>
  95. 设置额外资源(例如贴图)的基础路径。
  96. </p>
  97. <h3>[method:MMDLoader setPath]( [param:String path] )</h3>
  98. <p>
  99. [page:String path] — 基础路径。
  100. </p>
  101. <p>
  102. 设置用于加载文件的基础路径或URL。
  103. </p>
  104. <h3>[method:MMDLoader setResourcePath]( [param:String resourcePath] )</h3>
  105. <p>
  106. [page:String resourcePath] — 用于加载额外资源(例如贴图)的基础路径。
  107. </p>
  108. <p>
  109. 设置额外资源(例如贴图)的基础路径。
  110. </p>
  111. <h2>源代码</h2>
  112. <p>
  113. [link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MMDLoader.js examples/js/loaders/MMDLoader.js]
  114. </p>
  115. </body>
  116. </html>