LAC Texture Compressor
複雑さに応じたテクスチャ圧縮コンポーネント
Texture Compressor は、アバターのテクスチャを分析し、その複雑さに基づいて圧縮します。複雑なテクスチャ(詳細なパターン、テキスト)は軽い圧縮を、シンプルなテクスチャ(単色、グラデーション)は強い圧縮を受けます。
使用方法
コンポーネントを追加
- アバターのルート GameObject(VRC Avatar Descriptor があるもの)を選択
- Inspector でAdd Componentをクリック
- Avatar Compressor > LAC Texture Compressorに移動、または「Texture Compressor」で検索
アバターをビルド
VRChat SDK から通常通りアバターをビルドします。コンポーネントは自動的に:
- アバター内のすべてのテクスチャを分析
- 複雑さに基づいて各テクスチャの圧縮レベルを計算
- 圧縮コピーを作成(元のファイルは変更されません)
- 圧縮テクスチャを使用するようマテリアルを更新
プリセット
ショーケースアバター向けの最小圧縮。
| 設定 | 値 |
|---|---|
| 除数範囲 | 1x - 2x |
| 解像度範囲 | 256px - 2048px |
| Min Source Size | 1024px |
| Skip If Smaller Than | 512px |
視覚的品質が最優先のアバターに最適です。
視覚的品質を優先しつつ、適度な圧縮を許容。
| 設定 | 値 |
|---|---|
| 除数範囲 | 1x - 4x |
| 解像度範囲 | 128px - 2048px |
| Min Source Size | 512px |
| Skip If Smaller Than | 256px |
品質を維持しながらファイルサイズを削減したい PC アバターに適しています。
品質とファイルサイズのバランスが良い。(推奨)
| 設定 | 値 |
|---|---|
| 除数範囲 | 1x - 8x |
| 解像度範囲 | 64px - 2048px |
| Min Source Size | 256px |
| Skip If Smaller Than | 128px |
ほとんどのアバターに推奨。良好な視覚的品質を維持しながら、大幅なファイルサイズ削減を提供します。
QuestアバターやVRAM制限向けの強い圧縮。
| 設定 | 値 |
|---|---|
| 除数範囲 | 2x - 8x |
| 解像度範囲 | 32px - 2048px |
| Min Source Size | 128px |
| Skip If Smaller Than | 64px |
Quest アバターや VRAM 使用量を大幅に削減する必要がある場合に使用します。
最大のファイルサイズ削減。
| 設定 | 値 |
|---|---|
| 除数範囲 | 2x - 16x |
| 解像度範囲 | 32px - 2048px |
| Min Source Size | 64px |
| Skip If Smaller Than | 32px |
このプリセットは視覚的品質に顕著な影響を与える可能性があります。
ファイルサイズが重要な場合に使用します。
ビルトインカスタムプリセット
上記のメインプリセットに加えて、カスタムプリセットのドロップダウンから中間プリセットを利用できます:
| プリセット | 位置 | 説明 |
|---|---|---|
| High Quality+ | High Quality より高品質 | 最高品質、最小限の処理 |
| Quality+ | High Quality と Quality の間 | Quality より高品質、より軽い圧縮 |
| Balanced+ | Quality と Balanced の間 | Balanced より高品質 |
| Aggressive+ | Balanced と Aggressive の間 | Aggressive より高品質 |
| Maximum+ | Aggressive と Maximum の間 | Maximum より高品質 |
これらのプリセットは、メインプリセットがニーズに合わない場合に、より細かい制御を提供します。
テクスチャフィルター
処理するテクスチャタイプを制御:
| フィルター | 説明 |
|---|---|
| Process Main Textures | カラー/アルベドテクスチャ(_MainTex、_BaseMap等) |
| Process Normal Maps | ノーマル/バンプマップ(_BumpMap、_NormalMap等) |
| Process Emission Maps | エミッションテクスチャ(_EmissionMap等) |
| Process Other Textures | メタリック、ラフネス、その他のテクスチャ |
パス除外
特定のアセットパスのテクスチャを圧縮から除外できます。以下の場合に便利です:
- 一時的なアセットを生成するツールのテクスチャを除外
- 変更すべきでない特定パッケージのテクスチャを保持
デフォルトでは、以下のパスが除外されています:
| パス | 説明 |
|---|---|
Packages/com.vrcfury.temp/ | VRCFury 一時ファイル |
コンポーネントの Inspector で Path Exclusions からカスタムパスプレフィックスを追加できます。これらのプレフィックスで始まるアセットパスを持つテクスチャはスキップされます。
プレビュー
Inspector でPreview Compression Resultsをクリックすると、ビルド前に圧縮分析を確認できます。
検索とフィルター
プレビュー上部の検索ボックスを使用して、テクスチャ名でフィルタリングできます:
- 標準検索: テクスチャ名の一部を入力してリストをフィルタリング(大文字小文字区別なし)
- ファジー検索: 「Fuzzy」ボタンをクリックしてファジー検索を有効にすると、1文字までのタイプミスを許容します
検索中は、セクションヘッダーにフィルタリング結果の件数(例:「Preview (3/10 shown)」)と非表示テクスチャ数が表示されます。
サマリー
プレビューには合計サイズの統計が表示されます:
| メトリック | 説明 |
|---|---|
| Original | すべてのテクスチャの非圧縮合計サイズ |
| After | 圧縮後の推定サイズ |
| Savings | 削減されたパーセンテージとバイト数 |
| Memory (Est) | 圧縮後の推定 VRAM メモリ使用量 |
テクスチャリスト
各テクスチャについて、プレビューには以下が表示されます:
- テクスチャサムネイル - クリックすると Project ウィンドウでテクスチャがハイライトされます
- テクスチャ名とタイプ(Main、Normal、Emission、Other)
- 複雑さスコア(0.0 - 1.0)と視覚的なプログレスバー
- サイズ変更 - 元の解像度 → 推奨解像度(除数付き)
- 予測フォーマット - 予想される圧縮フォーマット(例:BC7、DXT5、ASTC_4x4)
- Freeze ボタン - クリックしてテクスチャを手動設定で凍結(凍結テクスチャを参照)
テクスチャサムネイルをクリックすると、Project ウィンドウでテクスチャアセットをすばやく見つけて選択できます。
複雑さスコアの解釈
| スコア | レベル | 圧縮 |
|---|---|---|
| < 0.2 | 非常に低い | 強い圧縮を適用 |
| 0.2 - 0.4 | 低い | 圧縮に適している |
| 0.4 - 0.6 | 中程度 | 適度な圧縮 |
| 0.6 - 0.8 | 高い | 軽い圧縮のみ |
| ≥ 0.8 | 非常に高い | 最小限の圧縮 |
スキップされたテクスチャ
処理されないテクスチャは、スキップ理由とともに別途表示されます:
- Too small: テクスチャが最小サイズしきい値より小さい
- Filtered by type: テクスチャタイプがフィルターで無効化されている
- User frozen (skipped): テクスチャが「Skip compression」有効で凍結されている
- Runtime generated: アセットパスを持たないテクスチャ(ビルド中に動的に生成)
- Excluded path: テクスチャのアセットパスがパス除外パターンに一致
プレビューは自動的に更新されません。プレビュー生成後に設定を変更した場合、ボタンを再度クリックして更新するよう警告が表示されます。
凍結テクスチャ
凍結テクスチャを使用すると、特定のテクスチャの圧縮設定を手動でオーバーライドできます。以下の場合に便利です:
- 自動圧縮が重要なテクスチャに対して強すぎる場合
- 特定のテクスチャをフル品質で保持したい場合
- 特定のテクスチャに特定の圧縮フォーマットを使用する必要がある場合
テクスチャを凍結する
- Preview Compression Resultsをクリックしてテクスチャを分析
- 凍結したいテクスチャをリストで見つける
- テクスチャの横にあるFreezeボタンをクリック
テクスチャは「Frozen Textures」セクションに移動し、手動コントロールが表示されます。
凍結テクスチャの設定
各凍結テクスチャについて、以下を設定できます:
| 設定 | 説明 |
|---|---|
| Skip compression | 有効時、テクスチャは圧縮から完全に除外される |
| Divisor | 手動解像度除数(1、2、4、8、または 16) |
| Format | 圧縮フォーマットのオーバーライド(Auto、DXT1、DXT5、BC5、BC7、ASTC) |
Skip compressionが有効な場合、テクスチャは処理されないため、DivisorとFormat設定は無効になります。
利用可能なフォーマット
| フォーマット | 説明 | プラットフォーム |
|---|---|---|
| Auto | 自動フォーマット選択 | すべて |
| DXT1 | RGB のみ、4 bpp(効率的) | Desktop |
| DXT5 | RGBA、8 bpp(アルファ付き) | Desktop |
| BC5 | ノーマルマップ、8 bpp | Desktop |
| BC7 | 最高品質、8 bpp | Desktop |
| ASTC_4x4 | モバイル最高品質、8 bpp | Mobile |
| ASTC_6x6 | モバイルバランス、3.56 bpp | Mobile |
| ASTC_8x8 | モバイル効率的、2 bpp | Mobile |
テクスチャを解凍する
手動オーバーライドを削除して自動圧縮に戻すには:
- Frozen Texturesセクションでテクスチャを見つける
- Unfreezeボタンをクリック
テクスチャは通常の自動処理に戻ります。
凍結テクスチャのアセットファイルが移動または削除された場合、Frozen Textures セクションに警告が表示されます。リストを整理するために、そのようなテクスチャを解凍してください。
カスタムプリセット
カスタムプリセットを使用すると、圧縮設定を再利用可能な ScriptableObject アセットとして保存できます。以下の場合に便利です:
- 複数のアバター間で設定を共有
- プラットフォーム固有の設定を作成(例:「PC/High Detail」「Quest/Optimized」)
- プロジェクト間で一貫した圧縮設定を維持
カスタムプリセットの作成
- コンポーネントを Custom モードに設定
- 希望の設定を構成
- プリセットフィールドの横にある + ボタンをクリック
- 新しいプリセットの保存場所と名前を選択
現在の設定が新しいプリセットに自動的に保存されます。
- Project ウィンドウで右クリック
- Create > Avatar Compressor > Texture Compressor > CustomTextureCompressorPreset を選択
- プリセットに名前を付け、Inspector で設定を構成
- Menu Path フィールドを設定して、ドロップダウンメニューに表示されるようにする
カスタムプリセットの使用
- コンポーネントを Custom モードに設定
- Custom Preset ボタンをクリック
- 階層メニューからプリセットを選択
Menu Path が設定されているプリセットのみがドロップダウンメニューに表示されます。Menu Path のないプリセットは、プリセットフィールドにドラッグすることで割り当てできます。
Use-Only Mode と Edit Mode
Custom Preset ボタンからプリセットを選択すると、コンポーネントは Use-Only Mode になります:
| モード | 説明 |
|---|---|
| Use-Only Mode | 設定は読み取り専用で、プリセットのサマリーを表示 |
| Edit Mode | 設定を変更するためのフルアクセス(Edit をクリックして切替) |
Use-Only Mode では:
- 設定サマリーが現在の構成を一目で表示
- プリセットに Description が設定されている場合は表示
- Edit をクリックして Edit Mode に切り替え
プリセット編集の制限
一部のプリセットは直接編集できません:
| 制限タイプ | アイコン | 説明 |
|---|---|---|
| ロック済み | 🔒 | ユーザーがロックしたプリセット(Lock フィールドが有効) |
| ビルトイン | 🔒 | Avatar Compressor パッケージに同梱 |
| 外部パッケージ | 🔒 | 他のパッケージから(例:プリセットパック) |
制限されたプリセットを編集しようとすると:
- 確認ダイアログが表示されます
- Unlink を選択して編集を続行(設定がローカルにコピーされます)
- または Cancel でプリセットのリンクを維持
プリセット設定の管理
これらのアクションは、プリセットフィールドの横にあるアイコンボタンとして利用できます:
| ボタン | アクション | 説明 |
|---|---|---|
| ↓ | Save | 現在の設定をリンクされたプリセットに保存(編集可能な場合) |
| ↩ | Discard | プリセットから設定を再読み込みし、ローカル変更を破棄 |
| + | Create | 現在の設定から新しいプリセットを作成 |
| ✕ | Unlink | 現在の設定を維持したままプリセットとの接続を解除 |
アイコンボタンにカーソルを合わせると、各アクションの説明がツールチップで表示されます。
同期インジケーターは、ローカル設定がプリセットと一致しているかを表示します:
- Modified: ローカル設定がプリセットと異なる
- Synced: 設定がリンクされたプリセットと一致
プリセット設定
Inspector でカスタムプリセットアセットを編集する場合:
| フィールド | 説明 |
|---|---|
| Menu Path | ドロップダウンでの階層パス(例:「PC/High Detail」) |
| Menu Order | メニューでの表示順(小さい値が先に表示、デフォルト:1000) |
| Description | Use-Only Mode で表示されるオプションの説明 |
| Lock | このプリセットへの誤った変更を防止 |
詳細設定
これらの設定はCustomプリセットを使用している場合に利用可能です。
互換性
Texture Compressor は NDMF Optimizing フェーズ中に実行され、Modular Avatar の後、TexTransTool や Avatar Optimizer の前に動作します。これにより、アバターセットアップツールとの適切な統合を確保しながら、最終的なアバター最適化の前にテクスチャを最適化します。