Standardize: reference docs/.agents/, remove duplicate skills/
This commit is contained in:
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
This file teaches AI agents (Pi, Cursor, Claude Code) how to work with the Tinqs blog repo. Read it before making any changes.
|
This file teaches AI agents (Pi, Cursor, Claude Code) how to work with the Tinqs blog repo. Read it before making any changes.
|
||||||
|
|
||||||
|
## Shared context
|
||||||
|
|
||||||
|
Shared agent identity, team roster, skills, and cross-project rules live in `../docs/.agents/`. Read at session start:
|
||||||
|
- `../docs/.agents/SOUL.md` — shared identity
|
||||||
|
- `../docs/ai/company.md` — team roster
|
||||||
|
- `../docs/ai/siblings.md` — repo locations
|
||||||
|
- `../docs/.agents/rules/shared-context.md` — cross-repo conventions
|
||||||
|
|
||||||
## Blog architecture
|
## Blog architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -152,13 +160,6 @@ git push origin main
|
|||||||
|
|
||||||
Git Studio serves this repo directly. A push to main is a deploy. No build step on the server — static HTML files.
|
Git Studio serves this repo directly. A push to main is a deploy. No build step on the server — static HTML files.
|
||||||
|
|
||||||
## Skills reference
|
## Skills
|
||||||
|
|
||||||
The `skills/` directory contains reusable agent playbooks for game dev workflows. These are NOT blog-specific — they're for game development agents using Tinqs Studio.
|
Skills live in the hub: `../docs/.agents/skills/` (image-generation, concept-art-pipeline, sora2-video, tripo-browser-workflow, and more). Read skill SKILL.md files from there when needed.
|
||||||
|
|
||||||
- **Image Generation** (`skills/image-generation.md`) — fal.ai Flux API, 4-layer prompt pattern, model comparison
|
|
||||||
- **Concept Art Pipeline** (`skills/concept-art-pipeline.md`) — Full 2D concept art → 3D model workflow
|
|
||||||
- **Sora 2 Video** (`skills/sora2-video.md`) — Trailer clips with OpenAI Sora 2
|
|
||||||
- **Tripo 3D** (`skills/tripo-browser-workflow.md`) — Text-to-3D and image-to-3D via Tripo Studio
|
|
||||||
|
|
||||||
Skills are markdown playbooks — drop them into any agent's skills directory to teach it a workflow.
|
|
||||||
|
|||||||
@@ -1,162 +0,0 @@
|
|||||||
# Skill: Concept Art Pipeline
|
|
||||||
|
|
||||||
End-to-end workflow for creating game character art --- from design brief through 2D concept art to 3D model export. This skill covers everything before the game engine.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
| Phase | What | Output |
|
|
||||||
|-------|------|--------|
|
|
||||||
| 1 --- Design | 2D concept art via AI image generation | Approved PNG(s) |
|
|
||||||
| 2 --- Model | 3D generation via Tripo Studio | GLB/FBX export |
|
|
||||||
| 3 --- Handoff | Reference file for the dev team | Markdown spec |
|
|
||||||
|
|
||||||
## Phase 1: 2D Concept Art
|
|
||||||
|
|
||||||
### Locking Your Art Style
|
|
||||||
|
|
||||||
Before generating anything, define your art style once and enforce it everywhere. Write it down. Here's an example for a stylised game:
|
|
||||||
|
|
||||||
- **Stylised 3D render**, anime-influenced but not full anime
|
|
||||||
- **Matte skin**, no metallic sheen, warm earthy tones
|
|
||||||
- **Neutral confident expression** --- calm determination, not fierce or smiling
|
|
||||||
- **Earthy palette**: browns, tans, dark reds, cream, black
|
|
||||||
- **Asymmetric accessories** --- different on left vs right
|
|
||||||
- **Dark grey background** for all concept art (consistent, easy to composite)
|
|
||||||
|
|
||||||
### Hard Rules (define yours)
|
|
||||||
|
|
||||||
Every project should have a "do not" list. Examples:
|
|
||||||
|
|
||||||
- NO Disney-adjacent designs (if you're going for something grittier)
|
|
||||||
- NO overly shiny or metallic materials (unless your game's style calls for it)
|
|
||||||
- NO hair falling forward over chest (won't animate well in-engine)
|
|
||||||
- NO culturally inappropriate elements (research your references)
|
|
||||||
|
|
||||||
### Cultural Direction
|
|
||||||
|
|
||||||
If your game draws from real cultures, create an approved/rejected table:
|
|
||||||
|
|
||||||
| Approved | Rejected |
|
|
||||||
|----------|----------|
|
|
||||||
| Woven natural fibres, shell jewelry | Generic "tribal" patterns |
|
|
||||||
| Specific cultural motifs (research them) | Stereotypical elements from wrong cultures |
|
|
||||||
| Natural materials (bone, wood, stone) | Modern materials that break the setting |
|
|
||||||
|
|
||||||
### Generation Steps
|
|
||||||
|
|
||||||
1. **Get the brief** --- gender, role, distinctive features, or "surprise me within the style"
|
|
||||||
2. **Generate 3 variants** using your image generation tool (see [Image Generation skill](image-generation.md))
|
|
||||||
- T-pose, front view, consistent background
|
|
||||||
- Naming convention: `character_<name>_front_full_v01.png`
|
|
||||||
3. **Score each variant** using a rubric (see below)
|
|
||||||
4. **Generate reference sheet** for the winner --- front, side, three-quarter, head closeup
|
|
||||||
5. **Save with metadata** --- prompt, model used, date, score
|
|
||||||
|
|
||||||
### Scoring Rubric (0--10)
|
|
||||||
|
|
||||||
| Score | Meaning | Action |
|
|
||||||
|-------|---------|--------|
|
|
||||||
| 9-10 | Perfect match to art style and brief | Approve, generate reference sheet |
|
|
||||||
| 8 | Strong, minor tweaks needed | Approve with notes, iterate once |
|
|
||||||
| 6-7 | Interesting but needs changes | Note what works, regenerate |
|
|
||||||
| 4-5 | Wrong direction, some salvageable elements | Extract what works, fresh prompt |
|
|
||||||
| 0-3 | Off-target | Drop, adjust approach |
|
|
||||||
|
|
||||||
**Score on:** style match, cultural accuracy, expression, silhouette (distinctive at distance?), technical (T-pose clean? animatable?)
|
|
||||||
|
|
||||||
### Layered Design
|
|
||||||
|
|
||||||
Design characters in separable layers for future equipment/customisation:
|
|
||||||
|
|
||||||
1. **Base body** --- simple underwear, no accessories
|
|
||||||
2. **Lower garment** --- baked into character mesh
|
|
||||||
3. **Upper garment** --- baked or swappable
|
|
||||||
4. **Hair** --- separate asset (swappable)
|
|
||||||
5. **Accessories** --- equipment slots (necklaces, bracelets, headwear)
|
|
||||||
6. **Cape/cloak** --- separate equipment piece
|
|
||||||
|
|
||||||
Generate the full character for the overall look, but keep separation in mind for 3D.
|
|
||||||
|
|
||||||
## Phase 2: 3D Model Generation
|
|
||||||
|
|
||||||
### Using Tripo Studio
|
|
||||||
|
|
||||||
[Tripo Studio](https://studio.tripo3d.ai) generates 3D models from text or images.
|
|
||||||
|
|
||||||
1. Open Tripo Studio
|
|
||||||
2. Text-to-3D or paste your approved concept art for image-to-3D
|
|
||||||
3. Use **Ultra quality**, latest model version, **Texture ON** (~35-50 credits)
|
|
||||||
4. Export as **GLB** (preferred --- preserves PBR textures) or FBX
|
|
||||||
5. Save to your project's asset pipeline
|
|
||||||
|
|
||||||
Tripo outputs ~1.5M faces with full PBR textures (basecolour, normal, ORM). You'll decimate to your target polygon budget in Blender or your engine.
|
|
||||||
|
|
||||||
### Large Hair Problem
|
|
||||||
|
|
||||||
Auto-riggers (like Mixamo) break when the mesh includes big hair --- wrong arm poses, face distortion, rig artifacts.
|
|
||||||
|
|
||||||
**Rule:** For characters with large or complex hair:
|
|
||||||
- Export a **body-only version** (no hair) for rigging
|
|
||||||
- In Tripo: use **Segment** to split hair from body, export body-only
|
|
||||||
- Hair is added back as a separate mesh after rigging
|
|
||||||
|
|
||||||
### Polygon Budget
|
|
||||||
|
|
||||||
Define your LOD targets. Example:
|
|
||||||
|
|
||||||
| LOD | Face Count | Use |
|
|
||||||
|-----|-----------|-----|
|
|
||||||
| LOD0 | 25,000 | Close-up, player character |
|
|
||||||
| LOD1 | 10,000 | Medium distance NPCs |
|
|
||||||
| LOD2 | 2,500 | Crowd/background characters |
|
|
||||||
|
|
||||||
### Texture QA Checklist
|
|
||||||
|
|
||||||
Before handoff, verify:
|
|
||||||
|
|
||||||
- [ ] PBR textures present --- basecolour, normal, roughness/metallic maps
|
|
||||||
- [ ] No UV seams on prominent areas (face, hands)
|
|
||||||
- [ ] Skin tone matches the approved concept art
|
|
||||||
- [ ] No texture stretching on limbs or torso
|
|
||||||
- [ ] Accessories have distinct materials
|
|
||||||
- [ ] Resolution 2K minimum for hero characters
|
|
||||||
- [ ] No generation artifacts (floating geometry, merged fingers, extra limbs)
|
|
||||||
|
|
||||||
## Handoff
|
|
||||||
|
|
||||||
Create a handoff document for each approved character:
|
|
||||||
|
|
||||||
1. **Character identity** --- name, role, description
|
|
||||||
2. **Concept art files** --- paths to approved PNGs
|
|
||||||
3. **3D model files** --- path to GLB/FBX exports
|
|
||||||
4. **Art direction notes** --- what to keep, what to change
|
|
||||||
5. **Technical requirements** --- shader, rig type, LOD targets, scale
|
|
||||||
6. **Known issues** --- large hair flag, texture problems, etc.
|
|
||||||
|
|
||||||
## Batch Generation
|
|
||||||
|
|
||||||
When generating multiple characters:
|
|
||||||
|
|
||||||
1. Prepare all briefs upfront
|
|
||||||
2. Generate in priority order (ship-soonest first)
|
|
||||||
3. Use free retries before spending credits
|
|
||||||
4. Score as you go --- don't batch review
|
|
||||||
5. Track credits per generation
|
|
||||||
6. Export immediately after approval (don't leave work in the cloud tool)
|
|
||||||
|
|
||||||
## Common Mistakes
|
|
||||||
|
|
||||||
| Problem | Cause | Fix |
|
|
||||||
|---------|-------|-----|
|
|
||||||
| Characters look generic | No art style lock | Define and enforce your style guide |
|
|
||||||
| Inconsistent across characters | No reference images | Use your best character as image-to-image reference |
|
|
||||||
| Metallic skin sheen | Default material settings | Use matte keywords, check PBR roughness |
|
|
||||||
| Symmetric accessories | Generation default | Explicitly describe left vs right in prompt |
|
|
||||||
| Auto-rigger fails | Large hair in mesh | Segment and export body-only |
|
|
||||||
| Low-poly look in engine | PBR textures missing | Always generate with Texture ON + PBR ON |
|
|
||||||
|
|
||||||
## Related Skills
|
|
||||||
|
|
||||||
- [Image Generation](image-generation.md) --- fal.ai Flux models and prompt patterns
|
|
||||||
- [Tripo 3D](tripo-browser-workflow.md) --- detailed Tripo Studio workflow
|
|
||||||
- [Sora 2 Video](sora2-video.md) --- animate concept art into video
|
|
||||||
@@ -1,218 +0,0 @@
|
|||||||
# Skill: Image Generation with fal.ai Flux
|
|
||||||
|
|
||||||
Generate game art, concept art, icons, logos, trailer frames, and marketing visuals using fal.ai Flux models. This skill teaches an AI agent how to call fal.ai's API with structured prompts optimised for game development.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
[fal.ai](https://fal.ai) hosts Flux image generation models with a simple API. You describe what you want, pick a model and size, and get back a URL to the generated image. Costs range from $0.004 to $0.015 per image.
|
|
||||||
|
|
||||||
## Models
|
|
||||||
|
|
||||||
| Model | Quality | Cost/img | Speed | Use |
|
|
||||||
|-------|---------|---------|-------|-----|
|
|
||||||
| `fal-ai/flux-2-pro` | High | ~$0.01 | ~15s | **Default.** Final art, icons, trailer frames. Most reliable. |
|
|
||||||
| `fal-ai/flux/schnell` | Fast | $0.004 | ~4s | Quick mockups, iteration, exploration |
|
|
||||||
| `fal-ai/flux-pro/v1.1-ultra` | Ultra | $0.015 | ~8s | Highest quality, but can be slow. Fall back to flux-2-pro if it hangs. |
|
|
||||||
| `fal-ai/ideogram/v2` | Typography | $0.008 | ~5s | Logos with readable text, posters, banners |
|
|
||||||
|
|
||||||
**How to pick:** Use `flux-2-pro` for most work. Use `schnell` when iterating fast. Use `ideogram/v2` when you need readable text in the image.
|
|
||||||
|
|
||||||
## Sizes
|
|
||||||
|
|
||||||
| Value | Dimensions | Use |
|
|
||||||
|-------|-----------|-----|
|
|
||||||
| `square` | 512x512 | Icons, favicons |
|
|
||||||
| `square_hd` | 1024x1024 | App icons, logos, character portraits |
|
|
||||||
| `landscape_16_9` | 1024x576 | Trailer frames, hero images, Steam banners |
|
|
||||||
| `portrait_16_9` | 576x1024 | Steam capsules, posters, mobile splash screens |
|
|
||||||
|
|
||||||
## API Usage
|
|
||||||
|
|
||||||
### Python (fal-client)
|
|
||||||
|
|
||||||
```python
|
|
||||||
import fal_client
|
|
||||||
|
|
||||||
result = fal_client.subscribe("fal-ai/flux-2-pro", arguments={
|
|
||||||
"prompt": "Your detailed prompt here",
|
|
||||||
"image_size": "landscape_16_9",
|
|
||||||
"num_images": 1,
|
|
||||||
})
|
|
||||||
|
|
||||||
image_url = result["images"][0]["url"]
|
|
||||||
print(image_url)
|
|
||||||
```
|
|
||||||
|
|
||||||
### JavaScript
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
import * as fal from "@fal-ai/serverless-client";
|
|
||||||
|
|
||||||
const result = await fal.subscribe("fal-ai/flux-2-pro", {
|
|
||||||
input: {
|
|
||||||
prompt: "Your detailed prompt here",
|
|
||||||
image_size: "landscape_16_9",
|
|
||||||
num_images: 1,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(result.images[0].url);
|
|
||||||
```
|
|
||||||
|
|
||||||
### cURL
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -X POST "https://queue.fal.run/fal-ai/flux-2-pro" \
|
|
||||||
-H "Authorization: Key $FAL_KEY" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"prompt": "Your detailed prompt here",
|
|
||||||
"image_size": "landscape_16_9",
|
|
||||||
"num_images": 1
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Image-to-image (reference images)
|
|
||||||
|
|
||||||
Pass a reference image URL for guided generation:
|
|
||||||
|
|
||||||
```python
|
|
||||||
result = fal_client.subscribe("fal-ai/flux-2-pro", arguments={
|
|
||||||
"prompt": "Same scene but at sunset, warm golden light",
|
|
||||||
"image_url": "https://your-reference-image.png",
|
|
||||||
"image_size": "landscape_16_9",
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
For dual-reference compositing (mixing elements from two images), pass comma-separated URLs and describe which elements come from which reference in the prompt.
|
|
||||||
|
|
||||||
## Prompt Engineering --- the 4-Layer Pattern
|
|
||||||
|
|
||||||
This pattern consistently produces the best results for game art. Each layer adds specificity.
|
|
||||||
|
|
||||||
### Layer 1: Design context
|
|
||||||
|
|
||||||
Set the overall art direction. This anchors the model's style. Example for a Polynesian survival game:
|
|
||||||
|
|
||||||
```
|
|
||||||
Art direction: stylized 3D render for a survival colony sim set in a Polynesian
|
|
||||||
archipelago. Warm earthy palette --- browns, tans, dark reds, cream, ocean blues.
|
|
||||||
Carved wood textures, koru spirals, woven pandanus patterns. Moana-meets-Valheim
|
|
||||||
aesthetic. Game engine quality, not photorealistic.
|
|
||||||
```
|
|
||||||
|
|
||||||
Adapt this to your game's art style. The key is being specific about palette, materials, and cultural references.
|
|
||||||
|
|
||||||
### Layer 2: Scene description
|
|
||||||
|
|
||||||
Describe exactly what should appear, element by element:
|
|
||||||
|
|
||||||
- Camera angle and POV
|
|
||||||
- Characters (count, poses, clothing, expressions)
|
|
||||||
- Environment (time of day, weather, terrain, vegetation)
|
|
||||||
- Colours and lighting
|
|
||||||
- Technical style (stylised realism, cel-shaded, pixel art, etc.)
|
|
||||||
|
|
||||||
**Be specific.** "A warrior standing on a beach" produces generic results. "A Polynesian warrior in a T-pose, front view, wearing tapa cloth wrap and cowrie shell necklace, matte skin, earthy tones, dark grey background" produces usable concept art.
|
|
||||||
|
|
||||||
### Layer 3: Negative prompt
|
|
||||||
|
|
||||||
Always include what you don't want:
|
|
||||||
|
|
||||||
```
|
|
||||||
Do not include: cartoon style, anime style, photorealistic render, extra text
|
|
||||||
or taglines, watermark, deformed elements, modern or sci-fi elements.
|
|
||||||
```
|
|
||||||
|
|
||||||
Extend with subject-specific negatives. For character art: "no extra fingers, no merged limbs, no floating accessories."
|
|
||||||
|
|
||||||
### Layer 4: Reference images (optional)
|
|
||||||
|
|
||||||
When you have existing art to match, pass it as `image_url`. Describe in the prompt which elements to keep: "Same character design but in a side view. Keep the clothing and hair style from the reference."
|
|
||||||
|
|
||||||
## Game Dev Use Cases
|
|
||||||
|
|
||||||
### Character concept art
|
|
||||||
|
|
||||||
```
|
|
||||||
Stylized 3D render of a young Polynesian woman in T-pose, front view.
|
|
||||||
Wearing woven pandanus skirt and tapa cloth top. Cowrie shell necklace,
|
|
||||||
bone bracelet on left wrist only. Hair swept back over one shoulder,
|
|
||||||
decorated with a hibiscus flower. Matte skin, warm brown tones.
|
|
||||||
Neutral confident expression. Dark grey background.
|
|
||||||
Size: square_hd (1024x1024)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Trailer frames / key art
|
|
||||||
|
|
||||||
```
|
|
||||||
Wide cinematic shot of a coastal village at golden hour. Thatched-roof
|
|
||||||
huts on stilts along a turquoise lagoon. Outrigger canoes pulled up on
|
|
||||||
white sand. Volcanic mountain in the background with clouds wrapping
|
|
||||||
the peak. Warm orange sunlight, long shadows. Stylized game engine
|
|
||||||
quality, not photorealistic.
|
|
||||||
Size: landscape_16_9 (1024x576)
|
|
||||||
```
|
|
||||||
|
|
||||||
### UI icons
|
|
||||||
|
|
||||||
```
|
|
||||||
Game icon: a carved wooden fishing hook with a glowing blue thread
|
|
||||||
wrapped around the shaft. Dark background, subtle ambient occlusion.
|
|
||||||
Clean silhouette, suitable for a 64x64 game UI icon.
|
|
||||||
Size: square (512x512)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Logo with text
|
|
||||||
|
|
||||||
```
|
|
||||||
Game logo: the word "ARIKI" in thick bold blocky capital letters.
|
|
||||||
Each letter carved from dark mahogany wood with distinct Polynesian
|
|
||||||
tribal patterns (koru spirals, chevrons, wave motifs) carved as
|
|
||||||
deep relief. Different pattern per letter. Warm directional lighting
|
|
||||||
from above-left. Dark background.
|
|
||||||
Size: square_hd (1024x1024)
|
|
||||||
Model: ideogram/v2 (for readable text)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Best Practices
|
|
||||||
|
|
||||||
| Do | Don't |
|
|
||||||
|----|-------|
|
|
||||||
| Be specific per-element | Write vague one-line prompts |
|
|
||||||
| Always include negative prompts | Skip negatives and hope for the best |
|
|
||||||
| Use `flux-2-pro` for final art | Default to the most expensive model |
|
|
||||||
| Use `schnell` for rapid iteration | Spend $0.01/img on throwaway drafts |
|
|
||||||
| Generate 2-3 variants and pick the best | Generate one and accept it |
|
|
||||||
| Save prompts alongside images | Lose track of what prompt made what |
|
|
||||||
| Match your game's art style in Layer 1 | Let the model pick a random style |
|
|
||||||
| Use reference images for consistency | Describe the same character differently each time |
|
|
||||||
|
|
||||||
## Cost Tracking
|
|
||||||
|
|
||||||
| Scenario | Cost |
|
|
||||||
|----------|------|
|
|
||||||
| 1 quick mockup (schnell) | $0.004 |
|
|
||||||
| 1 final frame (flux-2-pro) | ~$0.01 |
|
|
||||||
| 10-iteration design session | ~$0.10 |
|
|
||||||
| Full character sheet (4 views x 3 variants) | ~$0.12 |
|
|
||||||
| 20-frame trailer storyboard | ~$0.20 |
|
|
||||||
|
|
||||||
At these prices, the bottleneck is creative direction, not budget.
|
|
||||||
|
|
||||||
## Common Mistakes
|
|
||||||
|
|
||||||
| Mistake | Fix |
|
|
||||||
|---------|-----|
|
|
||||||
| Generic one-line prompts | Use the 4-layer pattern |
|
|
||||||
| No art direction context | Always set Layer 1 for your game's style |
|
|
||||||
| No negative prompt | Always include what you don't want |
|
|
||||||
| Using the wrong model for text | Use `ideogram/v2` for logos with readable text |
|
|
||||||
| Not iterating | Generate 2-3 variants, pick the best, refine |
|
|
||||||
| Inconsistent character designs | Use reference images to anchor style across generations |
|
|
||||||
|
|
||||||
## Related Skills
|
|
||||||
|
|
||||||
- [Concept Art Pipeline](concept-art-pipeline.md) --- full 2D-to-3D character workflow
|
|
||||||
- [Sora 2 Video](sora2-video.md) --- animate your generated art into trailer clips
|
|
||||||
- [Tripo 3D](tripo-browser-workflow.md) --- turn 2D concept art into 3D models
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
# Skill: Video Generation with OpenAI Sora 2
|
|
||||||
|
|
||||||
Generate trailer clips, gameplay-style footage, and cinematic sequences using OpenAI's Sora 2 API. This skill covers the API workflow, prompting patterns, and cost management for game development use.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Sora 2 generates 5-20 second video clips from text prompts or still images. For game studios, it's useful for:
|
|
||||||
|
|
||||||
- Trailer pre-visualisation (storyboard frames as video)
|
|
||||||
- Marketing clips before the game is playable
|
|
||||||
- Concept videos to test art direction
|
|
||||||
- Social media content
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- OpenAI API key with Sora access
|
|
||||||
- Set `OPENAI_API_KEY` environment variable
|
|
||||||
|
|
||||||
## API Reference
|
|
||||||
|
|
||||||
### Create a video
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -X POST "https://api.openai.com/v1/videos/generations" \
|
|
||||||
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"model": "sora-2",
|
|
||||||
"prompt": "Your prompt here",
|
|
||||||
"size": "1920x1080",
|
|
||||||
"duration": 10,
|
|
||||||
"n": 1
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
Response includes a generation ID. Video generation takes 2-10 minutes.
|
|
||||||
|
|
||||||
### Check status
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl "https://api.openai.com/v1/videos/generations/{generation_id}" \
|
|
||||||
-H "Authorization: Bearer $OPENAI_API_KEY"
|
|
||||||
```
|
|
||||||
|
|
||||||
Poll until `status` is `"completed"`. The response includes a download URL.
|
|
||||||
|
|
||||||
### Download
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -o output.mp4 "{video_download_url}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Image-to-video
|
|
||||||
|
|
||||||
Animate a still image:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -X POST "https://api.openai.com/v1/videos/generations" \
|
|
||||||
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{
|
|
||||||
"model": "sora-2",
|
|
||||||
"prompt": "Camera slowly pulls back, revealing the full village. Waves lap at the shore.",
|
|
||||||
"image": "{base64_or_url_of_image}",
|
|
||||||
"size": "1920x1080",
|
|
||||||
"duration": 5
|
|
||||||
}'
|
|
||||||
```
|
|
||||||
|
|
||||||
This is powerful for animating your generated concept art or key art frames.
|
|
||||||
|
|
||||||
## Models
|
|
||||||
|
|
||||||
| Model | Quality | Speed | Cost |
|
|
||||||
|-------|---------|-------|------|
|
|
||||||
| `sora-2` | High | 2-5 min | ~$0.10-0.20/clip |
|
|
||||||
| `sora-2-pro` | Highest | 5-10 min | ~$0.50-1.00/clip |
|
|
||||||
|
|
||||||
Use `sora-2` for iteration and pre-vis. Use `sora-2-pro` for final trailer clips only.
|
|
||||||
|
|
||||||
## Prompting for Game Trailers
|
|
||||||
|
|
||||||
### Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
[Camera movement] + [Subject action] + [Environment] + [Lighting/mood] + [Style]
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example: Opening shot
|
|
||||||
|
|
||||||
```
|
|
||||||
Slow aerial drone shot descending toward a cluster of thatched-roof huts
|
|
||||||
on a tropical island shoreline. Crystal clear turquoise water, white sand
|
|
||||||
beach, palm trees swaying gently. Golden hour sunlight, long shadows.
|
|
||||||
Stylised 3D game engine quality, warm colour palette. No text overlays.
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example: Character reveal
|
|
||||||
|
|
||||||
```
|
|
||||||
Medium shot of a young Polynesian woman standing on a cliff edge, looking
|
|
||||||
out over an ocean dotted with volcanic islands. Wind blowing her hair.
|
|
||||||
She turns to face the camera with a calm, determined expression. Sunset
|
|
||||||
light behind her. Stylised 3D render, game cinematic quality.
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example: Action sequence
|
|
||||||
|
|
||||||
```
|
|
||||||
Wide shot of three outrigger canoes racing across open ocean toward a
|
|
||||||
volcanic island. Waves crashing, spray in the air. Warriors paddling
|
|
||||||
in unison. Storm clouds building on the horizon. Dynamic camera
|
|
||||||
tracking the lead canoe. Stylised game engine quality.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Cultural Guardrails
|
|
||||||
|
|
||||||
If your game draws from real cultures, set explicit rules:
|
|
||||||
|
|
||||||
- **No anachronistic elements** (modern objects, wrong architectural styles)
|
|
||||||
- **Research your references** --- use authentic building styles, clothing, tools
|
|
||||||
- **Avoid stereotypes** --- specific cultural elements, not generic "exotic"
|
|
||||||
- **No sacred symbols used decoratively** without understanding their meaning
|
|
||||||
|
|
||||||
## Workflow for Trailer Storyboards
|
|
||||||
|
|
||||||
1. **Write the storyboard** --- list each shot with description, duration, and camera movement
|
|
||||||
2. **Generate key frames** using image generation (see [Image Generation skill](image-generation.md))
|
|
||||||
3. **Animate key frames** using Sora 2's image-to-video
|
|
||||||
4. **Generate original clips** for shots that don't need a specific starting frame
|
|
||||||
5. **Review and iterate** --- regenerate clips that don't match the vision
|
|
||||||
6. **Compile** in a video editor (DaVinci Resolve, Premiere, etc.)
|
|
||||||
|
|
||||||
## Cost Management
|
|
||||||
|
|
||||||
| Scenario | Estimated Cost |
|
|
||||||
|----------|---------------|
|
|
||||||
| 1 test clip (sora-2, 5s) | ~$0.10 |
|
|
||||||
| 10-clip exploration session | ~$1.00 |
|
|
||||||
| 20-clip trailer storyboard | ~$2-4 |
|
|
||||||
| Final 5-clip trailer (sora-2-pro) | ~$2.50-5.00 |
|
|
||||||
|
|
||||||
**Tips:**
|
|
||||||
- Use `sora-2` (not pro) for all iteration
|
|
||||||
- Keep clips to 5-10 seconds --- shorter clips have better coherence
|
|
||||||
- Generate 2-3 variants per shot and pick the best
|
|
||||||
- Only use `sora-2-pro` for the final selected shots
|
|
||||||
|
|
||||||
## Common Mistakes
|
|
||||||
|
|
||||||
| Mistake | Fix |
|
|
||||||
|---------|-----|
|
|
||||||
| Overly long prompts | Keep under 200 words. Focus on what's visible. |
|
|
||||||
| Requesting specific text/UI | Sora can't render readable text. Add text in post. |
|
|
||||||
| Not specifying art style | Always end with style direction ("stylised 3D", "game engine quality") |
|
|
||||||
| Using sora-2-pro for iteration | Expensive and slow. Use sora-2 until you're happy with the prompt. |
|
|
||||||
| Ignoring cultural accuracy | Set guardrails before generating. Review outputs for stereotypes. |
|
|
||||||
| Not tracking costs | Log every generation with model, duration, and cost. |
|
|
||||||
|
|
||||||
## Related Skills
|
|
||||||
|
|
||||||
- [Image Generation](image-generation.md) --- create key frames to animate with Sora
|
|
||||||
- [Concept Art Pipeline](concept-art-pipeline.md) --- character and asset design workflow
|
|
||||||
@@ -1,157 +0,0 @@
|
|||||||
# Skill: 3D Model Generation with Tripo Studio
|
|
||||||
|
|
||||||
Generate 3D models from text descriptions or 2D images using [Tripo Studio](https://studio.tripo3d.ai). This skill covers the workflow for game-ready 3D assets.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Tripo Studio is a web-based text-to-3D and image-to-3D tool. You describe a character, prop, or environment piece --- or upload concept art --- and Tripo generates a textured 3D model in ~60 seconds.
|
|
||||||
|
|
||||||
**Output:** GLB or FBX with full PBR textures (basecolour, normal, ORM/metallic/roughness).
|
|
||||||
|
|
||||||
**Cost:** ~25-50 credits per generation. Free tier: 150 credits/month.
|
|
||||||
|
|
||||||
## When to Use
|
|
||||||
|
|
||||||
- You have approved 2D concept art and need a 3D model
|
|
||||||
- You need a quick 3D prototype from a text description
|
|
||||||
- You're generating props, characters, or environment pieces for a game
|
|
||||||
- You need multiple variants of the same object
|
|
||||||
|
|
||||||
## Workflow
|
|
||||||
|
|
||||||
### Text-to-3D
|
|
||||||
|
|
||||||
1. Open [Tripo Studio](https://studio.tripo3d.ai)
|
|
||||||
2. Click **Create** -> **Text to 3D**
|
|
||||||
3. Enter your prompt (see prompt tips below)
|
|
||||||
4. Settings:
|
|
||||||
- Quality: **Ultra**
|
|
||||||
- Model: **v3.1 Best Quality** (or latest)
|
|
||||||
- Texture: **ON** (critical --- generates PBR maps)
|
|
||||||
5. Click Generate (~35-50 credits, ~60s)
|
|
||||||
6. Review the model in the 3D viewer --- rotate, check materials
|
|
||||||
7. Export as **GLB** (preferred) or FBX
|
|
||||||
|
|
||||||
### Image-to-3D
|
|
||||||
|
|
||||||
1. Upload your approved concept art (front view, T-pose for characters)
|
|
||||||
2. Settings: same as text-to-3D
|
|
||||||
3. Generate
|
|
||||||
4. Review --- check if the back and sides match your expectations
|
|
||||||
5. Export
|
|
||||||
|
|
||||||
## Prompt Tips for Game Assets
|
|
||||||
|
|
||||||
### Characters
|
|
||||||
|
|
||||||
```
|
|
||||||
Full body character, T-pose, front facing. Young Polynesian woman wearing
|
|
||||||
woven pandanus skirt and tapa cloth top. Shell necklace, flower in hair.
|
|
||||||
Stylized game character, not photorealistic. Clean topology.
|
|
||||||
```
|
|
||||||
|
|
||||||
**Key rules:**
|
|
||||||
- Always specify **T-pose** for characters (needed for rigging)
|
|
||||||
- Mention **clean topology** to reduce mesh artifacts
|
|
||||||
- Describe clothing and accessories explicitly
|
|
||||||
- Specify art style (stylized, realistic, low-poly, etc.)
|
|
||||||
|
|
||||||
### Props
|
|
||||||
|
|
||||||
```
|
|
||||||
Carved wooden fishing spear with bone tip. Wrapped handle with
|
|
||||||
woven cord. Polynesian style, game prop, stylized.
|
|
||||||
```
|
|
||||||
|
|
||||||
### Environment pieces
|
|
||||||
|
|
||||||
```
|
|
||||||
Thatched-roof hut on wooden stilts. Open sides with woven wall panels.
|
|
||||||
Polynesian longhouse style. Game-ready, stylized 3D.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Post-Generation Tools
|
|
||||||
|
|
||||||
Tripo offers several refinement tools after generation:
|
|
||||||
|
|
||||||
| Tool | Purpose | When to Use |
|
|
||||||
|------|---------|-------------|
|
|
||||||
| **Segment** | Split model into parts | Characters with large hair (split hair from body for rigging) |
|
|
||||||
| **Retopo** | Retopologize mesh | When face count is too high or topology is bad |
|
|
||||||
| **Texture** | Regenerate textures | When colours don't match concept art |
|
|
||||||
| **Animate** | Add basic animations | Quick previews (not production quality) |
|
|
||||||
| **Edit** | Modify the model | Remove artifacts, adjust proportions |
|
|
||||||
|
|
||||||
## Export Options
|
|
||||||
|
|
||||||
| Format | Use |
|
|
||||||
|--------|-----|
|
|
||||||
| **GLB** | Preferred. Single file, preserves PBR textures, works everywhere |
|
|
||||||
| **FBX** | When your pipeline requires it (Unity, some Blender workflows) |
|
|
||||||
| OBJ | Legacy. Loses PBR data. Avoid. |
|
|
||||||
| USD | For USD-based pipelines |
|
|
||||||
| STL | 3D printing only. No textures. |
|
|
||||||
|
|
||||||
## Polygon Budget
|
|
||||||
|
|
||||||
Tripo outputs ~1.5M faces by default. You'll need to decimate:
|
|
||||||
|
|
||||||
| LOD | Target Faces | Method |
|
|
||||||
|-----|-------------|--------|
|
|
||||||
| LOD0 | 25,000 | Blender Decimate modifier or CLI |
|
|
||||||
| LOD1 | 10,000 | Same |
|
|
||||||
| LOD2 | 2,500 | Same |
|
|
||||||
|
|
||||||
Use Tripo's built-in **Retopo** tool for a quick reduction, or decimate in Blender for more control.
|
|
||||||
|
|
||||||
## The Large Hair Problem
|
|
||||||
|
|
||||||
Auto-riggers (Mixamo, Godot's skeleton system) break when character meshes include large or complex hairstyles. The rig misidentifies the hair volume as part of the body.
|
|
||||||
|
|
||||||
**Solution:**
|
|
||||||
1. After generation, use Tripo's **Segment** tool
|
|
||||||
2. Select the hair and split it from the body
|
|
||||||
3. Export the **body-only** mesh for rigging
|
|
||||||
4. Export hair separately
|
|
||||||
5. Reattach hair after rigging in Blender or your engine
|
|
||||||
|
|
||||||
Flag this in your handoff document for every character with big hair.
|
|
||||||
|
|
||||||
## Batch Generation
|
|
||||||
|
|
||||||
When generating multiple assets in one session:
|
|
||||||
|
|
||||||
1. Prepare all prompts upfront
|
|
||||||
2. Generate in priority order
|
|
||||||
3. Use the 3 free retries per generation before spending more credits
|
|
||||||
4. Score and review each model immediately
|
|
||||||
5. Track remaining credits
|
|
||||||
6. Export approved models right away --- don't leave them only in the cloud
|
|
||||||
|
|
||||||
## Credit Optimisation
|
|
||||||
|
|
||||||
| Action | Credits |
|
|
||||||
|--------|---------|
|
|
||||||
| Standard quality generation | ~15-25 |
|
|
||||||
| Ultra quality generation | ~35-50 |
|
|
||||||
| Retopo | ~10-15 |
|
|
||||||
| Texture regeneration | ~10 |
|
|
||||||
| Segment | ~5 |
|
|
||||||
|
|
||||||
**Tip:** Start with Standard quality for exploration, switch to Ultra only for final approved designs.
|
|
||||||
|
|
||||||
## Common Mistakes
|
|
||||||
|
|
||||||
| Problem | Fix |
|
|
||||||
|---------|-----|
|
|
||||||
| Model has no textures | Ensure Texture is ON before generating |
|
|
||||||
| Back of character looks wrong | Use image-to-3D with front AND back views, or add "detailed back view" to prompt |
|
|
||||||
| Mesh has floating geometry | Use Edit tool to clean up, or regenerate |
|
|
||||||
| Merged fingers | Common artifact. Regenerate or fix in Blender |
|
|
||||||
| Too many polygons for game use | Use Retopo tool or Blender Decimate |
|
|
||||||
| Hair breaks auto-rigger | Segment hair from body, rig body-only |
|
|
||||||
|
|
||||||
## Related Skills
|
|
||||||
|
|
||||||
- [Image Generation](image-generation.md) --- create 2D concept art to feed into Tripo
|
|
||||||
- [Concept Art Pipeline](concept-art-pipeline.md) --- full 2D-to-3D workflow
|
|
||||||
Reference in New Issue
Block a user