【three.js】MMDLoader.jsはr172で削除されている
07月03日
three.js(r172)のreleaseに記載があるようにMMDを動かすのに使用するMMDLoaderはr172で削除されています。そのため、r173以降で従来通りにインポートしようとすると、次のようなエラーが発生するかと思います。
Pre-transform error: Failed to resolve import "three/examples/jsm/loaders/MMDLoader.js" from
"src/components/MmdViewer.tsx". Does the file exist?
また、私がr170で試した際には、コンソールに次の警告が表示されました。
MMDLoader.js:89 THREE.MMDLoader: The module has been deprecated and will be removed with r172. Please migrate to
https://github.com/takahirox/three-mmd-loader instead.
警告の内容は、「MMDLoaderは非推奨であり、r172で削除されるため、three-mmd-loaderへ移行してください」ということになります。ただし、私が確認した時点では、three-mmd-loaderのrepositoryにはREADME以外の実装は見当たらず、Issueで1年前に「いつ利用できるようになるのか」という質問に対して、repositoryの作者が「Hopefully soon」と回答されている程度でした。その後、Issueには別の開発者がr171のMMDLoaderを基に改修したライブラリについて投稿していました。
そのため、three.jsでMMD動かそうと考えている場合、そういったプロジェクトを活用したりthree.jsをr172以前のバージョンで使う等になりそうです。
私が調べた限りでは、r172でMMDLoaderが削除され使えなくなっていることを明記している日本語サイトは見つけられなかったので、blogとして書く意義を感じ、備忘録を兼ねてここに書いた次第です。私と同じようにweb上でMMDモデルを表示しようとthree.jsを試したものの、原因が分からず困っている方の参考になれば幸いです。