
お盆にAI学習が進まない理由と、スライド自動化を“編集前提”に作り直す戦略
※アイキャッチ画像はチャット欄に添付しています/本文末にキーワード・ハッシュタグあり
日付:2025-08-18
カテゴリ:AI活用/スライド作成/生産性向上/ワークフロー設計
- イントロ:お盆に“徹底学習”するはずが、思ったほど進まない
- いま詰まっている“本質的な”課題の棚卸し
- 目指す完成像(Definition of Done)
- 戦略A:スライドマスターで“字幕前提”の土台を作る
- 戦略B:AIは“内容のJSON”、描画はスクリプトで
- 戦略C:PPTXではなく“元データ”をGit管理する
- 戦略D:字幕ワークフローを最初から設計に入れる
- 戦略E:言葉+スライドが淡白に見える時の“抑揚コントロール”
- 戦略F:生成AIへの“プロンプト規約”
- ミニマクロ:既存スライドを“字幕対応”に一括補正
- 1日スプリント計画(お盆明けの実行案)
- 学びのログ(今回の気づき)
- まとめ:アウトプットが出れば、先行できる
イントロ:お盆に“徹底学習”するはずが、思ったほど進まない
お盆期間に「AIを徹底的に学習する」と決め、スライド自動作成ツールも一気に試してみた。ところが、進捗は思ったより伸びなかった。アウトラインだけならAIは驚くほど速い。GensparkやSkyworkのような生成系ツールで雛形はすぐできる。しかし本当に使いたいのは「その先」——つまりあとから編集できて、編集内容が履歴に残り、次回は自動化で再現できる状態だ。そこまで行こうとすると、急に難易度が跳ね上がる。
さらに、今回は字幕を下に入れる前提がある。だからスライドの主要要素を上に寄せ、文字も大きくしたい。ところが自動生成のレイアウトはしばしば“器”(余計なフレームや装飾)を勝手に配り、こちらの意図を上書きしてしまう。言葉とスライドだけだと淡白に見える一方で、過剰な装飾は運用の敵。**「編集前提の自動化」**に設計し直す必要がある。
いま詰まっている“本質的な”課題の棚卸し
- 編集耐性の不足:自動作成されたスライドが、編集を重ねるほど崩れやすい。
- 再現性の欠如:同じプロンプトでも版によって結果が揺れる。バージョン管理が効きづらい。
- 字幕前提のレイアウト不整合:下部に字幕帯を確保したいのに、オートレイアウトがスペースを食い潰す。
- フォントとサイズの一貫性:スライドごとに文字サイズがばらつき、最終出力で読みづらい。
- 装飾の暴走:フレーム、飾り罫、影、グラデーションなど“器”が勝手に増殖し、情報伝達の邪魔になる。
- 履歴と差分の見える化不足:PPTXはバイナリで差分比較がしにくい。何を変えたか説明しづらい。
目指す完成像(Definition of Done)
- **JSON/Markdownの“元データ”**から、スライドが再生成できる。
- **字幕帯(Safe Area)**が常に確保され、主要要素は上方に揃う。
- フォント・余白・グリッドがテンプレートで固定される。
- 編集内容はGitで追跡できる(PPTXそのものではなく元データを管理)。
- AIは**「内容(言葉)と配置の指示」**を返し、装飾は最小限。
戦略A:スライドマスターで“字幕前提”の土台を作る
手順(PowerPoint)
- 表示 > スライドマスターを開く。
- 最上位マスターにガイドを引く:下端から10〜12%を字幕帯として薄いグレーの長方形でマーキング(印刷しないならプレースホルダーではなく図形でもOK)。
- タイトルと本文プレースホルダーを上方に移動し、字幕帯と重ならないよう高さを固定。
- フォントスタイル規約を設定:
- タイトル:日本語/英数ともに太め、48pt以上。
- 本文:28〜32pt、行間1.15〜1.3。
- 箇条書きは最大5行・1行8〜12語を上限。
- 配色トークン(Brand Primary/Accent/Neutral)をテーマカラーに登録。影や外枠の既定はオフ。
- 上記を含んだ独自レイアウトを数種作成:
Title-Only(字幕帯あり)
Title + Bullets(3行まで)
Big Number
Comparison 2/3
Diagram (Full-Width Top)
- テンプレート名に
_CC
(Closed Caption)などラベルを付け、字幕対応テンプレだと分かるようにする。
ポイント:字幕帯は“透明なルール”ではなく視覚化しておく。AIやスクリプトで図形座標を計算する際、y座標の範囲を上部に限定すれば、字幕スペース侵食を根本から防げる。
戦略B:AIは“内容のJSON”、描画はスクリプトで
生成AIにPPTXそのものを作らせるより、**構造化データ(JSON)**を出させ、描画はpythonやApps Scriptで行うと壊れにくい。
1) スライドJSONの最小仕様
{
"meta": {
"theme": "caption-ready",
"font": {"jp": "Noto Sans JP", "en": "Inter"}
},
"slides": [
{
"layout": "Title-Only",
"title": "お盆にAI学習が進まない理由",
"notes": "冒頭の共感。字幕帯あり。",
"visual": {"type": "none"}
},
{
"layout": "Title + Bullets",
"title": "痛点",
"bullets": [
"編集耐性が低い",
"再現性が揺れる",
"字幕帯が確保できない"
],
"notes": "各行8-12語以内"
}
]
}
2) Python(python-pptx)での描画例(字幕帯を確保)
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
SAFE_BOTTOM_RATIO = 0.12 # スライド下12%を字幕帯として確保
SLIDE_W, SLIDE_H = Inches(13.333), Inches(7.5) # 16:9
prs = Presentation('caption_ready_template.pptx') # スライドマスター済みのPPTX
# 例: Title-Only スライドを追加
slide_layout = prs.slide_layouts[0] # カスタム: Title-Only
slide = prs.slides.add_slide(slide_layout)
# 既定のタイトルプレースホルダーを取得
title_shape = slide.shapes.title
# 字幕帯を避けるように位置補正
safe_bottom = SLIDE_H * (1 - SAFE_BOTTOM_RATIO)
if title_shape.top + title_shape.height > safe_bottom:
title_shape.top = Inches(0.4)
title_shape.text = 'お盆にAI学習が進まない理由'
# 本文などを追加する際もsafe_bottomを上限として配置する
prs.save('output.pptx')
3) Googleスライド派ならApps Script
- 元JSONをDriveに置き、Apps Scriptで読み込んでスライド生成。
- 下部に透明長方形を敷いてガイド化、テキストボックスのY座標最大値を
slideHeight * 0.88
に制限。 - すべてセンチやピクセルではなく比率で管理すると、後のサイズ変更に強い。
戦略C:PPTXではなく“元データ”をGit管理する
- PPTXは成果物、JSON/Markdownはソースと割り切る。
/slides/src/*.json
をGit管理、/slides/dist/*.pptx
はビルド成果として毎回上書き。- 変更履歴は
CHANGELOG.md
に人間語で残す(例:「Slide #05: 箇条書き→図版に変更」)。 - 画像は
/assets/
で管理。大きいファイルはGit LFSを検討。
差分の見える化
- JSON構造なら差分レビューが容易。レビューコメントを残せる。
- 自動CIでJSONからPPTXを生成し、毎回同じ見た目に着地させる。AIの“気分”への依存を下げる。
戦略D:字幕ワークフローを最初から設計に入れる
- ライブ字幕(登壇用):PowerPointの字幕機能や通訳アプリを使い、下寄せで表示。フォント・位置のカスタマイズは限定的なので、スライド側で領域を確保する発想が重要。
- 動画書き出し(配信用):
- スライドを動画化→
SRT
/WebVTT
を後乗せで焼き込み。 - 字幕は2行まで/1行32〜40文字程度、行間と余白を広く。下12%の帯からはみ出さない。
- スライドを動画化→
- 図版の配置原則:写真・図は上段にフル幅で。字幕帯と競合しないよう脚注は右上へ逃がす。
戦略E:言葉+スライドが淡白に見える時の“抑揚コントロール”
- Big Number:1枚に指標1つ。数字は200pt前後、説明は28〜32pt。
- Before→After:左に現状、右に理想。差分を単語3つで言い切る。
- 3カラム:課題/打ち手/効果。各カラム3行以内。
- ロードマップ:四半期ごとに1行、棒状タイムライン。アイコンは1枚1個まで。
- フレーム図:枠線は細く(1pt)、陰影はゼロ。“器”を増やさない。
戦略F:生成AIへの“プロンプト規約”
AIが勝手に器を配るのを止め、編集可能なJSONに限定するための雛形:
あなたはスライド脚本家です。出力は必ずJSONのみ。装飾・HTML・PPTXは生成しない。
制約:
- レイアウトは {"Title-Only","Title + Bullets","Big Number","Comparison"} のいずれか。
- 各スライドは 1 タイトル + 箇条書き最大5行(各行8-12語)。
- 字幕帯を下12%に確保する前提で、要素はその上に収まる内容だけを書く。
- “器”(フレーム、影、余計な図形)の指示は禁止。必要ならvisual.typeに"none"または"illustration"のみ指定。
出力例:
{
"meta": {"theme": "caption-ready"},
"slides": [
{"layout": "Title-Only", "title": "課題の整理", "notes": "冒頭の共感"},
{"layout": "Title + Bullets", "title": "痛点", "bullets": ["編集耐性が低い","再現性の揺れ","字幕帯の侵食"]}
]
}
評価ルールも同時に書くと堅くなる:
- 各スライドの平均行長(語数)を計算し、8〜12語を外れたら修正。
- スライド数は10±2に収める。超過・不足時は自動で再編。
ミニマクロ:既存スライドを“字幕対応”に一括補正
PowerPoint VBA(例)
Sub CaptionReady()
Dim s As Slide, sh As Shape
Dim slideH As Single: slideH = ActivePresentation.PageSetup.SlideHeight
Dim safeBottom As Single: safeBottom = slideH * 0.88 ' 下12%は字幕帯
For Each s In ActivePresentation.Slides
For Each sh In s.Shapes
If sh.Type = msoTextBox Or sh.HasTextFrame Then
If sh.Top + sh.Height > safeBottom Then
sh.Top = 20 ' 上に押し上げる(px相当)
End If
If sh.TextFrame2.TextRange.Font.Size < 28 Then
sh.TextFrame2.TextRange.Font.Size = 28
End If
End If
Next sh
Next s
End Sub
※細かい座標はテンプレ側で整備しておくと安定する。
1日スプリント計画(お盆明けの実行案)
Day 1:基礎整備
caption_ready_template.pptx
を作る(マスター、配色、ガイド)。- JSONスキーマ最小版を決める(上記例でOK)。
Day 2:描画スクリプト
- python-pptxまたはApps Scriptで、Title/Bullets/BigNumberの3種を生成。
- Gitで
src/json
→dist/pptx
のビルドを自動化。
Day 3:プロンプト整備
- プロンプト規約と評価ルールを固定。
- 実サンプルを5本回して“器の暴走”が止まるまで調整。
Day 4:字幕導線
- 動画化とSRT焼き込みの手順書を作る。字幕の行長ガイドを反映。
Day 5:運用ドキュメント
- README/CHANGELOG/命名規則。新メンバーでも再現できる状態にする。
学びのログ(今回の気づき)
- 生成の速さより編集の耐性が価値。
- レイアウトは比率で考えると壊れない。
- 装飾は敵。器を増やさず、情報密度と抑揚で勝負。
- 字幕は仕様。あと付けではなく最初に領域を確保する。
- 成果物(PPTX)ではなく**ソース(JSON/MD)**を管理する。
まとめ:アウトプットが出れば、先行できる
お盆期間に理想通りの進捗が出なくても、今日の棚卸しでやるべき設計は見えた。次は「編集前提の自動化」を核に、テンプレ・JSON・描画スクリプト・字幕導線を一体化させる。アウトプットが出れば、それだけで先行できる。迷ったら装飾を捨て、要素を上方に寄せ、文字を大きく。“器”ではなく伝達そのものに集中しよう。
















