Communitygithub.com

SJbuilds04/vybe-cinematic-3d

HyperFrames 비디오용 결정적 Three.js / WebGL — 3D 장면, 입자 시스템, 절차적 지오메트리, 제품 턴테이블, 과학적 모델(분자, 행성, 블랙홀), 조명 장비, 카메라 경로 및 카메라 컷을 HyperFrames 시간에 맞춰 프레임 단위로 정확하게 렌더링합니다. VYBE 스토리보드가 3D, 깊이, 입자, 공간, 회전하는 제품, 데이터 조각을 요구하거나, Three.js 레이어가 검은색으로 렌더링되거나 깜빡이거나 렌더링 간 차이가 있을 때 사용하세요.

vybe-cinematic-3d란 무엇인가요?

이 스킬은 HyperFrames 비디오 내에서 결정적 3D 콘텐츠 렌더링을 위해 특별히 설계된 Three.js/WebGL 구현을 제공합니다. HyperFrames의 `three` 어댑터에 의해 게시된 시간을 단일 입력으로 사용하여 시간의 순수 함수로 각 프레임을 렌더링합니다. 이 접근 방식은 프레임 정확성과 재현 가능한 출력을 보장하며, 영화적 카메라 움직임, 입자 시스템, 절차적 지형, 행성 및 블랙홀과 같은 과학적 시각화, 제품 턴테이블 및 데이터 조각과 같은 다양한 3D 효과를 지원합니다. 이 스킬은 요청 애니메이션 프레임 루프, 시계 또는 델타 시간 사용을 금지하는 엄격한 계약을 시행하며, 대신 프레임 정확한 렌더링을 위해 `hf-seek` 시간 이벤트에 의존합니다. 또한 번들된 조명 레시피, 성능 지침 및 특정 프레임 정확한 카메라 컷을 달성하기 위한 전략을 포함하여 헤드리스 Chrome 환경에서도 일관된 출력을 보장합니다. VYBE 스토리보드가 3D 요소를 요구하거나 표준 Three.js 레이어가 예기치 않은 동작을 보일 때 이 스킬을 사용하는 것이 좋습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SJbuilds04/VYBE/tree/HEAD/skills/vybe-cinematic-3d

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

VYBE 시네마틱 3D

HyperFrames 비디오의 3D는 모든 프레임이 시간의 순수 함수인 <canvas>입니다. HyperFrames의 three 어댑터가 시간을 게시하고, 여러분이 렌더링합니다. 권위: /hyperframes-animation → adapters/three.md (설치된 경우).

계약 (협상 불가)

  • 고정 임포트: import * as THREE from "https://cdn.jsdelivr.net/npm/[email protected]/+esm"; (또는 애드온에 대해 동일한 버전을 고정하는 importmap).
  • 씬, 카메라, 렌더러, 재료를 로드 시 동기적으로 빌드합니다. 렌더링에 중요한 시크 전에 모든 모델/텍스처를 로드합니다(Three의 DefaultLoadingManager가 자동으로 대기됨). 과중한 CPU 설정의 경우 window.__hf.buildReady["<이름>"] = promise를 등록합니다.
  • 시간으로만 렌더링: window.addEventListener("hf-seek", e => renderAt(e.detail.time)); renderAt(window.__hfThreeTime || 0);
  • requestAnimationFrame 루프, 시계, 델타 또는 시드되지 않은 Math.random()을 사용하지 마십시오.
  • renderer.setPixelRatio(1); renderer.setSize(W, H, false) (W/H는 루트의 data-width/height에서 가져옴). 루트에는 data-duration이 있어야 합니다.
  • 전체 너비 캔버스에 data-layout-allow-overflow를 표시합니다.

스켈레톤

<canvas id="gl" width="1920" height="1080" data-layout-allow-overflow></canvas>
<script type="module">
  import * as THREE from "https://cdn.jsdelivr.net/npm/[email protected]/+esm";
  const root = document.getElementById("vybe-root");
  const W = +root.dataset.width, H = +root.dataset.height, D = +root.dataset.duration;
  const css = getComputedStyle(document.documentElement);
  const tok = (n, f) => css.getPropertyValue(n).trim() || f;           // VYBE 토큰 읽기
  const renderer = new THREE.WebGLRenderer({ canvas: document.getElementById("gl"), antialias: true });
  renderer.setPixelRatio(1); renderer.setSize(W, H, false);
  renderer.setClearColor(new THREE.Color(tok("--vy-bg", "#000")), 1);
  const scene = new THREE.Scene();
  const camera = new THREE.PerspectiveCamera(W > H ? 40 : 60, W / H, 0.1, 200); // 세로 모드에서 더 넓은 시야각
  // … 빌드 …
  function renderAt(t) { const p = t / D; /* 시간에 따른 카메라 + 객체 */ renderer.render(scene, camera); }
  window.addEventListener("hf-seek", (e) => renderAt(e.detail.time));
  renderAt(window.__hfThreeTime || 0);
</script>

3D 세계가 여러 씬에 걸쳐 있을 때(영화 전반에 걸친 카메라 아크)는 캔버스를 호스트(index.html)에 배치하고, 한 씬에만 존재할 때는 씬 파일에 배치합니다. 그 위에 HTML 유형을 오버레이하고, DOM 텍스트로 충분할 때는 WebGL에서 텍스트를 렌더링하지 마십시오.

레시피

  • 입자 / 먼지 / 별: 위치에 시드된 PRNG, 팔레트의 정점 색상, 둥근 스프라이트(CanvasTexture 방사형 그래디언트를 map으로 사용 — 기본 포인트는 사각형임), AdditiveBlending, depthWrite: false를 사용하는 THREE.Points. 모든 입자를 카메라의 가장 가까운 z 너머에 유지하십시오. 그렇지 않으면 카메라가 통과할 때 거대한 스프라이트로 부풀어 오릅니다(실제 VYBE 결함).
  • 히어로 구체 / 행성: SphereGeometry(r, 96, 64) + MeshStandardMaterial(메탈릭/러프니스) + 방사형 헤일로 TorusGeometry 링; 시간이 지남에 따라 조명을 켭니다.
  • 블랙홀: 어두운 구체 + 강착 원반 = 캔버스 그래디언트 텍스처가 있는 RingGeometry, 70–80° 기울여 회전; 렌즈 링 = 카메라를 향한 두 번째 얇은 토러스; 별 왜곡 = 배경 포인트 레이어를 중심 근처에서 방사형으로 스케일 조정.
  • 분자: 원자 위치에 구체(많은 경우 InstancedMesh 사용), 그 사이에 실린더(quaternion.setFromUnitVectors로 방향 지정); 카메라 궤도.
  • 제품 턴테이블: GLTFLoader(importmap)를 통한 GLTF, 제작된 클립에 대한 AnimationMixer.setTime(t), 아래의 스튜디오 라이트 리그, 샷에 걸쳐 20–35° 느린 궤도.
  • 데이터 조각: 데이터에서 높이가 나오는 InstancedMesh 상자, 시간이 지남에 따라 smoothstep으로 성장.
  • 절차적 지형/파도: JS에서 t로 PlaneGeometry를 변위(≤40k 정점의 경우 프레임당 위치 재계산)하거나 renderAt에서 설정된 uTime 유니폼을 사용하는 ShaderMaterial에서.

조명

references/lighting.md를 로드하십시오. 최소 리그: 키(Point/Directional), 대비되는 색조의 림/백 라이트, 그리고 HemisphereLight 필 — 하나의 조명만 있는 메시는 어두운 면이 검은색 컷아웃으로 렌더링됩니다. 고정된 비율로 동일한 시간 함수에서 조명 강도를 구동합니다.

카메라

정규화된 진행 p = t / D로 위치를 도출하고, 막(행동)별로 smoothstep 세그먼트를 사용합니다(시네마틱 템플릿의 renderAt 참조). 컷의 경우 const CUT_B = 23을 한 번 선언하고 이를 카메라 샷 선택기와 객체 가시성 모두에 사용합니다. 컷 직전과 직후의 프레임을 확인합니다(snapshot --at 22.9667,23).

성능 (헤드리스 Chrome은 소프트웨어 GL일 수 있음)

  • ≤ 100k 삼각형, ≤ 20k 입자, 프레임 기록이 필요한 후처리 패스 없음. 블룸: 가산 스프라이트/헤일로로 가짜 구현.
  • 저RAM 시스템에서 antialias + 거대한 캔버스를 4K로 사용하지 마십시오. 드래프트 렌더링을 테스트하십시오.
  • 렌더 환경에서 WebGL이 실패하면 캔버스가 검은색입니다: QC에서 검은색 프레임으로 포착됨; 씬의 2D 캔버스 또는 CSS-3D 버전으로 폴백합니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

SJbuilds04/vybe-audio-design

Sound design and music direction for VYBE / HyperFrames videos — choosing music by mood and arc, spotting sound effects to picture, voiceover direction and provider choice (HeyGen, ElevenLabs, Kokoro, Gemini), ducking, loudness targets, beat-synced editing and caption sync. Use when planning or fixing the audio of a video, when a video feels silent, cheap, cluttered or out of sync, or when choosing a voice or music provider.

SJbuilds04/vybe-image-to-motion

Animate a still image into video. Analyzes the image, plans the motion, and picks the right technique — programmatic 2.5D (camera moves, depth-map parallax, subject/background layer separation, particles, fog, light) or AI image-to-video (Runway Gen-4.5 / Veo 3.1 / Kling 3.0, Luma Ray 3.2, Gemini Omni Flash) for organic motion like walking, faces, water or hair — then composes the result in HyperFrames with music, SFX and text. Use when someone supplies an image and asks to animate it, bring it

SJbuilds04/vybe-motion-design

Motion design craft for VYBE / HyperFrames videos — animation principles, easing and timing, choreography and staggering, scene transitions, camera movement, and visual effects (blur, glow, masks, grain, light leaks), written as seek-safe GSAP recipes. Use when designing or fixing how things move in a video — entrances, exits, transitions between scenes, camera moves, rhythm, or when motion feels generic, floaty, stiff or repetitive.

SJbuilds04/vybe-typography

Typography for motion — type systems, font pairing with bundled OFL fonts, scale and readability rules for video, kinetic typography techniques, per-letter/word animation, captions design and safe zones, in HyperFrames compositions. Use when choosing fonts, sizing or animating text in a VYBE video, building kinetic type or lyric videos, styling captions, or when text overlaps, clips, is unreadable or looks generic.

관련 스킬