threejs-geometries について
threejs-geometriesは、three.jsのジオメトリを作成・変更するためのスキルです。組み込みプリミティブからカスタムバッファーデータ、形状の押し出しまで、手順とドキュメントを案内します。
主な機能
- 01BufferGeometryと属性
- 02プリミティブジオメトリの案内
- 03Shapeとパスの押し出し
- 04インスタンス属性の案内
- 05ジオメトリの解放と注意点
活用シーン
- 01カスタムメッシュの作成
- 022Dプロファイルの押し出し
- 03ジオメトリのインスタンスデータ追加
- 04法線や面の巻き順の問題調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-geometriesインストール後、Claude Code で/threejs-geometriesを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlexamples/workflow-extrude-shape.md
詳細
このスキルを使用するタイミング
ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください。
BufferGeometry、属性、インデックスバッファー、描画範囲の作成または変更InstancedBufferAttribute/InstancedMeshを使用したインスタンシングのジオメトリ側(メッシュラッパーについては threejs-objects)- パスに沿った
Shapeの押し出し、TubeGeometry、LatheGeometry、ExtrudeGeometry - テキストまたはデカールのアドオンジオメトリ
重要:ジオメトリと数学
- threejs-geometries = GPU で使用できる三角形データです。
- threejs-math = メッシュのトポロジーを使わない
Box3、Sphere、Rayのテストです。
トリガーとなる語句の例:
- 「BufferGeometry」、「BufferAttribute」、「ExtrudeGeometry」、「Shape」、「Curve」
- 「几何体」、「缓冲几何」、「挤出」、「文字几何」
このスキルの使用方法
- カスタムバッファーを作成する前に、適合する場合は組み込みプリミティブを優先してください。
- カスタムメッシュでは、
BufferGeometryを作成し、position、normal、uv、必要に応じてindexを設定します。カリング用に境界ボリュームを計算してください。 - インスタンシング属性では、threejs-objects の
InstancedMeshのパターンに合わせてディバイザー/カウントを設定してください。 - 2D プロファイルでは、
Shape/Pathを作成し、ドキュメントに従って押し出すか回転押し出しを行います。パスのサンプリングについては、Extras の Curve ファミリーを参照してください。 - アドオンの NURBS ノットについては、Addons の Curves ページを必要な範囲で参照してください。API 全体をコピーせず、ドキュメントを引用してください。
- メッシュを置き換える際は、メモリーリークを防ぐためにジオメトリを破棄してください。
examples/workflow-extrude-shape.md を参照してください。
ドキュメントマップ(公式)
| ドキュメントのセクション | 代表的なリンク |
|---|---|
| コア | https://threejs.org/docs/BufferGeometry.html |
| ジオメトリ | https://threejs.org/docs/BoxGeometry.html |
| 押し出し | https://threejs.org/docs/ExtrudeGeometry.html |
| シェイプ | https://threejs.org/docs/Shape.html |
対象範囲
- 対象: コアジオメトリ、バッファーコア、カーブ/シェイプ/押し出しのワークフロー、選定されたアドオンジオメトリ。
- 対象外: 物理演算の衝突メッシュのベイク処理、CAD の完全なインポートパイプライン。
よくある問題とベストプラクティス
- 法線がないとライティングに問題が生じます。法線を一貫して計算するか、インポートしてください。
- 頂点の巻き順が間違っていると面が反転します。面の向き/カリングを確認してください。
- 属性数が非常に多い場合は、LOD または簡略化が必要です(アドオンのモディファイアについては、ユーザーから求められた場合にのみ言及してください)。
ドキュメントとバージョン
プリミティブと BufferGeometry は、three.js docs の Geometries および BufferGeometry に記載されています。Curve、Shape、押し出しの API は Extras と Geometries にあります。Addons の Curves/Geometries では、NURBS とテキストメッシュについて説明されています。長いシグネチャをコピーする代わりに、そちらへリンクしてください。
エージェントの回答チェックリスト
このスキルに沿って回答する場合は、次の点を優先してください。
- 適切に
BufferGeometry、プリミティブ、またはExtrudeGeometry/Shapeにリンクしてください。 - InstancedMesh のパターンに関するインスタンシングの使用方法は、threejs-objects を参照するよう案内してください。
- 変形が時間によって駆動される場合は、モーフターゲットとトラックについて threejs-animation を参照するよう案内してください。
- 結合/分割については、
BufferGeometryUtils(Addons の Utils)を名前とドキュメントリンクのみで参照してください。 - 大きなカスタムバッファーを置き換える際は、
dispose()の重要性を強調してください。
参考資料
- https://threejs.org/docs/#Geometries
- https://threejs.org/docs/BufferGeometry.html
- https://threejs.org/docs/ExtrudeGeometry.html
キーワード
英語: buffergeometry、extrude、shape、path、curve、primitives、instancing、three.js
中文: 几何体、BufferGeometry、挤出、Shape、曲线、实例化、three.js
コメント
Markdown 対応