mcpField
U
unity-optimization

unity-optimization

github.com/besty0728開発1.9k85 回インストール今日更新
リポジトリ

unity-optimization について

Unity プロジェクト向けの最適化スキル群です。シーンやアセットを分析して問題候補を見つけ、テクスチャ、メッシュ、オーディオの圧縮設定を変更できます。

主な機能

  1. 01シーンの三角形数とマテリアル使用量の分析
  2. 02大きなアセットと重複マテリアルの検索
  3. 03透明オブジェクトのオーバードロー分析
  4. 04テクスチャ、メッシュ、オーディオ圧縮の一括調整
  5. 05Static フラグと LOD Group の設定

活用シーン

  1. 01高ポリゴンやマテリアル過多のシーン要素の特定
  2. 02サイズしきい値を超えるアセットの検索
  3. 03アセット圧縮設定の一括変更
  4. 04GameObject の Static フラグや LOD の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-optimization

インストール後、Claude Code で/unity-optimizationを入力して読み込まれたか確認します。

詳細

このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターでスキルを呼び出そうとしている場合は、いったん停止し、まずこのファイルを読むか、GET /skills/recommend?includeSchema=true でスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、そのまま dryRun に進んでかまいません。

トリガー

  • ビルドサイズの削減
  • アセットの一括圧縮
  • シーンのポリゴン数/マテリアル使用状況の分析
  • パッケージサイズの削減、アセットの一括圧縮、シーンのポリゴン数とマテリアル使用量の分析

最適化スキル

プロジェクトのアセット(テクスチャ、モデル)を最適化します。

動作モード

  • 承認:読み取り専用の分析系スキル(optimize_analyze_scene / optimize_find_large_assets / optimize_get_static_flags / optimize_find_duplicate_materials / optimize_analyze_overdraw、SkillMode.SemiAuto と表示)はそのまま実行します。書き込み系スキル(optimize_textures / optimize_mesh_compression / optimize_audio_compression / optimize_set_static_flags / optimize_set_lod_group、デフォルトは SkillMode.FullAuto)にはユーザーの許可が必要です。許可後は一度の実行で結果を返します。
  • 自動/バイパス:そのまま実行します。
  • このモジュールには Delete / PlayMode / Reload / RiskLevel=high に該当するスキルは含まれません —— 書き込み系スキルは Importer/コンポーネント設定を変更するため、アセットは再インポートされますが、Domain Reload は発生せず、IsForbiddenInSemi によってブロックされることもありません。一括操作の前には必ずフィルター範囲(filter / assetType)を確認してください。変更後に dry-run によるロールバックはできません。

禁止事項(よくある誤認):

  • optimize_scene / optimization_run は存在しません → 専用スキル(optimize_analyze_scene、optimize_find_large_assets、optimize_find_duplicate_materials など)を使用してください。
  • optimize_compress / optimize_compress_textures / optimize_compress_meshes / optimize_compress_audio は存在しません → optimize_textures(テクスチャ)、optimize_mesh_compression(メッシュ)、optimize_audio_compression(オーディオ)を使用してください。
  • optimize_set_lod / optimize_setup_lod は存在しません → optimize_set_lod_group を使用してください。
  • 最適化スキルは分析と実行のためのツールです。一括変更を適用する前に、必ず結果を確認してください。

振り分け:

  • プロファイラーのメトリクス → profiler モジュールを使用
  • 静的バッチングフラグ → optimize_set_static_flags(このモジュール)を使用
  • パフォーマンスレビューのガイダンス → performance アドバイザリーモジュールを読み込む

スキル

optimize_textures

テクスチャ設定(maxSize、圧縮)を最適化します。変更されたテクスチャの一覧を返します。

ParameterTypeRequiredDefaultDescription
maxTextureSizeintNo2048テクスチャの最大サイズ
enableCrunchboolNotrueCrunch 圧縮を有効にする
compressionQualityintNo50圧縮品質 0-100
filterstringNo""アセットフィルター

Returns: { success, count, message, modified }

optimize_mesh_compression

3D モデルのメッシュ圧縮を設定します。

ParameterTypeRequiredDefaultDescription
compressionLevelstringNo"Medium"圧縮レベル:Off/Low/Medium/High
filterstringNo""アセットフィルター

Returns: { success, count, compression, modified }

optimize_analyze_scene

パフォーマンスのボトルネック(ポリゴン数の多いメッシュ、過剰なマテリアル)を検出するため、シーンを分析します。

ParameterTypeRequiredDefaultDescription
polyThresholdintNo10000ポリゴン数の多いメッシュの警告しきい値となる三角形数
materialThresholdintNo5マテリアル数過多の警告しきい値となるマテリアルスロット数

Returns: { success, totalRenderers, totalTriangles, totalMaterialSlots, issueCount, issues }

optimize_find_large_assets

サイズのしきい値(KB)を超えるアセットを検索します。

ParameterTypeRequiredDefaultDescription
thresholdKBintNo1024サイズのしきい値(KB)
assetTypestringNo""アセットタイプのフィルター(例:Texture2D、AudioClip)
limitintNo50結果の最大数

Returns: { success, threshold, count, assets }

optimize_set_static_flags

GameObject に静的フラグを設定します。flags はカンマ区切りで、ContributeGI、OccluderStatic、OccludeeStatic、BatchingStatic、ReflectionProbeStatic と、非推奨の 2 つのメンバー NavigationStatic および OffMeshLinkGeneration から指定します。

Everything が意味するのは、非推奨ではない 5 つのフラグであり、文字どおりすべてではありません。 StaticEditorFlags には Everything も Nothing も宣言されていないため、この API が両方をエイリアスとして追加しています。Nothing はすべてのビットをクリアし、Everything は Unity の静的ドロップダウンに現在表示されるメンバーの OR であり、完全な 127 ではなく数値で 87 です。NavigationStatic と OffMeshLinkGeneration は非推奨で除外されているため、指定したい場合は名前を明示してください。列挙したパーツはすべて解決できなければなりません。不明な名前が 1 つでもあると、解析できた部分だけを適用するのではなく、呼び出し全体が失敗します。また、列挙型で宣言されたマスク外のビットを含む数値("999")も拒否されます。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
flagsstringいいえ"Everything"カンマ区切りの静的フラグ、または Everything / Nothing のエイリアス(上記参照)
includeChildrenboolいいえfalseすべての子に再帰的に適用します

戻り値: { success, gameObject, flags, affectedCount }

optimize_get_static_flags

GameObject の静的フラグを取得します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス

戻り値: { success, gameObject, flags, isStatic }

optimize_audio_compression

オーディオ圧縮を一括設定します。compressionFormat:PCM/Vorbis/ADPCM。loadType:DecompressOnLoad/CompressedInMemory/Streaming

パラメーター型必須デフォルト説明
compressionFormatstringいいえ"Vorbis"オーディオ圧縮形式:PCM/Vorbis/ADPCM
loadTypestringいいえ"CompressedInMemory"オーディオ読み込みタイプ:DecompressOnLoad/CompressedInMemory/Streaming
qualityfloatいいえ0.5圧縮品質 0.0-1.0
filterstringいいえ""アセットフィルター

戻り値: { success, count, compressionFormat, loadType, modified }

optimize_find_duplicate_materials

シェーダーとプロパティが同一のマテリアルを検索します。

パラメーター型必須デフォルト説明
limitintいいえ50返す重複グループの最大数

戻り値: { success, duplicateGroups, groups }

optimize_analyze_overdraw

オーバードローの原因となる可能性がある透明オブジェクトを分析します。

パラメーター型必須デフォルト説明
limitintいいえ50結果の最大数

戻り値: { success, transparentObjectCount, objects }

optimize_set_lod_group

LOD Group を追加または設定します。lodDistances:画面に対する相対高さのカンマ区切りリスト(例:'0.6,0.3,0.1')

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
lodDistancesstringいいえ"0.6,0.3,0.1"画面に対する相対的な遷移高さのカンマ区切りリスト

戻り値: { success, gameObject, lodLevels, distances }


正確なシグネチャ

正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなく GET /skills/schema または unity_skills.get_skill_schema() で定義されています。

コメント