@aswless_854771076/ai_short_studio_cli 0.1.98 → 0.1.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -313
- package/dist/base-command.d.ts +0 -6
- package/dist/base-command.js +1 -39
- package/dist/client/api-client.js +2 -19
- package/dist/commands/auth/login.d.ts +1 -2
- package/dist/commands/auth/login.js +2 -5
- package/dist/commands/auth/logout.d.ts +0 -1
- package/dist/commands/auth/signup.d.ts +0 -1
- package/dist/commands/auth/status.d.ts +0 -1
- package/dist/commands/canvas/apply.d.ts +0 -1
- package/dist/commands/canvas/asset/get.d.ts +0 -1
- package/dist/commands/canvas/asset/list.d.ts +0 -1
- package/dist/commands/canvas/asset/select.d.ts +1 -3
- package/dist/commands/canvas/asset/select.js +3 -22
- package/dist/commands/canvas/asset/upload.d.ts +0 -14
- package/dist/commands/canvas/asset/upload.js +3 -43
- package/dist/commands/canvas/continuity/analyze.d.ts +0 -1
- package/dist/commands/canvas/edge/connect.d.ts +0 -1
- package/dist/commands/canvas/edge/disconnect.d.ts +0 -1
- package/dist/commands/canvas/edge/list.d.ts +0 -1
- package/dist/commands/canvas/edge/list.js +1 -4
- package/dist/commands/canvas/episode/create.d.ts +0 -1
- package/dist/commands/canvas/episode/list.d.ts +0 -1
- package/dist/commands/canvas/folder/copy-cross-project.d.ts +0 -1
- package/dist/commands/canvas/folder/create.d.ts +0 -1
- package/dist/commands/canvas/folder/delete.d.ts +0 -1
- package/dist/commands/canvas/folder/list.d.ts +0 -1
- package/dist/commands/canvas/folder/move.d.ts +0 -1
- package/dist/commands/canvas/folder/rename.d.ts +0 -1
- package/dist/commands/canvas/folder/restore.d.ts +0 -1
- package/dist/commands/canvas/get.d.ts +0 -1
- package/dist/commands/canvas/inspect.d.ts +0 -1
- package/dist/commands/canvas/node/add.d.ts +1 -1
- package/dist/commands/canvas/node/add.js +2 -2
- package/dist/commands/canvas/node/delete.d.ts +0 -1
- package/dist/commands/canvas/node/edit-resource.d.ts +0 -2
- package/dist/commands/canvas/node/edit-resource.js +1 -9
- package/dist/commands/canvas/node/edit-shot.d.ts +0 -1
- package/dist/commands/canvas/node/get.d.ts +0 -1
- package/dist/commands/canvas/node/list.d.ts +0 -5
- package/dist/commands/canvas/node/list.js +2 -43
- package/dist/commands/canvas/node/run.d.ts +0 -15
- package/dist/commands/canvas/node/run.js +6 -142
- package/dist/commands/canvas/node/types.d.ts +0 -1
- package/dist/commands/canvas/node/update-many.d.ts +0 -1
- package/dist/commands/canvas/node/update.d.ts +0 -1
- package/dist/commands/canvas/settings/get.d.ts +0 -1
- package/dist/commands/canvas/settings/set.d.ts +0 -24
- package/dist/commands/canvas/settings/set.js +1 -60
- package/dist/commands/config/get.d.ts +0 -1
- package/dist/commands/config/set.d.ts +0 -2
- package/dist/commands/config/set.js +2 -55
- package/dist/commands/preflight.d.ts +0 -1
- package/dist/commands/preflight.js +1 -9
- package/dist/commands/project/create.d.ts +0 -1
- package/dist/commands/project/delete.d.ts +0 -1
- package/dist/commands/project/get.d.ts +0 -1
- package/dist/commands/project/list.d.ts +0 -1
- package/dist/commands/project/update.d.ts +0 -1
- package/dist/commands/skill/install.d.ts +0 -1
- package/dist/commands/skill/install.js +0 -1
- package/dist/commands/skill/path.d.ts +0 -1
- package/dist/commands/skill/path.js +0 -1
- package/dist/commands/skill/status.d.ts +0 -1
- package/dist/commands/skill/status.js +0 -1
- package/dist/commands/task/cancel.d.ts +0 -1
- package/dist/commands/task/get.d.ts +0 -1
- package/dist/commands/task/wait.d.ts +0 -2
- package/dist/commands/task/wait.js +1 -6
- package/dist/domain/vvicat-api.d.ts +3 -63
- package/dist/domain/vvicat-api.js +9 -74
- package/dist/output/formatter.d.ts +0 -11
- package/dist/output/formatter.js +0 -20
- package/dist/preflight.d.ts +0 -1
- package/dist/preflight.js +1 -14
- package/dist/skill/command-flags.js +4 -7
- package/dist/skill/skill-manager.d.ts +2 -75
- package/dist/skill/skill-manager.js +15 -60
- package/package.json +3 -4
- package/scripts/postinstall.mjs +12 -7
- package/skills/using-vvicat-ai-short-studio-cli/SKILL.md +67 -27
- package/skills/using-vvicat-ai-short-studio-cli/references/commands/canvas.md +4 -3
- package/skills/using-vvicat-ai-short-studio-cli/references/commands/project.md +2 -26
- package/skills/using-vvicat-ai-short-studio-cli/references/commands.md +2 -2
- package/skills/using-vvicat-ai-short-studio-cli/references/editing-delivery.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/h3-video-delivery.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/humanizer/humanizer.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/SKILL.md +447 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/brief.md +93 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/project-files.md +246 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/reference-video.md +266 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/script-and-time.md +253 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/creation/transformations.md +141 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/distribution.md +176 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/local-tools.md +411 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/model-and-provider.md +275 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/environment/profile.md +286 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/asset-and-shot-preproduction.md +193 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/b-roll.md +94 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/caption-tracking.md +125 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/captions.md +252 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/conversation-images.md +218 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-base-prompt-writing.md +222 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/h3-reference-prompt-writing.md +341 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/examples/image-direction.md +123 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/generated-dependencies.md +38 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/graphic-compositions.md +85 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/h3-prompt-writing.md +54 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/image-direction.md +95 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/motion-graphics.md +68 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/recreation-policy.md +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/screen-demonstrations.md +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/shot-production-contracts.md +161 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/sound-mix.md +76 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/video-direction.md +433 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-and-performance.md +224 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/craft/voice-direction.md +99 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/narration-led-demo.md +87 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/presenter-led-explainer.md +160 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/ranking-listicle.md +71 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/reference-recreation-canvas.md +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama-workflow.md +165 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/short-drama.md +88 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/street-interview.md +92 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/talking-head.md +82 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/formats/two-person-podcast.md +101 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/playbooks/index.md +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/audio-presentation.md +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/authoring.md +228 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/browser-capture.md +112 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/builds.md +330 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-authoring.md +156 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/caption-presentation.md +66 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-design.md +217 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-sharing.md +150 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-visuals.md +152 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/detail.svrun +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/direction.svs +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/look.svs +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/material.svrun +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svml +73 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svrun +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/visuals.ts +62 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/fonts-and-text.md +138 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/image-operations.md +102 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/index.md +73 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media-presentation.md +111 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/media.md +246 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/performance.md +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/prompt-kits.md +165 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/rendering.md +141 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/review.md +211 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/runs.md +151 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/script-syntax.md +236 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/snapshots.md +90 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/sound.md +75 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/source-syntax.md +163 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/spatial.md +189 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio-companions.md +186 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/studio.md +249 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/system.md +169 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timeline.md +74 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/timing.md +96 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/track-authoring.md +215 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/tracks.md +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/video-downloads.md +47 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/vocabulary.md +119 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/project-and-canvas.md +1 -1
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/README.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/SKILL.md +102 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/art-styles.json +585 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-images.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles/character-profile-output.schema.json +99 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-character-profiles.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-drama-art-style.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-prop-assets.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/generate-scene-assets.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-art-styles.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/manage-drama-assets.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.en.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/analyze-drama-source/prompts/source_analysis.zh.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.en.txt +61 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_acting_direction.zh.txt +79 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.en.txt +101 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_cinematographer.zh.txt +150 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.en.txt +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_detail.zh.txt +89 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.en.txt +114 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/agent_storyboard_plan.zh.txt +389 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.en.txt +40 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/build-drama-storyboard/prompts/professional_storyboard.zh.txt +40 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.en.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/define-drama-brief/prompts/drama_brief.zh.txt +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.en.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_description.zh.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.en.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/character_voice_recommend.zh.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.en.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/music_track_design.zh.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.en.txt +36 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-audio/prompts/voice_analysis.zh.txt +36 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.en.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/design-drama-bible/prompts/ai_story_expand.zh.txt +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.en.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/agent_character_visual.zh.txt +26 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.en.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_asset_sheet.zh.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.en.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_create.zh.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.en.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_description_update.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.en.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_image_to_description.zh.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.en.txt +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_modify.zh.txt +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-images/prompts/character_regenerate.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.en.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-character-profiles/prompts/agent_character_profile.zh.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/art_style_decision.zh.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.en.txt +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-drama-art-style/prompts/config_generation.zh.txt +67 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_description_update.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.en.txt +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/prop_generate.zh.txt +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.en.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-prop-assets/prompts/select_prop.zh.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.en.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_create.zh.txt +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.en.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_description_update.zh.txt +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.en.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_modify.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.en.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/location_regenerate.zh.txt +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.en.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/scene_asset_sheet.zh.txt +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-scene-assets/prompts/select_location.zh.txt +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.en.txt +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_enhance.zh.txt +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.en.txt +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_grid_image.zh.txt +77 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.en.txt +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/generate-storyboard-images/prompts/panel_storyboard_image.zh.txt +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.en.txt +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/ideate-drama-from-market/prompts/market_inspiration.zh.txt +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.en.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/outline-drama-series/prompts/episode_split.zh.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.en.txt +55 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-assets/prompts/asset_analysis.zh.txt +55 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.en.txt +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-drama-production/prompts/production_plan.zh.txt +52 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.en.txt +37 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/plan-shot-continuity/prompts/continuity_plan.zh.txt +37 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.en.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/review-drama-script/prompts/review_drama_script.zh.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.en.txt +57 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_analysis.zh.txt +169 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.en.txt +64 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_shot_variant_generate.zh.txt +117 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.en.txt +34 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/agent_storyboard_insert.zh.txt +34 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.en.txt +18 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/revise-drama-storyboards/prompts/storyboard_edit.zh.txt +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.en.txt +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/2d_to_live_action.zh.txt +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.en.txt +28 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/transform-drama-media/prompts/image_prompt_modify.zh.txt +42 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.en.txt +35 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-director-book/prompts/director_book.zh.txt +35 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.en.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/agent_clip.zh.txt +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.en.txt +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-episode/prompts/screenplay_conversion.zh.txt +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.en.txt +49 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/h3_video.zh.txt +48 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.en.txt +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_grid_video.zh.txt +51 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.en.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/panel_storyboard_video.zh.txt +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.en.txt +48 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/modules/write-drama-video-prompts/prompts/seedance2_video.zh.txt +46 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/assets/plan-drama-assets.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/codex-contracts.md +14 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/comfly-provider.md +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/controlled-vocabulary.json +115 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/analyze-drama-source.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/define-drama-brief.md +8 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/design-drama-bible.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/humanizer.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/outline-drama-series.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/short-drama.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-director-book.md +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/creation/write-drama-episode.md +6 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/director-composition.md +794 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-deliver-drama.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/edit-drama-timeline.md +22 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing/remotion-best-practices.md +12 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/editing-workflow.md +56 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/feature-completeness.md +111 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/configure-generation-providers.md +17 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/design-drama-audio.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/drama-generation-service.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-drama-videos.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/generate-storyboard-images.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/monitor-drama-tasks.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/transform-drama-media.md +9 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/generation/write-drama-video-prompts.md +50 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/market-report.schema.json +46 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market/methodology.md +24 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/analyze-drama-market.md +47 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market/market-inspiration.schema.json +109 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/market/ideate-drama-from-market.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/module-map.json +595 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/music-catalog-providers.md +16 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/manage-drama-projects.md +11 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/orchestrate-short-drama.md +20 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/recover-drama-pipeline.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/short-drama-skill-index.md +29 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/operations/use-short-drama-studio.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/pipeline.md +85 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/project-spec-v1.md +217 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/prompt-skill-index.md +62 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/recreation/publish-drama-references/litterbox.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-script.md +7 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/review/review-drama-shots.md +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/runninghub-provider.md +33 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/starrouter-provider.md +53 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/build-drama-storyboard.md +13 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/design-fight-video.md +19 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/action-previz.md +39 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/direction-contract.md +96 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz/weapons-vfx.md +23 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/direct-blender-previz.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/generate-blender-previz.md +20 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-drama-production.md +21 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/plan-shot-continuity.md +15 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/storyboard/revise-drama-storyboards.md +5 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/short-drama/usage-guide.md +107 -0
- package/skills/using-vvicat-ai-short-studio-cli/references/special-workflows.md +2 -8
- package/skills/using-vvicat-ai-short-studio-cli/references/troubleshooting.md +0 -1
- package/dist/auth/login-provider.d.ts +0 -2
- package/dist/auth/login-provider.js +0 -3
- package/dist/commands/canvas/node/quote.d.ts +0 -17
- package/dist/commands/canvas/node/quote.js +0 -13
- package/dist/commands/config/ai-provider/capabilities.d.ts +0 -60
- package/dist/commands/config/ai-provider/capabilities.js +0 -124
- package/dist/commands/config/ai-provider/get.d.ts +0 -22
- package/dist/commands/config/ai-provider/get.js +0 -21
- package/dist/commands/config/ai-provider/list.d.ts +0 -21
- package/dist/commands/config/ai-provider/list.js +0 -19
- package/dist/commands/config/ai-provider/models.d.ts +0 -22
- package/dist/commands/config/ai-provider/models.js +0 -21
- package/dist/commands/config/ai-provider/set.d.ts +0 -41
- package/dist/commands/config/ai-provider/set.js +0 -65
- package/dist/commands/config/ai-provider/test.d.ts +0 -25
- package/dist/commands/config/ai-provider/test.js +0 -24
- package/dist/commands/project/provider/get.d.ts +0 -15
- package/dist/commands/project/provider/get.js +0 -12
- package/dist/commands/project/provider/set.d.ts +0 -16
- package/dist/commands/project/provider/set.js +0 -18
- package/dist/commands/project/provider/test.d.ts +0 -15
- package/dist/commands/project/provider/test.js +0 -12
- package/dist/domain/ai-provider-capabilities.d.ts +0 -109
- package/dist/domain/ai-provider-capabilities.js +0 -180
- package/dist/domain/ai-provider-command-helpers.d.ts +0 -27
- package/dist/domain/ai-provider-command-helpers.js +0 -55
- package/skills/using-vvicat-ai-short-studio-cli/references/b-roll-and-screen.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/caption-and-graphics-direction.md +0 -11
- package/skills/using-vvicat-ai-short-studio-cli/references/composition-and-shot-review.md +0 -17
- package/skills/using-vvicat-ai-short-studio-cli/references/craft-index.md +0 -20
- package/skills/using-vvicat-ai-short-studio-cli/references/drama-canvas.md +0 -19
- package/skills/using-vvicat-ai-short-studio-cli/references/format-relationships.md +0 -15
- package/skills/using-vvicat-ai-short-studio-cli/references/h3-prompts.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/image-and-reference-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/licensed-music.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/licenses/oh-my-short-drama-MIT.txt +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/licenses/short-drama-MIT.txt +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/media-provenance-and-review.md +0 -22
- package/skills/using-vvicat-ai-short-studio-cli/references/paid-plan.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/production-specialties.md +0 -25
- package/skills/using-vvicat-ai-short-studio-cli/references/recreation.md +0 -21
- package/skills/using-vvicat-ai-short-studio-cli/references/reference-analysis-and-timing.md +0 -19
- package/skills/using-vvicat-ai-short-studio-cli/references/remotion-editing.md +0 -18
- package/skills/using-vvicat-ai-short-studio-cli/references/shot-production.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/sound-and-captions.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/sources.md +0 -6
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/canvas-production.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/guide.md +0 -7
- package/skills/using-vvicat-ai-short-studio-cli/references/story-craft/index.md +0 -13
- package/skills/using-vvicat-ai-short-studio-cli/references/video-and-performance-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/voice-and-sound-direction.md +0 -9
- package/skills/using-vvicat-ai-short-studio-cli/references/writing-polish.md +0 -15
- /package/skills/using-vvicat-ai-short-studio-cli/references/{licenses/humanizer-MIT.txt → short-drama/assets/modules/humanizer/LICENSE} +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/compliance-checklist.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/genre-guide.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/hook-design.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/opening-rules.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/paywall-design.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/rhythm-curve.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/satisfaction-matrix.md +0 -0
- /package/skills/using-vvicat-ai-short-studio-cli/references/{story-craft → short-drama/writing}/villain-design.md +0 -0
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-design.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Designing a good component
|
|
2
|
+
|
|
3
|
+
Read this when deciding how to organize a picture, a transition or a recurring visual system.
|
|
4
|
+
Design it with the taste of a director and the care of someone who will use it in a real composition.
|
|
5
|
+
A useful component makes a particular idea legible and keeps its behavior understandable within the
|
|
6
|
+
production. Its author interface can be as small as the work requires.
|
|
7
|
+
|
|
8
|
+
[Graphic composition](../playbooks/craft/graphic-compositions.md) owns visual hierarchy;
|
|
9
|
+
[motion graphics](../playbooks/craft/motion-graphics.md) owns changes in the picture over time;
|
|
10
|
+
[Track authoring](track-authoring.md) owns the implementation. A new Caption family also draws on
|
|
11
|
+
[Caption craft](../playbooks/craft/captions.md) and [Caption authoring](caption-authoring.md).
|
|
12
|
+
|
|
13
|
+
## Find the relationship worth giving a name
|
|
14
|
+
|
|
15
|
+
Start with the viewer's experience: a comparison becomes clear, an answer resolves a question, a
|
|
16
|
+
ranking accumulates, or a phrase lands with particular emphasis. Explain what appears, why it appears
|
|
17
|
+
there, what changes, and what the viewer should retain afterward. That explanation suggests both
|
|
18
|
+
the visual design and the component boundary.
|
|
19
|
+
|
|
20
|
+
Existing components are useful expressions of familiar relationships. Use one when its behavior
|
|
21
|
+
fits, or define a project component for the role this work needs. Its content and timing can vary
|
|
22
|
+
while the relationship remains clear. A new component can combine existing helpers with its own
|
|
23
|
+
drawing and animation; ordinary authoring includes both using and extending that vocabulary.
|
|
24
|
+
|
|
25
|
+
A board whose rows share layout and persistent state benefits from one component. An independent
|
|
26
|
+
photo and title can remain peer Tracks. An object that survives several camera cuts keeps the same
|
|
27
|
+
authored identity while its state develops. Let shared behavior define the unit.
|
|
28
|
+
|
|
29
|
+
A performance moving from full screen into a side viewport and a diagram filling the released space
|
|
30
|
+
can share one component. It owns their relative layout, overlap, masking and coordinated motion.
|
|
31
|
+
A-roll supplies the performed passage; visual ownership follows the behavior being designed.
|
|
32
|
+
Existing footage can use [Performance Styles](performance.md); independent assets use Media. A
|
|
33
|
+
one-off scene is a useful component too. Caption and independent overlays can remain separate.
|
|
34
|
+
|
|
35
|
+
Decompose a scene further where its parts have meaningful independent responsibilities. Keep
|
|
36
|
+
coordinated geometry, state and transitions together where that makes their behavior clear. Internal
|
|
37
|
+
functions and subcomponents can organize this code without each becoming another Track or package.
|
|
38
|
+
The useful division preserves the relationship through change; more layers alone do not improve it.
|
|
39
|
+
|
|
40
|
+
## Separate responsibility, parameters and reuse
|
|
41
|
+
|
|
42
|
+
Adaptive composition introduces structure where it makes the work easier to understand and direct.
|
|
43
|
+
A boundary gives a responsibility an owner; a parameter expresses a choice supplied from outside
|
|
44
|
+
that owner; reuse preserves a relationship across uses. These decisions serve different needs.
|
|
45
|
+
|
|
46
|
+
| Decision | What justifies it |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| Independent organization | A distinct visual responsibility, lifetime or behavior benefits from its own owner. Parts sharing geometry, state or motion can stay together. |
|
|
49
|
+
| Parameterization | The production needs an external choice: an asset, a spoken trigger, a placement or a setting the author will actually adjust. |
|
|
50
|
+
| Reusable design | Actual uses share a relationship or treatment. Share that behavior and generalize only the variation those uses need. |
|
|
51
|
+
|
|
52
|
+
An author input is not a requirement to publish a package or provide a Studio control. A shared
|
|
53
|
+
internal function is not necessarily another Track. Numeric and qualitative choices use the same
|
|
54
|
+
criterion: does an external dependency or a useful directing decision belong here? A color, mood,
|
|
55
|
+
layout mode or easing name does not deserve a public parameter merely because it could vary.
|
|
56
|
+
|
|
57
|
+
One-off effects can be independently organized with fixed designs. A future edit may appropriately
|
|
58
|
+
change their implementation. Consider likely revisions to reveal tangled responsibilities or useful
|
|
59
|
+
inputs, rather than treating every possible edit as a parameter to implement in advance. Even repeated
|
|
60
|
+
use can share the same fixed treatment. Interface breadth and reuse count do not measure component quality.
|
|
61
|
+
|
|
62
|
+
For example, a backdrop and an editor demonstration have different jobs and can be organized
|
|
63
|
+
separately. The editor can keep its button sizes, panel spacing, illustrative labels and pointer paths
|
|
64
|
+
inside its implementation. Its pointer, dragged image and target slot share geometry and belong
|
|
65
|
+
together. Supply the actual assets and speech-linked events through author inputs; expose Caption
|
|
66
|
+
placement or color when those are useful adjustments. This gives the piece clear structure without
|
|
67
|
+
turning the illustrated editor into configurable editing software.
|
|
68
|
+
|
|
69
|
+
Choose peer Tracks for independently composed contributions, internal parts for a coordinated scene,
|
|
70
|
+
and ordinary modules for code organization. These boundaries need not coincide with parameter or
|
|
71
|
+
package boundaries. Splitting files helps maintenance; a named Track around a whole passage gives
|
|
72
|
+
it occupancy. Judge both by whether they clarify the actual responsibilities. The spoken outline
|
|
73
|
+
supplies timing context: several passages may develop one object, and one passage may contain
|
|
74
|
+
several independent objects. Sharing a Moment does not by itself require a shared Track.
|
|
75
|
+
|
|
76
|
+
## Keep implementation changes local
|
|
77
|
+
|
|
78
|
+
Use the work's revisions to check its boundaries: a change to one visual responsibility should
|
|
79
|
+
remain with its owner, while a shared change should flow through a shared dependency. When an edit
|
|
80
|
+
requires reconstructing the same decision across several scenes, consolidate that decision's source.
|
|
81
|
+
The aim is to make the relationship explicit, whether its owner is a fixed implementation or an author input.
|
|
82
|
+
|
|
83
|
+
A useful revision question is: if delivery pauses before the result, which event should move and
|
|
84
|
+
which local design should stay? Inspect the input that carries that event rather than counting how
|
|
85
|
+
many parameters the component exposes. If the work needs a qualitatively different relationship,
|
|
86
|
+
change its implementation or define a new component instead of accumulating speculative mode flags.
|
|
87
|
+
|
|
88
|
+
Keep revisions local as the scene grows. Separate independently edited scene bodies, styling and
|
|
89
|
+
frame evaluation into ordinary source modules while sharing their actual mechanics. A palette,
|
|
90
|
+
typing function or media-sampling helper can be an ordinary project dependency; it needs no Surface
|
|
91
|
+
or Track of its own. A shared package becomes useful when several components really use it.
|
|
92
|
+
Source connects selected assets, semantic events and the component's external choices; these modules
|
|
93
|
+
own their realization, including any fixed design specific to this piece.
|
|
94
|
+
|
|
95
|
+
Derive related geometry from one layout. A pointer's destination should come from the target it
|
|
96
|
+
clicks; an attached badge should follow its pointer; two presentations of one playing source should
|
|
97
|
+
share their sampling. Then revising a layout changes its dependent motion with it.
|
|
98
|
+
|
|
99
|
+
Choose visual grouping and timing independently. A combined scene can respond to spoken Moments;
|
|
100
|
+
separate Tracks can share an authored event. What belongs together on the canvas does not decide
|
|
101
|
+
what gives that behavior its time.
|
|
102
|
+
|
|
103
|
+
Fine Caption similarly offers reusable flowing text, while a custom Caption family can own a new
|
|
104
|
+
relationship among words and graphics. Both consume Script wording and semantic timing. Shared
|
|
105
|
+
behavior can keep these visuals together; [Caption authoring](caption-authoring.md) explains the
|
|
106
|
+
specialized text inputs and the same freedom to compose.
|
|
107
|
+
|
|
108
|
+
Give a reusable scene the prepared performance, its outer Window and the Moment that changes its
|
|
109
|
+
layout through the Timeline and shared temporal projections. Replacing a product or rewriting the
|
|
110
|
+
Script then changes content and semantic anchors while preserving the behavior. The final frame
|
|
111
|
+
positions come from the placed Takes.
|
|
112
|
+
|
|
113
|
+
The repository's [video examples](https://github.com/hypit-ai/hypit/tree/main/examples) show different
|
|
114
|
+
applications: a persistent ranking board, related podcast views, a shared interview encounter and
|
|
115
|
+
coordinated explainer scenes. Trace why a behavior has its owner, what drives its time, and which
|
|
116
|
+
inputs a changed brief would replace. Their notes explain those choices; the scene lists are each
|
|
117
|
+
production's design. In the explainer, scenes retain fixed internal details while Script events,
|
|
118
|
+
Caption and presenter framing remain independently authored.
|
|
119
|
+
For that whole-work relationship, read [Presenter-led visual explainers](../playbooks/formats/presenter-led-explainer.md).
|
|
120
|
+
The [explainer's craft notes](https://github.com/hypit-ai/hypit/blob/main/examples/complex-explainer/productions/explainer/CRAFT-NOTES.md)
|
|
121
|
+
trace concrete revisions back to their design decisions and source owners.
|
|
122
|
+
|
|
123
|
+
## Let meaning drive the behavior
|
|
124
|
+
|
|
125
|
+
Prefer Script Selections, Moments and Segments for events that respond to the argument or performance.
|
|
126
|
+
The Surface projects them through the accepted Timeline; the component consumes the resulting
|
|
127
|
+
Windows or Instants. A different delivery can then move the event while preserving its purpose.
|
|
128
|
+
Explicit time remains useful for an authored lead, a short entrance or another clock-based decision.
|
|
129
|
+
In a pure MG piece, name the events that carry its meaning and direct their reading rhythm. A useful
|
|
130
|
+
component accepts resolved Instants or Windows so the same reveal can follow a Script Moment or an
|
|
131
|
+
authored time. Keep message content and its trigger together in Source; repeated children can each
|
|
132
|
+
have their own trigger. Use semantic examples first for speech-led roles, showing how a new performance
|
|
133
|
+
preserves the relationship. [Authored animation](rendering.md#compose-an-authored-animation) covers
|
|
134
|
+
the film clock when there is no performance.
|
|
135
|
+
|
|
136
|
+
A semantic outer Window alone does not establish the timing of its internal events. In a drag-and-drop
|
|
137
|
+
scene, selecting a picture, dropping it into an editor and revealing the result may answer three
|
|
138
|
+
different phrases. Give those actions their own semantic inputs. Placing them at fixed seconds or
|
|
139
|
+
at 20%, 50% and 80% of the outer Window preserves neither their identities nor their relationship
|
|
140
|
+
to unevenly changed speech.
|
|
141
|
+
|
|
142
|
+
The Surface can accept an outer Selection and separate Moments for those events, projecting each
|
|
143
|
+
through Timeline. The implementation derives movement between the resulting events and keeps its
|
|
144
|
+
pointer path, button geometry, click rebound and decoration local. A movement that simply unfolds
|
|
145
|
+
inside one authored event interval may use normalized progress there; it needs no marker for every
|
|
146
|
+
animation key. Meaningful event location and the designed duration/shape of motion are different choices.
|
|
147
|
+
|
|
148
|
+
Choose the temporal input from what the component does. A picture covering an explanation occupies
|
|
149
|
+
its Selection. An answer revealed on a word can remain visible after that word ends. A ranking item
|
|
150
|
+
may move during a reveal Window and stay in its settled row afterward. The board's outer lifetime,
|
|
151
|
+
the trigger and the resulting state each have a clear meaning.
|
|
152
|
+
|
|
153
|
+
Direct motion through that relationship. Arrival draws attention, settling establishes a new state,
|
|
154
|
+
replacement makes a change readable, and departure releases space for the next idea. Choose how much
|
|
155
|
+
time each needs relative to the meaning it carries. When an authored interval changes length, decide
|
|
156
|
+
which part follows that interval and which part keeps its own readable duration. Document that choice.
|
|
157
|
+
|
|
158
|
+
One authored event can also coordinate peer Tracks: a reveal, sound and flash can use the same
|
|
159
|
+
Moment. A shared event is enough when each contribution already has a useful independent component.
|
|
160
|
+
[Track authoring](track-authoring.md#keep-selection-projection-and-consumption-distinct) explains the
|
|
161
|
+
projection and consumption boundary in detail.
|
|
162
|
+
|
|
163
|
+
## Expose the choices the work needs
|
|
164
|
+
|
|
165
|
+
A good parameter earns its place by enabling a useful directing choice or connecting a real dependency.
|
|
166
|
+
Keep Script wording and semantic anchors connected to their existing owners, and supplied media
|
|
167
|
+
explicitly wired. Illustrative text, decorative geometry and purpose-built animation may remain local
|
|
168
|
+
to a one-off scene. A fixed design is complete when it serves the piece; adding controls is a separate
|
|
169
|
+
decision. If a label later needs repeated variation, promote that choice to an input then.
|
|
170
|
+
|
|
171
|
+
For the inputs that matter, sketch their Source use before implementing them. Related authored visual
|
|
172
|
+
choices can form a Style or Recipe. A comparison may need labels, images and a reveal relationship;
|
|
173
|
+
its internal layout can derive from those few inputs. One meaningful control can coordinate many
|
|
174
|
+
details while preserving a designed whole. Semantic triggers remain valuable even for a scene used
|
|
175
|
+
once: they connect its behavior to the actual performance without exposing every animation detail.
|
|
176
|
+
|
|
177
|
+
When reuse is needed, support the actual variation: longer names, another product or a different
|
|
178
|
+
number of rows. A new visual relationship may deserve another component.
|
|
179
|
+
[Caption craft](../playbooks/craft/captions.md#caption-families-styles-and-parameters) illustrates
|
|
180
|
+
family, Style and parameter choices for a commonly reused role.
|
|
181
|
+
|
|
182
|
+
## Design the component in its frame
|
|
183
|
+
|
|
184
|
+
Judge it beside the presenter, coverage, Caption and other graphics it will share the picture with.
|
|
185
|
+
Give the eye a clear entry point, useful grouping and a settled state that remains readable. The
|
|
186
|
+
component's local palette, density and motion should support the whole composition's hierarchy.
|
|
187
|
+
|
|
188
|
+
Use the chosen Frame to express placement and derive the internal layout from it. Decide how real
|
|
189
|
+
text and media occupy that space: what wraps, what crops, what scales, and what stays aligned. A useful
|
|
190
|
+
fixed layout can suit the present work; expose placement or size when the composition needs to direct
|
|
191
|
+
them externally. Let a genuinely unsupported configuration produce an actionable explanation of the
|
|
192
|
+
content or space that needs changing.
|
|
193
|
+
[Spatial layout](spatial.md) owns fitting and coordinate relationships; [Fonts and text](fonts-and-text.md)
|
|
194
|
+
owns text resources and placement.
|
|
195
|
+
|
|
196
|
+
Look at the important states in the actual composition: before the reveal, during the change, after
|
|
197
|
+
it settles, and when the system leaves. A preview with representative content can answer hierarchy,
|
|
198
|
+
readability, collisions and timing together. Make the correction at its owner: a semantic anchor,
|
|
199
|
+
the chosen Recipe, the component's behavior or the visual idea itself. Reuse the production's media
|
|
200
|
+
while refining those relationships.
|
|
201
|
+
|
|
202
|
+
## Make the idea easy to use and revise
|
|
203
|
+
|
|
204
|
+
Give the component vocabulary and an example that show its purpose, required inputs, public outputs
|
|
205
|
+
and the meaning of its timing. For persistent state, explain what remains after activation. A preview
|
|
206
|
+
should reveal the behavior that makes someone choose this component, with useful default content.
|
|
207
|
+
|
|
208
|
+
For a production the user will explore in Studio, make its useful objects recognizable: a board's
|
|
209
|
+
lifetime, a row's reveal, a Caption Cue's actual Style. Watching and understanding the work are useful
|
|
210
|
+
on their own; a read-only scene with a clear identity can be complete. Expose controls for the real
|
|
211
|
+
adjustments the user needs, such as Caption position and color, through the existing author inputs.
|
|
212
|
+
An empty parameter panel alone is no reason to widen the component interface.
|
|
213
|
+
[Companion authoring](studio-companions.md) owns those bindings.
|
|
214
|
+
|
|
215
|
+
For an existing example, read the installed `@hypit/ranking` README and the part of its implementation
|
|
216
|
+
that answers the current question. It connects semantic reveals, settled state, layout and editor
|
|
217
|
+
entities. Carry the relevant relationship into the project component's own design.
|
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-sharing.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Sharing a project package
|
|
2
|
+
|
|
3
|
+
Read this when someone else needs a project component, Prompt Kit, Model, or Provider.
|
|
4
|
+
|
|
5
|
+
Creating a component and distributing it answer different questions. Create the component when the
|
|
6
|
+
work needs its visual role, semantic behavior or interaction. Distribution begins when its owner
|
|
7
|
+
wants another project or person to use the same package. Its component model and ownership stay the
|
|
8
|
+
same across that boundary.
|
|
9
|
+
|
|
10
|
+
## Share the package that owns the component
|
|
11
|
+
|
|
12
|
+
A component normally begins under the video project's `packages/` directory. Give it an owner-scoped name,
|
|
13
|
+
such as `@studio/score-strip`. Sharing it means giving the other project that package's code, assets,
|
|
14
|
+
and usage instructions. Neither author nor consumer needs a Hypit repository checkout.
|
|
15
|
+
|
|
16
|
+
Keep the same name when distributing it. The Source import names its logical Module ABI:
|
|
17
|
+
|
|
18
|
+
```xml
|
|
19
|
+
<import as="score" from="@studio/score-strip@1"/>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Here `@1` names the logical Module ABI used by the Source. The package manager separately records
|
|
23
|
+
the physical npm release, such as `1.2.0`. Updating that package release does not by itself change
|
|
24
|
+
the logical import. Follow the package's actual published vocabulary for its author interface.
|
|
25
|
+
|
|
26
|
+
## Publish for repeated distribution
|
|
27
|
+
|
|
28
|
+
For stable reuse across projects, publish a versioned package under its owner's npm scope or private
|
|
29
|
+
registry when that owner chooses distribution. For a public scoped package, the publication command is:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm publish --access public
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Consumers install the selected release with their usual package manager:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install --save-exact @studio/score-strip@1.2.0
|
|
39
|
+
# or
|
|
40
|
+
pnpm add --save-exact @studio/score-strip@1.2.0
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The project lockfile records the installed dependency tree. Updates are explicit package-manager
|
|
44
|
+
operations; Builds use the selected installed code. A missing package is an installation problem.
|
|
45
|
+
Select the intended new release in the consumer project, inspect its changed vocabulary where
|
|
46
|
+
relevant, check the actual Source/Run and review the changed behavior. New Builds load that selected
|
|
47
|
+
implementation; restart an existing Studio session to load package-code changes. Reuse compatible
|
|
48
|
+
media through Run Candidates while recomputing the component being revised. The package's own
|
|
49
|
+
release notes describe any required author changes; no Build upgrades or migrates it automatically.
|
|
50
|
+
|
|
51
|
+
## Send a tarball to another person
|
|
52
|
+
|
|
53
|
+
For an explicit direct handoff or development check, build the package and run `npm pack` in its directory. A TypeScript package
|
|
54
|
+
compiles to JavaScript; a JavaScript package may already have executable files. Its `prepack` script
|
|
55
|
+
can perform the build. For example:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cd packages/score-strip
|
|
59
|
+
npm pack
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For `@studio/score-strip` version `1.2.0`, npm creates `studio-score-strip-1.2.0.tgz`. Send that file.
|
|
63
|
+
This route needs no registry account or publication. The consumer can keep it under the video
|
|
64
|
+
project's `vendor/` directory and install it from that project:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install ./vendor/studio-score-strip-1.2.0.tgz
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Keep the tarball with the project while its dependency points to that file, along with `package.json`
|
|
71
|
+
and the lockfile. Source imports select author contributions; Runtime Profile entries select Provider
|
|
72
|
+
contributions. To send the next release, give it a new package version, create a new tarball, and
|
|
73
|
+
install that file explicitly.
|
|
74
|
+
|
|
75
|
+
## Make a public release discoverable
|
|
76
|
+
|
|
77
|
+
People can find a public component through its npm page, source repository, or a community link.
|
|
78
|
+
Ordinary package metadata makes those existing discovery surfaces useful. For example, add fields
|
|
79
|
+
like these to the package that already owns the component:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"description": "A speech-timed score strip for Hypit videos.",
|
|
84
|
+
"keywords": ["hypit", "hypit-author-package", "scoreboard"],
|
|
85
|
+
"repository": {
|
|
86
|
+
"type": "git",
|
|
87
|
+
"url": "git+https://github.com/studio/score-strip.git"
|
|
88
|
+
},
|
|
89
|
+
"license": "MIT"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The description and keywords help npm search; they do not define the component ABI. The README should
|
|
94
|
+
show the visual role, a copyable Source import and element example, the package's public outputs, and
|
|
95
|
+
the selected Hypit release used to check it. Include the Surface poster and, when motion or state is
|
|
96
|
+
central to the idea, a short representative clip or animation. The source repository, publisher,
|
|
97
|
+
license and selected release give a recipient the facts needed to choose whether to install it.
|
|
98
|
+
|
|
99
|
+
After installation, inspect the package's own declarations:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
hypit vocabulary @studio/score-strip
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
That output explains the installed release's Surfaces and vocabulary. npm or the selected private
|
|
106
|
+
registry remains the authority for package bytes and versions; the project lockfile records the
|
|
107
|
+
consumer's exact choice.
|
|
108
|
+
|
|
109
|
+
## Adapt the package under its owner's identity
|
|
110
|
+
|
|
111
|
+
Ordinary changes to words, media, timing, palette or exposed parameters remain in the consuming
|
|
112
|
+
project's Source and Recipes. When someone changes the reusable mechanics or public behavior, the
|
|
113
|
+
fork can take that owner's package scope and Module identity, subject to the original license. The
|
|
114
|
+
new package is then installed, versioned and imported through the same mechanism as any other shared
|
|
115
|
+
component.
|
|
116
|
+
|
|
117
|
+
## Include what the recipient needs
|
|
118
|
+
|
|
119
|
+
The package's `files` and `exports` should include its built activation, runtime code, preview assets,
|
|
120
|
+
and any Sources or templates exposed by its vocabulary. `hypit.activation` points to the shipped
|
|
121
|
+
JavaScript entry. Declare third-party runtime dependencies in `dependencies`. Include a README with
|
|
122
|
+
an actual Source example, the public outputs, any companion or asset requirements, and the Hypit
|
|
123
|
+
release used to check it. Inspect the tarball contents with `npm pack --dry-run`.
|
|
124
|
+
|
|
125
|
+
An executable Author Package develops against `@hypit/hypit/author-kit` and the relevant `@hypit/hypit/*` domain
|
|
126
|
+
subpaths, with `@hypit/hypit` as a development dependency. Its release contains its own code and assets;
|
|
127
|
+
the active Hypit Distribution supplies the framework APIs when loading it. Check the package from a
|
|
128
|
+
separate consumer project so local source links do not conceal omitted files or dependencies.
|
|
129
|
+
|
|
130
|
+
Package code runs as trusted JavaScript in the host process. The recipient chooses which package and
|
|
131
|
+
release to install.
|
|
132
|
+
|
|
133
|
+
## Data packages remain data
|
|
134
|
+
|
|
135
|
+
A Prompt Kit can export an `.svs` Source through ordinary package `exports` without activation code:
|
|
136
|
+
|
|
137
|
+
```xml
|
|
138
|
+
<import as="ugc" source="@studio/image-kits/phone-ugc-v1"/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
That reads the selected package data. The same packing, installation, versioning, and file-completeness
|
|
142
|
+
rules apply. [Project handoff](../creation/project-files.md#hand-over-an-editable-production) explains
|
|
143
|
+
sharing the Sources, Runs, assets and Results needed to continue a video on another machine.
|
|
144
|
+
|
|
145
|
+
## Official Distribution ownership is a separate decision
|
|
146
|
+
|
|
147
|
+
A package maintained in the official Hypit Distribution becomes part of Hypit's product and release
|
|
148
|
+
surface. A proposal for that ownership begins with an issue that explains the shared production need
|
|
149
|
+
and maintenance boundary. Community reuse remains under the package owner's own releases, independent
|
|
150
|
+
of that product decision.
|
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/component-visuals.md
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Drawing a component
|
|
2
|
+
|
|
3
|
+
Read this while implementing a project component's rendered output. [Track authoring](track-authoring.md)
|
|
4
|
+
owns its author interface, temporal inputs and state behavior. [Spatial layout](spatial.md) explains
|
|
5
|
+
the incoming geometry; [Studio](studio.md) explains an optional Companion.
|
|
6
|
+
|
|
7
|
+
## From program to visible Track
|
|
8
|
+
|
|
9
|
+
A component's drawing output describes what appears, where it appears and how it changes over its
|
|
10
|
+
visible lifetime. For a reveal card, those decisions become a box and text, a destination Frame,
|
|
11
|
+
an entrance animation and the interval for which the answer remains visible.
|
|
12
|
+
|
|
13
|
+
A component can first compute a domain program, such as a list of answers and their reveal times.
|
|
14
|
+
Its drawing Producer receives that program, Timeline, Frames, Style and explicit assets, then
|
|
15
|
+
returns a VisualTrack. A simple component can produce the Track directly when no separate program
|
|
16
|
+
would help its behavior or editing.
|
|
17
|
+
|
|
18
|
+
The public representation has these parts:
|
|
19
|
+
|
|
20
|
+
| Part | What it means |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| Track | Named picture contribution belonging to one Timeline |
|
|
23
|
+
| Present | An independently timed and stacked appearance |
|
|
24
|
+
| `span` | Program frames from `startFrame` through the frame before `endFrameExclusive` |
|
|
25
|
+
| `stacking` | Absolute paint order among Presents; higher order appears above lower order |
|
|
26
|
+
| Elements | One rooted tree of boxes, text, media, masks, compositable surfaces or renderer programs |
|
|
27
|
+
| Animation | Keyframes relative to the containing Present's start |
|
|
28
|
+
|
|
29
|
+
Use several Presents when items have separate lifetimes or stacking positions. A persistent board
|
|
30
|
+
can keep its settled rows visible while later rows enter. Its domain program decides those spans
|
|
31
|
+
and states; the drawing output makes them explicit.
|
|
32
|
+
|
|
33
|
+
Track grouping is an authoring boundary; each Present has its own paint order among the film's
|
|
34
|
+
appearances. Its element tree supplies local layout and compositing scope. Use that tree or a browser
|
|
35
|
+
program for content that moves, clips or changes layout together. The final DOM follows these owned
|
|
36
|
+
visual relationships rather than the nesting of tags in Source.
|
|
37
|
+
|
|
38
|
+
## A working drawing function
|
|
39
|
+
|
|
40
|
+
[visuals.ts](examples/visuals.ts) contains `renderCard`, a complete pure drawing function using
|
|
41
|
+
`sealVisualTrack` from `@hypit/hypit/composition`. It receives a projected span and a resolved Frame,
|
|
42
|
+
draws a colored box with exact-font text, and optionally fades in relative to the Present's start.
|
|
43
|
+
Its colors, size, padding, layer and entrance duration are supplied by the caller. These drawing-function
|
|
44
|
+
arguments need not all become Surface parameters: the owning component can supply its fixed design
|
|
45
|
+
and expose only the inputs the production needs.
|
|
46
|
+
|
|
47
|
+
The root uses Canvas coordinates. The text child uses the root's local coordinates, so padding is
|
|
48
|
+
added once. When a component computes child geometry in Canvas space, subtract the parent's origin
|
|
49
|
+
before writing child `left` and `top`.
|
|
50
|
+
Element `order` values are distinct within the Present; `stacking.order` separately places that
|
|
51
|
+
whole Present among the composition's other appearances.
|
|
52
|
+
|
|
53
|
+
The function is the drawing part of a package. Connect it to a Producer with matching typed inputs,
|
|
54
|
+
then publish the Track through the Fragment and Surface as described in
|
|
55
|
+
[Track authoring](track-authoring.md#connect-the-implementation-at-its-real-boundaries). Surface outputs
|
|
56
|
+
map the Fragment's export name to a public Source name such as `answers.track`.
|
|
57
|
+
|
|
58
|
+
Use `programSpaceFrameCount` from `@hypit/hypit/program-space` for the full program's frame count and
|
|
59
|
+
`assertVisualTrackIdentity(track, space)` to check a produced Track against that space. Direct seeking
|
|
60
|
+
and range rendering evaluate the same declared keyframes at the requested frame.
|
|
61
|
+
|
|
62
|
+
## Elements, fonts and other assets
|
|
63
|
+
|
|
64
|
+
`box` provides a container or painted shape. `text`, `text-flow` and `path-text` carry text and exact
|
|
65
|
+
font resources. `image` and `video` reference their media artifacts. A `mask` names owned mask and
|
|
66
|
+
content children in the same Present. The installed vocabulary queries expose their value shapes:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
hypit vocabulary --visual visual-track
|
|
70
|
+
hypit vocabulary --visual text
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Visual styles and Motion use the installed CSS-shaped property vocabulary; query the relevant visual
|
|
74
|
+
shapes above for their supported values. Motion uses frame-indexed keyframes. Media sampling separately
|
|
75
|
+
describes which source frame to show at each part of a Present; it is needed for timed video playback,
|
|
76
|
+
trims, loops and holds. Existing Media Track is useful when that is the whole role.
|
|
77
|
+
|
|
78
|
+
Carry asset and font references through declared inputs. Source assets can be resolved at the
|
|
79
|
+
Surface's asset boundary; generated media remains a graph reference until its Producer runs.
|
|
80
|
+
The drawing function receives those values. For a visual preparation that reads bytes or invokes an
|
|
81
|
+
external tool, use its preparation capability and pass the resulting material into drawing.
|
|
82
|
+
|
|
83
|
+
## Compose externally prepared pixels
|
|
84
|
+
|
|
85
|
+
A `surface` element accepts a CompositableSurfaceRef: prepared pixels with explicit extent, color,
|
|
86
|
+
alpha and, for animation, frame information. This is useful when the component uses a raster or
|
|
87
|
+
animated asset produced by another tool. Its preparation determines the pixels; the Track determines
|
|
88
|
+
placement, sampling and lifetime.
|
|
89
|
+
|
|
90
|
+
For an effect that transforms an image, pass that image as an explicit input to the effect's
|
|
91
|
+
preparation. For a local mask, own the mask and content in the same element tree. These relationships
|
|
92
|
+
make the required materials available both in Studio and in a render of any selected interval.
|
|
93
|
+
|
|
94
|
+
## Compose video and graphics in one browser program
|
|
95
|
+
|
|
96
|
+
When a scene's video viewport and graphics share motion or layout, one component can draw them
|
|
97
|
+
together. `browserProgram` from `@hypit/hypit/hyperframes` creates a `program` element's payload. Its HTML
|
|
98
|
+
owns the local structure; CSS supplies layout, stacking, masks, filters and blending; optional
|
|
99
|
+
`setup(root, data)` code returns `render(localFrame)`. This function sets the complete state at that
|
|
100
|
+
frame synchronously. A range render may start in the middle, so compute state from the frame and authored inputs.
|
|
101
|
+
|
|
102
|
+
Prepare stable structure in `setup`: locate elements, construct geometry and retain reusable drawing
|
|
103
|
+
objects there. Paint static procedural textures once their resources are ready.
|
|
104
|
+
Let `render(localFrame)` update the state that changes with time. This supports both
|
|
105
|
+
fast repeated capture and direct seeking. A program is sampled within its Present's lifetime;
|
|
106
|
+
outside it, the renderer may retain the boundary pose. Re-entry and repeated active seeks must
|
|
107
|
+
produce the complete requested state, including when an image became ready since the last call.
|
|
108
|
+
|
|
109
|
+
Repeated browser-program instances share one document's HTML/SVG ID space even though their CSS
|
|
110
|
+
is scoped. For SVG masks, gradients or filters, derive each required ID from `root.id` in `setup`
|
|
111
|
+
and update its references together. The installed `@hypit/hyperframes` README owns the browser-program
|
|
112
|
+
API and resource-loading behavior.
|
|
113
|
+
|
|
114
|
+
For a depth or material effect, choose the representation that carries its visible behavior:
|
|
115
|
+
CSS can tilt a panel, while a deforming textured surface may warrant mesh geometry and Canvas or
|
|
116
|
+
WebGL drawing. Keep that implementation inside the project component; give Source the useful
|
|
117
|
+
material, amplitude or timing choices rather than the renderer's internal construction.
|
|
118
|
+
|
|
119
|
+
For shared opacity or a filter, put the affected content under the element that owns the treatment.
|
|
120
|
+
A translucent panel can use backdrop filtering; its painted position and browser compositing scope
|
|
121
|
+
determine which background it affects. A transition can own both participating pictures and their
|
|
122
|
+
handoff. Choose the scope from the visible relationship, keeping independently useful contributions
|
|
123
|
+
as peer Presents. These are ordinary composition choices within the same rendering path.
|
|
124
|
+
|
|
125
|
+
Use ordinary typed children for prepared video, images and exact-font text. A `{{child-id}}` slot in
|
|
126
|
+
the HTML places each direct child exactly once. These children retain their declared resources,
|
|
127
|
+
video sampling and font handling while participating in the program's HTML layout. Extra artifacts
|
|
128
|
+
used by the program belong in its `artifacts` list; `hyperframesResourceUri` supplies their resource
|
|
129
|
+
URLs. The rendering environment materializes those references.
|
|
130
|
+
|
|
131
|
+
For a placed performance, `projectTimelineMedia(timeline, window.span)` from
|
|
132
|
+
`@hypit/hypit/timeline` returns each intersecting Take's prepared media, program span and source
|
|
133
|
+
span. Subtract the containing Present's start to obtain Present-local video sampling intervals
|
|
134
|
+
(when that Present uses the outer Window as its span, subtract the Window start). Preserve
|
|
135
|
+
the returned source offset: moving or reframing a video changes its presentation while playback
|
|
136
|
+
continues from the same place. A separate Sound presentation can continue the existing audio in Film.
|
|
137
|
+
|
|
138
|
+
Project each independently meaningful event before rendering. Convert its program frame to the
|
|
139
|
+
containing Present's local frame once, then animate relative to that event. Keep source sampling
|
|
140
|
+
based on the returned source span; neither the event's local offset nor the viewport's movement
|
|
141
|
+
replaces it. [Component design](component-design.md#let-meaning-drive-the-behavior) distinguishes these
|
|
142
|
+
inputs from internal motion details.
|
|
143
|
+
|
|
144
|
+
A reusable scene might expose `during={story.selection.explanation}` for its lifetime and
|
|
145
|
+
`reveal={story.moment.demonstrate}` for its layout change. The Surface projects these independently;
|
|
146
|
+
the Producer receives a Window and an Instant. The installed Distribution's
|
|
147
|
+
`examples/semantic-composition/packages/responsive-explainer` shows this complete package: video
|
|
148
|
+
moves from full screen to a side viewport while a diagram enters, with Caption available as a peer.
|
|
149
|
+
|
|
150
|
+
The program format belongs to the renderer package. `hypit.browser-program@1` runs in the
|
|
151
|
+
HyperFrames browser; another renderer implements the formats it supports. Core still schedules
|
|
152
|
+
ordinary Needs and has no knowledge of scenes, video windows or browser layout.
|
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/detail.svrun
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?svml using="@hypit/run-markup@1"?>
|
|
2
|
+
<svrun version="1">
|
|
3
|
+
<author source="./production.svml"/>
|
|
4
|
+
<target output="detail.video"/>
|
|
5
|
+
<!-- Replace the Build id with the Result containing this production's Take. -->
|
|
6
|
+
<build-record id="kept-take" build="bld_..." output="opening-semantic.take"/>
|
|
7
|
+
<satisfy output="opening-semantic.take" candidate="kept-take"/>
|
|
8
|
+
</svrun>
|
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/direction.svs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?svml using="@hypit/text/svs@1"?>
|
|
2
|
+
<sheet version="1" id="performance">
|
|
3
|
+
text-template.performance { separator: paragraph; }
|
|
4
|
+
text-template.performance.block.direction {
|
|
5
|
+
kind: slot;
|
|
6
|
+
order: 10;
|
|
7
|
+
slot: direction;
|
|
8
|
+
}
|
|
9
|
+
text-template.performance.block.dialogue {
|
|
10
|
+
kind: slot;
|
|
11
|
+
order: 20;
|
|
12
|
+
slot: dialogue;
|
|
13
|
+
}
|
|
14
|
+
</sheet>
|
package/skills/using-vvicat-ai-short-studio-cli/references/hypit/production/examples/production.svml
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<?svml using="@hypit/markup@1"?>
|
|
2
|
+
<svml>
|
|
3
|
+
<import as="sound" from="@hypit/sound@1"/>
|
|
4
|
+
<import as="performance" from="@hypit/performance@1"/>
|
|
5
|
+
<import from="@hypit/script@1"/>
|
|
6
|
+
<import as="text" from="@hypit/text@1"/>
|
|
7
|
+
<import as="seedance" from="@hypit/seedance@1"/>
|
|
8
|
+
<import as="pipeline" from="@hypit/media-pipeline@1"/>
|
|
9
|
+
<import as="whisperx" from="@hypit/whisperx@1"/>
|
|
10
|
+
<import as="time" from="@hypit/timeline-author@1"/>
|
|
11
|
+
<import as="space" from="@hypit/spatial@1"/>
|
|
12
|
+
<import as="program" from="@hypit/program-space@1"/>
|
|
13
|
+
<import as="fonts" from="@hypit/fonts-open@1"/>
|
|
14
|
+
<import as="typo" from="@hypit/typography-track@1"/>
|
|
15
|
+
<import as="film" from="@hypit/film@1"/>
|
|
16
|
+
<import as="render" from="@hypit/render-hyperframes@1"/>
|
|
17
|
+
<import as="look" source="./look.svs"/>
|
|
18
|
+
<import as="kit" source="./direction.svs"/>
|
|
19
|
+
|
|
20
|
+
<script id="story">
|
|
21
|
+
<opening><HOST>Here is @{proof}the useful part.@{/proof}</opening>
|
|
22
|
+
</script>
|
|
23
|
+
<space:Canvas id="canvas" width="720" height="1280"/>
|
|
24
|
+
<program:Clock id="clock" frame-rate="30"/>
|
|
25
|
+
<space:Frame id="full" within={canvas}
|
|
26
|
+
left="0%" top="0%" right="100%" bottom="100%"/>
|
|
27
|
+
<space:Frame id="title-frame" within={canvas}
|
|
28
|
+
left="8%" top="12%" right="92%" bottom="30%"/>
|
|
29
|
+
|
|
30
|
+
<text:Value id="direction">
|
|
31
|
+
A close, naturally lit phone-video view of a presenter in a workshop.
|
|
32
|
+
HOST is the presenter, speaking to the camera with relaxed confidence.
|
|
33
|
+
</text:Value>
|
|
34
|
+
<text:Render id="prompt" template={kit.performance}>
|
|
35
|
+
<text:Set name="direction" text={direction}/>
|
|
36
|
+
<text:Set name="dialogue" text={story.segment.opening.dialogue}/>
|
|
37
|
+
</text:Render>
|
|
38
|
+
<seedance:TextVideo id="performance" model="mini" prompt={prompt}
|
|
39
|
+
duration="5" aspect-ratio="9:16" generate-audio="true"/>
|
|
40
|
+
<pipeline:Normalize id="performance-media" source={performance.video} clock={clock}
|
|
41
|
+
video="primary-moving" audio="default" span-authority="video"/>
|
|
42
|
+
<whisperx:SemanticTake id="opening-semantic" narrative={story}
|
|
43
|
+
segment={story.segment.opening} media={performance-media.media} language="en"/>
|
|
44
|
+
<time:Timeline id="speech" clock={clock}>
|
|
45
|
+
<time:Take source={opening-semantic.take}/>
|
|
46
|
+
</time:Timeline>
|
|
47
|
+
|
|
48
|
+
<sound:Style id="speech-sound-style"/>
|
|
49
|
+
<sound:Track id="speech-sound" timeline={speech.timeline}>
|
|
50
|
+
<sound:Use style={speech-sound-style}/>
|
|
51
|
+
</sound:Track>
|
|
52
|
+
<performance:Style id="speech-picture-style" frame={full} appearance={look.media.performance}/>
|
|
53
|
+
<performance:Track id="speech-picture" timeline={speech.timeline} canvas={canvas}>
|
|
54
|
+
<performance:Use style={speech-picture-style} during="program"/>
|
|
55
|
+
</performance:Track>
|
|
56
|
+
|
|
57
|
+
<fonts:Stack id="title-font" family="inter" weight="700" style="normal" emoji="color"/>
|
|
58
|
+
<typo:Style id="title-style" recipe={look.text.title} font={title-font}>
|
|
59
|
+
<typo:Fill color="#F1E7D8"/>
|
|
60
|
+
</typo:Style>
|
|
61
|
+
<typo:Track id="titles" timeline={speech.timeline}>
|
|
62
|
+
<typo:Area id="proof-label" placement={title-frame} style={title-style}
|
|
63
|
+
during={story.selection.proof}>The useful part</typo:Area>
|
|
64
|
+
</typo:Track>
|
|
65
|
+
<film:Film id="main" canvas={canvas} timeline={speech.timeline} appearance={look.film.main}>
|
|
66
|
+
<film:Track source={speech-picture.visual}/>
|
|
67
|
+
<film:Track source={speech-sound.audio}/>
|
|
68
|
+
<film:Track source={titles.track}/>
|
|
69
|
+
</film:Film>
|
|
70
|
+
<render:Video id="final" composition={main.composition} timeline={speech.timeline}/>
|
|
71
|
+
<render:Video id="detail" composition={main.composition} timeline={speech.timeline}
|
|
72
|
+
start-frame="30" end-frame-exclusive="90"/>
|
|
73
|
+
</svml>
|