Asset creation pipeline for Herne — The Wild Hunt — a low-poly PS1-style survival horror game on Roblox.
This repository contains all Python scripts, Blender headless tools, AI API clients, and the upload pipeline used to generate, process, and publish every 3D model, texture, audio file, and animation in Herne.
The game repository (Herne) only consumes the final rbxassetid:// IDs via Constants.luau — it does not contain the generation tooling.
# 1. Clone this repo alongside the Herne repo
git clone https://github.com/VECTORG99/Herne-3D-Tools.git
cd Herne-3D-Tools
# 2. Set up Python env
python -m venv .venv
source .venv/bin/activate
pip install trimesh manifold3d numpy scipy pillow xatlas requests
# 3. (Optional) Install Blender 5.2+ for rigging/decimation
# https://www.blender.org/download/
# 4. Configure Roblox Open Cloud credentials in Herne repo's .env
# ROBLOX_API_KEY=...
# ROBLOX_UNIVERSE_ID=...
# 5. Run a phase
python scripts/asset_pipeline/run.py --phase models --upload --update- METHODOLOGY.md — Full pipeline methodology, asset inventory, watertight requirements, cost breakdown
scripts/asset_pipeline/manifest.toml— Asset definitions + AI prompts for all 15 sounds, 7 models, 18 texturesscripts/asset_pipeline/run.py --help— Orchestrator CLI
| Phase | What it generates | Cost |
|---|---|---|
models |
7 low-poly GLB meshes (trees, Herne, dogs, cabin, ground) | $0 / ~$3.71 AI |
audio |
15 SFX (horn, dogs, footsteps, UI, ambient) | $0 / ~$0.09 AI |
textures |
18 PBR textures (6 materials × 3 maps) | $0 |
icons |
6 UI icons | $0 |
overlays |
2 post-process overlays (vignette, glitch) | $0 |
animations |
8 character animations (Herne + Black Shuck) | $0 |
| Layer | Technology |
|---|---|
| 3D (procedural) | trimesh + manifold3d (CSG) |
| 3D (AI) | fal.ai Hunyuan3D v3.1 Pro |
| Audio (procedural) | numpy + scipy.signal + ffmpeg |
| Audio (AI) | ElevenLabs Sound Effects API |
| Textures | Pillow + scipy.signal.sobel (normal maps) |
| UV unwrap | xatlas |
| Rigging/animation | Blender 5.2 headless |
| Upload | Roblox Open Cloud API |
| Orchestrator | Python run.py |
Herne-3D-Tools (this repo) Herne (game repo)
───────────────────────── ──────────────────
generate_*.py ──→ .glb/.ogg/.png
upload_roblox.py ──→ rbxassetid://
update_constants.py ──────────────→ Constants.luau
AssetHelper.luau ──→ Roblox instances
ForestGenerator ──→ MeshParts
AnimationService ──→ Animator
After running the pipeline here, rebuild + test in the Herne repo:
cd ../Herne
bash scripts/dev.sh --test # 1463 tests
bash scripts/dev.sh --build # Herne.rbxmSame license as the Herne project. See Herne repo.