Skip to main content

morph-ppt-3d

3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.

ソース情報

リポジトリ
halojerry/pounding
ソースの最終更新活動
2026年8月3日 09:11
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
morph-ppt-3d
description
3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
# 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. --- ## Setup If `officecli` is missing: - **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash` - **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex` Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases. ## 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 `../../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 | | Calibri | Calibri Light | Clean corporate, minimal | | Cambria | Calibri | Traditional professional | | Trebuchet MS | Calibri | Friendly tech, startups | | Impact | Arial | Bold headlines, keynotes | | Palatino | Garamond | Elegant editorial, luxury | | Consolas | Calibri | Developer tools, technical | ### Hard Rules (mandatory, no exceptions) **H4 — Body text minimum 16pt:** All body text, card content, and bullet points must be >= 16pt. "Content doesn't fit" is not an excuse — reduce text, split slides, or reduce card count instead. Exceptions: chart axis labels (<=12pt), short sublabels (<=14pt, max 5 words), footnotes. **H6 — Dark background contrast:** When slide background brightness < 30% (e.g. `1E2761`, `36454F`, `000000`), ALL body text, card content, chart labels, and icon fills MUST use white (`FFFFFF`) or near-white (brightness > 80%). Never use mid-gray or muted colors as body text on dark backgrounds. **H7 — Speaker notes required:**
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る