mcpField
M
morph-ppt-3d

morph-ppt-3d

github.com/iofficeaiドキュメント32.7k88 回インストール今日更新
リポジトリ

morph-ppt-3d について

morph-ppt-3dは、.glbモデルとMorphトランジションを使ったPowerPoint作成の手引きを、morph-pptに追加するスキルです。プレゼン制作者向けに、モデル探しの手順とビジュアルデザイン・レイアウトの確認基準を示します。

主な機能

  1. 01.glbの互換性ガイド
  2. 023Dモデル検索ワークフロー
  3. 03モデルライセンスの注意事項
  4. 04カラーパレットとフォントの組み合わせ
  5. 05文字・コントラスト・発表者ノートの規則
  6. 06ビジュアル要素の確認ポイント

活用シーン

  1. 013Dモデルを使った資料の作成
  2. 02プレゼンのテーマに合うモデル探し
  3. 03一貫したプレゼンスタイルの適用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iofficeai/officecli --skill morph-ppt-3d

インストール後、Claude Code で/morph-ppt-3dを入力して読み込まれたか確認します。

詳細

Morph PPT — 3D 拡張

このスキルは morph-ppt を拡張します。morph-ppt のすべてのルール(命名、ゴースト化、デザイン、検証)がそのまま適用されます。 このファイルでは、3D 固有の追加事項と、morph-ppt の美学に具体的なカラーパレット、フォントの組み合わせ、レイアウト品質を保つためのガードレールを組み合わせた拡張デザインシステムを扱います。


セットアップ

officecli が見つからない場合:

  • macOS / Linux:curl -fsSL https://d.officecli.ai/install.sh | bash
  • Windows (PowerShell):irm https://d.officecli.ai/install.ps1 | iex

officecli --version で確認します(PATH が反映されていない場合は、新しいターミナルを開いてください)。インストールに失敗した場合は、https://github.com/iOfficeAI/OfficeCLI/releases からバイナリをダウンロードしてください。

次の場合に使用します

  • ユーザーが .glb 3D モデルと Morph トランジションを含む .pptx を希望する場合。

3D モデルの互換性チェック(生成前)

  1. 対応形式は .glb のみです。ユーザーが .fbx / .obj / .blend / .usdz / .gltf を提供した場合は、まず .glb に変換するよう依頼してください(例:Blender でエクスポート)。
  2. ユーザーがモデルを持っていない場合は、以下のモデル発見フローに従ってください。
  3. すべてのファイル(.glb、.pptx、ビルドスクリプト)は、同じ作業ディレクトリに置く必要があります。

モデル発見フロー(ユーザーがモデルを持っていない場合)

ユーザーがトピックを提示しても .glb ファイルがない場合は、ウェブサイトを列挙するだけでなく、積極的に適切なモデルを探す手助けをしてください。

ステップ 1:トピックを理解し、モデルの方向性を提案する

ユーザーのトピックに基づき、どのような 3D モデルが適しているかを提案します。

トピックの種類モデルの提案例
製品/ブランド実際の製品、または類似製品「コーヒーブランド」→ コーヒーカップ、コーヒーメーカー、豆
動物/キャラクター動物またはマスコット「キツネのマスコット」→ キツネの 3D モデル
建築/空間建物、部屋、または構造物「新しいオフィス」→ オフィスビル、内装
車両/交通車両そのもの「EV 発表」→ 車、自動二輪車、自転車
食べ物/料理料理または食材「日本食」→ 寿司の盛り合わせ、ラーメンの丼
テクノロジー/ガジェットデバイス「スマートフォン発表」→ スマートフォン、タブレット、ノート PC
自然/科学テーマとなる対象「太陽系」→ 惑星、太陽、地球
抽象的な概念象徴的なオブジェクト「チームワーク」→ パズルのピース、歯車、橋

ユーザーには次のように伝えます:「あなたのトピックは [X] です。[説明] の 3D モデルを使うことをおすすめします。モデルを探せる無料のソースはこちらです。」

ステップ 2:モデルを検索する(エージェント主導)

ユーザーに代わって積極的にモデルを検索してください。 ウェブサイトを列挙するだけでなく、実際に候補を見つけてください。

検索方法(次の順に試してください):

  1. トピックに合う無料の GLB モデルをウェブ検索する:

    Search: "[topic keyword] 3d model glb free download"
    Example: "fox 3d model glb free download"
    
  2. Sketchfab API(検索に認証は不要):

    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(直接 GLB をダウンロード可能。すべて無料):

    # Search results page — parse for download links
    curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null
    
  4. Khronos glTF-Sample-Assets(動作が保証され、常に利用可能):

    # 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"
    

    利用可能なモデル:Duck、Fox、Avocado、BrainStem、CesiumMan、DamagedHelmet、FlightHelmet、Lantern、Suzanne、WaterBottle など。

ステップ 3:確認用に候補をユーザーに提示する

次の情報を含むモデル候補を 2~3 件、ユーザーに提示します。

  • モデル名と提供元
  • プレビューリンク(Sketchfab の URL または説明)
  • ライセンス情報
  • このモデルがトピックに合う理由

回答例:

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.

ダウンロードする前に、ユーザーの確認を待ってください。 許可なくダウンロードしないでください。

ステップ 4:確認済みのモデルをダウンロードする

ユーザーの確認後、直接ダウンロードします。

# 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"

ダウンロード後、次の項目を確認します。

  • ファイルが存在し、空でないこと
  • ファイル拡張子が .glb であること
  • ファイルサイズが 50MB 未満であること

Sketchfab からダウンロードする際にログインが必要な場合は、ユーザーに次のように伝えます。

「このモデルをダウンロードするには Sketchfab へのログインが必要です。ページから .glb ファイルをダウンロードして、私に共有してください。または、まずデモ版として Khronos のサンプルモデルを使うこともできます。」

ステップ 5:ユーザーが「何でもいい」「お任せ」「デモを作って」と言った場合

適当なモデルを選んでダウンロードするだけにしないでください。 まず、PPT のテーマを明確にするようユーザーに案内します。

もちろんです!モデルはこちらで用意しますが、内容に合ったモデルを選べるよう、まずテーマの方向性を確認させてください。

  1. テクノロジー/製品 — ヘッドホン、スマートフォン、ロボットなど
  2. 動物/キャラクター — かわいいペット、アニメ風キャラクターなど
  3. 建築/空間 — 建物、インテリア、都市など
  4. 食べ物/ライフスタイル — 料理、日用品など
  5. その他 — アイデアを教えてください

方向性を選ぶか、テーマのキーワードをお知らせください。

ユーザーが方向性を確認した後で、モデルを検索しておすすめを提示します。

ステップ 6:ユーザー自身でモデルを探したい場合

具体的なウェブサイトのリンクと、手順を案内します。

おすすめの 3D モデルサイト:

  1. Sketchfab(最大級の 3D モデルプラットフォーム)
    • リンク:https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true
    • フィルターの手順:キーワードを検索 → 「Downloadable」にチェック → フォーマットで「glTF」を選択 → 「Likes」順に並べ替え
    • ダウンロード時に glTF (.glb) 形式を選択してください
    • 注意:ダウンロードに無料登録が必要なモデルもあります
  2. Poly Pizza(すべて無料のローポリモデル)
    • リンク:https://poly.pizza/
    • すべて CC0 ライセンスです。「Download」をクリックすると .glb を直接ダウンロードできます
    • おすすめ:ミニマルまたはアニメ風のプレゼンテーション
  3. Sketchfab の人気カテゴリ
  4. Free3D(一般向けの無料モデルサイト)
  5. TurboSquid Free(プロ向けモデルサイトの無料セクション)

ダウンロード後、.glb ファイルを私に共有してください。ダウンロードしたファイルが .gltf のフォルダーの場合は、Blender を使って .glb に変換してください。

ステップ 7:ユーザーがキーワードを提示し、エージェントに検索を依頼する場合

検索の前に、トークンコストについて伝えてください。

検索できますが、ウェブ検索には追加のトークンを使用します。どちらをご希望ですか?

A. 私が検索する — Sketchfab API を使って検索し、2~3 件の候補をおすすめします(少量のトークンを使用します) B. 自分で探す — 検索リンクとフィルター手順を案内します。ご自身で選んで共有してください(追加トークンは不要です)

A と B のどちらにしますか?

ユーザーが A を選んだ場合は、ステップ 2(エージェントによる検索)に進みます。 ユーザーが B を選んだ場合は、ステップ 6(ユーザー自身で探す手順の案内)に進みます。

ライセンスに関する注意

ダウンロードを確定する前に、必ず次の注意を伝えてください。「ダウンロードする前にモデルのライセンスを確認してください。CC0/CC BY は無料で使用できます。CC BY-NC は非営利目的でのみ使用できます。」


ビジュアルデザインシステム(4.0 拡張)

morph-ppt は基本的なデザインルールを提供します。このセクションでは、PPT Creator の具体的なカラーパレット、フォントの組み合わせ、レイアウトの品質ルールを追加し、AI により多くの選択肢と、より確かな指針を提供します。

カラーパレット(デッキごとに1つ選ぶか、組み合わせます)

テーマの雰囲気に合ったパレットを選びます。汎用的な青を安易に選ばないでください。

パレットプライマリセカンダリアクセント本文テキスト淡色/キャプション
コーラルエナジーF96167(コーラル)F9E795(ゴールド)2F3C7E(ネイビー)3333338B7E6A
ミッドナイトエグゼクティブ1E2761(ネイビー)CADCFC(アイスブルー)FFFFFF3333338899BB
フォレスト&モス2C5F2D(フォレスト)97BC62(モス)F5F5F5(クリーム)2D2D2D6B8E6B
チャコールミニマル36454F(チャコール)F2F2F2(オフホワイト)2121213333337A8A94
ウォームテラコッタB85042(テラコッタ)E7E8D1(サンド)A7BEAE(セージ)3D2B2B8C7B75
ベリー&クリーム6D2E46(ベリー)A26769(ダスティローズ)ECE2D0(クリーム)3D22338C6B7A
オーシャングラデーション065A82(ディープブルー)1C7293(ティール)21295C2B3A4E6B8FAA
ティールトラスト028090(ティール)00A896(シーフォーム)02C39A(ミント)2D3B3B5E8C8C
セージカーム84B59F(セージ)69A297(ユーカリ)50808E2D3D357A9488
チェリーボールド990011(チェリー)FCF6F5(オフホワイト)2F3C7E(ネイビー)3333338B6B6B

ルール:

  • 1色を視覚的な比重の60~70%にし、補助色を1~2色、アクセントカラーを1色使います
  • 明るい背景では、本文に本文テキストの色、キャプションに淡色を使います
  • 暗い背景では、本文にセカンダリまたはFFFFFF、キャプションに淡色を使います
  • さらにアイデアを得るには、../morph-ppt/reference/styles/INDEX.mdをご覧ください。雰囲気別(暗色、明色、暖色、鮮やか、白黒)に整理された50種類以上のビジュアルスタイルがあります。デザイン哲学についてはstyle.md、実装の参考についてはbuild.shを読んでください。手法を学び、座標をそのままコピーしないでください
フォントの組み合わせ(デッキごとに1つ選ぶ)
見出しフォント本文フォント最適な用途
GeorgiaCalibriフォーマルなビジネス、金融
Arial BlackArial大胆なマーケティング、製品発表
CalibriCalibri Light洗練された企業向け、ミニマル
CambriaCalibri伝統的なプロフェッショナル用途
Trebuchet MSCalibri親しみやすいテクノロジー、スタートアップ
ImpactArial大胆な見出し、基調講演
PalatinoGaramond洗練されたエディトリアル、ラグジュアリー
ConsolasCalibri開発者ツール、技術系
絶対ルール(必須、例外なし)

H4 — 本文テキストは最低16pt: すべての本文テキスト、カードの内容、箇条書きは16pt以上にしてください。「内容が収まらない」は言い訳になりません。テキストを減らす、スライドを分割する、またはカードの数を減らしてください。例外:グラフの軸ラベル(12pt以下)、短いサブラベル(14pt以下、最大5語)、脚注。

H6 — 暗い背景でのコントラスト: スライドの背景の明るさが30%未満の場合(例:1E2761、36454F、000000)、すべての本文テキスト、カードの内容、グラフのラベル、アイコンの塗りつぶしには、白(FFFFFF)または白に近い色(明るさ80%超)を必ず使用してください。暗い背景上の本文テキストに、中間のグレーや淡色を使わないでください。

H7 — スピーカーノート必須: すべてのコンテンツスライド(タイトル/クロージングスライドを除く)に、必ずスピーカーノートを付けてください。以下を使用してください。

officecli add deck.pptx '/slide[N]' --type notes --prop text="..."
ビジュアル要素のチェックポイント

コンテンツスライド3枚ごとに、少なくとも1枚にはテキスト以外のビジュアル要素を含めてください:

ビジュアルの種類実装
色付きの円内のアイコン楕円の図形+中央に配置したテキスト/数字のオーバーレイ
色付きのブロック塗りつぶし付きの preset=roundRect
大きな統計数値size=64, bold=true、下に小さなラベル
グラフ--type chart(縦棒/円/折れ線)
グラデーション背景background=COLOR1-COLOR2-180
図形の組み合わせ図解用の円+コネクター

テキストのみのスライドが許可されるのは、引用、コード例、純粋な表の場合のみです。


3D モデルの挿入ルール

スライドごとにモデルを新規追加する — クローンは絶対にしない

morph_clone_slide はモデルを固定された XML としてコピーします。クローンされたモデルは Morph できません。 各スライドで、同じ name プロパティを指定して add --type 3dmodel を個別に呼び出す必要があります。

⚠️ 重大:3D モデルを含むスライドをクローンすると、古いモデルの XML もコピーされます。その結果、新しいスライドに同じ名前の model3d 要素が2つ作られます。PowerPoint はこの競合を処理できず、修復時にモデルの内容を削除します。

シーンのアクター用にスライドをクローンする必要がある場合は、新しいモデルを追加する前に、クローンされたモデルを直ちに削除してください:

# After cloning slide 1 to slide 2:
officecli remove deck.pptx '/slide[2]/model3d[1]'  # remove the frozen clone
officecli add deck.pptx '/slide[2]' --type 3dmodel ...  # add fresh model

推奨される方法:3D モデルを含むスライドはクローンしないでください。 まずすべてのスライドを空の状態で作成し、その後、各スライドにモデルを新規追加します。

# Slide 1
officecli add deck.pptx '/slide[1]' --type 3dmodel \
  --prop path=model.glb --prop 'name=!!model-hero' \
  --prop x=16cm --prop y=1cm --prop width=16cm --prop height=16cm \
  --prop roty=0

# Slide 2
officecli add deck.pptx '/slide[2]' --type 3dmodel \
  --prop path=model.glb --prop 'name=!!model-hero' \
  --prop x=0.5cm --prop y=1cm --prop width=18cm --prop height=17cm \
  --prop roty=50
調整可能なプロパティ
プロパティ機能備考
x, yスライド上の位置標準的なスライド座標
width, heightフレームサイズモデルはこのフレーム内にレンダリングされます
name図形名Morph のため、スライド間で同一である必要があります
rotyY 軸回転(度)ストーリーテリングの主要な軸
rotxX 軸の傾き(度)範囲は -25 ~ +40 です。「カメラの表現」セクションを参照してください
rotzZ 軸回転(度)通常は不要です
手動で設定しない項目
  • meterPerModelUnit — GLB のバウンディングボックスから自動計算されます
  • preTrans — モデルの中央配置のために自動計算されます
  • camera の奥行き/位置 — モデルに収まるよう自動計算されます
  • 3D の変換パラメーターには raw-set を絶対に使用しないでください

モデルとコンテンツのレイアウト

基本原則:モデルが主役

モデルは、プレゼンテーションの脇を飾るものではなく、主役として感じられる必要があります。 テキストはモデルを引き立てるものであり、モデルがテキストを飾るものではありません。

サイズのコントラストルール(必須)

隣り合うスライド間では、モデルの面積比を1.5倍以上、または0.67倍以下にしてください。 面積は width × height で計算します。スライドNのモデルが16×15=240 cm²の場合、スライドN+1では360以上、または160以下にする必要があります。

連続するスライドで似たサイズを使わないでください。 これは、ビジュアルに勢いを持たせるうえで最も重要なルールです。

サイズ階層幅高さ面積(概算)使用する場面
XL(はみ出し)28-36cm22-28cm600-1000クローズアップ、モデルがスライドの端からはみ出す場合
L(ヒーロー)18-24cm15-19cm270-456タイトル、締めくくり、ドラマチックな場面
M(分割)13-17cm12-16cm156-272テキストを含む標準的なコンテンツページ
S(アクセント)5-10cm5-10cm25-100データ量の多いページ、アイコンとしてのモデル
レイアウトパターン(6種類)

A — モデルを右、コンテンツを左(コンテンツページ) コンテンツは x=1-14cm。モデルは x=15-20cm、幅は 14-18cm。

B — モデルを左、コンテンツを右(Aと交互に使用) モデルは x=0-2cm、幅は 14-18cm。コンテンツは x=18-32cm。

C — モデルを中央に配置し、テキストを重ねる(タイトル/締めくくり) モデルを中央に大きく配置(18-24cm)。テキストはスライドの上部または下部に配置します。

D — モデルを隅に小さく配置し、コンテンツを主役にする(データページ) モデルをいずれかの隅に 5-10cm で配置します。残りのスペースをコンテンツで埋めます。

E — 背景としてのモデル(インパクト/引用ページ) モデルを XL(28-36cm)にし、中央に配置してスライドの端で一部を切り取ります。 モデルの領域に直接テキストを重ね、高コントラストの色を使います。 モデルが「キャンバス」となり、テキストはモデルのスペース内に配置されます。

# Pattern E: model fills slide as backdrop
officecli add deck.pptx '/slide[N]' --type 3dmodel \
  --prop path=model.glb --prop 'name=!!model-hero' \
  --prop x=-2cm --prop y=-2cm --prop width=38cm --prop height=24cm \
  --prop roty=45 --prop rotx=10

# Text overlaid on model
officecli add deck.pptx '/slide[N]' --type shape \
  --prop 'name=#sN-quote' --prop text="Key insight here" \
  --prop x=3cm --prop y=7cm --prop width=28cm --prop height=5cm \
  --prop size=44 --prop bold=true --prop color=FFFFFF --prop fill=none

F — 端からはみ出すモデル(トランジション/ティーザーページ) モデルの一部を画面外に配置します(x または y を負の値にするか、x+width > 33.87cm)。 モデルの一部だけが見えることで、フレームの外にも続きがあることを示します。

# Pattern F: model bleeds off right edge
officecli add deck.pptx '/slide[N]' --type 3dmodel \
  --prop path=model.glb --prop 'name=!!model-hero' \
  --prop x=20cm --prop y=-1cm --prop width=24cm --prop height=22cm \
  --prop roty=70
レイアウトの展開

連続するスライドで同じパターンを繰り返してはいけません。例:

Slide 1: C (centered hero, L)
Slide 2: E (backdrop close-up, XL)   ← 1.5x+ area jump
Slide 3: A (model right, M)          ← pull back
Slide 4: F (bleed edge, L)           ← push in
Slide 5: D (small corner, S)         ← dramatic pull back
Slide 6: B (model left, M)           ← grow
Slide 7: C (centered closing, L)     ← push in
テキストレイアウトの安全性(必須)

テキストボックス同士、またはテキストボックスとモデルのフレームが重なってはいけません。

ルール:

  1. タイトルと本文を重ねないでください。 タイトルが2行に折り返される場合、本文の y は予定の高さではなく、タイトルの実際の高さを考慮する必要があります。安全な計算式:body_y = title_y + title_height + 0.5cm
  2. 高さが固定されたテキストボックスは危険です。 テキストが想定より長いと、見えないところであふれます。十分な高さを確保してください:タイトルは 3-4cm、本文は 6-8cm、箇条書きは 8-10cm。
  3. モデルのフレームとテキストボックスの間隔は 1cm 以上にします。 次のように計算します:モデルが x=15cm にある場合、テキストの x + width は <= 14cm にします。
  4. パターンC(中央のモデル+テキストの重ね合わせ)では: テキストはスライド上部(y=0.5-2cm)または下部(y=14-17cm)に配置します。モデルがある中央の縦方向の領域(y=3-13cm)には配置しないでください。
  5. 各スライドを作成した後、座標を確認してください:
    officecli get deck.pptx '/slide[N]' --depth 1
    # Check: no two shapes share overlapping x/y/width/height ranges
    
モデルを端で切り取る際のガイドライン

すべてのモデルが切り取りに適しているわけではありません。 端で切り取る手法(パターンE/F)は、次のような場合に最適です。

  • ✅ 対称的なオブジェクト(球体、ヘルメット、ボトル)— どのように切り取っても意図的に見えます
  • ✅ 大きく平らな表面(車、建物)— 一部を見せることで大きさを表現できます
  • ✅ 重要でない部分(背景、台座、スタンド)を切り取る場合

次の場合は、端で切り取る手法は適しません。

  • ❌ キャラクター/動物のモデル — 耳、尾、手足を切り取ると不自然に見えます
  • ❌ 細部の多い小さなモデル — 切り取ると見せたい細部が失われます
  • ❌ 切り取る部分が最も認識されやすい特徴である場合

キャラクター/動物のモデル(キツネ、アヒル、アボカドなど)の場合: すべてのスライドでモデル全体を表示してください。端で切り取る代わりに、サイズを変更(L→M→S)してリズムをつけます。角度の変化には rotx を使います。


カメラの表現

3つのツールを組み合わせます:roty(回転)、rotx(傾き)、width/height(ズーム)。

ショットの種類(1つのデッキで3種類以上を使用)
ショットサイズrotx用途
導入ショットL (18-24cm)0-5タイトル、導入、締めくくり
スリークォーター・ビューティーL (16-20cm)5-10主役、第一印象
クローズアップXL (28-36cm)、切り取り0-10特徴の強調、詳細
俯瞰M (13-17cm)25-40構造、概要
ローアングルL (16-20cm)-15 to -25力強さ、ドラマ性
サイドプロフィールM (13-16cm)0フォームファクター、シルエット
オーバー・ザ・ショルダーS (5-10cm)10-15データが多いページ、アクセントとしてのモデル
コンテンツに合わせたカメラ

スライドの内容に合わせてショットを調整します。

  • 「正面デザイン」→ クローズアップ、roty=0、XL でトリミング
  • 「側面」→ サイド、roty=90、M
  • 「内部構造」→ 俯瞰、roty=30, rotx=35、M
  • 「パワー/権威」→ ローアングル、roty=20, rotx=-20、L
  • 「データと仕様」→ 肩越し、roty=60、隅に S
回転ルール
  1. 隣接するスライド間の roty の差:30~90°(30°未満は細かく揺れ、90°超は方向感覚を失わせます)
  2. roty の全体的な回転方向は一貫させます(行ったり来たりしない)
  3. rotx の範囲:-25~+40。隣接するスライド間の rotx の差は 20 以下
  4. デッキ全体の回転角:180~360°(モデルをすべての側面から見せます)
ショットプランの例
スライドショットrotyrotxサイズパターン
1斜めからの美しいショット308L 20×17C
2クローズアップ05XL 30×24E
3側面800M 15×14A
4俯瞰12035M 14×13B
5ローアングル170-20L 20×18F
6肩越し22010S 8×7D
7全景3205L 20×17C

morph-ppt とのワークフロー統合

フェーズ 2 の追加項目(計画)

brief.md に モデルの演出テーブルを追加します。

スライドパターンサイズ階層モデル x,y,w,hrotyrotx
1CL7,0.5,20,17308
2EXL-2,-2,38,2405
..................

ビルドを始める前に、面積比のルール(隣り合う行の間で 1.5 倍以上)を満たしていることを確認します。

フェーズ 3 の追加項目(ビルド)

モデルは複製できないため、ビルドスクリプトは標準的な morph-ppt とは異なります。

  1. すべてのスライドを先に作成します(背景とモーフトランジションを設定)
  2. スライド 1 にシーンアクター(!!scene-*)を追加してから、モーフの連続性を保つためにスライドを複製します
  3. 各スライドに 3D モデルを新たに追加します(名前は同じにし、roty/位置は変えます)
  4. 各スライドにコンテンツの図形を追加し、前のコンテンツをゴースト化します
model_positions = [
    {"slide": 1, "x": "7cm",  "y": "0.5cm", "w": "20cm", "h": "17cm", "roty": 30},
    {"slide": 2, "x": "-2cm", "y": "-2cm",  "w": "38cm", "h": "24cm", "roty": 0},
    {"slide": 3, "x": "16cm", "y": "1cm",   "w": "15cm", "h": "14cm", "roty": 80},
    # ...
]
for pos in model_positions:
    run("officecli", "add", OUTPUT, f"/slide[{pos['slide']}]", "--type", "3dmodel",
        "--prop", f"path={MODEL}", "--prop", "name=!!model-hero",
        "--prop", f"x={pos['x']}", "--prop", f"y={pos['y']}",
        "--prop", f"width={pos['w']}", "--prop", f"height={pos['h']}",
        "--prop", f"roty={pos['roty']}")
フェーズ 4 の追加項目(検証)

標準的なモーフ検証の後、さらに次の項目を確認します。

  • 各スライドに model3d 要素が 1 つだけある
  • すべてのモデルの name プロパティが同じ
  • 隣接するスライド間で、モデルの面積比が 1.5 倍以上または 0.67 倍以下
  • 連続する 2 枚のスライドで同じレイアウトパターンを使用していない

ファイル配置ルール

すべてのファイルを同じ作業ディレクトリに置く必要があります。

成果物(ちょうど 4 ファイル。それ以上は作成しないでください):

  • .glb モデルファイル(デッキで使用する 3D モデル)
  • 出力 .pptx
  • ビルドスクリプト(再実行可能)
  • brief.md

outline.md、quality-report.md、test-report.md などの追加ファイルは作成しないでください。計画はすべて brief.md に記載し、検証結果はすべて標準出力に出力します。余計なファイルはユーザーを混乱させます。

関連のないパスにモデルファイルを分散させないでください。

コメント