Skip to main content

morph-ppt-3d

**做带 3D 模型的 Morph 动效 PPT**:插入 .glb 三维模型、电影级镜头运动、模型与内容混排。纯 2D 的 Morph 动效请用 `morph-ppt`。 3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.

Datos de origen

Repositorio
ZJU-REAL/HugAgentOS
Última actividad en el origen
30 de septiembre de 2026 a las 12:53
Idioma detectado de SKILL.md
inglés
Estrellas
809
Forks
53

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
morph-ppt-3d
display_name
3D Morph 动效 PPT
description
**做带 3D 模型的 Morph 动效 PPT**:插入 .glb 三维模型、电影级镜头运动、模型与内容混排。纯 2D 的 Morph 动效请用 `morph-ppt`。 3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
tags
pptx, presentation, morph, 3d, glb, officecli
# Morph PPT — 3D Extension This skill **extends** `morph-ppt`. All morph-ppt rules (naming, ghosting, design, verification) apply in full. This file covers **3D-specific additions** and an **enriched design system** combining morph-ppt aesthetics with concrete color palettes, font pairings, and layout quality guardrails. --- ## 运行环境与交付链(本系统专用,先读这一段) **`officecli` 已经预装在运行环境的 PATH 中,不要联网安装、不要 curl。** `Bash` 工具直接调用即可,自检用 `officecli --version`。 所有命令在当前会话工作目录执行,输入输出使用相对路径或用户指定的真实路径。一次完整作业 = 3 步 + 1 步交付: ``` # Step 1(仅当用户上传过原始文件)把 artifact 送进沙盒 sandbox_put_artifact(artifact_id="<用户文件的 file_id>", dest_path="./in.docx") # Step 2 用 Bash 跑 officecli —— 本文件下面讲的全部命令都在这一步里 Bash("officecli create ./out.docx") # Step 3 把成稿从沙盒取出、登记成 artifact,拿到新的 file_id sandbox_get_artifact(src_path="./out.docx", name="终稿.docx") # Step 4(必做)交付给用户 pin_to_workspace(file_ids=["<新 file_id>"]) ``` **铁律**: - `sandbox_put_artifact` = 放**进**沙盒,`sandbox_get_artifact` = 从沙盒**取出**,别搞反;两个路径参数使用当前工作目录内的相对路径或真实绝对路径。 - 拿到 `file_id` 却不 `pin_to_workspace` 就等于没交付,用户看不到文件。多个产物一次性放进同一个列表,别分多次调用。 - 下文示例里的 `$FILE` 指实际文件;相对路径按当前会话工作目录解析。 - 下文的可视化质检(`view <file> screenshot` / `view <file> html`)依赖沙盒内的 Chromium,镜像已预装;截图失败就按下文 fallback 走 `view html`,并如实标注「未做视觉验证」,不要谎报 PASS。 - **导出 PDF 不要用 `officecli view <file> pdf`** —— 那个模式依赖本系统没有安装的 exporter 插件,必然失败。改用沙盒里的 LibreOffice: `soffice --headless --convert-to pdf --outdir . ./out.docx`。.xlsx / .pptx 换掉扩展名同理,但要沙盒里装了 LibreOffice Calc / Impress 才转得动;转换报错就如实告诉用户 PDF 没导出成功、主产物仍是原文件,不要谎报已导出。 ## Use when - User wants a `.pptx` with a `.glb` 3D model and Morph transitions. --- ## 3D Model Compatibility Gate (before generation) 1. Only `.glb` is supported. If user provides `.fbx` / `.obj` / `.blend` / `.usdz` / `.gltf`, ask them to convert to `.glb` first (e.g. via Blender export). 2. If user has no model, follow the **Model Discovery Flow** below. 3. All files (`.glb`, `.pptx`, build script) must be in the same working directory. --- ## Model Discovery Flow (when user has no model) When the user gives a topic but no `.glb` file, **proactively help them find a matching model** instead of just listing websites. ### Step 1: Understand the topic and suggest model direction Based on the user's topic, suggest what kind of 3D model would work: | Topic type | Model suggestion | Example | | ------------------ | ----------------------------------- | ----------------------------------------------------- | | Product/brand | The actual product or a similar one | "coffee brand" → coffee cup, coffee machine, bean | | Animal/character | The animal or mascot | "fox mascot" → fox 3D model | | Architecture/space | Building, room, or structure | "new office" → office building, interior | | Vehicle/transport | The vehicle itself | "EV launch" → car, motorcycle, bicycle | | Food/cooking | The dish or ingredient | "Japanese food" → sushi platter, ramen bowl | | Tech/gadget | The device | "phone launch" → phone, tablet, laptop | | Nature/science | The subject | "solar system" → planet, sun, earth | | Abstract concept | A symbolic object | "teamwork" → puzzle pieces, gears, bridge | Tell the user: "Your topic is [X]. I suggest using a 3D model of [description]. Here are some free sources to find one:" ### Step 2: Search for models (agent-driven) **Proactively search for models on behalf of the user.** Don't just list websites — actually find candidates. **Search strategy (try in order):** 1. **Web search** for free GLB models matching the topic: ``` Search: "[topic keyword] 3d model glb free download" Example: "fox 3d model glb free download" ``` 2. **Sketchfab API** (no auth needed for search): ```bash curl -s "https://api.sketchfab.com/v3/search?type=models&q=[keyword]&downloadable=true&archives_flavours=glb" \ | python3 -c " import json, sys data = json.load(sys.stdin) for m in data.get('results', [])[:5]: print(f\"Name: {m['name']}\") print(f\"URL: https://sketchfab.com/3d-models/{m['slug']}-{m['uid']}\") print(f\"Likes: {m.get('likeCount', 0)}, License: {m.get('license', {}).get('label', 'unknown')}\") print() " ``` 3. **Poly Pizza** (direct GLB download, all free): ```bash # Search results page — parse for download links curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null ``` 4. **Khronos glTF-Sample-Assets** (guaranteed to work, always available): ```bash # Direct download — no auth, no API, always works curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/[ModelName]/glTF-Binary/[ModelName].glb" ``` Available models: Duck, Fox, Avocado, BrainStem, CesiumMan, DamagedHelmet, FlightHelmet, Lantern, Suzanne, WaterBottle, etc. ### Step 3: Present candidates to user for confirmation Show the user 2-3 model options with: - Model name and source - Preview link (Sketchfab URL or description) - License info - Why this model fits their topic Example response: ``` Based on your topic "fox mascot", here are some models I found: 1. Fox (Khronos sample) Direct download, guaranteed compatible Why: clean fox model, good for mascot/character decks 2. Low Poly Fox (Poly Pizza) URL: https://poly.pizza/m/xxx License: CC0 (completely free) Why: low-poly style, good fit for clean minimal design 3. Cartoon Fox (Sketchfab) URL: https://sketchfab.com/3d-models/fox-xxx License: CC BY 4.0 (free, commercial use ok) Why: expressive face, high detail Which one do you want? I'll download it and start building. ``` **Wait for user confirmation before downloading.** Do not download without asking. ### Step 4: Download the confirmed model After user confirms, download directly: ```bash # For Sketchfab (if user has the download URL) curl -L -o model.glb "[download_url]" # For Khronos samples (always works) curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/Fox/glTF-Binary/Fox.glb" ``` After download, verify: - File exists and is not empty - File extension is `.glb` - File size is under 50MB If Sketchfab requires login to download, tell the user: > "This model requires a Sketchfab login to download. You can grab the .glb file from the page and share it with me. Or I can use a Khronos sample model for a demo version first?" ### Step 5: When user says "anything" / "you decide" / "just make a demo" **Don't just grab a random model.** First guide the user to clarify their PPT topic: > Sure! I'll handle the model — but let me confirm the topic direction first so the model matches the content: > > 1. Tech/Product — headphones, phone, robot... > 2. Animal/Character — cute pet, cartoon character... > 3. Architecture/Space — building, interior, city... > 4. Food/Lifestyle — dishes, everyday objects... > 5. Other — just tell me your idea > > Pick a direction, or just give me a topic keyword. After user confirms a direction, THEN search and recommend models. ### Step 6: When user wants to find models themselves Give specific website links with step-by-step guidance: > **Recommended 3D model websites:** > > 1. **Sketchfab** (largest 3D model platform) > - Link: https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true > - Filter steps: search keyword → check "Downloadable" → format "glTF" → sort by "Likes" > - When downloading, select **glTF (.glb)** format > - Note: some models require free registration to download > 2. **Poly Pizza** (all free low-poly) > - Link: https://poly.pizza/ > - All CC0 licensed — click Download to get .glb directly > - Best for: minimalist or cartoon-style presentations > 3. **Sketchfab popular categories** > - Animals: https://sketchfab.com/search?q=animal&type=models&downloadable=true > - Food: https://sketchfab.com/search?q=food&type=models&downloadable=true > - Tech: https://sketchfab.com/search?q=gadget&type=models&downloadable=true > - Architecture: https://sketchfab.com/search?q=architecture&type=models&downloadable=true > 4. **Free3D** (general free model site) > - Link: https://free3d.com/3d-models/glb > - Note: check the license type before use > 5. **TurboSquid Free** (pro model site free section) > - Link: https://www.turbosquid.com/Search/3D-Models/free/glb > > After downloading, share the .glb file with me. If the download is a .gltf folder, use Blender to convert it to .glb. ### Step 7: When user gives keywords and asks agent to search **Remind about token cost before searching:** > I can search for you, but web searches use extra tokens. Would you prefer: > > A. I search — I use the Sketchfab API and recommend 2-3 options (uses a few tokens) > B. Self-service — I give you search links and filter steps, you pick and share with me (no extra tokens) > > A or B? If user chooses A, proceed with Step 2 (agent-driven search). If user chooses B, proceed with Step 6 (self-service guidance). ### License reminder Always remind before confirming download: "Please check the model license before downloading. CC0 / CC BY = free to use; CC BY-NC = non-commercial only." --- ## Visual Design System (4.0 enrichment) morph-ppt provides the base design rules. This section adds **concrete palettes, font pairings, and layout quality rules** from PPT Creator to give the AI more variety and stronger guardrails. ### Color Palettes (pick one per deck, or blend) Choose a palette that matches the **topic mood** — don't default to generic blue. | Palette | Primary | Secondary | Accent | Body Text | Muted/Caption | | ---------------------- | --------------------- | --------------------- | ---------------- | --------- | ------------- | | **Coral Energy** | `F96167` (coral) | `F9E795` (gold) | `2F3C7E` (navy) | `333333` | `8B7E6A` | | **Midnight Executive** | `1E2761` (navy) | `CADCFC` (ice blue) | `FFFFFF` | `333333` | `8899BB` | | **Forest & Moss** | `2C5F2D` (forest) | `97BC62` (moss) | `F5F5F5` (cream) | `2D2D2D` | `6B8E6B` | | **Charcoal Minimal** | `36454F` (charcoal) | `F2F2F2` (off-white) | `212121` | `333333` | `7A8A94` | | **Warm Terracotta** | `B85042` (terracotta) | `E7E8D1` (sand) | `A7BEAE` (sage) | `3D2B2B` | `8C7B75` | | **Berry & Cream** | `6D2E46` (berry) | `A26769` (dusty rose) | `ECE2D0` (cream) | `3D2233` | `8C6B7A` | | **Ocean Gradient** | `065A82` (deep blue) | `1C7293` (teal) | `21295C` | `2B3A4E` | `6B8FAA` | | **Teal Trust** | `028090` (teal) | `00A896` (seafoam) | `02C39A` (mint) | `2D3B3B` | `5E8C8C` | | **Sage Calm** | `84B59F` (sage) | `69A297` (eucalyptus) | `50808E` | `2D3D35` | `7A9488` | | **Cherry Bold** | `990011` (cherry) | `FCF6F5` (off-white) | `2F3C7E` (navy) | `333333` | `8B6B6B` | **Rules:** - One color dominates (60-70% visual weight), 1-2 supporting tones, one accent - On light backgrounds: use Body Text color for copy, Muted for captions - On dark backgrounds: use Secondary or `FFFFFF` for copy, Muted for captions - For additional inspiration, browse `../morph-ppt/reference/styles/INDEX.md` — 50+ visual styles organized by mood (dark, light, warm, vivid, bw). Read `style.md` for design philosophy, `build.sh` for implementation reference. **Learn the approach, do not copy coordinates verbatim** ### Font Pairings (pick one per deck) | Header Font | Body Font | Best For | | ------------ | ------------- | -------------------------------- | | Georgia | Calibri | Formal business, finance | | Arial Black | Arial | Bold marketing, product launches |
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub