Smart Asset Finder

Features

Complete reference for all Smart Asset Finder capabilities.

How It Works

Smart Asset Finder uses CLIP (Contrastive Language-Image Pre-training) to understand both images and text in the same 512-dimensional vector space.

Process:

  1. Your query (e.g., “red sword”) is encoded into a 512-dim vector
  2. Asset thumbnails are encoded into 512-dim vectors during indexing
  3. Cosine similarity computes how “close” your query is to each asset
  4. Results ranked by similarity score (0.0-1.0, displayed as 0-100%)

Supported Languages

Search in multiple languages:

LanguageStatusExample
EnglishFully tested”red sword”
ChineseFully tested”红色武器”
JapaneseFully tested”赤い剣”
KoreanFully tested”빨간 무기”
GermanFully tested”rotes Schwert”
FrenchFully tested”épée rouge”
SpanishFully tested”espada roja”
RussianFully tested”красный меч”

Note: The underlying AI model (XLM-RoBERTa) supports additional languages, but only the above are tested with Unreal Editor’s input system.

Search Tips

Be descriptive:

✅ "weathered stone wall texture"
✅ "glowing blue magic crystal"
❌ "texture"
❌ "thing"

Use visual keywords:

✅ "rusty"        (describes appearance)
✅ "glowing"      (visual effect)
✅ "dark fantasy" (art style)

Try synonyms:

  • “sword” vs “blade”
  • “fire” vs “flame” vs “burning”
  • “stone” vs “rock”

Index Management

Building the Index

Manual Rebuild

  • Click Index Assets button
  • Scans all assets in configured paths
  • Replaces existing index
  • Use when: First-time setup, major project changes

Incremental Update

  • Auto-update processes changes in small batches in the background
  • Only reindexes new/modified assets
  • May cause brief editor hitching during thumbnail generation
  • Use when: Normal development workflow

Index Files

Location: YourProject/Saved/SmartAssetFinder/

Files:

  • metadata.json - Index metadata (version, timestamp, asset count)
  • index_data.bin - Binary feature vectors and thumbnails

Size estimate: ~100MB per 1000 assets

Index Operations

Rebuild: Replace entire index

Click: Index Assets button

Clear: Delete index (forces rebuild on next search)

Delete: Saved/SmartAssetFinder/ folder

Backup: Copy index to another location

Copy: Saved/SmartAssetFinder/ folder

Restore: Replace index with backup

Replace: Saved/SmartAssetFinder/ folder
Restart editor

Auto-Update System

Automatic Monitoring

Auto-update watches for:

  • New assets: Added via import or copy
  • Modified assets: Reimported or changed
  • Deleted assets: Removed from project
  • Renamed assets: Treated as delete + add

Monitoring Lifecycle

  1. Detection: Asset Registry fires change event
  2. Queueing: Asset added to update queue
  3. Debouncing: Wait for debounce time (default 3s)
  4. Processing: Process batch of queued assets
  5. Indexing: Generate thumbnail + extract features
  6. Saving: Update index on disk

Status Indicators

Button color:

  • 🟢 Green: Enabled, idle
  • 🟡 Yellow: Processing queued assets
  • Gray: Disabled

Status bar:

Auto-Update: Idle (0 pending)
Auto-Update: Processing (5 pending)
Auto-Update: Paused (PIE active)

Pause Conditions

Auto-update pauses when:

  • Playing in Editor (PIE): Avoids performance impact during testing
  • Packaging: Disabled during cook/package operations
  • Manually disabled: Click Auto-Update button to toggle

Queue Management

Queue limits:

  • Default max: 100 assets
  • Configurable in settings
  • Warns user if exceeded

Bulk imports:

  • Disable auto-update before importing 100+ assets
  • Re-enable after import completes
  • Click Index Assets for immediate rebuild

Asset Type Support

Supported Types

Asset TypePriorityThumbnail Provider
Texture2D100Texture2DThumbnailProvider
StaticMesh90StaticMeshThumbnailProvider
Material85MaterialThumbnailProvider
SkeletalMesh80SkeletalMeshThumbnailProvider
ParticleSystem (Cascade)75ParticleSystemThumbnailProvider
NiagaraSystem74NiagaraSystemThumbnailProvider

Note: MaterialInstance uses MaterialThumbnailProvider. PaperSprite uses generic provider.

Niagara Thumbnail Limitation

NiagaraSystem assets require manual thumbnail setup in the Niagara Editor. Unlike other asset types, Niagara does not auto-generate thumbnails.

To set a Niagara thumbnail:

  1. Open the Niagara System in the editor
  2. In the Details panel, find the Thumbnail Image property
  3. Assign a Texture2D as the thumbnail

Assets without a manually set thumbnail will appear with a default icon in search results.

Thumbnail Generation

Process:

  1. Load asset on GameThread
  2. Render using UE’s ThumbnailManager
  3. Convert BGRA → RGBA format
  4. Resize to 224×224 pixels
  5. Encode with CLIP image encoder

Quality: High-quality 224×224 RGBA (200KB per asset)

UI Features

View Modes

Tile View

  • Layout: Grid of large thumbnails
  • Best for: Visual browsing, art asset selection
  • Controls: Thumbnail size slider

Filters

Asset type filters:

  • Toggle individual types on/off
  • Shows count per type: Materials (42)
  • Auto-disables types not in index

Quick actions:

  • Select All: Enable all filters
  • Clear All: Disable all filters

Behavior:

  • Empty selection = no results (Content Browser pattern)
  • Changes apply instantly

Context Menu

Right-click any asset for:

Actions:

  • Open Asset: Open in appropriate editor
  • Find in Content Browser: Locate in Content Browser

Clipboard:

  • Copy Asset Path: Full object path
  • Copy Reference: Asset reference for code

File System:

  • Show in Explorer: Open containing folder

Drag & Drop

Supported targets:

  • Viewport (place in scene)
  • Material Editor (add to material graph)
  • Blueprint Editor (create variable/reference)
  • Content Browser (copy/move)

Usage: Left-click and drag asset tile to target

Thumbnail Scaling

Control: Slider in top toolbar

Range: 10% - 100% of base size (128px)

Result size: 64px - 128px thumbnails

Use case:

  • Large: Detailed preview, fewer visible
  • Small: See more results at once

Performance Features

Batch Processing

Index builds:

  • Process assets in configurable batches
  • Prevents memory spikes
  • Shows per-batch timing and ETA

Auto-updates:

  • Smaller batches for responsiveness
  • Queue system prevents overload
  • Debouncing reduces redundant work

Multi-Threading

ONNX inference:

  • Auto-detects CPU cores
  • Default: 50% of cores
  • Configurable: 0 (auto), 1-16 (fixed)

Async operations:

  • Thumbnail generation on GameThread
  • Feature extraction on ThreadPool
  • File I/O on background threads

Caching

Index persistence:

  • Binary format for fast load/save
  • Incremental saves on changes
  • Version-compatible format

Thumbnail cache:

  • Stored in index (no regeneration)
  • Cleared on asset reimport
  • Memory-efficient format

Advanced Features

Settings Integration

Configuration UI:

  • Integrated with UE’s DeveloperSettings
  • Persisted in Config/ files
  • Per-project settings

Access: Edit → Editor Preferences → Plugins → Smart Asset Finder

Progress Tracking

Status bar shows:

  • Operation name
  • Progress percentage
  • ETA (estimated time remaining)
  • Asset counts (recognized/pending/failed)

Progress bar:

  • Visual feedback during index build
  • Color changes on completion
  • Cancel button when available

Error Handling

Graceful failures:

  • Failed assets logged to Output Log
  • Continues processing remaining assets
  • Shows failed count in status

Common errors:

  • Missing thumbnail provider (logs warning, skips asset)
  • Asset load failure (logs error, skips asset)
  • ONNX inference error (logs error, skips asset)

Logging

Log categories:

  • LogTemp - General plugin messages
  • [IndexManager] - Index operations
  • [ProviderName] - Thumbnail provider messages

Verbosity:

  • Normal: Important events only
  • Detailed: Enable in settings for debug info

Limitations

Current Limitations

  1. Linear search: No spatial indexing (future: Top-K optimization)
  2. CPU only: No GPU acceleration
  3. Visual assets only: No audio/animation support
  4. Windows only: macOS/Linux planned
  5. English UI: Interface in English (search is multilingual)

Not Supported

Audio assets: SoundWave, SoundCue (no visual representation) ❌ Animation: AnimSequence, AnimBP (not visual search target) ❌ Blueprints: Blueprint classes (no thumbnail) ❌ Text-only search: No filename/metadata search (use Content Browser)

Next Steps