threejs-loaders について
threejs-loadersは、three.jsのアセットローダーとエクスポーターを扱うスキルです。形式の選択、読み込み状況の管理、DracoやKTX2の設定、出力後の注意点を支援します。
主な機能
- 01ローダーとエクスポーターの選択
- 02LoadingManagerによる進捗とエラー処理
- 03DracoとKTX2の設定
- 04glTFとOBJの出力ガイド
- 05アセットの安全性とクリーンアップ
活用シーン
- 01複数アセットの進捗を報告しながら読み込み
- 02圧縮glTFのデコード設定
- 03シーンをglTFまたはOBJに出力
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-loadersインストール後、Claude Code で/threejs-loadersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/workflow-gltf-draco.mdreferences/official-sections.md詳細
このスキルを使用するタイミング
ユーザーが次の項目に言及した場合は、必ずこのスキルを使用してください。
GLTFLoader、DRACOLoader、KTX2Loader、FBXLoader、OBJLoader、進捗とエラーの処理- グローバルな進捗管理のための
LoadingManager、HTTP キャッシュ制御のためのCache - エクスポート:
GLTFExporter、OBJExporter、HDR/KTX2 エクスポートパイプライン - IES、UltraHDR、またはドキュメントの Addons Loaders に記載されているドメイン固有のローダー
重要:ローダーとテクスチャの違い
- threejs-loaders = ファイルを取得、デコード、解析して three オブジェクトにします。
- threejs-textures = 画像バッファーを取得した後の
Texture/DataTextureのパラメーター、サンプリング、PMREM を扱います。
重要:ローダーと dev-setup の違い
- インポートパスの問題は threejs-dev-setup の対象です。このスキルでは、インポートが解決済みであることを前提とします。
トリガーとなるフレーズの例:
- 「GLTFLoader」、「DRACO」、「KTX2」、「LoadingManager」、「gltf をエクスポート」
- 「モデルの読み込み」、「エクスポート」、「進捗バー」
このスキルの使用方法
- フォーマットに応じてローダーを選択します。可能であれば、PBR の相互運用には glTF を優先してください。
- 複数アセットのバッチ処理には LoadingManager を設定し、
onStart/onLoad/onProgress/onErrorを通知します。 - glTF + Draco:
DRACOLoaderをインスタンス化し、デコーダーパスを設定して、現行ドキュメントに従いGLTFLoader.setDRACOLoaderに接続します。 - glTF + KTX2:Basis テクスチャを使用する場合は、トランスコーダーパスを指定して
KTX2Loaderを設定し、GLTFLoaderに接続します。 - エクスポート:往復処理の要件に合ったオプションで
GLTFExporterを使用します。大規模なシーンやバイナリと JSON の違いにも注意してください。 - セキュリティ:ユーザー提供の URL を読み込む場合は必ず検証し、クロスオリジンのアセットでは CORS について説明します。
- 読み込み後:シーンを走査してマテリアル/メッシュを確認し、マテリアルの調整は threejs-materials に引き継ぎます。
examples/workflow-gltf-draco.md を参照してください。
ドキュメント一覧(公式)
| ドキュメントのセクション | 代表的なリンク |
|---|---|
| Core Loaders | https://threejs.org/docs/LoadingManager.html |
| Core Loaders | https://threejs.org/docs/GLTFLoader.html |
| Addons Exporters | https://threejs.org/docs/GLTFExporter.html |
| Addons Loaders | https://threejs.org/docs/DRACOLoader.html |
拡張リスト:references/official-sections.md。
対象範囲
- 対象: ローダーおよびエクスポータークラス、マネージャー/キャッシュ、フォーマットの選択、Draco/KTX2 のプラグイン接続、エクスポートの基本。
- 対象外: サーバー側のトランスコードパイプライン、three のドキュメントの範囲外にある物理演算またはゲームエンジンのアセットツール。
よくある落とし穴とベストプラクティス
- Draco/KTX2 のデコーダーパスは、デプロイするファイルと一致している必要があります。パスに誤りがあると、
onErrorによって表面化するまで気づかないことがあります。 - マージ後にテクスチャのインスタンスが重複する場合があります。マテリアルを複製する際は、
renderer.initTextureの影響を考慮してください。 - エクスポーターはカスタムシェーダーを往復処理できない場合があります。制限を明記してください。
- 読み込んだシーンを置き換えるときは、GPU メモリーリークを防ぐため、必ずジオメトリとマテリアルを破棄してください。
ドキュメントとバージョン
ローダーおよびエクスポーターの API(特に GLTFLoader と DRACOLoader/KTX2Loader の接続方法)は、three.js のバージョンによって変わります。three.js docs の Loaders および Addons → Loaders / Exporters を参照してください。デコーダーの WASM パスはデプロイ環境によって異なり、ライブラリのバージョンだけで決まるものではありません。
エージェントの応答チェックリスト
このスキルに基づいて回答する場合は、次の点を優先してください。
- https://threejs.org/docs/ の
LoadingManager、GLTFLoader、または該当するフォーマットのページへのリンクを含めます。 - 読み込み(このスキルの対象)と、デコード後のテクスチャ/マテリアルの調整(threejs-textures、threejs-materials)を区別します。
- アセットが正常に読み込まれない場合は、Draco/KTX2 のデコーダーパスと CORS について説明します。
- エクスポーターの制限(カスタムシェーダー、拡張機能など)を正直に説明します。
- 読み込んだシーン全体を置き換えるときは、
dispose()の使用を推奨します。
参考資料
- https://threejs.org/docs/#Loaders
- https://threejs.org/docs/LoadingManager.html
- https://threejs.org/docs/GLTFLoader.html
- https://threejs.org/docs/GLTFExporter.html
キーワード
英語: gltf、gltfloader、dracoloader、ktx2、loadingmanager、cache、exporter、asset pipeline、three.js
中文: GLTFLoader、ローダー、Draco、KTX2、エクスポート、アセット、進捗、three.js