polywright-references は何をしますか?
リファレンスは3Dの結果の大部分を決定します。image-to-3D モデルは入力画像の照明、遠近感、ミスをそのままコピーします。モデラーや bpy スクリプトが必要とするのは寸法とビューです。これらを最初に収集または生成し、アセットの refs/ に配置し、それぞれを pw.py manifest --add-source で記録します(生成されたものはモデル名とシードを記録します)。
ハブに戻る: ../polywright/SKILL.md。プロンプトテンプレートとチェック: references/reference-kit.md。
ステップ 1: このモデルに必要なもの
| モデル | 収集(現実) | 生成(想像または不足分) |
|---|---|---|
| 現実の物体 | 定規を同じ平面に置いた6方向からの写真、接写、実寸(メーカーシート、Wikipedia、メジャー) | 写真が不十分な場合のみ正投影のクリーンアップ |
| 乗り物、製品、家具 | 青写真またはCAD図面(既知の寸法を1つ確認)、メーカー寸法 | フロント、サイド、トップの工業製図スタイルの立面図 |
| 建築物 | フットプリント(OSM)、高さまたは階数、各面の写真、屋根の形状 | 面ごとの立面図、屋根平面図 |
| 実在の場所 | 地図の抜粋、標高、航空写真、ランドマークの地上写真 | なし:場所はデータから得られます(polywright-capture) |
| 想像上の小道具 | スタイルリファレンス | 斜めからのヒーロー画像1枚、次にフロント/レフト/バック/ライトを同じスケールで |
| キャラクターまたは生き物 | スタイルと衣装のリファレンス | ターンアラウンド:フロント、サイド、バック、斜め、Aポーズ、ハイトバー、無地背景 |
| サーフェス(壁、地面、地形) | 素材の写真、平らで均一な照明 | シームレスタイル可能なアルベド、次にマップ(ステップ4) |
常にスケール基準を追加してください:既知の寸法、1.8 mの人間のシルエット、シート上のハイトバー。
歴史リサーチパック(historywright プラグインによって作成された、answer.md、refs/index.json、anachronism.md を格納したフォルダ)は、すでに有効なアセットフォルダです。そこから開始し、再度検索しないでください。refs/index.json を読んでください:各リファレンスには、オブジェクト自体の日付、場所、機関、登録番号、ライセンスがあります。ブリーフの期間に合致する object_date を持つリファレンスのみを使用してください。nc: true のリファレンスを商用モデルに使用しないでください。メッシュ化する前に、生成されたすべてのビューを anachronism.md と照合してください。
ステップ 2: ビューの生成(重要なルール)
画像ツールに依頼すること:1つのオブジェクト、中央、フレームの約3分の2を占めるように、無地の白または薄灰色の背景、フラットで均一な影のない光、強い遠近感なし(長焦点または正投影風)、1024 px以上、テキストなし。キャラクターはリラックスしたAポーズ(腕を30〜45度下げ、脚を少し開く)で立たせます:Tポーズはプロポーションを歪め、アクションポーズはジェネレーターやリガーで失敗します。種類ごとのテンプレートはキットにあります。
1つの画像から一貫した追加ビューを得るには、マルチアングルアダプターを備えた画像編集モデル(Qwen Image Edit with a Multiple Angles LoRA、2025-2026)を使用すると、各ビューを個別にプロンプトするよりもアイデンティティを維持できます。色ずれが予想されるため、各ビューをフロントにカラーマッチしてください。生成されたすべてのビューをフロントと照合してください:同じプロポーション、同じ腕の数、同じアイテム、再照準されていないこと。矛盾するビューは破棄してください。間違った背面図は、ないよりも悪いです。実際のオブジェクトの色は、ピクセル(中央値の色相、彩度、明度)から名前を付け、単語からは付けないでください:編集モデルは画像よりも単語を優先します(L-003)。背面図はフロントのマークを背面にコピーする傾向があります。
Z-Image Turbo ホスト用の既成ワークフロー: references/zimage-reference.api.json({SUBJECT} プレースホルダー、2026-10-11 テスト済み)。
ステップ 2b: デザインされた小道具のシートはモデルから作成する
小道具がデザインされている場合(武器、道具、乗り物の部品が言葉やファンシートで説明されている)、テキストプロンプトが形状の半分しか提供し続けない場合、プロンプトをやめてください:bpy スクリプト(polywright-blender レシピ「A designed prop from a written description」)でモデルを構築し、モデルからシートをレンダリングします。サイドとトップの正投影、フラットなミッドグレー上、GPU がビジーな場合は CPU で Cycles を使用します。モデルは正確で、各ノートの後に数秒で再レンダリングでき、同じファイルが後で小道具を画像に合成します(ハブ:「Compose a model into a picture」)。パーツが鏡像ペアで登場する場合、または一方が他方の後ろに隠れる場合、サイドカメラを10〜15度上げてください。
ステップ 3: ブロックアウトからのビュー(ビューが一致しない場合)
ラフなブロックアウト(プリミティブ、または最初のフロントのみの生成メッシュ)を構築し、pw.py render <file> --out refs/blockout --views front,right,back,left --color clay でレンダリングし、次に画像編集モデルに各グレーのレンダリングを被写体の色と詳細で再ペイントさせます(レンダリングを最初のリファレンス、フロントビューを2番目のリファレンスとして image-to-image)。カメラだけが動くため、再照準されたり、余分な手足が生えたりすることはありません。背面はブロックアウトが示唆するものしか表示できません。ペイントし直したセットをマルチビュー生成にフィードします。
ステップ 4: テクスチャとマテリアル
- 生成されたものよりも CC0 マテリアル(Poly Haven、ambientCG)を優先します。
- 生成されたタイル可能テクスチャ:「seamless, tileable, top-down, flat even light」を2の累乗サイズで依頼し、次に
pw.py texture <img> --out refs/tex --seamless(オフセットブレンドでシームを処理)を実行し、2x2 タイリングを確認します。 - 写真やアルベドからのクイックマップ:
pw.py texture <img> --out refs/tex [--convention opengl|directx]は、輝度から導出されたハイト、ノーマル、ラフネスを書き出します。小道具や地形には適していますが、測定されたマテリアルには不適切です。ノーマルマップ:Blender、Unity、Godot、glTF、three.js、Roblox では OpenGL(Y+)、Unreal では DirectX(Y-)を使用します。 - 写真のベイクされた光はアルベドにもベイクされます:上流でフラットな光で修正するか、
--delightを追加します(広域グラデーションを分割します。鋭いキャストシャドウは残るため、それらをペイントで除去します)。ノーマルマップはシェーディングのみを変更します:シルエットはフラットなままで、大きな形状はグレージング角度で壊れるため、大きな形状はモデリングし、マップには小さな詳細のみを配置します。
ステップ 5: それらを活用する
- Blender の場合:フロント、ライト、トップビューに参照画像を空オブジェクトとして配置し、既知の寸法にスケーリングします(
pw.py renderからの正投影レンダリングはmetres_per_pxを報告します)。レシピは polywright-blender にあります。 - image-to-3D の場合:正方形、パディング済み、1024 px。
pw.py genはパディングと背景除去を自動で行います。GPU 実行前に画像を評価し、メッシュではなく画像で修正すべき点を判断してください:references/images-for-3d.md。 - 人間用のボード(PureRef 2.1)の場合:ビューごとにグループ化し、ボードに寸法を記入します。
メンテナンス
常緑ユニット、階層 fast。コンパニオン:RESEARCH.md、CHANGELOG.md、LEARNINGS.md、TESTS.md(evals/evals.json を含む)、MAINTENANCE.md、状態は evergreen.json に。使用時に evergreen.json を読み、期限が来たら更新してください。