threejs-object-sculptor について
証拠に基づく6段階の手順で、参照画像から Three.js のオブジェクトを再構成するスキルです。プロシージャルモデルを作る開発者向けに、見えない形状の仮定と再現精度の限界を明示します。
主な機能
- 01参照ビューの確認と判読性の評価
- 02特徴的な部品へのオブジェクト分解
- 03プロシージャル形状表現の選択
- 04ビューに合わせたモデルの作成と調整
- 05コード、描画、残る仮定の検証
活用シーン
- 01物体写真からプロシージャルモデルを計画
- 02複数の参照ビューからブラウザー用小道具を作成
- 03モデリング前に不足ビューや計測値を特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ linegel/ threejs-complete-set-of-skill --skill threejs-object-sculptorインストール後、Claude Code で/threejs-object-sculptorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEagents/openai.yamlreferences/attachment-joint-correctness.mdprocedural-patterns.mdscripts/probe_reference_image.py詳細
Three.js オブジェクトスカルプター
オブジェクト画像を、根拠に基づくプロシージャルな再構成に変換します。出力は、実現可能性の判定、構築計画、または動作するコードです。どの分岐でも、同じ6つの段階に従います。
入力と制約
提供されたすべてのビューを使用します。対象や想定用途が曖昧な場合は、表現方法を決める前に曖昧さを解消します。そうでなければ、作成時のスケールを後から変更できる、インタラクティブなブラウザー用の小道具を想定します。
単一のビューから判断できるのは、目に見える根拠に限られます。隠れた表面、厚み、絶対寸法、マテリアルパラメーター、関節構造は、対称性、既知の構造、追加ビュー、または測定値によって制約されない限り、仮定にとどまります。仮定にはラベルを付けます。正確な類似性、製造用の寸法、または見えない機構の再現には、不足しているビューや測定値が必要です。明示された様式化による近似は、有効な代替案です。
ローカル画像の場合は、<skill-dir> にこの SKILL.md を含むディレクトリを設定し、
probe_reference_image.py を使って python3 "<skill-dir>/scripts/probe_reference_image.py" "<image>" を実行します。このスクリプトは、形式、バイト数、寸法、アスペクト比、メタデータの解析状況を報告します。この状況が示すのはファイルのメタデータのみです。画像に写ったオブジェクトを判読できるかどうかは、ステージ1での目視確認だけで判断します。このヘルパーが読み取るのは上限付きの先頭部分(デフォルトは1 MiB、--max-header-bytes では最大64 MiB)であり、ファイルのバイト数とスキャンしたバイト数は別々に報告されます。幅と高さは、保存されたラスターまたはキャンバスの寸法であり、EXIF の向きを適用したもの、ピクセルアスペクト比を補正したもの、または画像のデコードを検証したものではありません。有効な形式であっても、このヘルパーが未対応のヘッダーや、ファイル内の後方にあるヘッダーでは、結果が部分的になることがありますが、オブジェクトが判読不能という意味ではありません。対応するヘッダーは、PNG IHDR、スキャンデータより前の JPEG SOF、GIF 論理画面、WebP VP8/VP8L/VP8X、BMP CORE/Windows INFO 系、最初のクラシック TIFF IFD です。BigTIFF と JPEG DNL による高さの復元には対応していません。ファイルの有効性、アニメーションやページの全フレーム、向き、色については、別途確認が必要です。ヘッダーの規則は、PNG、WebP、BMP CORE、および JPEG フレームリーダーに従います。
6段階のスカルプト
1. 確認
ジオメトリを計画する前に、すべてのビューを確認します。以下を記録します。
- 対象の境界、切り抜き、解像度、ぼけ、遮蔽、透明度、競合する被写体;
- 見えている前方・上方の手がかり、カメラ投影の手がかり、可能であればスケールの基準となるもの、ビュー間の整合性;
- 参照画像の識別情報と、向きや切り抜きの変換情報。鏡像化、ピクセルアスペクト比、レンズ歪み、比較対象となるアニメーションのフレームを含みます;
- 輪郭、ネガティブスペース、接触部、マテリアル領域、繰り返しの特徴のうち、直接確認できるもの;
- どの隠れた形状や物理的性質が仮定のままなのか。
目視確認だけで、根拠の判読性を次のように判定します。
readable:対象とその主要なシルエットが明確で、再構成方法を選べます;conditional:明示した仮定、範囲の縮小、または別のビューがあれば、有用な近似を作成できます;unreadable:対象の識別や特徴的な形状が曖昧すぎて、根拠に基づく再構成ができません。
根拠が conditional または unreadable で、対象の識別を決定づける特徴に影響する場合は、不足している最小限の情報を求めるか、主張する範囲を縮小して明示します。提供されたすべてのビューを確認し、判定に根拠があり、重要な不確実性がすべて明示されていれば、確認は完了です。
2. 分解する
オブジェクトの座標フレームと作成単位をそれぞれ1つに固定します。オブジェクトを大まかな部分から細かな部分へと分解します。
- マクロな塊と外形シルエット。
- メソ部品、開口部、接触部、ジョイント、反復する構造。
- 最も近い必要視点でも見えるマイクロ特徴。
- マテリアル領域と、観察可能な反応。
アイデンティティのアンカーに印を付けます。シルエットの変化、負の空間、特徴的なプロポーション、際立ったジョイント、反復するリズム、そして失われるとオブジェクトが別のものになってしまう局所的なマテリアルまたは幾何学的特徴が該当します。各アンカーは、明示的なコンポーネント、境界、フィールド、または検証対象として保持してください。後続の平均化によってアンカーが消える場合、再構築は失敗です。
すべての可視アイデンティティアンカーに1つずつ所有者があり、すべての子部品に親部品または接触相手が明記され、推定した部品がすべて画像から得られた証拠ではなく仮定として示されていれば、分解は完了です。
3. 表現を選択する
意味上の部品ごとに、アイデンティティのアンカーと将来の所有関係を保てる、最も低コストな表現を選びます。
- 解析的プリミティブまたは面取りしたプリミティブ。
- 回転体プロファイル。
- 平行移送スイープ。
- 形状の押し出し、または根拠のある CSG。
- インスタンス化、バッチ化、またはカードベースの反復ディテール。
- これらで対象を表現できない場合は、別途生成または変形を行うサーフェス。
これらの分岐を1つ以上選択した後、実装に入る前に、procedural object patterns の該当セクションを読み、構築と検証のルールを適用してください。
移動、取り外し、マテリアルの変更、ピッキング/衝突時の識別、またはアタッチメントの所有が必要な部品には、安定した論理IDと独立した変換/更新の所有関係を保持してください。親子階層上必要な場合は、別々のノードを使用してください。インスタンス化またはバッチ化された部品では、これらの操作を保持できる場合に、意味上の識別子とインスタンスとの安定した対応付けを使用できます。子部品が親部品に接触する、親部品に入り込む、親部品を軸に回転する、または親部品に追従する場合は、ブロックアウトの前に attachment and joint correctness を読んでください。
分解されたすべての部品に表現方法と所有者がそれぞれ1つだけ割り当てられ、却下した代替案すべてに具体的な失敗条件が示され、選択した分岐で必要となる条件付き参照がすべて適用されていれば、選択は完了です。
4. ブロックアウトする
マクロな塊、主要な開口部、座標フレーム、アイデンティティに不可欠な負の空間だけを構築します。実現可能性の評価または計画では、寸法を記入したプリミティブ/プロファイルのスケッチを作成します。実装では、対象リポジトリでレンダリング可能な粗いジオメトリを作成します。
ディテールを追加する前に、意図した比較用カメラを使用します。まず参照画像の向きとトリミングを正規化します。オブジェクトのプロポーションとは別にフレーミングと投影を合わせ、カメラの誤差をジオメトリに持ち込まないようにします。複数の視点がある場合は、画像ごとに異なるオブジェクトを当てはめるのではなく、モデルを1つに保ち、視点ごとにカメラを用意します。比較用の視点を固定する前に、不確実性を考慮したランドマークでキャリブレーションを行います。ジオメトリの回帰を隠すためにカメラを再調整しないでください。後続のアタッチメントやモーションに必要な意味上のノード境界を保持します。
必要なすべての視点でシルエットだけから対象を判別でき、主要なプロポーションと負の空間が宣言した許容誤差内に収まり、マテリアルやマイクロディテールに頼らずジオメトリとレイアウトで一致度を保てていれば、ブロックアウトは完了です。
5. 該当する分岐を段階的に精緻化する
依頼と証拠によって裏付けられる分岐のみを、次の順序で開きます。
- 構造: 中規模のパーツ、穴、継ぎ目、反復システム、取り付け基部を追加します。該当するすべての子要素に取り付け基準を適用し、先へ進む前に接触を確認します。
- 形状: ベベル、テーパー、曲げ、プロファイルの変化、キャップ、非対称性、シルエットに影響するレリーフを追加します。選択した表現のポール、継ぎ目、巻き方向、フレームに関する規則を適用します。
- マテリアル: ベースカラーとライティングを分けます。観察可能なラフネス、メタリック、クリアコート、透過、法線/バンプ/ディスプレイスメント、摩耗、ローカルマスクを実装します。ディテールは画面上の占有範囲に合わせて帯域を制限します。
- アクション: 依頼された用途で必要な場合に限り、安定したピボット、ソケット、独立したノード、取り外し可能なグループを追加します。コライダーが必要な場合は、各意味的パーツについて、コライダー表現、単位/座標系、適合許容差、レンダリング LOD とは別のコリジョン LOD を明記します。破壊が必要な場合は、安定した破壊可能グループ、継ぎ目と切断面、フラグメント ID/質量/ピボット、エフェクトソケットを作成します。作成したメタデータと物理ソルバーに関する主張は区別します。
- パフォーマンス: 測定した投影誤差に基づいて簡略化します。意味的な識別情報と更新の所有関係が維持される場合に限り、インスタンス化またはバッチ処理します。
分岐を開くたびに、次の分岐を開く前に、その分岐を識別アンカーと照合します。該当するすべての分岐がそれぞれの基準を満たし、省略された分岐が見落としではなく非該当であり、すべての識別アンカーが視認可能または構造的に表現されているとき、精緻化は完了です。
6. 検証する
コードの場合、対象リポジトリの構文/型/ビルドチェックと既存のキャプチャ手順を実行します。最終レンダリングを直接確認します。反復作業の間、比較に使用するカメラ、投影、フレーミング、ビューポート、露出、レビュー用ライティングを固定します。
次の順序で比較します。
- シルエット、プロポーション、ネガティブスペース。
- コンポーネントの配置、階層、接触、反復のリズム、依頼されたコライダーまたは破断構造。
- 形状の遷移と識別アンカー。
- ニュートラルな光と斜光の下でのマテリアルの反応。
- カメラと参照ライティングの一致。
不一致はそれぞれ、次のいずれかの原因に分類します。
ambiguity:証拠から答えを特定できません。視点/寸法を確認するか、主張の範囲を狭めます。decomposition:パーツ、境界、識別アンカーが欠けているか、所有関係が誤っています。ステージ 2 を見直します。implementation:選択した表現は正しいものの、ジオメトリ、マテリアル、階層、フィルタリングが誤っています。ステージ 4~5 を見直します。camera-lighting:フレーミング、投影、露出、照明により公平な比較ができません。モデルを評価する前にレビュー環境を修正します。
成果物が該当する分岐に応じたチェックに合格し、必要なすべての視点を指定された順序で確認し、残る不一致すべてに修正方針または明示的な制約が割り当てられ、最終報告で観察された忠実度と残る仮定が区別されているとき、検証は完了です。
結果
証拠の判読可能性に関する判定、証拠と仮定、分解と識別アンカー、表現の選択、各分岐の結果、検証の証拠、残る制約を報告します。実装の依頼では、対象コードを編集し、実際に確認したチェックと画像のみを報告します。