背景
Reactにおいてthreeのライブラリを使用し、Blenderで作成した3DモデルをWebページ上に表示させようとしたが、エラー文言が出力され、3Dモデルが表示されなかった。
環境
- vite:5.0
- raect:18.2
- three:0.158
前提
Blender側で3Dモデルをエクスポートしたときの設定は以下の通りです。
エラー内容
SyntaxError: Unexpected token '<', "<!doctype "... is not valid JSON
~~
結論
3dモデルを入れたassets
フォルダをpublic
フォルダの中に作成する必要があった。
原因と対応
以下のコマンドでReactのプロジェクトを作成した際にデフォルトでは、
src
フォルダ直下にassets
フォルダが生成されている。
本来であれば、public
フォルダに3Dモデルを入れたassets
を作成する必要があったと思われる。
npm create vite@latest
今回はsrc
直下のassets
に3Dモデルを入れ、GLTFLoaderで読み込もうとしたため、
エラーが出力されたと考えられる。
3dモデルを入れたassets
フォルダをpublic
フォルダの中に作成した。
App.jsx
// 3Dモデルを読み込んでシーンに追加
const loader = new GLTFLoader();
loader.load('assets/moon_and_star.glb', (gltf) => {
scene.add(gltf.scene);
});