asset-optimization
25
总安装量
18
周安装量
#14696
全站排名
安装命令
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-game-developer --skill asset-optimization
Agent 安装分布
claude-code
15
codex
11
gemini-cli
11
opencode
11
antigravity
9
cursor
8
Skill 文档
Asset Optimization
Asset Pipeline Overview
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ASSET PIPELINE FLOW â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SOURCE ASSETS (Large, Editable): â
â .psd, .fbx, .blend, .wav, .tga â
â â â
â IMPORT SETTINGS: â
â Compression, Format, Quality, Platform overrides â
â â â
â PROCESSING: â
â Compression, Mipmaps, LOD generation, Format conversion â
â â â
â RUNTIME ASSETS (Optimized): â
â .dds, .ktx, .ogg, engine-specific formats â
â â â
â PACKAGING: â
â Asset bundles, streaming chunks, platform builds â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Texture Optimization
TEXTURE COMPRESSION FORMATS:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PLATFORM â FORMAT â QUALITY â SIZE/PIXEL â
âââââââââââââââ¼ââââââââââââââ¼âââââââââââ¼âââââââââââââââââââââ¤
â PC/Console â BC7 â Best â 1 byte â
â PC/Console â BC1 (DXT1) â Good â 0.5 byte â
â iOS â ASTC 6x6 â Great â 0.89 byte â
â Android â ETC2 â Good â 0.5-1 byte â
â Mobile â ASTC 8x8 â Good â 0.5 byte â
â Uncompressedâ RGBA32 â Perfect â 4 bytes â
âââââââââââââââ´ââââââââââââââ´âââââââââââ´âââââââââââââââââââââ
TEXTURE SIZE GUIDELINES:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Character (main): 2048x2048 â
â Character (NPC): 1024x1024 â
â Props (large): 1024x1024 â
â Props (small): 512x512 or 256x256 â
â UI elements: Power of 2, vary by size â
â Environment: 2048x2048 (tiling) â
â Mobile maximum: 1024x1024 (prefer 512) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Mesh Optimization
POLYGON BUDGET GUIDELINES:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PLATFORM â HERO CHAR â NPC â PROP â SCENE â
âââââââââââââââ¼ââââââââââââ¼âââââââââââ¼âââââââââââ¼ââââââââââââ¤
â PC High â 100K â 30K â 10K â 10M â
â PC Med â 50K â 15K â 5K â 5M â
â Console â 80K â 25K â 8K â 8M â
â Mobile â 10K â 3K â 500 â 500K â
â VR â 30K â 10K â 2K â 2M â
âââââââââââââââ´ââââââââââââ´âââââââââââ´âââââââââââ´ââââââââââââ
LOD CONFIGURATION:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â LOD0: 100% triangles â 0-10m â Full detail â
â LOD1: 50% triangles â 10-30m â Reduced â
â LOD2: 25% triangles â 30-60m â Low detail â
â LOD3: 10% triangles â 60m+ â Billboard/Impostor â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Audio Optimization
AUDIO COMPRESSION:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â TYPE â FORMAT â QUALITY â STREAMING â
âââââââââââââââ¼ââââââââââ¼ââââââââââââ¼âââââââââââââââââââââââ¤
â Music â Vorbis â 128-192 â Always stream â
â SFX (short) â ADPCM â High â Decompress on load â
â SFX (long) â Vorbis â 128 â Stream if > 1MB â
â Voice â Vorbis â 96-128 â Stream â
â Ambient â Vorbis â 96 â Stream â
âââââââââââââââ´ââââââââââ´ââââââââââââ´âââââââââââââââââââââââ
AUDIO MEMORY BUDGET:
⢠Mobile: 20-50 MB
⢠Console: 100-200 MB
⢠PC: 200-500 MB
Batch Processing Script
# â
Production-Ready: Asset Batch Processor
import subprocess
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor
def process_textures(input_dir: Path, output_dir: Path, platform: str):
"""Batch process textures for target platform."""
settings = {
'pc': {'format': 'bc7', 'max_size': 4096},
'mobile': {'format': 'astc', 'max_size': 1024},
'console': {'format': 'bc7', 'max_size': 2048},
}
config = settings.get(platform, settings['pc'])
textures = list(input_dir.glob('**/*.png')) + list(input_dir.glob('**/*.tga'))
def process_single(texture: Path):
output_path = output_dir / texture.relative_to(input_dir)
output_path = output_path.with_suffix('.dds')
output_path.parent.mkdir(parents=True, exist_ok=True)
subprocess.run([
'texconv',
'-f', config['format'],
'-w', str(config['max_size']),
'-h', str(config['max_size']),
'-m', '0', # Generate all mipmaps
'-o', str(output_path.parent),
str(texture)
])
with ThreadPoolExecutor(max_workers=8) as executor:
executor.map(process_single, textures)
ð§ Troubleshooting
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PROBLEM: Build size too large â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SOLUTIONS: â
â â Audit unused assets â
â â Increase texture compression â
â â Enable mesh compression â
â â Split into downloadable content â
â â Use texture atlases â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PROBLEM: Long import times â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SOLUTIONS: â
â â Use asset database caching â
â â Import in batches â
â â Use faster SSD storage â
â â Pre-process assets in CI/CD â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PROBLEM: Assets look blurry â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SOLUTIONS: â
â â Reduce compression for important assets â
â â Increase texture resolution â
â â Check mipmap settings â
â â Use appropriate filtering mode â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Memory Budgets
| Platform | Textures | Meshes | Audio | Total |
|---|---|---|---|---|
| Mobile Low | 100 MB | 50 MB | 30 MB | 200 MB |
| Mobile High | 500 MB | 200 MB | 100 MB | 1 GB |
| Console | 2 GB | 1 GB | 200 MB | 4 GB |
| PC | 4 GB | 2 GB | 500 MB | 8 GB |
Use this skill: When optimizing assets, managing memory, or streamlining pipelines.