Files
ttvfx/README.md
T
twotalesanimation b5dfdc9897
Deploy / deploy (push) Successful in 40s
Add /set/plate: background plate comp with poly mask
Load a plate (fit to width, drag/pinch/scroll to place), comp the live
camera over it through a polygon mask drawn around the foreground.
Plate, placement and mask are remembered between visits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:40:12 +02:00

74 lines
3.2 KiB
Markdown

# twotalesvfx.com
The marketing site for **Two Tales VFX**: Next.js 16 (App Router), Tailwind CSS v4, exported as static HTML.
```bash
npm install
npm run dev # http://localhost:3000
npm run build # static site in ./out
```
## Editing content
All copy (studio info, services, projects, contact email) lives in
[`content/site.ts`](content/site.ts). Items marked `TODO` are placeholders.
- **Projects:** add an entry to `projects`. Put stills in `public/work/` and set
`image: "/work/name.jpg"` (2.39:1 looks best). `video` accepts an MP4 path
or a Vimeo/YouTube embed URL. Each project gets a page at `/work/<slug>/`.
- **Showreel:** drop `public/reel.mp4` (muted, looping, ideally under 10 MB) and
`public/reel-poster.jpg`, then set `site.reel` and `site.reelPoster`.
- **Logo:** the fox mark is a vector in `components/Fox.tsx` / `public/fox.svg`,
traced from `G:\_ADMIN\TWOTALESLOGO.png`. Favicons are `app/icon.png` and `app/apple-icon.png`.
## On-set screen markers (`/set`)
`twotalesvfx.com/set` is a tool page for production crews (not linked from the site,
not indexed). It lists screen-tracking marker images, highlights the one matching the
device it's opened on, and shows it full-screen in one tap. It works offline after the
first visit.
To add a device, drop PNGs into `public/set/markers/` named like:
```
markers_phone_iPhone-Pro_1179x2556.png # full dot grid
edge-markers_phone_iPhone-Pro_2556x1179_landscape.png # edges only
markers_laptop_1920x1080.png # name is optional
```
Kinds: `phone`, `tablet`, `laptop`, `monitor`. Any other PNG shows under "Other".
Bump `CACHE` in `public/set/sw.js` when replacing an existing image so phones fetch the new one.
## On-set spill checker (`/set/spill`)
Point a phone camera (or load a photo) at a green or blue screen setup. A WebGL shader
classifies every pixel against the sampled screen colour and shows spill as stripe
patterns plus a plain-English verdict. It is designed for colour-blind use, so it never
relies on red vs green. Views: Spill, Screen (keyed area as one flat colour), Key (rough
live key with despill) and Evenness (screen brightness bands). "Pick white" sets a
neutral reference, like a white balance pick. The code is in `components/set/SpillChecker.tsx`;
thresholds are tuned on a real Alexa car-interior plate. The camera needs https.
## On-set plate comp (`/set/plate`)
For shooting a foreground against a background plate that's already been shot. Load the
plate (fit to width, then drag / pinch / scroll to place it), start the camera, and draw a
polygon mask around where the foreground goes: the camera shows inside the mask, the plate
everywhere else. "Move plate" and "Draw mask" show the camera faintly over the whole plate
for lining up. The plate, its placement and the mask are remembered between visits. The
code is in `components/set/PlateComp.tsx`.
## Structure
```
app/
page.tsx home: hero, selected work, services, studio, contact
work/page.tsx project index
work/[slug]/ project detail pages (statically generated)
sitemap.ts, robots.ts
components/ Header, Footer, Hero, Frame, ProjectCard, Reveal, Timecode…
content/site.ts all site content
```
Deployment is covered in [DEPLOY.md](DEPLOY.md).