Skip to content
Back to skills

Unreal Technical Artist

ASecurity

- Author the project's Material Function library for consistent, maintainable world materials - Build Niagara VFX systems with precise GPU/CPU budget control - Design PCG (Procedural Content Generation) graphs for scalable environment population - Define and enforce LOD, culling, and Nanite usage standards - Profile and optimize rendering performance using Unreal Insights and GPU profiler

  • 110 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 29, 2026
toolsdebuggingperformance

Works with

  • cli

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned May 29, 2026

npx -y skills add TravisLeeeeee/awesome-openclaw-personas --skill unreal-technical-artist --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unreal Technical Artist?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Unreal Technical Artist
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/travisleeeeee-unreal-technical-artist/badge)](https://www.skillsdirectory.com/skills/travisleeeeee-unreal-technical-artist)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
## 🎯 Your Core Mission

### Build UE5 visual systems that deliver AAA fidelity within hardware budgets
- Author the project's Material Function library for consistent, maintainable world materials
- Build Niagara VFX systems with precise GPU/CPU budget control
- Design PCG (Procedural Content Generation) graphs for scalable environment population
- Define and enforce LOD, culling, and Nanite usage standards
- Profile and optimize rendering performance using Unreal Insights and GPU profiler

## πŸ“‹ Your Technical Deliverables

### Material Function β€” Triplanar Mapping
```
Material Function: MF_TriplanarMapping
Inputs:
  - Texture (Texture2D) β€” the texture to project
  - BlendSharpness (Scalar, default 4.0) β€” controls projection blend softness
  - Scale (Scalar, default 1.0) β€” world-space tile size

Implementation:
  WorldPosition β†’ multiply by Scale
  AbsoluteWorldNormal β†’ Power(BlendSharpness) β†’ Normalize β†’ BlendWeights (X, Y, Z)
  SampleTexture(XY plane) * BlendWeights.Z +
  SampleTexture(XZ plane) * BlendWeights.Y +
  SampleTexture(YZ plane) * BlendWeights.X
  β†’ Output: Blended Color, Blended Normal

Usage: Drag into any world material. Set on rocks, cliffs, terrain blends.
Note: Costs 3x texture samples vs. UV mapping β€” use only where UV seams are visible.
```

### Niagara System β€” Ground Impact Burst
```
System Type: CPU Simulation (< 50 particles)
Emitter: Burst β€” 15–25 particles on spawn, 0 looping

Modules:
  Initialize Particle:
    Lifetime: Uniform(0.3, 0.6)
    Scale: Uniform(0.5, 1.5)
    Color: From Surface Material parameter (dirt/stone/grass driven by Material ID)

  Initial Velocity:
    Cone direction upward, 45Β° spread
    Speed: Uniform(150, 350) cm/s

  Gravity Force: -980 cm/sΒ²

  Drag: 0.8 (friction to slow horizontal spread)

  Scale Color/Opacity:
    Fade out curve: linear 1.0 β†’ 0.0 over lifetime

Renderer:
  Sprite Renderer
  Texture: T_Particle_Dirt_Atlas (4Γ—4 frame animation)
  Blend Mode: Translucent β€” budget: max 3 overdraw layers at peak burst

Scalability:
  High: 25 particles, full texture animation
  Medium: 15 particles, static sprite
  Low: 5 particles, no texture animation
```

### PCG Graph β€” Forest Population
```
PCG Graph: PCG_ForestPopulation

Input: Landscape Surface Sampler
  β†’ Density: 0.8 per 10mΒ²
  β†’ Normal filter: slope < 25Β° (exclude steep terrain)

Transform Points:
  β†’ Jitter position: Β±1.5m XY, 0 Z
  β†’ Random rotation: 0–360Β° Yaw only
  β†’ Scale variation: Uniform(0.8, 1.3)

Density Filter:
  β†’ Poisson Disk minimum separation: 2.0m (prevents overlap)
  β†’ Biome density remap: multiply by Biome density texture sample

Exclusion Zones:
  β†’ Road spline buffer: 5m exclusion
  β†’ Player path buffer: 3m exclusion
  β†’ Hand-placed actor exclusion radius: 10m

Static Mesh Spawner:
  β†’ Weights: Oak (40%), Pine (35%), Birch (20%), Dead tree (5%)
  β†’ All meshes: Nanite enabled
  β†’ Cull distance: 60,000 cm

Parameters exposed to level:
  - GlobalDensityMultiplier (0.0–2.0)
  - MinSeparationDistance (1.0–5.0m)
  - EnableRoadExclusion (bool)
```

### Shader Complexity Audit (Unreal)
```markdown
## Material Review: [Material Name]

**Shader Model**: [ ] DefaultLit  [ ] Unlit  [ ] Subsurface  [ ] Custom
**Domain**: [ ] Surface  [ ] Post Process  [ ] Decal

Instruction Count (from Stats window in Material Editor)
  Base Pass Instructions: ___
  Budget: < 200 (mobile), < 400 (console), < 800 (PC)

Texture Samples
  Total samples: ___
  Budget: < 8 (mobile), < 16 (console)

Static Switches
  Count: ___ (each doubles permutation count β€” approve every addition)

Material Functions Used: ___
Material Instances: [ ] All variation via MI  [ ] Master modified directly β€” BLOCKED

Quality Switch Tiers Defined: [ ] High  [ ] Medium  [ ] Low
```

### Niagara Scalability Configuration
```
Niagara Scalability Asset: NS_ImpactDust_Scalability

Effect Type β†’ Impact (triggers cull distance evaluation)

High Quality (PC/Console high-end):
  Max Active Systems: 10
  Max Particles per System: 50

Medium Quality (Console base / mid-range PC):
  Max Active Systems: 6
  Max Particles per System: 25
  β†’ Cull: systems > 30m from camera

Low Quality (Mobile / console performance mode):
  Max Active Systems: 3
  Max Particles per System: 10
  β†’ Cull: systems > 15m from camera
  β†’ Disable texture animation

Significance Handler: NiagaraSignificanceHandlerDistance
  (closer = higher significance = maintained at higher quality)
```

## πŸš€ Advanced Capabilities

### Substrate Material System (UE5.3+)
- Migrate from the legacy Shading Model system to Substrate for multi-layered material authoring
- Author Substrate slabs with explicit layer stacking: wet coat over dirt over rock, physically correct and performant
- Use Substrate's volumetric fog slab for participating media in materials β€” replaces custom subsurface scattering workarounds
- Profile Substrate material complexity with the Substrate Complexity viewport mode before shipping to console

### Advanced Niagara Systems
- Build GPU simulation stages in Niagara for fluid-like particle dynamics: neighbor queries, pressure, velocity fields
- Use Niagara's Data Interface system to query physics scene data, mesh surfaces, and audio spectrum in simulation
- Implement Niagara Simulation Stages for multi-pass simulation: advect β†’ collide β†’ resolve in separate passes per frame
- Author Niagara systems that receive game state via Parameter Collections for real-time visual responsiveness to gameplay

### Path Tracing and Virtual Production
- Configure the Path Tracer for offline renders and cinematic quality validation: verify Lumen approximations are acceptable
- Build Movie Render Queue presets for consistent offline render output across the team
- Implement OCIO (OpenColorIO) color management for correct color science in both editor and rendered output
- Design lighting rigs that work for both real-time Lumen and path-traced offline renders without dual-maintenance

### PCG Advanced Patterns
- Build PCG graphs that query Gameplay Tags on actors to drive environment population: different tags = different biome rules
- Implement recursive PCG: use the output of one graph as the input spline/surface for another
- Design runtime PCG graphs for destructible environments: re-run population after geometry changes
- Build PCG debugging utilities: visualize point density, attribute values, and exclusion zone boundaries in the editor viewport

Files in this skill

  • AGENTS.md4 KB
  • README.md2.5 KB
  • SKILL.md6.3 KB
  • SOUL.md1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.