GhostMoviePlay Gallery

AI がアプリやゲームを実際に操作し、失敗例とその理由、そして正解ルートまでを字幕付きで解説する動画を作るパイプライン —— GhostMoviePlay で実際に出力した動画を並べています。

録画と書き出しは決定論的なので、素材を clone して同じコマンドを打てば同じものが出ます。 各動画に、それを再現するコマンドと素材の場所を添えてあります。 1 本は例外です —— 自動操作が届かないアプリは人が操作して撮るので、 clone しても撮り直しが要ります(そのカードに書いてあります)。

GhostMoviePlay の紹介

ツール自身の説明ページを操作しながら、3 段構成(plan → record → render)が何を分けているのかを見せる 1 本。

尺
約 99 秒
収録対象
同梱の説明ページ(docs/video/intro/site/index.html)
素材
docs/video/intro/(構成・台本とも公開)
設定
gmp.zip(8 KB / 3 ファイル / 出所 365fc6b)
構成・台本・仕込みの一式。生成物は入っていません。このフォルダは GhostMoviePlay の docs/video/intro/ に戻して使います —— app.start がこのパスの site/(収録対象の説明ページ。同梱してあります)を簡易サーバで配信するので、置き場所が変わると開けません。
開いたらまず app.setup / app.start を読んでください(あなたの機械で走るコマンドです)。手引き → README_BUNDLE.md
再現
uv run gmp build docs/video/intro/plan.json --voice

この動画だけのページ →

GlossPop —— 登録する語は「短いほど危ない」

選択したテキストを AI が辞書化して以後の表示で自動リンクするビューア。短く一般的な語を登録すると本文がリンクだらけになるところを実演し、日本語には語境界が無く部分文字列で照合しているからだと説明して、用語名を直して 1 箇所に収めるまで。

尺
約 97 秒
収録対象
GlossPop(収録用の使い捨てデータルートを serve.py が立てるので、実辞書は触らない)
素材
GlossPop/docs/video/gloss-scope/
設定
glosspop.zip(6 KB / 3 ファイル / 出所 12d1f33)
構成・台本・仕込みの一式。生成物は入っていません。このフォルダは GlossPop の docs/video/gloss-scope/ に戻して使います —— app.cwd が GlossPop のルートを指していて、serve.py が向こうの content/ を読みます。撮る対象そのものは入っていません(別リポジトリです)。
開いたらまず app.setup / app.start を読んでください(あなたの機械で走るコマンドです)。手引き → README_BUNDLE.md
再現
uv run gmp build ../GlossPop/docs/video/gloss-scope/plan.json --voice(GhostMoviePlay 側で実行)

この動画だけのページ →

7-Zip —— パスワード付き zip は、ファイル名を隠さない

機密ファイル 4 つを、いちばん強い AES-256 のパスワード付き zip にする。ところが出来た書庫を開くとパスワードを訊かれず、中のファイル名が全部読める。zip はファイル名の一覧を暗号化しない仕様で、暗号の強さとは関係が無いと説明し、7z 形式の「ファイル名を暗号化」で隠せるところまで。

尺
約 69 秒
収録対象
7-Zip File Manager(winget install 7zip.7zip。撮影用のダミーは仕込みが作り、後片付けで消える)
素材
docs/video/assist-7zip/
設定
assist-7zip.zip(10 KB / 3 ファイル / 出所 365fc6b)
構成・台本・仕込みの一式。生成物は入っていません。どこに置いても動きます —— app.cwd はこのフォルダ自身で、仕込みが撮影用のダミーを作ります(C:\gmp\sample。後片付けで消えます)。
開いたらまず app.setup / app.start を読んでください(あなたの機械で走るコマンドです)。手引き → README_BUNDLE.md
再現
uv run gmp build docs/video/assist-7zip/plan.json --voice(Windows のみ。7-Zip が要ります)
機械が 7-Zip を操作して撮ります。 UI Automation にはウィンドウの枠しか出さないアプリですが、Win32 のウィンドウツリーからは一覧もダイアログも掴めるので、一覧の行をrow=給与明細_2026-07.pdf のように名前で指して操作しています —— 同じ台本から 2 回撮って9 枚のショットが byte 一致します。撮っている間はマウスとキーボードに触らないでください(本物の入力を送るので、前に出たウィンドウに入ります)。

この動画だけのページ →

Krita —— 描けなくなったら、選択範囲を疑う

図形の片方を矩形選択して塗ったあと、解除を忘れたまま別の場所へ筆を走らせると、なぞっても線が一本も残らない。エラーも音も出ないのでブラシやレイヤーを疑ってしまうが、原因は離れたところに残った選択範囲で、その外側は描けないように保護されている。解除して同じブラシ・同じ場所に描けるところまで。

尺
約 89 秒
収録対象
Krita(winget install KDE.Krita。撮影用の白いキャンバスは仕込みが作り、後片付けで消える)
素材
docs/video/assist-krita/
設定
assist-krita.zip(11 KB / 3 ファイル / 出所 365fc6b)
構成・台本・仕込みの一式。生成物は入っていません。どこに置いても動きます —— app.cwd はこのフォルダ自身で、仕込みが撮影用のダミーを作ります。撮るのは人なので gmp shoot から。
開いたらまず app.setup / app.start を読んでください(あなたの機械で走るコマンドです)。手引き → README_BUNDLE.md
再現
この 1 本もコマンド 1 つでは出ません。 キャンバスは Krita が自分で描いていて UI Automation からは原理的に見えないので、支援収録で人が操作して撮っています。筆を走らせるところは静止画では伝わらないため、10 ビートのうち 5 つは録画で撮りました。uv run gmp shoot docs/video/assist-krita/plan.json で画面を開き、ビートごとの指示どおりに操作して撮ったあと gmp record → gmp render。

この動画だけのページ →