Restructure project and expand RalphaData content
- Remove legacy UE5 config files and project scaffolding - Add new Ralpha directory structure - Add new recipes: bedroom, cafe, dining, gym, home office, kitchen, outdoor, portrait studio, retail - Add post-processing presets and scene presets - Add catalogue, HDRIs, LUTs, and metahumans data - Update generate_catalogue script and existing recipes - Add asset sourcing checklist Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ad72081760
commit
b6786cf173
|
|
@ -1,19 +1,30 @@
|
||||||
# UE5 LFS tracking
|
# Git LFS for Unreal Engine assets
|
||||||
|
# Large binary files stored in LFS
|
||||||
|
|
||||||
# Unreal binary assets
|
# Unreal Engine binary assets
|
||||||
*.uasset filter=lfs diff=lfs merge=lfs -text
|
*.uasset filter=lfs diff=lfs merge=lfs -text
|
||||||
*.umap filter=lfs diff=lfs merge=lfs -text
|
*.umap filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ubulk filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.uexp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
# Textures
|
# Compiled shaders and DDC
|
||||||
|
*.ush filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ushaderbytecode filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# Textures (source files if imported)
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||||
*.tga filter=lfs diff=lfs merge=lfs -text
|
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||||
*.bmp filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||||
*.hdr filter=lfs diff=lfs merge=lfs -text
|
*.hdr filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# 3D formats
|
||||||
|
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gltf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
@ -22,35 +33,12 @@
|
||||||
# Video
|
# Video
|
||||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||||
*.mov filter=lfs diff=lfs merge=lfs -text
|
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||||
*.avi filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
||||||
# 3D formats
|
# Keep these in regular git (small text files)
|
||||||
*.fbx filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.obj filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.gltf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.glb filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.abc filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.otf filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
||||||
# Compiled/binary
|
|
||||||
*.dll filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.so filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.dylib filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
||||||
# UE bulk data
|
|
||||||
*.ubulk filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.uexp filter=lfs diff=lfs merge=lfs -text
|
|
||||||
*.upk filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
||||||
# Keep RalphaData in regular git (not LFS)
|
|
||||||
# These are small JSON/text files for tooling
|
|
||||||
RalphaData/** !filter !diff !merge text
|
RalphaData/** !filter !diff !merge text
|
||||||
RalphaData/**/*.json text
|
*.json text
|
||||||
RalphaData/**/*.py text
|
*.md text
|
||||||
RalphaData/**/*.md text
|
*.py text
|
||||||
|
*.txt text
|
||||||
# Small thumbnails OK in regular git
|
*.uplugin text
|
||||||
RalphaData/thumbnails/*.png !filter !diff !merge -text
|
*.uproject text
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,26 @@
|
||||||
# UE5 Project .gitignore
|
# Unreal Engine generated files
|
||||||
|
|
||||||
# Build artifacts (rebuilt locally)
|
|
||||||
Binaries/
|
Binaries/
|
||||||
Intermediate/
|
|
||||||
DerivedDataCache/
|
DerivedDataCache/
|
||||||
|
Intermediate/
|
||||||
|
Saved/
|
||||||
Build/
|
Build/
|
||||||
|
|
||||||
# Saved data (user-specific, logs, autosaves)
|
# IDE
|
||||||
Saved/
|
.idea/
|
||||||
|
|
||||||
# Plugin binaries (rebuilt per machine)
|
|
||||||
Plugins/**/Binaries/
|
|
||||||
Plugins/**/Intermediate/
|
|
||||||
|
|
||||||
# Visual Studio
|
|
||||||
.vs/
|
.vs/
|
||||||
|
.vscode/
|
||||||
*.sln
|
*.sln
|
||||||
*.suo
|
*.suo
|
||||||
*.sdf
|
*.user
|
||||||
*.VC.db
|
|
||||||
*.VC.opendb
|
|
||||||
|
|
||||||
# JetBrains Rider
|
# OS
|
||||||
.idea/
|
|
||||||
|
|
||||||
# VS Code
|
|
||||||
.vscode/
|
|
||||||
|
|
||||||
# macOS
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.DS_Store
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
Desktop.ini
|
|
||||||
|
|
||||||
# Cooked content (generated)
|
# Temp files
|
||||||
**/Cooked/
|
*.log
|
||||||
|
*.tmp
|
||||||
|
*~
|
||||||
|
|
||||||
# Starter content (if using)
|
# Crashpad
|
||||||
**/StarterContent/
|
CrashReportClient/
|
||||||
repomix-output.txt
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,295 @@
|
||||||
|
# Asset Sourcing Checklist
|
||||||
|
|
||||||
|
## Quick Links
|
||||||
|
|
||||||
|
| Source | URL | Account Needed |
|
||||||
|
|--------|-----|----------------|
|
||||||
|
| Poly Haven | https://polyhaven.com | No |
|
||||||
|
| Quixel/Fab | https://www.fab.com | Epic Games |
|
||||||
|
| Sketchfab | https://sketchfab.com | Yes (free) |
|
||||||
|
| Mixamo | https://www.mixamo.com | Adobe |
|
||||||
|
| MetaHuman Creator | https://metahuman.unrealengine.com | Epic Games |
|
||||||
|
| UE Marketplace | https://www.unrealengine.com/marketplace | Epic Games |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. HDRIs (18 needed)
|
||||||
|
|
||||||
|
**Source: Poly Haven** (https://polyhaven.com/hdris) - All CC0, Free
|
||||||
|
|
||||||
|
### Studio HDRIs
|
||||||
|
- [ ] `HDRI_Studio_Softbox` - Search: "studio" or "photo studio"
|
||||||
|
- https://polyhaven.com/a/studio_small_03
|
||||||
|
- https://polyhaven.com/a/photo_studio_loft_hall
|
||||||
|
- [ ] `HDRI_Studio_Hard` - Search: "studio" hard lighting
|
||||||
|
- https://polyhaven.com/a/studio_small_08
|
||||||
|
- [ ] `HDRI_Studio_Natural` - Search: "studio" window light
|
||||||
|
- https://polyhaven.com/a/studio_small_09
|
||||||
|
- [ ] `HDRI_Studio_Gradient` - Search: "gradient"
|
||||||
|
- https://polyhaven.com/a/studio_small_06
|
||||||
|
|
||||||
|
### Outdoor HDRIs
|
||||||
|
- [ ] `HDRI_Sky_ClearDay` - Search: "blue sky" "clear"
|
||||||
|
- https://polyhaven.com/a/kloofendal_43d_clear_puresky
|
||||||
|
- https://polyhaven.com/a/meadow_at_noon
|
||||||
|
- [ ] `HDRI_Sky_Overcast` - Search: "overcast" "cloudy"
|
||||||
|
- https://polyhaven.com/a/kloofendal_overcast_puresky
|
||||||
|
- [ ] `HDRI_Sky_Sunset` - Search: "sunset" "golden hour"
|
||||||
|
- https://polyhaven.com/a/sunset_fairway
|
||||||
|
- https://polyhaven.com/a/golden_bay
|
||||||
|
- [ ] `HDRI_Sky_Night` - Search: "night" "stars"
|
||||||
|
- https://polyhaven.com/a/moonlit_golf
|
||||||
|
- https://polyhaven.com/a/starry_night
|
||||||
|
- [ ] `HDRI_Forest` - Search: "forest"
|
||||||
|
- https://polyhaven.com/a/forest_slope
|
||||||
|
- https://polyhaven.com/a/autumn_forest_04
|
||||||
|
- [ ] `HDRI_Beach` - Search: "beach" "coast"
|
||||||
|
- https://polyhaven.com/a/cape_hill
|
||||||
|
- https://polyhaven.com/a/the_sky_is_on_fire
|
||||||
|
- [ ] `HDRI_Mountain` - Search: "mountain" "alpine"
|
||||||
|
- https://polyhaven.com/a/table_mountain_1_puresky
|
||||||
|
- https://polyhaven.com/a/alps_field
|
||||||
|
- [ ] `HDRI_Desert` - Search: "desert"
|
||||||
|
- https://polyhaven.com/a/goegap
|
||||||
|
- https://polyhaven.com/a/desert_highway
|
||||||
|
|
||||||
|
### Urban HDRIs
|
||||||
|
- [ ] `HDRI_City_Day` - Search: "city" "urban"
|
||||||
|
- https://polyhaven.com/a/potsdamer_platz
|
||||||
|
- https://polyhaven.com/a/shanghai_bund
|
||||||
|
- [ ] `HDRI_City_Night` - Search: "city night"
|
||||||
|
- https://polyhaven.com/a/modern_buildings_night
|
||||||
|
- [ ] `HDRI_Street` - Search: "street"
|
||||||
|
- https://polyhaven.com/a/urban_street_01
|
||||||
|
- [ ] `HDRI_Parking` - Search: "parking" "garage"
|
||||||
|
- https://polyhaven.com/a/parking_garage
|
||||||
|
- [ ] `HDRI_Interior_Office` - Search: "office" "interior"
|
||||||
|
- https://polyhaven.com/a/small_empty_room_1
|
||||||
|
- [ ] `HDRI_Interior_Home` - Search: "interior" "room"
|
||||||
|
- https://polyhaven.com/a/brown_photostudio_02
|
||||||
|
|
||||||
|
**Download Settings:** 8K resolution, HDR format
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. LUTs (32 needed)
|
||||||
|
|
||||||
|
**Source: Multiple free LUT packs**
|
||||||
|
|
||||||
|
### Free LUT Sources
|
||||||
|
- [ ] **Lutify.me Free Pack** - https://lutify.me/free-luts/
|
||||||
|
- [ ] **RocketStock 35 Free LUTs** - https://www.rocketstock.com/free-after-effects-templates/35-free-luts-for-color-grading-videos/
|
||||||
|
- [ ] **PremiumBeat 17 Free LUTs** - https://www.premiumbeat.com/blog/free-luts-color-grading/
|
||||||
|
- [ ] **Indie Film Hustle LUTs** - https://indiefilmhustle.com/free-luts/
|
||||||
|
- [ ] **Ground Control Color LUTs** - https://groundcontrolcolor.com/pages/free-luts
|
||||||
|
|
||||||
|
### Alternative: Create in DaVinci Resolve
|
||||||
|
Can export .cube files directly from color grades
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Furniture & Props (65+ needed)
|
||||||
|
|
||||||
|
**Source: Fab.com (formerly Quixel/UE Marketplace)**
|
||||||
|
|
||||||
|
### Free Collections on Fab
|
||||||
|
- [ ] **Megascans Furniture** - https://www.fab.com/search?q=furniture&price=free
|
||||||
|
- [ ] **Interior Props** - https://www.fab.com/search?q=interior+props&price=free
|
||||||
|
- [ ] **Office Furniture** - https://www.fab.com/search?q=office&price=free
|
||||||
|
|
||||||
|
### Specific Asset Searches
|
||||||
|
- [ ] Sofas/Couches - https://www.fab.com/search?q=sofa&price=free
|
||||||
|
- [ ] Chairs - https://www.fab.com/search?q=chair&price=free
|
||||||
|
- [ ] Tables - https://www.fab.com/search?q=table&price=free
|
||||||
|
- [ ] Beds - https://www.fab.com/search?q=bed&price=free
|
||||||
|
- [ ] Storage/Shelves - https://www.fab.com/search?q=shelf&price=free
|
||||||
|
|
||||||
|
### Sketchfab (CC0/CC-BY)
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=furniture&type=models
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=chair&type=models
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Vehicles (40 needed)
|
||||||
|
|
||||||
|
**Source: Fab.com + Sketchfab**
|
||||||
|
|
||||||
|
### Fab.com Free Vehicles
|
||||||
|
- [ ] https://www.fab.com/search?q=car&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=vehicle&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=motorcycle&price=free
|
||||||
|
|
||||||
|
### Sketchfab CC0 Vehicles
|
||||||
|
- [ ] Cars - https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=car&type=models
|
||||||
|
- [ ] Motorcycles - https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=motorcycle&type=models
|
||||||
|
- [ ] Bicycles - https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=bicycle&type=models
|
||||||
|
- [ ] Aircraft - https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=airplane&type=models
|
||||||
|
- [ ] Boats - https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=boat&type=models
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Nature & Foliage (30 needed)
|
||||||
|
|
||||||
|
**Source: Megascans via Fab.com** (Free with UE)
|
||||||
|
|
||||||
|
### Trees
|
||||||
|
- [ ] https://www.fab.com/search?q=tree&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=pine+tree&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=palm+tree&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=oak+tree&price=free
|
||||||
|
|
||||||
|
### Plants & Foliage
|
||||||
|
- [ ] https://www.fab.com/search?q=plant&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=bush&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=grass&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=flower&price=free
|
||||||
|
|
||||||
|
### Rocks & Terrain
|
||||||
|
- [ ] https://www.fab.com/search?q=rock&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=boulder&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=cliff&price=free
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Urban Props (21 needed)
|
||||||
|
|
||||||
|
**Source: Fab.com + Sketchfab**
|
||||||
|
|
||||||
|
- [ ] Street lights - https://www.fab.com/search?q=street+light&price=free
|
||||||
|
- [ ] Traffic lights - https://www.fab.com/search?q=traffic+light&price=free
|
||||||
|
- [ ] Benches - https://www.fab.com/search?q=bench&price=free
|
||||||
|
- [ ] Fire hydrant - https://www.fab.com/search?q=fire+hydrant&price=free
|
||||||
|
- [ ] Trash cans - https://www.fab.com/search?q=trash+can&price=free
|
||||||
|
- [ ] Signs - https://www.fab.com/search?q=street+sign&price=free
|
||||||
|
- [ ] Barriers - https://www.fab.com/search?q=barrier&price=free
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Architecture Elements (25 needed)
|
||||||
|
|
||||||
|
**Source: Megascans + Fab.com**
|
||||||
|
|
||||||
|
- [ ] Walls - https://www.fab.com/search?q=wall+modular&price=free
|
||||||
|
- [ ] Floors - https://www.fab.com/search?q=floor&price=free
|
||||||
|
- [ ] Doors - https://www.fab.com/search?q=door&price=free
|
||||||
|
- [ ] Windows - https://www.fab.com/search?q=window&price=free
|
||||||
|
- [ ] Stairs - https://www.fab.com/search?q=stairs&price=free
|
||||||
|
- [ ] Fences - https://www.fab.com/search?q=fence&price=free
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. MetaHumans (20 needed)
|
||||||
|
|
||||||
|
**Source: MetaHuman Creator** (https://metahuman.unrealengine.com)
|
||||||
|
|
||||||
|
### Characters to Create
|
||||||
|
| ID | Gender | Age | Ethnicity |
|
||||||
|
|----|--------|-----|-----------|
|
||||||
|
| MH_M_20_Caucasian | Male | 20s | Caucasian |
|
||||||
|
| MH_M_35_Caucasian | Male | 30s | Caucasian |
|
||||||
|
| MH_M_50_Caucasian | Male | 50s | Caucasian |
|
||||||
|
| MH_M_25_African | Male | 20s | African |
|
||||||
|
| MH_M_40_African | Male | 40s | African |
|
||||||
|
| MH_M_30_Asian | Male | 30s | East Asian |
|
||||||
|
| MH_M_45_Asian | Male | 40s | East Asian |
|
||||||
|
| MH_M_25_Hispanic | Male | 20s | Hispanic |
|
||||||
|
| MH_M_35_SouthAsian | Male | 30s | South Asian |
|
||||||
|
| MH_M_60_Mixed | Male | 60s | Mixed |
|
||||||
|
| MH_F_20_Caucasian | Female | 20s | Caucasian |
|
||||||
|
| MH_F_35_Caucasian | Female | 30s | Caucasian |
|
||||||
|
| MH_F_50_Caucasian | Female | 50s | Caucasian |
|
||||||
|
| MH_F_25_African | Female | 20s | African |
|
||||||
|
| MH_F_40_African | Female | 40s | African |
|
||||||
|
| MH_F_30_Asian | Female | 30s | East Asian |
|
||||||
|
| MH_F_45_Asian | Female | 40s | East Asian |
|
||||||
|
| MH_F_25_Hispanic | Female | 20s | Hispanic |
|
||||||
|
| MH_F_35_SouthAsian | Female | 30s | South Asian |
|
||||||
|
| MH_F_60_Mixed | Female | 60s | Mixed |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Animations (32 needed)
|
||||||
|
|
||||||
|
**Source: Mixamo** (https://www.mixamo.com)
|
||||||
|
|
||||||
|
### Idle Animations
|
||||||
|
- [ ] Standing Idle - search "idle"
|
||||||
|
- [ ] Sitting Idle - search "sitting idle"
|
||||||
|
- [ ] Leaning - search "leaning"
|
||||||
|
|
||||||
|
### Pose Animations
|
||||||
|
- [ ] T-Pose
|
||||||
|
- [ ] A-Pose
|
||||||
|
- [ ] Various standing poses
|
||||||
|
|
||||||
|
### Action Animations
|
||||||
|
- [ ] Walking - search "walking"
|
||||||
|
- [ ] Running - search "running"
|
||||||
|
- [ ] Sitting down - search "sit down"
|
||||||
|
- [ ] Standing up - search "stand up"
|
||||||
|
- [ ] Waving - search "wave"
|
||||||
|
- [ ] Nodding - search "nod"
|
||||||
|
- [ ] Shrugging - search "shrug"
|
||||||
|
|
||||||
|
### Interaction Animations
|
||||||
|
- [ ] Typing - search "typing"
|
||||||
|
- [ ] Phone use - search "phone"
|
||||||
|
- [ ] Drinking - search "drink"
|
||||||
|
- [ ] Talking gestures - search "talking"
|
||||||
|
- [ ] Pointing - search "point"
|
||||||
|
- [ ] Handshake - search "handshake"
|
||||||
|
- [ ] Clapping - search "clap"
|
||||||
|
|
||||||
|
**Export Settings:** FBX, Without Skin (for retargeting to MetaHuman)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Tools, Sports, Animals (42 needed)
|
||||||
|
|
||||||
|
### Tools (Sketchfab CC0)
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=hammer&type=models
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=screwdriver&type=models
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=drill&type=models
|
||||||
|
|
||||||
|
### Sports Equipment
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=basketball&type=models
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=soccer+ball&type=models
|
||||||
|
- [ ] https://sketchfab.com/search?features=downloadable&licenses=322a749bcfa841b29dff1571a69a2f8c&q=tennis&type=models
|
||||||
|
|
||||||
|
### Animals (Fab.com)
|
||||||
|
- [ ] https://www.fab.com/search?q=dog&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=cat&price=free
|
||||||
|
- [ ] https://www.fab.com/search?q=bird&price=free
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Download Priority Order
|
||||||
|
|
||||||
|
1. **HDRIs from Poly Haven** - Fastest, no account needed, direct download
|
||||||
|
2. **LUTs** - Download free packs
|
||||||
|
3. **Megascans/Fab assets** - Requires Epic account, bulk download via Bridge
|
||||||
|
4. **Mixamo animations** - Requires Adobe account
|
||||||
|
5. **Sketchfab models** - Requires account for downloads
|
||||||
|
6. **MetaHumans** - Create in browser, export to UE
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Account Requirements
|
||||||
|
|
||||||
|
| Service | Account Type | Cost |
|
||||||
|
|---------|--------------|------|
|
||||||
|
| Poly Haven | None needed | Free |
|
||||||
|
| Fab.com | Epic Games | Free |
|
||||||
|
| Sketchfab | Free account | Free |
|
||||||
|
| Mixamo | Adobe ID | Free |
|
||||||
|
| MetaHuman Creator | Epic Games | Free |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- All Poly Haven assets are CC0 (public domain)
|
||||||
|
- Megascans are free for Unreal Engine projects
|
||||||
|
- Sketchfab CC0 license = no attribution required
|
||||||
|
- Mixamo animations need retargeting for MetaHuman skeleton
|
||||||
|
- Export MetaHumans at "Medium" quality to balance size/quality
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
[/Script/UnrealEd.EditorPerformanceSettings]
|
|
||||||
bMonitorEditorPerformance=True
|
|
||||||
|
|
||||||
[/Script/UnrealEd.CrashReporterSettings]
|
|
||||||
bHideLogFilesOption=False
|
|
||||||
bHideRestartOption=False
|
|
||||||
|
|
||||||
[ContentBrowser]
|
|
||||||
ShowEngineContent=False
|
|
||||||
ShowPluginContent=True
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
[/Script/EngineSettings.GameMapsSettings]
|
|
||||||
EditorStartupMap=/Game/Maps/Main
|
|
||||||
GameDefaultMap=/Game/Maps/Main
|
|
||||||
|
|
||||||
[/Script/Engine.RendererSettings]
|
|
||||||
r.DefaultFeature.AutoExposure=True
|
|
||||||
r.DefaultFeature.MotionBlur=True
|
|
||||||
r.DefaultFeature.Bloom=True
|
|
||||||
r.DefaultFeature.AmbientOcclusion=True
|
|
||||||
r.DefaultFeature.AmbientOcclusionStaticFraction=True
|
|
||||||
r.Lumen.DiffuseIndirect.Allow=True
|
|
||||||
r.Lumen.Reflections.Allow=True
|
|
||||||
r.RayTracing=False
|
|
||||||
|
|
||||||
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
|
|
||||||
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
|
|
||||||
-D3D12TargetedShaderFormats=PCD3D_SM5
|
|
||||||
+D3D12TargetedShaderFormats=PCD3D_SM5
|
|
||||||
-D3D11TargetedShaderFormats=PCD3D_SM5
|
|
||||||
+D3D11TargetedShaderFormats=PCD3D_SM5
|
|
||||||
bGenerateNaniteFallbackMeshes=True
|
|
||||||
Compiler=Default
|
|
||||||
AudioSampleRate=48000
|
|
||||||
AudioCallbackBufferFrameSize=1024
|
|
||||||
AudioNumBuffersToEnqueue=1
|
|
||||||
AudioMaxChannels=0
|
|
||||||
AudioNumSourceWorkers=4
|
|
||||||
SpatializationPlugin=
|
|
||||||
SourceDataOverridePlugin=
|
|
||||||
ReverbPlugin=
|
|
||||||
OcclusionPlugin=
|
|
||||||
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
|
|
||||||
CacheSizeKB=65536
|
|
||||||
MaxChunkSizeOverrideKB=0
|
|
||||||
bResampleForDevice=False
|
|
||||||
MaxSampleRate=48000.000000
|
|
||||||
HighSampleRate=32000.000000
|
|
||||||
MedSampleRate=24000.000000
|
|
||||||
LowSampleRate=12000.000000
|
|
||||||
MinSampleRate=8000.000000
|
|
||||||
CompressionQualityModifier=1.000000
|
|
||||||
AutoStreamingThreshold=0.000000
|
|
||||||
SoundCueCookQualityIndex=-1
|
|
||||||
|
|
||||||
[/Script/Engine.Engine]
|
|
||||||
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/Ralpha")
|
|
||||||
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/Ralpha")
|
|
||||||
|
|
||||||
[URL]
|
|
||||||
GameName=Ralpha
|
|
||||||
|
|
||||||
[/Script/Engine.GarbageCollectionSettings]
|
|
||||||
gc.MaxObjectsNotConsideredByGC=1
|
|
||||||
|
|
||||||
[ConsoleVariables]
|
|
||||||
r.Lumen.ScreenProbeGather.FullResolutionJitterWidth=1
|
|
||||||
r.RayTracing.EnableOnDemandShaderCompilation=0
|
|
||||||
r.D3D12.DXR.AllowSM6ShaderWarning=0
|
|
||||||
r.SkinCache.CompileShaders=1
|
|
||||||
|
|
||||||
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
|
|
||||||
bEnablePlugin=True
|
|
||||||
bAllowNetworkConnection=True
|
|
||||||
SecurityToken=48F557544C0FBE97F9394186D19510CE
|
|
||||||
bIncludeInShipping=False
|
|
||||||
bAllowExternalStartInShipping=False
|
|
||||||
bCompileAFSProject=False
|
|
||||||
bUseCompression=False
|
|
||||||
bLogFiles=False
|
|
||||||
bReportStats=False
|
|
||||||
ConnectionType=USBOnly
|
|
||||||
bUseManualIPAddress=False
|
|
||||||
ManualIPAddress=
|
|
||||||
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
[/Script/EngineSettings.GeneralProjectSettings]
|
|
||||||
ProjectID=Ralpha2026
|
|
||||||
ProjectName=Ralpha
|
|
||||||
CompanyName=Ralpha
|
|
||||||
CopyrightNotice=Copyright Ralpha Team
|
|
||||||
Description=AI-driven style transfer for infinite world generation
|
|
||||||
bStartInVR=False
|
|
||||||
bStartInAR=False
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
[/Script/Engine.InputSettings]
|
|
||||||
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
|
||||||
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
|
||||||
-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
|
||||||
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
|
|
||||||
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
|
||||||
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
|
||||||
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
|
|
||||||
bAltEnterTogglesFullscreen=True
|
|
||||||
bF11TogglesFullscreen=True
|
|
||||||
bUseMouseForTouch=False
|
|
||||||
bEnableMouseSmoothing=True
|
|
||||||
bEnableFOVScaling=True
|
|
||||||
bCaptureMouseOnLaunch=True
|
|
||||||
bEnableLegacyInputScales=True
|
|
||||||
bEnableMotionControls=True
|
|
||||||
bFilterInputByPlatformUser=False
|
|
||||||
bShouldFlushPressedKeysOnViewportFocusLost=True
|
|
||||||
bAlwaysShowTouchInterface=False
|
|
||||||
bShowConsoleOnFourFingerTap=True
|
|
||||||
bEnableGestureRecognizer=False
|
|
||||||
bUseAutocorrect=False
|
|
||||||
bEnabledLegacyMappingDeprecationWarnings=True
|
|
||||||
DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown
|
|
||||||
DefaultViewportMouseLockMode=DoNotLock
|
|
||||||
FOVScale=0.011110
|
|
||||||
DoubleClickTime=0.200000
|
|
||||||
DeprecatedActionAndAxisNames=()
|
|
||||||
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
|
||||||
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
|
||||||
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
|
|
||||||
-ConsoleKeys=Tilde
|
|
||||||
+ConsoleKeys=Tilde
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
../../ralpha/plugin
|
|
||||||
225
README.md
225
README.md
|
|
@ -1,188 +1,105 @@
|
||||||
# Ralpha UE5 - Kitchen Sink Asset Project
|
# ralpha-ue5
|
||||||
|
|
||||||
Comprehensive UE5 asset library and scene templates for AI-controlled rendering with [Ralpha](https://github.com/jamestagg/ralpha).
|
**Kitchen Sink Starter Project** - Comprehensive UE5 asset library for AI-controlled rendering.
|
||||||
|
|
||||||
## Quick Start
|
## Repository Architecture
|
||||||
|
|
||||||
```bash
|
This project is split across two repositories:
|
||||||
# Clone with LFS
|
|
||||||
git lfs install
|
|
||||||
git clone https://github.com/jamestagg/ralpha-ue5.git
|
|
||||||
|
|
||||||
# Open in UE5.4+
|
| Repository | Purpose | Storage |
|
||||||
# File > Open Project > ralpha-ue5/Ralpha.uproject
|
|------------|---------|---------|
|
||||||
```
|
| **ralpha** | Code: plugin, API, website, Redis, Supabase | Regular Git |
|
||||||
|
| **ralpha-ue5** | Assets: UE5 maps, meshes, textures, MetaHumans | Git LFS |
|
||||||
|
|
||||||
## Architecture
|
The split keeps the code repository fast and lean (~50MB) while the asset repository can grow to 50-100GB with full LFS support.
|
||||||
|
|
||||||
This repo contains **assets only**. The MCP plugin and tooling live in the main [ralpha](https://github.com/jamestagg/ralpha) repo.
|
## Design Philosophy
|
||||||
|
|
||||||
```
|
> "Any missing element takes hours to find, build, and refine."
|
||||||
ralpha-ue5/ <- You are here (assets, templates, presets)
|
|
||||||
│
|
|
||||||
└── Plugins/RalphaPlugin/ <- Symlink to ralpha/plugin
|
|
||||||
│
|
|
||||||
├── MCP Server (port 30010)
|
|
||||||
└── 69 Command Handlers
|
|
||||||
|
|
||||||
ralpha/ <- Main repo (tooling, API, frontend)
|
This project prioritizes **breadth over perfection**. Every common object, environment, and scenario should have a ready-to-use representation. Speed of iteration matters more than photorealism of any single asset.
|
||||||
│
|
|
||||||
├── plugin/ <- UE5 plugin source
|
|
||||||
├── ralpha-api/ <- Backend API
|
|
||||||
└── frontend/ <- Web interface
|
|
||||||
```
|
|
||||||
|
|
||||||
## Repository Structure
|
When matching a reference image, Claude should be able to:
|
||||||
|
1. Identify what's needed
|
||||||
|
2. Find it in the catalogue
|
||||||
|
3. Place and configure it
|
||||||
|
4. Capture screenshot
|
||||||
|
|
||||||
|
All within **seconds**, not minutes or hours.
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
ralpha-ue5/
|
ralpha-ue5/
|
||||||
├── RalphaData/ # NOT in LFS - text/JSON files
|
├── RalphaData/ # Text files (NOT in LFS)
|
||||||
│ ├── catalogue/
|
│ ├── catalogue.json # Machine-readable asset index
|
||||||
│ │ ├── catalogue.json # Machine-readable asset index
|
|
||||||
│ │ └── catalogue.schema.json # JSON schema
|
|
||||||
│ ├── thumbnails/ # Small preview images
|
│ ├── thumbnails/ # Small preview images
|
||||||
│ ├── recipes/ # Scene composition templates
|
│ ├── recipes/ # Scene composition recipes
|
||||||
│ │ ├── recipe.schema.json
|
│ ├── presets/ # Lighting, post, scene presets
|
||||||
│ │ ├── living_room_modern.json
|
│ └── scripts/ # Asset management tools
|
||||||
│ │ ├── portrait_studio_white.json
|
|
||||||
│ │ └── office_corporate.json
|
|
||||||
│ ├── presets/
|
|
||||||
│ │ ├── lighting/ # Lighting configurations
|
|
||||||
│ │ ├── post/ # Post-processing profiles
|
|
||||||
│ │ ├── scene/ # Full scene configs
|
|
||||||
│ │ └── camera/ # Camera presets
|
|
||||||
│ └── scripts/
|
|
||||||
│ └── generate_catalogue.py # Asset indexing tool
|
|
||||||
│
|
│
|
||||||
├── Content/ # IN LFS - large binary files
|
├── Content/Ralpha/ # UE5 assets (IN LFS)
|
||||||
│ └── Ralpha/
|
|
||||||
│ ├── Maps/ # Template levels
|
│ ├── Maps/ # Template levels
|
||||||
│ │ ├── Template_Empty.umap
|
│ ├── Assets/ # Props, furniture, vehicles
|
||||||
│ │ ├── Template_Studio.umap
|
│ ├── Materials/ # PBR materials
|
||||||
│ │ ├── Template_Outdoor.umap
|
│ ├── HDRI/ # Environment maps
|
||||||
│ │ └── Template_Interior.umap
|
│ └── LUTs/ # Color grading
|
||||||
│ ├── Assets/ # Props, furniture, etc.
|
|
||||||
│ │ ├── Furniture/
|
|
||||||
│ │ ├── Electronics/
|
|
||||||
│ │ ├── Food/
|
|
||||||
│ │ ├── Vehicles/
|
|
||||||
│ │ ├── Nature/
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── Materials/
|
|
||||||
│ ├── HDRI/
|
|
||||||
│ └── LUTs/
|
|
||||||
│
|
│
|
||||||
└── Plugins/
|
├── Plugins/ # Symlink to ralpha/plugin
|
||||||
└── RalphaPlugin/ # Symlink to ralpha/plugin
|
└── RalphaProject.uproject
|
||||||
```
|
```
|
||||||
|
|
||||||
## Key Concepts
|
## Template Maps
|
||||||
|
|
||||||
### Template Maps vs Heavy Maps
|
| Map | Purpose |
|
||||||
|
|-----|---------|
|
||||||
|
| `Template_Empty` | Bare minimum scene (sky, floor) |
|
||||||
|
| `Template_Studio` | Lighting rig, backdrop, camera |
|
||||||
|
| `Template_Outdoor` | Sky atmosphere, terrain base |
|
||||||
|
| `Template_Interior` | Room shell, interior lighting |
|
||||||
|
|
||||||
Instead of 50+ bespoke maps, we use **4 templates** + **JSON presets**:
|
## Setup
|
||||||
|
|
||||||
| Template | Use Case |
|
1. Clone with LFS:
|
||||||
|----------|----------|
|
```bash
|
||||||
| `Template_Empty` | Bare minimum - sky + ground |
|
git lfs install
|
||||||
| `Template_Studio` | Portrait/product - cyclorama + lights |
|
git clone https://github.com/yourusername/ralpha-ue5.git
|
||||||
| `Template_Outdoor` | Landscapes - terrain + atmosphere |
|
```
|
||||||
| `Template_Interior` | Rooms - walls + ceiling + basic lighting |
|
|
||||||
|
|
||||||
Scene variation comes from presets, not map duplication.
|
2. Link the plugin:
|
||||||
|
```bash
|
||||||
|
# macOS
|
||||||
|
ln -s /path/to/ralpha/plugin Plugins/RalphaPlugin
|
||||||
|
|
||||||
### Recipe System
|
# Windows (as admin)
|
||||||
|
mklink /J Plugins\RalphaPlugin E:\Github\ralpha\plugin
|
||||||
|
```
|
||||||
|
|
||||||
Recipes define composite scenes that can be spawned instantly:
|
3. Open `RalphaProject.uproject` in UE5.4+
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"recipe_id": "living_room_modern",
|
|
||||||
"components": [
|
|
||||||
{"asset": "sofa_modern_3seat", "position": "center"},
|
|
||||||
{"asset": "coffee_table_rect", "position": "in_front_of:sofa"},
|
|
||||||
{"asset": "tv_65inch", "position": "wall:opposite_sofa"}
|
|
||||||
],
|
|
||||||
"lighting_preset": "Interior_Evening"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
MCP command: `{"type":"spawn_recipe","parameters":{"recipe":"living_room_modern"}}`
|
|
||||||
|
|
||||||
### Asset Catalogue
|
|
||||||
|
|
||||||
All assets are indexed in `catalogue.json` for programmatic discovery:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"id": "sofa_modern_3seat",
|
|
||||||
"name": "Modern 3-Seat Sofa",
|
|
||||||
"category": "Furniture/Seating",
|
|
||||||
"unreal_path": "/Game/Ralpha/Assets/Furniture/Seating/Sofa_Modern_3Seat",
|
|
||||||
"tags": ["sofa", "couch", "seating", "modern", "living room"],
|
|
||||||
"bounds": {"x": 220, "y": 90, "z": 85},
|
|
||||||
"placement_modes": ["floor"]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
MCP command: `{"type":"search_catalogue","parameters":{"query":"modern sofa"}}`
|
|
||||||
|
|
||||||
## MCP Commands
|
## MCP Commands
|
||||||
|
|
||||||
These commands interface with this asset library:
|
This project extends the Ralpha MCP protocol with:
|
||||||
|
|
||||||
| Command | Description |
|
```json
|
||||||
|---------|-------------|
|
{"type":"get_version"}
|
||||||
| `load_template` | Load a base template map |
|
{"type":"load_template","parameters":{"template":"Studio"}}
|
||||||
| `apply_scene_preset` | Apply lighting/post/camera preset |
|
{"type":"drop_to_floor","parameters":{"actor_id":"Chair_01"}}
|
||||||
| `spawn_recipe` | Spawn a full scene composition |
|
{"type":"snap_to_surface","parameters":{"actor_id":"Painting","surface":"wall"}}
|
||||||
| `spawn_catalogue_item` | Spawn single asset from catalogue |
|
{"type":"place_on","parameters":{"actor_id":"Vase","target":"Table_01"}}
|
||||||
| `search_catalogue` | Search assets by tags/name |
|
{"type":"spawn_recipe","parameters":{"recipe":"living_room_modern"}}
|
||||||
| `get_version` | Get plugin + catalogue version |
|
{"type":"search_catalogue","parameters":{"query":"red chair"}}
|
||||||
|
|
||||||
## Asset Standards
|
|
||||||
|
|
||||||
All assets must meet these requirements:
|
|
||||||
|
|
||||||
- **Scale**: 1 unit = 1 cm
|
|
||||||
- **Pivot**: Bottom center (for floor items)
|
|
||||||
- **Collision**: Present for interactive items
|
|
||||||
- **LODs**: At least 2 levels for complex meshes
|
|
||||||
- **Materials**: PBR with proper slots
|
|
||||||
- **Naming**: `Category_Type_Variant` (e.g., `Sofa_Modern_Grey`)
|
|
||||||
|
|
||||||
## Regenerating Catalogue
|
|
||||||
|
|
||||||
After adding assets, regenerate the catalogue:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ralpha-ue5
|
|
||||||
python RalphaData/scripts/generate_catalogue.py --scan-only
|
|
||||||
```
|
```
|
||||||
|
|
||||||
For full metadata extraction (requires UE Editor):
|
## Asset Quality Standards
|
||||||
```bash
|
|
||||||
python RalphaData/scripts/generate_catalogue.py --project Ralpha.uproject --ue-path /path/to/UnrealEditor
|
|
||||||
```
|
|
||||||
|
|
||||||
## License Policy
|
- Game-ready poly counts
|
||||||
|
- PBR materials (albedo, normal, roughness, metallic)
|
||||||
See [LICENSE_POLICY.md](LICENSE_POLICY.md) for asset provenance requirements.
|
- Consistent scale (1 unit = 1 cm)
|
||||||
|
- Pivots at bottom center
|
||||||
- **CC0/Public Domain**: Preferred, no restrictions
|
- LODs for complex assets
|
||||||
- **CC-BY**: Allowed, attribution in catalogue
|
- Collision for interactive items
|
||||||
- **Megascans**: Allowed (free with UE)
|
|
||||||
- **Marketplace**: Allowed for purchased assets
|
|
||||||
- **Restricted**: Separate folder, excluded by default
|
|
||||||
|
|
||||||
## Related Repositories
|
|
||||||
|
|
||||||
- [ralpha](https://github.com/jamestagg/ralpha) - Main tooling, plugin, API
|
|
||||||
- [ralpha-ue5-metahumans](https://github.com/jamestagg/ralpha-ue5-metahumans) - MetaHuman characters (optional)
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
1. Import asset following standards above
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for asset import guidelines and naming conventions.
|
||||||
2. Run `generate_catalogue.py`
|
|
||||||
3. Add to appropriate recipe if applicable
|
|
||||||
4. Submit PR with asset source/license info
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
"FileVersion": 3,
|
|
||||||
"EngineAssociation": "5.7",
|
|
||||||
"Category": "",
|
|
||||||
"Description": "AI-driven style transfer for infinite world generation",
|
|
||||||
"Modules": [],
|
|
||||||
"Plugins": [
|
|
||||||
{
|
|
||||||
"Name": "RalphaPlugin",
|
|
||||||
"Enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "Water",
|
|
||||||
"Enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"TargetPlatforms": [
|
|
||||||
"Mac",
|
|
||||||
"Windows"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
[/Script/UnrealEd.LevelEditorViewportSettings]
|
||||||
|
bInvertMiddleMousePan=True
|
||||||
|
bTransparentBoxSelection=True
|
||||||
|
bUseDistanceScaledCameraSpeed=True
|
||||||
|
|
||||||
|
[ContentBrowser]
|
||||||
|
ContentBrowserTab1.SourcesExpanded=True
|
||||||
|
|
||||||
|
;Enabling VR Scouting Widgets
|
||||||
|
[/Script/VREditor.VRModeSettings]
|
||||||
|
bEnableAutoVREditMode=False
|
||||||
|
bAutokeySequences=True
|
||||||
|
InteractorHand=Right
|
||||||
|
bShowWorldMovementGrid=False
|
||||||
|
bShowWorldMovementPostProcess=False
|
||||||
|
bShowWorldScaleProgressBar=True
|
||||||
|
UIBrightness=1.500000
|
||||||
|
GizmoScale=0.800000
|
||||||
|
DoubleClickTime=0.250000
|
||||||
|
TriggerPressedThreshold_Vive=0.330000
|
||||||
|
TriggerPressedThreshold_Rift=0.500000
|
||||||
|
bScaleWorldWithDynamicPivot=True
|
||||||
|
bAllowSimultaneousWorldScalingAndRotation=True
|
||||||
|
|
||||||
|
[/Script/UnrealEd.EditorPerformanceSettings]
|
||||||
|
;bShowFrameRateAndMemory=True
|
||||||
|
bThrottleCPUWhenNotForeground=False
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
[/Script/VREditor.VRModeSettings]
|
||||||
|
bEnableAutoVREditMode=False
|
||||||
|
bAutokeySequences=True
|
||||||
|
InteractorHand=Right
|
||||||
|
bShowWorldMovementGrid=False
|
||||||
|
bShowWorldMovementPostProcess=False
|
||||||
|
bShowWorldScaleProgressBar=True
|
||||||
|
UIBrightness=1.500000
|
||||||
|
GizmoScale=0.800000
|
||||||
|
DoubleClickTime=0.250000
|
||||||
|
TriggerPressedThreshold_Vive=0.330000
|
||||||
|
TriggerPressedThreshold_Rift=0.500000
|
||||||
|
bScaleWorldWithDynamicPivot=True
|
||||||
|
bAllowSimultaneousWorldScalingAndRotation=True
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,210 @@
|
||||||
|
[/Script/HardwareTargeting.HardwareTargetingSettings]
|
||||||
|
; quality settings
|
||||||
|
TargetedHardwareClass=Desktop
|
||||||
|
AppliedTargetedHardwareClass=Desktop
|
||||||
|
DefaultGraphicsPerformance=Maximum
|
||||||
|
AppliedDefaultGraphicsPerformance=Maximum
|
||||||
|
|
||||||
|
[/Script/Engine.RendererSettings]
|
||||||
|
; exposure control and tone mapping settings
|
||||||
|
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
|
||||||
|
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
|
||||||
|
r.DefaultFeature.Bloom=False
|
||||||
|
r.DefaultFeature.AutoExposure=False
|
||||||
|
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
|
||||||
|
r.DefaultFeature.LocalExposure.HighlightContrastScale=1.0
|
||||||
|
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
|
||||||
|
r.DefaultFeature.LocalExposure.ShadowContrastScale=1.0
|
||||||
|
r.DefaultFeature.MotionBlur=False
|
||||||
|
r.SceneRenderTargetResizeMethod=2
|
||||||
|
|
||||||
|
|
||||||
|
;dynamic gi settings
|
||||||
|
r.LightPropagationVolume=0
|
||||||
|
|
||||||
|
; quality settings
|
||||||
|
r.ReflectionCaptureResolution=2048
|
||||||
|
r.AllowStaticLighting=True
|
||||||
|
r.HighResScreenshotDelay=8
|
||||||
|
r.DefaultBackBufferPixelFormat=4
|
||||||
|
r.AllowGlobalClipPlane=False
|
||||||
|
r.GBufferFormat=3
|
||||||
|
|
||||||
|
; shader settings
|
||||||
|
r.PostProcessing.PropagateAlpha=1
|
||||||
|
r.Deferred.SupportPrimitiveAlphaHoldout=True
|
||||||
|
r.SupportSkyAtmosphereAffectsHeightFog=True
|
||||||
|
r.DefaultFeature.LensFlare=False
|
||||||
|
r.ClearCoatNormal=False
|
||||||
|
r.NormalMapsForStaticLighting=False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
r.GenerateMeshDistanceFields=True
|
||||||
|
|
||||||
|
r.DynamicGlobalIlluminationMethod=1
|
||||||
|
|
||||||
|
r.ReflectionMethod=1
|
||||||
|
|
||||||
|
r.SkinCache.CompileShaders=True
|
||||||
|
|
||||||
|
r.RayTracing=True
|
||||||
|
|
||||||
|
r.RayTracing.RayTracingProxies.ProjectEnabled=True
|
||||||
|
|
||||||
|
r.Substrate=True
|
||||||
|
|
||||||
|
r.Substrate.ProjectGBufferFormat=0
|
||||||
|
|
||||||
|
r.Shadow.Virtual.Enable=1
|
||||||
|
|
||||||
|
[/Script/EngineSettings.GameMapsSettings]
|
||||||
|
;defines what level to be loaded by default in the editor and at playback time
|
||||||
|
GameDefaultMap=/Game/Maps/RalphaWorld.RalphaWorld
|
||||||
|
EditorStartupMap=/Game/Maps/RalphaWorld.RalphaWorld
|
||||||
|
|
||||||
|
[/Script/UnrealEd.UnrealEdEngine]
|
||||||
|
; Remove Engine Template maps
|
||||||
|
-TemplateMapInfos=(ThumbnailTexture=Texture2D'/Engine/Maps/Templates/Thumbnails/VR-Basic.VR-Basic',Map="/Engine/Maps/Templates/VR-Basic")
|
||||||
|
|
||||||
|
|
||||||
|
;Allows for Hardware Accelerated Video Decoding
|
||||||
|
|
||||||
|
[/Script/WmfMediaFactory.WmfMediaSettings]
|
||||||
|
AllowNonStandardCodecs=True
|
||||||
|
HardwareAcceleratedVideoDecoding=True
|
||||||
|
LowLatency=False
|
||||||
|
NativeAudioOut=False
|
||||||
|
|
||||||
|
;Adds Virtual Scouting Widget for VR Scouting
|
||||||
|
|
||||||
|
[/Script/VPUtilitiesEditor.VPUtilitiesEditorSettings]
|
||||||
|
VirtualScoutingUI=/VirtualProductionUtilities/Editor/VirtualScoutingWidget.VirtualScoutingWidget_C
|
||||||
|
|
||||||
|
; Enables WebControl API
|
||||||
|
WebControl.EnableServerOnStartup=1
|
||||||
|
|
||||||
|
;Adds Remote Session for Vcam
|
||||||
|
|
||||||
|
[RemoteSession]
|
||||||
|
+Channels=(Name=FRemoteSessionFrameBufferChannel,Mode=Write)
|
||||||
|
+Channels=(Name=FRemoteSessionInputChannel,Mode=Read)
|
||||||
|
+Channels=(Name=FRemoteSessionXRTrackingChannel,Mode=Read)
|
||||||
|
|
||||||
|
;Setup for Media Profiles
|
||||||
|
|
||||||
|
[/Script/MediaFrameworkUtilities.MediaProfileSettings]
|
||||||
|
bApplyInCommandlet=False
|
||||||
|
MediaSourceProxy=/Game/VprodProject/MediaIO/MediaSource-01.MediaSource-01
|
||||||
|
MediaSourceProxy=/Game/VprodProject/MediaIO/MediaSource-02.MediaSource-02
|
||||||
|
MediaOutputProxy=/Game/VprodProject/MediaIO/MediaOutput-01.MediaOutput-01
|
||||||
|
StartupMediaProfile=None
|
||||||
|
|
||||||
|
|
||||||
|
;Setup for Multiuser
|
||||||
|
|
||||||
|
[/Script/Concert.ConcertClientConfig]
|
||||||
|
bIsHeadless=False
|
||||||
|
bInstallEditorToolbarButton=True
|
||||||
|
bAutoConnect=False
|
||||||
|
DefaultServerURL=
|
||||||
|
DefaultSessionName=
|
||||||
|
DefaultSessionToRestore=
|
||||||
|
DefaultSaveSessionAs=
|
||||||
|
ClientSettings=(DisplayName="",AvatarColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),DesktopAvatarActorClass=/ConcertSyncClient/DesktopPresence.DesktopPresence_C,VRAvatarActorClass=/ConcertSyncClient/VRPresence.VRPresence_C,DiscoveryTimeoutSeconds=5,SessionTickFrequencySeconds=1,LatencyCompensationMs=0.000000,Tags=)
|
||||||
|
EndpointSettings=(bEnableLogging=False,PurgeProcessedMessageDelaySeconds=30,RemoteEndpointTimeoutSeconds=60)
|
||||||
|
|
||||||
|
|
||||||
|
;Setup for Ndisplay Cluster
|
||||||
|
|
||||||
|
[/Script/DisplayClusterEditor.DisplayClusterEditorSettings]
|
||||||
|
bEnabled=True
|
||||||
|
|
||||||
|
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
|
||||||
|
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
|
||||||
|
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
|
||||||
|
-D3D12TargetedShaderFormats=PCD3D_SM5
|
||||||
|
+D3D12TargetedShaderFormats=PCD3D_SM6
|
||||||
|
-D3D11TargetedShaderFormats=PCD3D_SM5
|
||||||
|
+D3D11TargetedShaderFormats=PCD3D_SM5
|
||||||
|
|
||||||
|
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
|
||||||
|
-TargetedRHIs=SF_VULKAN_SM5
|
||||||
|
+TargetedRHIs=SF_VULKAN_SM6
|
||||||
|
|
||||||
|
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
|
||||||
|
bEnablePlugin=True
|
||||||
|
bAllowNetworkConnection=True
|
||||||
|
SecurityToken=0EAFB8DB4B4A6ADEED6F1B96CB3CA966
|
||||||
|
bIncludeInShipping=False
|
||||||
|
bAllowExternalStartInShipping=False
|
||||||
|
bCompileAFSProject=False
|
||||||
|
bUseCompression=False
|
||||||
|
bLogFiles=False
|
||||||
|
bReportStats=False
|
||||||
|
ConnectionType=USBOnly
|
||||||
|
bUseManualIPAddress=False
|
||||||
|
ManualIPAddress=
|
||||||
|
|
||||||
|
|
||||||
|
[/Script/Engine.Engine]
|
||||||
|
+ActiveGameNameRedirects=(OldGameName="TP_ME_VprodBP",NewGameName="/Script/Ralpha")
|
||||||
|
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ME_VprodBP",NewGameName="/Script/Ralpha")
|
||||||
|
|
||||||
|
[/Script/Engine.CollisionProfile]
|
||||||
|
-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False)
|
||||||
|
-Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False)
|
||||||
|
-Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False)
|
||||||
|
-Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False)
|
||||||
|
-Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False)
|
||||||
|
-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False)
|
||||||
|
-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False)
|
||||||
|
-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False)
|
||||||
|
-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False)
|
||||||
|
-Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False)
|
||||||
|
-Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False)
|
||||||
|
-Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False)
|
||||||
|
-Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False)
|
||||||
|
+Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision")
|
||||||
|
+Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ")
|
||||||
|
+Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ")
|
||||||
|
+Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ")
|
||||||
|
+Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ")
|
||||||
|
+Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.")
|
||||||
|
+Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ")
|
||||||
|
+Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ")
|
||||||
|
+Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.")
|
||||||
|
+Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.")
|
||||||
|
+Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors")
|
||||||
|
+Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors")
|
||||||
|
+Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.")
|
||||||
|
+Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.")
|
||||||
|
+Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.")
|
||||||
|
+Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.")
|
||||||
|
+Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.")
|
||||||
|
+Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ")
|
||||||
|
+Profiles=(Name="WaterBodyCollision",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="Default Water Collision Profile (Created by Water Plugin)")
|
||||||
|
-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall")
|
||||||
|
-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn")
|
||||||
|
-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic")
|
||||||
|
-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor")
|
||||||
|
-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic")
|
||||||
|
+ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall")
|
||||||
|
+ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn")
|
||||||
|
+ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic")
|
||||||
|
+ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor")
|
||||||
|
+ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic")
|
||||||
|
-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic")
|
||||||
|
-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic")
|
||||||
|
-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle")
|
||||||
|
-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn")
|
||||||
|
+CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic")
|
||||||
|
+CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic")
|
||||||
|
+CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle")
|
||||||
|
+CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn")
|
||||||
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
[/Script/EngineSettings.GeneralProjectSettings]
|
||||||
|
bUseBorderlessWindow=True
|
||||||
|
|
||||||
|
ProjectID=331D31E00D4FF07D2E5630986DDD9978
|
||||||
|
ProjectName=Ralpha
|
||||||
|
CompanyName=Valis
|
||||||
|
|
||||||
|
[/Script/MediaFrameworkUtilities.MediaProfileSettings]
|
||||||
|
bApplyInCommandlet=False
|
||||||
|
+MediaSourceProxy=/Game/VprodProject/MediaIO/MediaSource-01.MediaSource-01
|
||||||
|
+MediaSourceProxy=/Game/VprodProject/MediaIO/MediaSource-02.MediaSource-02
|
||||||
|
+MediaOutputProxy=/Game/VprodProject/MediaIO/MediaOutput-01.MediaOutput-01
|
||||||
|
StartupMediaProfile=None
|
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
[/Script/Engine.InputSettings]
|
||||||
|
bAlwaysShowTouchInterface=True
|
||||||
|
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
|
||||||
|
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
; These are tweaked defaults for various lightmass solver and export settings
|
||||||
|
; Artist oriented lightmass settings are in the editor UI
|
||||||
|
; Documentation for all of these is in UnrealLightmass / Public / SceneExport.h
|
||||||
|
; This ini is reloaded every time a lighting build begins, no need to restart
|
||||||
|
|
||||||
|
; Warning: overwriting this file with an old version will cause the editor to crash. This file must be in sync with the editor executable.
|
||||||
|
; Instead, create a DefaultLightmass.ini in your project and override just the values you need, then the overrides will continue to work on version upgrades.
|
||||||
|
; https://docs.unrealengine.com/latest/INT/Programming/Basics/ConfigurationFiles/
|
||||||
|
;
|
||||||
|
; For example, in your project's Config/DefaultLightmass.ini:
|
||||||
|
; [DevOptions.PrecomputedDynamicObjectLighting]
|
||||||
|
; SurfaceLightSampleSpacing=400
|
||||||
|
|
||||||
|
[DevOptions.StaticLightingSettings]
|
||||||
|
bCompressLightmaps=False
|
||||||
|
NumIndirectLightingBounces=5
|
||||||
|
NumSkyLightingBounces=5
|
||||||
|
IndirectLightingSmoothness=0.9
|
||||||
|
IndirectLightingQuality=2.0
|
||||||
|
|
||||||
|
[DevOptions.StaticLightingSceneConstants]
|
||||||
|
StaticLightingLevelScale=0.5
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
[/Script/VPUtilitiesEditor.VPUtilitiesEditorSettings]
|
||||||
|
VirtualScoutingUI=/VirtualProductionUtilities/Editor/VirtualScoutingWidget.VirtualScoutingWidget_C
|
||||||
|
FlightSpeed=0.500000
|
||||||
|
GripNavSpeed=0.250000
|
||||||
|
bUseMetric=False
|
||||||
|
bUseTransformGizmo=False
|
||||||
|
bUseGripInertiaDamping=True
|
||||||
|
InertiaDamping=0.950000
|
||||||
|
bIsHelperSystemEnabled=True
|
||||||
|
ScoutingSubsystemEdititorUtilityActorClassPath=/VirtualProductionUtilities/VirtualProductionHelpers.VirtualProductionHelpers_C
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[/Script/Engine.Engine]
|
||||||
|
GameEngine=/Script/DisplayCluster.DisplayClusterGameEngine
|
||||||
|
UnrealEdEngine=/Script/DisplayClusterEditor.DisplayClusterEditorEngine
|
||||||
|
GameViewportClientClassName=/Script/DisplayCluster.DisplayClusterViewportClient
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,462 @@
|
||||||
|
{
|
||||||
|
"version": "1.1",
|
||||||
|
"description": "Ralpha Location Configuration - 42 themed locations for visual matching",
|
||||||
|
"hub_level": "/Game/Maps/RalphaWorld",
|
||||||
|
"locations": [
|
||||||
|
{
|
||||||
|
"id": "alpine",
|
||||||
|
"name": "Alpine Mountains",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Alpine",
|
||||||
|
"description": "Snow-capped mountains, alpine meadows, dramatic vistas",
|
||||||
|
"domains": ["SKY", "TERRAIN", "FOG", "LIGHTING", "SNOW"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -10000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 15000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "artgallery",
|
||||||
|
"name": "Art Gallery",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_ArtGallery",
|
||||||
|
"description": "Modern art gallery, white walls, spot lighting, minimal aesthetic",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -8660, "y": -5000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "balcony_window",
|
||||||
|
"name": "Balcony Window",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Balcony_Window",
|
||||||
|
"description": "Interior with balcony/window view, natural light, indoor-outdoor transition",
|
||||||
|
"domains": ["LIGHTING", "COMPOSITION", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 16000, "y": 4000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "beach",
|
||||||
|
"name": "Beach Island",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Beach",
|
||||||
|
"description": "Tropical beach with ocean, sand, palm trees, sunset views",
|
||||||
|
"domains": ["SKY", "SEA", "TERRAIN", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 10000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 8000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bedroom_bathroom",
|
||||||
|
"name": "Bedroom & Bathroom",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Bedroom_Bathroom",
|
||||||
|
"description": "Private residential spaces, intimate lighting, personal setting",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "INTERIOR", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 16000, "y": -4000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cafe",
|
||||||
|
"name": "Cafe Restaurant",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Cafe",
|
||||||
|
"description": "Cozy cafe/restaurant interior, warm lighting, lifestyle setting",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "FACES", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -5000, "y": -8660, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "campsite",
|
||||||
|
"name": "Campsite",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Campsite",
|
||||||
|
"description": "Outdoor camping scene, tent, campfire, night sky",
|
||||||
|
"domains": ["SKY", "TERRAIN", "LIGHTING", "FOLIAGE", "FIRE"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 18000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 6000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "carpark",
|
||||||
|
"name": "Car Park / Parking Garage",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Carpark",
|
||||||
|
"description": "Multi-level parking structure, fluorescent lighting, concrete",
|
||||||
|
"domains": ["LIGHTING", "URBAN", "VEHICLES"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 17000, "y": 7000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "chefshow",
|
||||||
|
"name": "Chef Show / Cooking Set",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_ChefShow",
|
||||||
|
"description": "TV cooking show set, studio kitchen, broadcast lighting",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "FACES", "BROADCAST"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 14000, "y": 12000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "church",
|
||||||
|
"name": "Church District",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Church",
|
||||||
|
"description": "Gothic church interior and exterior, stained glass, dramatic lighting",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 8660, "y": 5000, "z": 0},
|
||||||
|
"streaming_distance": 6000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "desert",
|
||||||
|
"name": "Desert Canyon",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Desert",
|
||||||
|
"description": "Arid desert landscape, rock formations, dramatic shadows",
|
||||||
|
"domains": ["SKY", "TERRAIN", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 0, "y": -10000, "z": 0},
|
||||||
|
"streaming_distance": 12000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "diner",
|
||||||
|
"name": "Retro Diner",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Diner",
|
||||||
|
"description": "Classic American diner, neon signs, booth seating, nostalgic",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "NEON", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 12000, "y": 14000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "elevator",
|
||||||
|
"name": "Elevator Interior",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Elevator",
|
||||||
|
"description": "Enclosed elevator space, tight composition, reflective surfaces",
|
||||||
|
"domains": ["LIGHTING", "COMPOSITION", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 8000, "y": 16000, "z": 0},
|
||||||
|
"streaming_distance": 2000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "farm",
|
||||||
|
"name": "Farm Countryside",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Farm",
|
||||||
|
"description": "Rural farmland, barns, fields, pastoral scenes",
|
||||||
|
"domains": ["SKY", "TERRAIN", "LIGHTING", "FOLIAGE"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 5000, "y": -8660, "z": 0},
|
||||||
|
"streaming_distance": 10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "forest",
|
||||||
|
"name": "Forest Wilderness",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Forest",
|
||||||
|
"description": "Dense forest with varied vegetation, paths, clearings",
|
||||||
|
"domains": ["SKY", "TERRAIN", "FOG", "LIGHTING", "FOLIAGE"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -8660, "y": 5000, "z": 0},
|
||||||
|
"streaming_distance": 12000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "garden",
|
||||||
|
"name": "Garden Park",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Garden",
|
||||||
|
"description": "Manicured gardens, fountains, flower beds, pathways",
|
||||||
|
"domains": ["TERRAIN", "FOLIAGE", "LIGHTING", "WATER"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 8660, "y": -5000, "z": 0},
|
||||||
|
"streaming_distance": 6000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "government",
|
||||||
|
"name": "Government Building",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Government",
|
||||||
|
"description": "Official government interior, marble, formal architecture",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 4000, "y": 17000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hallway",
|
||||||
|
"name": "Hallway Corridor",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Hallway",
|
||||||
|
"description": "Long corridor, perspective lines, doorways, institutional",
|
||||||
|
"domains": ["LIGHTING", "COMPOSITION", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 0, "y": 18000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "home",
|
||||||
|
"name": "Residential Home",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Home",
|
||||||
|
"description": "Modern home interior - living room, kitchen, bedroom",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 0, "y": 10000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hotel",
|
||||||
|
"name": "Luxury Hotel",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Hotel",
|
||||||
|
"description": "Upscale hotel lobby and suite, elegant interiors",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 12000, "y": 7000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kitchen",
|
||||||
|
"name": "Home Kitchen",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Kitchen",
|
||||||
|
"description": "Residential kitchen, appliances, counter space, cooking",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -4000, "y": 17000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kyoto",
|
||||||
|
"name": "Kyoto Japan",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Kyoto",
|
||||||
|
"description": "Traditional Japanese architecture, temples, zen gardens, cherry blossoms",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "FOLIAGE", "COMPOSITION", "CULTURAL"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 7000, "y": 12000, "z": 0},
|
||||||
|
"streaming_distance": 8000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lightboard",
|
||||||
|
"name": "Lightboard / LED Wall",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Lightboard",
|
||||||
|
"description": "LED video wall background, virtual production, controlled lighting",
|
||||||
|
"domains": ["LIGHTING", "COMPOSITION", "VIRTUAL_PRODUCTION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -8000, "y": 16000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "medieval",
|
||||||
|
"name": "Medieval Castle",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Medieval",
|
||||||
|
"description": "Castle interiors and courtyards, torchlight, stone walls",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 0, "y": 14000, "z": 0},
|
||||||
|
"streaming_distance": 8000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "neoncyber",
|
||||||
|
"name": "Neon Cyberpunk",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_NeonCyber",
|
||||||
|
"description": "Futuristic cyberpunk cityscape, neon signs, rain-slicked streets",
|
||||||
|
"domains": ["LIGHTING", "NEON", "URBAN", "POST"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -7000, "y": 12000, "z": 0},
|
||||||
|
"streaming_distance": 10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "nightclub",
|
||||||
|
"name": "Nightclub Bar",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Nightclub",
|
||||||
|
"description": "Club interior with colored lighting, dance floor, bar",
|
||||||
|
"domains": ["LIGHTING", "NEON", "FACES", "BODIES"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -12000, "y": 7000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "office",
|
||||||
|
"name": "Office Space",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Office",
|
||||||
|
"description": "Corporate office, cubicles, meeting rooms, professional setting",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "INTERIOR", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -12000, "y": 14000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "outback",
|
||||||
|
"name": "Australian Outback",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Outback",
|
||||||
|
"description": "Red earth terrain, sparse vegetation, dramatic skies",
|
||||||
|
"domains": ["SKY", "TERRAIN", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -14000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 15000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "overtheshoulder",
|
||||||
|
"name": "Over The Shoulder",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_OverTheShoulder",
|
||||||
|
"description": "Classic OTS composition setup, conversation framing, two-shot",
|
||||||
|
"domains": ["COMPOSITION", "FACES", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -16000, "y": 8000, "z": 0},
|
||||||
|
"streaming_distance": 3000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "poolspa",
|
||||||
|
"name": "Pool and Spa",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_PoolSpa",
|
||||||
|
"description": "Indoor/outdoor pool, spa facilities, water reflections",
|
||||||
|
"domains": ["WATER", "LIGHTING", "OBJECTS"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -12000, "y": -7000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "prokitchen",
|
||||||
|
"name": "Professional Kitchen",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_ProKitchen",
|
||||||
|
"description": "Commercial restaurant kitchen, stainless steel, industrial",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -16000, "y": 4000, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "pub",
|
||||||
|
"name": "British Pub",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Pub",
|
||||||
|
"description": "Traditional pub interior, wood paneling, warm atmosphere",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -17000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "racer",
|
||||||
|
"name": "Racing / Car Interior",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Racer",
|
||||||
|
"description": "Race car cockpit, dashboard, motion blur, speed",
|
||||||
|
"domains": ["VEHICLES", "COMPOSITION", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -16000, "y": -4000, "z": 0},
|
||||||
|
"streaming_distance": 3000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "rooftop",
|
||||||
|
"name": "Rooftop Terrace",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Rooftop",
|
||||||
|
"description": "Urban rooftop with city skyline views, golden hour shots",
|
||||||
|
"domains": ["SKY", "LIGHTING", "URBAN", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -7000, "y": -12000, "z": 0},
|
||||||
|
"streaming_distance": 8000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "safarizoo",
|
||||||
|
"name": "Safari Zoo",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_SafariZoo",
|
||||||
|
"description": "African savanna, wildlife, safari vehicles",
|
||||||
|
"domains": ["SKY", "TERRAIN", "FOLIAGE", "LIGHTING"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 0, "y": -14000, "z": 0},
|
||||||
|
"streaming_distance": 15000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "starship",
|
||||||
|
"name": "Starship Interior",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Starship",
|
||||||
|
"description": "Sci-fi spaceship corridors, bridge, futuristic tech",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "SCIFI"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 7000, "y": -12000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "street",
|
||||||
|
"name": "Street Scene",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Street",
|
||||||
|
"description": "Generic street level, sidewalk, storefronts, pedestrian view",
|
||||||
|
"domains": ["URBAN", "LIGHTING", "OBJECTS", "SKY"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -16000, "y": -8000, "z": 0},
|
||||||
|
"streaming_distance": 8000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "studio",
|
||||||
|
"name": "Studio Backlot",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Studio",
|
||||||
|
"description": "Professional photo/film studio with controllable lighting rigs",
|
||||||
|
"domains": ["LIGHTING", "FACES", "BODIES", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 5000, "y": 8660, "z": 0},
|
||||||
|
"streaming_distance": 4000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "subwaymetro",
|
||||||
|
"name": "Subway Metro",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_SubwayMetro",
|
||||||
|
"description": "Underground subway station, artificial lighting, urban transit",
|
||||||
|
"domains": ["LIGHTING", "URBAN", "OBJECTS"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 12000, "y": -7000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "urban",
|
||||||
|
"name": "Urban Downtown",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Urban",
|
||||||
|
"description": "City streets, building facades, traffic, storefronts",
|
||||||
|
"domains": ["SKY", "LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -5000, "y": 8660, "z": 0},
|
||||||
|
"streaming_distance": 10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "warehouse",
|
||||||
|
"name": "Industrial Warehouse",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Warehouse",
|
||||||
|
"description": "Gritty warehouse space, industrial aesthetic, dramatic shafts of light",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "COMPOSITION"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": 14000, "y": 0, "z": 0},
|
||||||
|
"streaming_distance": 6000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "workshop_garage",
|
||||||
|
"name": "Workshop Garage",
|
||||||
|
"level_path": "/Game/Maps/Locations/LVL_Workshop_Garage",
|
||||||
|
"description": "Auto mechanic garage, tools, workbench, vehicles",
|
||||||
|
"domains": ["LIGHTING", "OBJECTS", "VEHICLES", "INTERIOR"],
|
||||||
|
"spawn_point": {"x": 0, "y": 0, "z": 100},
|
||||||
|
"hub_position": {"x": -14000, "y": -10000, "z": 0},
|
||||||
|
"streaming_distance": 5000
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hub_config": {
|
||||||
|
"description": "Central plaza connecting all 42 locations in expanded rings",
|
||||||
|
"inner_ring_radius": 10000,
|
||||||
|
"outer_ring_radius": 18000,
|
||||||
|
"features": [
|
||||||
|
"Central landmark/fountain",
|
||||||
|
"Radial paths to each location",
|
||||||
|
"Signage and wayfinding",
|
||||||
|
"Neutral lighting for transitions"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"domain_index": {
|
||||||
|
"SKY": ["alpine", "beach", "campsite", "desert", "farm", "forest", "outback", "rooftop", "safarizoo", "street", "urban"],
|
||||||
|
"SEA": ["beach"],
|
||||||
|
"WATER": ["beach", "garden", "poolspa"],
|
||||||
|
"TERRAIN": ["alpine", "beach", "campsite", "desert", "farm", "forest", "garden", "outback", "safarizoo"],
|
||||||
|
"LIGHTING": ["alpine", "artgallery", "balcony_window", "beach", "bedroom_bathroom", "cafe", "campsite", "carpark", "chefshow", "church", "desert", "diner", "elevator", "farm", "forest", "garden", "government", "hallway", "home", "hotel", "kitchen", "kyoto", "lightboard", "medieval", "neoncyber", "nightclub", "office", "outback", "overtheshoulder", "poolspa", "prokitchen", "pub", "racer", "rooftop", "safarizoo", "starship", "street", "studio", "subwaymetro", "urban", "warehouse", "workshop_garage"],
|
||||||
|
"FOG": ["alpine", "forest"],
|
||||||
|
"FOLIAGE": ["campsite", "farm", "forest", "garden", "kyoto", "safarizoo"],
|
||||||
|
"OBJECTS": ["artgallery", "cafe", "church", "diner", "government", "home", "hotel", "kitchen", "kyoto", "medieval", "office", "poolspa", "prokitchen", "pub", "starship", "street", "subwaymetro", "urban", "warehouse", "workshop_garage"],
|
||||||
|
"FACES": ["cafe", "chefshow", "nightclub", "overtheshoulder", "studio"],
|
||||||
|
"BODIES": ["nightclub", "studio"],
|
||||||
|
"COMPOSITION": ["artgallery", "balcony_window", "bedroom_bathroom", "cafe", "church", "elevator", "government", "hallway", "home", "hotel", "kyoto", "lightboard", "medieval", "office", "overtheshoulder", "racer", "rooftop", "studio", "urban", "warehouse"],
|
||||||
|
"NEON": ["diner", "neoncyber", "nightclub"],
|
||||||
|
"URBAN": ["carpark", "neoncyber", "rooftop", "street", "subwaymetro", "urban"],
|
||||||
|
"SCIFI": ["neoncyber", "starship"],
|
||||||
|
"CULTURAL": ["kyoto", "medieval"],
|
||||||
|
"SNOW": ["alpine"],
|
||||||
|
"POST": ["neoncyber"],
|
||||||
|
"INTERIOR": ["balcony_window", "bedroom_bathroom", "diner", "elevator", "government", "hallway", "kitchen", "office", "prokitchen", "pub", "workshop_garage"],
|
||||||
|
"VEHICLES": ["carpark", "racer", "workshop_garage"],
|
||||||
|
"FIRE": ["campsite"],
|
||||||
|
"BROADCAST": ["chefshow"],
|
||||||
|
"VIRTUAL_PRODUCTION": ["lightboard"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,149 @@
|
||||||
|
# Ralpha Location System
|
||||||
|
|
||||||
|
A "Disneyland-style" world with multiple themed locations that stream in/out as needed.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### 1. Create Location Levels in UE5
|
||||||
|
|
||||||
|
For each location, create a new level:
|
||||||
|
|
||||||
|
1. **File > New Level > Empty Level**
|
||||||
|
2. Save as:
|
||||||
|
- `Content/Maps/Locations/LVL_Beach.umap`
|
||||||
|
- `Content/Maps/Locations/LVL_Church.umap`
|
||||||
|
- `Content/Maps/Locations/LVL_Studio.umap`
|
||||||
|
- `Content/Maps/Locations/LVL_Home.umap`
|
||||||
|
- `Content/Maps/Locations/LVL_Urban.umap`
|
||||||
|
- `Content/Maps/Locations/LVL_Forest.umap`
|
||||||
|
|
||||||
|
### 2. Create the Hub World
|
||||||
|
|
||||||
|
1. **File > New Level > Empty Level**
|
||||||
|
2. Save as `Content/Maps/RalphaWorld.umap`
|
||||||
|
3. Add a simple ground plane
|
||||||
|
4. Add paths/portals to each location direction
|
||||||
|
|
||||||
|
### 3. Configure Level Streaming (Optional)
|
||||||
|
|
||||||
|
If you want automatic streaming when walking around RalphaWorld:
|
||||||
|
1. Open RalphaWorld
|
||||||
|
2. Window > World Settings > Enable World Partition
|
||||||
|
3. Create Level Instance actors for each location
|
||||||
|
4. Set streaming distances in the LocationConfig.json
|
||||||
|
|
||||||
|
## MCP Commands
|
||||||
|
|
||||||
|
### List all locations
|
||||||
|
```json
|
||||||
|
{"type": "list_locations"}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Load a location (stream in)
|
||||||
|
```json
|
||||||
|
{"type": "load_location", "parameters": {"location_id": "beach"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Teleport camera to location
|
||||||
|
```json
|
||||||
|
{"type": "teleport_to_location", "parameters": {"location_id": "beach"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Set active location (load + teleport)
|
||||||
|
```json
|
||||||
|
{"type": "set_active_location", "parameters": {"location_id": "beach"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Open location level directly (exits hub world)
|
||||||
|
```json
|
||||||
|
{"type": "open_location_level", "parameters": {"location_id": "beach"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Get locations by domain
|
||||||
|
```json
|
||||||
|
{"type": "get_locations_by_domain", "parameters": {"domain": "SKY"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Location Configurations
|
||||||
|
|
||||||
|
| Location | ID | Domains | Best For |
|
||||||
|
|----------|-----|---------|----------|
|
||||||
|
| Beach Island | `beach` | SKY, SEA, TERRAIN, LIGHTING | Ocean scenes, sunsets |
|
||||||
|
| Church District | `church` | LIGHTING, OBJECTS, COMPOSITION | Interior lighting, architecture |
|
||||||
|
| Studio Backlot | `studio` | LIGHTING, FACES, BODIES, COMPOSITION | Portraits, controlled lighting |
|
||||||
|
| Residential Home | `home` | LIGHTING, OBJECTS, COMPOSITION | Interior scenes |
|
||||||
|
| Urban Downtown | `urban` | SKY, LIGHTING, OBJECTS, COMPOSITION | Street scenes, cityscapes |
|
||||||
|
| Forest Wilderness | `forest` | SKY, TERRAIN, FOG, LIGHTING | Nature, atmospheric shots |
|
||||||
|
|
||||||
|
## Hub World Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
CHURCH (2500, 4330)
|
||||||
|
|
|
||||||
|
STUDIO (-2500, 4330) |
|
||||||
|
\ | /
|
||||||
|
\ | /
|
||||||
|
\ | /
|
||||||
|
[ HUB CENTER ]
|
||||||
|
/ | \
|
||||||
|
/ | \
|
||||||
|
/ | \
|
||||||
|
HOME (-5000, 0) | BEACH (5000, 0)
|
||||||
|
|
|
||||||
|
URBAN (-2500, -4330)
|
||||||
|
|
|
||||||
|
FOREST (2500, -4330)
|
||||||
|
```
|
||||||
|
|
||||||
|
Each location is ~5000 units from the hub center, arranged in a hexagonal pattern.
|
||||||
|
|
||||||
|
## Building Each Location
|
||||||
|
|
||||||
|
### Beach Island
|
||||||
|
- Import: Ocean water body, sand landscape, palm trees
|
||||||
|
- Key props: Beach chairs, umbrellas, rocks, driftwood
|
||||||
|
- Lighting: Sun for golden hour, sky atmosphere
|
||||||
|
|
||||||
|
### Church District
|
||||||
|
- Import: Gothic architecture kit
|
||||||
|
- Key props: Pews, altar, candles, stained glass
|
||||||
|
- Lighting: Dramatic light shafts through windows
|
||||||
|
|
||||||
|
### Studio Backlot
|
||||||
|
- Build: Cyc wall (infinity cove), seamless backdrop
|
||||||
|
- Key props: Softboxes, C-stands, camera gear
|
||||||
|
- Lighting: 3-point setup, controllable rigs
|
||||||
|
|
||||||
|
### Residential Home
|
||||||
|
- Import: Modular house kit, furniture pack
|
||||||
|
- Rooms: Living room, kitchen, bedroom, bathroom
|
||||||
|
- Lighting: Natural window light, practicals
|
||||||
|
|
||||||
|
### Urban Downtown
|
||||||
|
- Import: Building facades, street props
|
||||||
|
- Key props: Vehicles, street lamps, signs, benches
|
||||||
|
- Lighting: Day/night variants, neon signs
|
||||||
|
|
||||||
|
### Forest Wilderness
|
||||||
|
- Import: Tree packs (broadleaf, conifer), undergrowth
|
||||||
|
- Key props: Fallen logs, boulders, streams
|
||||||
|
- Lighting: Dappled light, fog atmosphere
|
||||||
|
|
||||||
|
## FAB Asset Recommendations
|
||||||
|
|
||||||
|
Search these on FAB for each location:
|
||||||
|
|
||||||
|
**Beach**: "tropical beach", "palm tree", "ocean rocks"
|
||||||
|
**Church**: "gothic architecture", "church interior", "stained glass"
|
||||||
|
**Studio**: "photo studio", "lighting equipment"
|
||||||
|
**Home**: "modern furniture", "interior props", "kitchen appliances"
|
||||||
|
**Urban**: "city kit", "modular buildings", "street props"
|
||||||
|
**Forest**: "broadleaf trees", "forest floor", "procedural foliage"
|
||||||
|
|
||||||
|
## Tips
|
||||||
|
|
||||||
|
1. **Start simple** - Block out each location with basic shapes first
|
||||||
|
2. **Use Level Instances** - Edit once, update everywhere
|
||||||
|
3. **Test streaming** - Ensure smooth transitions between locations
|
||||||
|
4. **Match scale** - Keep consistent scale across all locations
|
||||||
|
5. **Shared assets** - Put common assets in `Content/Assets/Shared/`
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/MI_MediaBundle-01.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/MI_MediaBundle-01.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/MediaP_MediaBundle-01.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/MediaP_MediaBundle-01.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/RT_MediaBundle-01_LensDisplacement.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/RT_MediaBundle-01_LensDisplacement.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/T_MediaBundle-01_BC.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-01_InnerAssets/T_MediaBundle-01_BC.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/MI_MediaBundle-02.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/MI_MediaBundle-02.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/MediaP_MediaBundle-02.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/MediaP_MediaBundle-02.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/RT_MediaBundle-02_LensDisplacement.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/RT_MediaBundle-02_LensDisplacement.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/T_MediaBundle-02_BC.uasset (Stored with Git LFS)
Normal file
BIN
Ralpha/Content/VprodProject/MediaIO/MediaBundle-02_InnerAssets/T_MediaBundle-02_BC.uasset (Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
/Users/jamestagg/Documents/GitHub/ralpha/plugin
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
"FileVersion": 3,
|
||||||
|
"EngineAssociation": "5.7",
|
||||||
|
"Category": "",
|
||||||
|
"Description": "",
|
||||||
|
"Plugins": [
|
||||||
|
{
|
||||||
|
"Name": "PythonScriptPlugin",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "HDRIBackdrop",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "SunPosition",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "SequencerScripting",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Takes",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "MovieRenderPipeline",
|
||||||
|
"Enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "RalphaPlugin",
|
||||||
|
"Enabled": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,301 @@
|
||||||
|
# RalphaData - Kitchen Sink Asset Library
|
||||||
|
|
||||||
|
This directory contains the JSON data files that define all searchable assets, presets, and configurations for the Ralpha Kitchen Sink UE5 project.
|
||||||
|
|
||||||
|
## Directory Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
RalphaData/
|
||||||
|
├── catalogue.json # Main asset catalogue (250+ items)
|
||||||
|
├── hdris.json # HDRI environment library (18 HDRIs)
|
||||||
|
├── luts.json # Color LUT library (32 LUTs)
|
||||||
|
├── postprocess.json # Post-processing presets (15 presets)
|
||||||
|
├── metahumans/
|
||||||
|
│ ├── registry.json # MetaHuman character registry (20 characters)
|
||||||
|
│ ├── animations.json # Animation library (32 animations)
|
||||||
|
│ ├── expressions.json # Facial expression presets (16 expressions)
|
||||||
|
│ └── clothing.json # Clothing preset library (8 presets)
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## File Descriptions
|
||||||
|
|
||||||
|
### catalogue.json
|
||||||
|
The main asset catalogue containing 250+ props, furniture, vehicles, nature elements, and more.
|
||||||
|
|
||||||
|
**Categories:**
|
||||||
|
- Furniture (65+ items): Seating, tables, storage, bedroom
|
||||||
|
- Vehicles (40 items): Cars, motorcycles, bicycles, aircraft, watercraft, emergency
|
||||||
|
- Nature (30 items): Trees, plants, flowers, rocks, terrain
|
||||||
|
- Urban (21 items): Street furniture, signage, barriers, commercial
|
||||||
|
- Architecture (25 items): Walls, floors, doors, windows, stairs, columns
|
||||||
|
- Tools (13 items): Hand tools, power tools, garden tools
|
||||||
|
- Sports (15 items): Equipment, balls, furniture
|
||||||
|
- Animals (14 items): Pets, farm, wildlife
|
||||||
|
- Electronics, Decor, Equipment, Studio items
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "unique_asset_id",
|
||||||
|
"name": "Human Readable Name",
|
||||||
|
"category": "Category/Subcategory",
|
||||||
|
"tags": ["searchable", "tags"],
|
||||||
|
"path": "/Game/Ralpha/Assets/Category/SM_AssetName",
|
||||||
|
"dimensions": {"x": 100, "y": 100, "z": 100},
|
||||||
|
"has_collision": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### hdris.json
|
||||||
|
HDRI environment maps for image-based lighting.
|
||||||
|
|
||||||
|
**Categories:**
|
||||||
|
- Studio (4): Softbox, Hard Light, Natural, Gradient
|
||||||
|
- Outdoor (8): Clear Day, Overcast, Sunset, Night, Forest, Beach, Mountain, Desert
|
||||||
|
- Urban (6): City Day, City Night, Street, Parking, Office Interior, Home Interior
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "HDRI_Category_Name",
|
||||||
|
"name": "Display Name",
|
||||||
|
"category": "Studio|Outdoor|Urban",
|
||||||
|
"description": "Description of lighting quality",
|
||||||
|
"path": "/Game/Ralpha/HDRI/Category/HDRI_Name",
|
||||||
|
"resolution": "8K|4K",
|
||||||
|
"dynamic_range": "High|Medium|Low",
|
||||||
|
"sun_position": {"altitude": 60, "azimuth": 180},
|
||||||
|
"tags": ["searchable", "tags"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### luts.json
|
||||||
|
Color Look-Up Tables for color grading.
|
||||||
|
|
||||||
|
**Categories:**
|
||||||
|
- Base (2): Neutral, Rec.709
|
||||||
|
- Film (10): Kodak Portra, Ektar, Gold, Fuji Pro 400H, Velvia, Cinestill, Vision3
|
||||||
|
- Cinematic (1): Teal & Orange
|
||||||
|
- Vintage (5): Faded, Warm, Cool, 70s, Polaroid
|
||||||
|
- Black & White (5): Classic, High Contrast, Low Contrast, Noir, Sepia
|
||||||
|
- Creative (10): Cyberpunk, Vaporwave, Cross Process, Bleach Bypass, Horror, etc.
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "LUT_Category_Name",
|
||||||
|
"name": "Display Name",
|
||||||
|
"category": "Base|Film|Vintage|Black & White|Creative",
|
||||||
|
"description": "Description of the look",
|
||||||
|
"path": "/Game/Ralpha/PostProcess/LUTs/LUT_Name",
|
||||||
|
"tags": ["searchable", "tags"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### postprocess.json
|
||||||
|
Post-processing presets with full parameter definitions.
|
||||||
|
|
||||||
|
**Presets:**
|
||||||
|
- Neutral, Filmic, Cinematic, High Contrast, Low Contrast
|
||||||
|
- Warm, Cool, Desaturated, Vibrant, Vintage
|
||||||
|
- Black & White, Noir, Bleach Bypass, Cross Process, HDR
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "PP_PresetName",
|
||||||
|
"name": "Display Name",
|
||||||
|
"description": "Description",
|
||||||
|
"use_case": "When to use this preset",
|
||||||
|
"path": "/Game/Ralpha/PostProcess/Profiles/PP_Name",
|
||||||
|
"settings": {
|
||||||
|
"color_grading": {
|
||||||
|
"temperature": 6500,
|
||||||
|
"saturation": 1.0,
|
||||||
|
"contrast": 1.0
|
||||||
|
},
|
||||||
|
"bloom": 0.0,
|
||||||
|
"vignette": 0.0,
|
||||||
|
"film_grain": 0.0
|
||||||
|
},
|
||||||
|
"tags": ["searchable", "tags"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### metahumans/registry.json
|
||||||
|
Registry of 20 diverse MetaHuman characters.
|
||||||
|
|
||||||
|
**Demographics:**
|
||||||
|
- 10 Male, 10 Female
|
||||||
|
- Age ranges: 20s, 30s, 40s, 50s, 60s
|
||||||
|
- Ethnicities: Caucasian, African, East Asian, Hispanic, South Asian, Mixed
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "MH_[M|F]_[Age]_[Ethnicity]",
|
||||||
|
"name": "Character Name",
|
||||||
|
"gender": "Male|Female",
|
||||||
|
"age_range": "20s|30s|40s|50s|60s",
|
||||||
|
"ethnicity": "Ethnicity",
|
||||||
|
"description": "Character description",
|
||||||
|
"blueprint_path": "/Game/Ralpha/MetaHumans/[Gender]/BP_...",
|
||||||
|
"default_clothing": "Casual|Business",
|
||||||
|
"available_clothing": ["Casual", "Business", "Athletic", "Evening", "Uniform"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### metahumans/animations.json
|
||||||
|
32 animations for MetaHuman characters.
|
||||||
|
|
||||||
|
**Categories:**
|
||||||
|
- Idle (5): Standing Relaxed, Standing Formal, Sitting Chair, Sitting Sofa, Leaning Wall
|
||||||
|
- Pose (5): Portrait 3/4, Portrait Profile, Hands Pockets, Arms Crossed, Thinking
|
||||||
|
- Action (12): Walk, Run, Sit, Stand, Pick Up, Wave, Nod, Shake Head, Shrug, etc.
|
||||||
|
- Interaction (10): Type, Phone, Drink, Eat, Talk, Listen, Point, Handshake, Clap
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "Animation_ID",
|
||||||
|
"name": "Display Name",
|
||||||
|
"category": "Idle|Pose|Action|Interaction",
|
||||||
|
"description": "What the animation shows",
|
||||||
|
"path": "/Game/Ralpha/Animations/Category/Anim_Name",
|
||||||
|
"looping": true|false,
|
||||||
|
"duration": 2.0
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### metahumans/expressions.json
|
||||||
|
16 facial expression presets using ARKit morph targets.
|
||||||
|
|
||||||
|
**Expressions:**
|
||||||
|
Neutral, Happy, Sad, Angry, Surprised, Thinking, Laughing, Serious,
|
||||||
|
Confused, Disgusted, Fearful, Skeptical, Smirk, Determined, Wink, Sleepy
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "ExpressionName",
|
||||||
|
"name": "Display Name",
|
||||||
|
"description": "What the expression conveys",
|
||||||
|
"morph_targets": {
|
||||||
|
"mouthSmile_L": 0.8,
|
||||||
|
"mouthSmile_R": 0.8,
|
||||||
|
"cheekSquint_L": 0.4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### metahumans/clothing.json
|
||||||
|
8 clothing presets with gender-specific variants.
|
||||||
|
|
||||||
|
**Presets:**
|
||||||
|
Casual, Business, Athletic, Evening, Uniform, Medical, Swimwear, Winter
|
||||||
|
|
||||||
|
**Schema:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "PresetName",
|
||||||
|
"name": "Display Name",
|
||||||
|
"description": "Style description",
|
||||||
|
"gender_variants": {
|
||||||
|
"male": {
|
||||||
|
"top_path": "/Game/Ralpha/MetaHumans/Clothing/Male/SK_...",
|
||||||
|
"bottom_path": "/Game/...",
|
||||||
|
"shoes_path": "/Game/...",
|
||||||
|
"accessories": ["SK_Accessory1", "SK_Accessory2"]
|
||||||
|
},
|
||||||
|
"female": { ... }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## MCP Commands
|
||||||
|
|
||||||
|
### Search Commands
|
||||||
|
```json
|
||||||
|
// Unified search across all catalogues
|
||||||
|
{"type": "search", "parameters": {"query": "red chair", "max_results": 50}}
|
||||||
|
|
||||||
|
// Search specific type
|
||||||
|
{"type": "search_by_type", "parameters": {"query": "sunset", "type": "hdri"}}
|
||||||
|
|
||||||
|
// List searchable types
|
||||||
|
{"type": "list_searchable_types"}
|
||||||
|
|
||||||
|
// Get all tags (optionally filtered by type)
|
||||||
|
{"type": "get_tags", "parameters": {"type": "asset"}}
|
||||||
|
|
||||||
|
// Get categories for a type
|
||||||
|
{"type": "get_categories", "parameters": {"type": "lut"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Catalogue Commands
|
||||||
|
```json
|
||||||
|
// Search catalogue
|
||||||
|
{"type": "search_catalogue", "parameters": {"query": "modern sofa"}}
|
||||||
|
|
||||||
|
// Spawn asset
|
||||||
|
{"type": "spawn_catalogue_item", "parameters": {
|
||||||
|
"id": "furniture_sofa_modern_3seat",
|
||||||
|
"location": [0, 0, 0],
|
||||||
|
"rotation": [0, 0, 0]
|
||||||
|
}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### MetaHuman Commands
|
||||||
|
```json
|
||||||
|
// Spawn MetaHuman
|
||||||
|
{"type": "spawn_metahuman", "parameters": {
|
||||||
|
"id": "MH_F_25_African",
|
||||||
|
"location": [0, 200, 0],
|
||||||
|
"clothing": "Business",
|
||||||
|
"expression": "Happy"
|
||||||
|
}}
|
||||||
|
|
||||||
|
// Set expression
|
||||||
|
{"type": "set_expression", "parameters": {
|
||||||
|
"actor_name": "MetaHuman_1",
|
||||||
|
"expression": "Thinking"
|
||||||
|
}}
|
||||||
|
|
||||||
|
// Play animation
|
||||||
|
{"type": "play_animation", "parameters": {
|
||||||
|
"actor_name": "MetaHuman_1",
|
||||||
|
"animation": "Wave"
|
||||||
|
}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Post-Processing Commands
|
||||||
|
```json
|
||||||
|
// Apply post-process preset
|
||||||
|
{"type": "apply_post_preset", "parameters": {"preset": "PP_Cinematic"}}
|
||||||
|
|
||||||
|
// Set LUT
|
||||||
|
{"type": "set_lut", "parameters": {"lut": "LUT_Teal_Orange"}}
|
||||||
|
|
||||||
|
// Set HDRI
|
||||||
|
{"type": "set_hdri", "parameters": {"hdri": "HDRI_Studio_Softbox"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Searchable Types
|
||||||
|
|
||||||
|
| Type | Count | Description |
|
||||||
|
|------|-------|-------------|
|
||||||
|
| asset | 250 | Props, furniture, vehicles, etc. |
|
||||||
|
| metahuman | 20 | Character presets |
|
||||||
|
| hdri | 18 | Environment lighting |
|
||||||
|
| lut | 32 | Color grading |
|
||||||
|
| postprocess | 15 | Post-processing presets |
|
||||||
|
| animation | 32 | Character animations |
|
||||||
|
| expression | 16 | Facial expressions |
|
||||||
|
| clothing | 8 | Clothing presets |
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
- **v1.0** - Initial release with basic catalogue
|
||||||
|
- **v2.0** - Phase 5: Expanded to 250+ assets, added vehicles, nature, urban, architecture, tools, sports, animals
|
||||||
|
- **v2.1** - Phase 6: Added HDRIs, LUTs, post-processing presets, unified search system
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue