リクエストを分類し、現在のプロジェクト状態を検査し、適切な移行パスを選択し、Built-In から URP への移行結果を慎重に検証します。
必須の実行参照
実際の移行や修復パスを実行する前に、プロジェクト設定、マテリアル、ポストプロセッシング、ライティング、プローブ、シーンを編集する最初の eval 呼び出しの前に必ず references/implementation-patterns.md を読んでください。これは、ロールバックの安全性がすでに確認されている場合でも、「このプロジェクトをURPに移行して」のような短いプロンプトに対して必須です。
このリソースを読み込めない場合は、この SKILL.md の埋め込みルールを使用し、信頼度を下げてください。意図やツールログだけから PPv2 変換、ライティング/プローブのリフレッシュ、または移行完了を主張しないでください。
重要なデフォルト動作
「この Built-In プロジェクトを URP に移行して」や「このプロジェクトを URP に移動して」のような単純なリクエストでは、直接変換に飛び込むのではなく、安全な移行ワークフローを開始または再開してください。
汎用的なアップグレードプロンプトでは、ユーザーがすべての移行リスクを明示する必要はありません。一般的な Built-In 依存関係(PPv2、ベイク済みライティング/ライトマップ、リフレクションプローブ、パーティクル/フォグ/スモークマテリアル、Quality レベル、カメラポストプロセッシング、代表的なシーンの検証)を検査し、適切に処理してください。
デフォルトの結果はフェーズベースです:
- プロジェクトが Built-In、部分的に移行済み、すでに URP、または HDRP のいずれかを検出します。
- リクエストを標準の 3D URP、URP 2D、選択マテリアル変換、計画のみ、またはトラブルシューティングに分類します。
- 変更を推奨する前に移行リスクを検査します:不透明マテリアル、パーティクル/VFXマテリアル、カスタムシェーダー、ポストプロセッシング、カメラエフェクト、ベイク済みライティング/ライトマップ/リフレクションプローブ、Quality レベル、代表的なシーン。
- ユーザーがブランチ、バックアップ、アーカイブ、使い捨てコピーなどのロールバックポイントを確認するまで、パイプラインを変更する作業の前で停止します。パイプライン変更作業には、URPのインストール、Graphics/Quality設定でのURPアセットの割り当て、コンバーターの実行、マテリアルやシーンの編集が含まれます。
- 次の移行フェーズを選択し、そのフェーズを実行し、出力を保存/再クエリし、フェーズステータスを報告します。
- カスタムシェーダー、
GrabPass、サーフェイスシェーダー、OnRenderImage、代替シェーダー、パッケージ所有シェーダーは、自動コンバーターの対象ではなく、スコープ外のフォローアップ作業として扱います。 - 完全な移行成功を宣言する前に、代表的なシーン、コンソール出力、カメラレンダリング、ライティング/ベイク済みGI状態、マテリアル、ポストプロセッシングの永続性、Quality レベルの割り当てを検証します。
デフォルトのフェーズ:
- フェーズ 0: 検査と計画。パイプライン状態、代表的なシーン、ロールバック安全性、PPv2、マテリアル/シェーダーのリスク、Quality レベル、ライティング/ライトマップ/プローブの状態、カスタムレンダーコードを検出します。
- フェーズ 1: URP セットアップとサポートされるマテリアル変換。URPをインストール/再利用し、Graphics/QualityにURPアセットを作成/割り当て、サポートされる不透明マテリアルとパーティクル/エフェクトマテリアルを変換し、Built-In シェーダーのままのサポート対象マテリアルがないことを確認します。
- フェーズ 2: ポストプロセッシングとカメラの移行。永続的なURP Volume プロファイルを作成し、シーン Volume/カメラポストプロセッシングを配線し、URP検証のためにレガシーPPv2を無効にし、SSRなどのサポートされないPPv2エフェクトを分類します。
- フェーズ 3: ライティング、ライトマップ、リフレクションプローブ。古いBuilt-Inライティング状態を解決し、URPライティング/プローブ設定を構成し、可能な場合は再ベイク/リフレッシュし、またはライティング/プローブを部分的と明確にマークします。
- フェーズ 4: 最終検証とレポート。プロジェクト状態を保存/リロード/再クエリし、代表的なシーンをキャプチャし、コンソールを確認し、完了/未完了/手動項目を報告します。
1ターンで、プロジェクトが小さくUnityが安定している場合は複数のフェーズを完了できますが、すべてのフェーズを1回の応答に詰め込もうとしないでください。過剰に「完了」と主張するよりも、誠実なフェーズ境界を優先してください。
構成に関する質問は、プロジェクト状態やユーザーの意図に本当に未解決の判断が残っている場合のみ行ってください。ユーザーが「ファイルを変更しないで」と言った場合は、監査/計画モードのままで、変換やアセット編集を行わないでください。
汎用アップグレード契約
ユーザーが汎用的な移行リクエストを行い、変更を許可した場合、プロジェクト状態から次のフェーズを駆動します:
- 検査前に既知の Built-In 機能をユーザーに列挙させないでください。自分で発見してください。
- PPv2、ベイク済みライティング、リフレクションプローブ、パーティクル/フォグ/スモークマテリアル、または複数の Quality レベルが存在する場合、それらを自動的に移行に含めてください。
- すべてを一度に完了するよりも、フェーズの完了を優先してください。各フェーズは出力を保存/再クエリし、
Phase complete、Phase partial、またはBlockedで終了する必要があります。 - Unityのコンパイル、パッケージインストール、ドメインリロード、または長時間のライティングベイクが処理を中断した場合、その中断をフェーズ境界として報告し、最初からやり直すのではなく、次のターンで保存された部分状態から再開してください。
- 正しい動作を得るためにユーザーが詳細なチェックリストプロンプトを書く必要があると想定しないでください。詳細なチェックリストはベンチマークやストレステスト用です。通常のユーザープロンプトでもこの段階的契約がトリガーされる必要があります。
- 汎用的な移行リクエストは検査と計画の許可を与えますが、ロールバック安全性を証明するものではありません。ロールバックポイントが確認されていない場合は、パッケージインストールやURP割り当ての前に停止し、確認を求めてください。バックアップの質問にたどり着くためだけにプロジェクトをマゼンタの部分状態のままにしないでください。
- ロールバックの安全性がすでに確認されている場合、またはユーザーがプロジェクトは使い捨てコピーであると言った場合は、日常的な作業については再度質問せずに現在のフェーズ内で続行してください。
- フェーズの終わりに、簡潔な次のフェーズのプロンプトを提示するか、次にどのフェーズを実行すべきかを示してください。新しいコストが高いまたはリスクの高い操作(長時間のライティングベイク、レガシーアセットの削除/クリーンアップ、カスタムシェーダーの書き換えなど)を導入する場合にのみ、次のフェーズの前に確認を求めてください。
- ロールバックの安全性が確認され、アクティブなフェーズ内の通常作業が未完了のままの場合、「続行しますか?」と尋ねないでください。そのフェーズのゲートが合格するか、ツール/ドメインリロードの境界が実行を中断するか、真に新しいリスクの高い判断が現れるまで、そのフェーズの修復を続けてください。
汎用移行成功ゲート
汎用的な移行が「成功した」、「完了した」、または「完全に移行した」と言う前に、ツールログだけでなく、保存されたプロジェクト状態を検証してください:
- Graphics設定とすべての関連する Quality レベルが目的の URP アセットを指していること。
- URPアセットに保存された状態で有効なデフォルトレンダラーがあり、現在のコンソール出力に「Default Renderer is missing」のような未解決のレンダーパイプラインエラーが含まれていないこと。割り当て後にレンダラーエラーが表示された場合は、保存されたレンダラーリスト/デフォルトインデックスを再クエリし、可能であれば古いコンソール出力をクリアし、新しいシーン/カメラ検証をトリガーし、「URPセットアップ完了」で停止するのではなく修復を続けてください。
- パーティクル/フォグ/スモークマテリアルを含むサポートされる Built-In マテリアルが URP 互換シェーダーを持っているか、未解決のカスタム/パッケージシェーダーケースとして明示的にリストされていること。テクスチャ付き/色付けされたソースマテリアルは、ソースマップ/色を保持する必要があります。
_BaseMapがない、または_BaseColorがすべて白の URP シェーダー割り当ては、ソースの_MainTexや_Colorに内容があった場合不完全です。パーティクル、フォグ、スモーク、スチーム、デカール、VFX、加算、透明エフェクトマテリアルは、無理やりUniversal Render Pipeline/Litに強制しないでください。適切な場合は、Universal Render Pipeline/Particles/Unlitなどの URP パーティクル/エフェクトシェーダーを優先してください。 - ソースシーンが PPv2 を使用していた場合、保存された URP