Communitygithub.com

Angles

スクリーン録画やスクリーンショットから、穏やかでフォトグラフィックな製品ビデオ(ゆっくりとしたカメラワーク、近接・斜めアングル、実画面風、ソフトフォーカス)を、Angles Studio を使ってローカルでレンダリングします。デモビデオ、製品ショット、ローンチクリップ、「モックアップビデオ」に最適です。

Angles とは?

Angles は、スクリーン録画やスクリーンショットから、プロフェッショナルで落ち着いた製品デモビデオを生成するコマンドラインツールです。ユーザーは JSON スペックファイルを作成し、`check` コマンドで異なるスタイルや設定を素早くプレビューし、`make` コマンドで最終的な MP4 ビデオをレンダリングします。このツールは、複数のカメラスタイル(クローズアップ、レーキング、フロートなど)、動きの強さ(囁き、穏やかなど)、背景色や影、フォーカス効果、キーオーバーレイなどの高度なオプションをサポートしています。Angles は、ビデオや画像をフレームに分割して再利用することで効率的に動作し、Node.js、Python、Chrome がインストールされた環境でローカルに実行されます。主な利点は、コーディングや複雑なビデオ編集ソフトを必要とせず、迅速に反復しながら高品質な製品ビデオを生成できる点にあります。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HansEngebretsen/angles/tree/main

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Angles は何をしますか?

小さな JSON スペックを書き、1 つのコマンドを実行し、1 行の JSON を読み取るだけです。スタジオを開いたり編集したりする必要はありません。スペックが作成可能なものすべてにアクセスでき、不可能なものは拒否します。

node <this folder>/angles.mjs check spec.json   # 約5秒、ビデオなし:1枚のシート、バリアントあたり4フレームの行
node <this folder>/angles.mjs make spec.json    # mp4(幅1920、ビデオ1秒あたり約4秒の処理)+ シート
  1. 作成前にチェックします。 検討中のオプションを variants に配置します。1回の check で、それらすべてがラベル付きの行として1つの小さな画像に表示されます。シートを見て、行を1つ選び、その行のフィールドをスペックにマージして(variants は削除)make を1回実行します。見た目を比較するためにビデオをレンダリングしないでください。
  2. シートを見て、mp4 は決して見ないでください。 出力される sheet パスを読み取ります。それでフレーミング、アングル、フォーカスを判断するのに十分です。
  3. ok: false の場合、warnings が指定するものだけを修正します。 これらは有効な選択肢をリストアップします。必要であれば node angles.mjs schema ですべての選択肢を表示します。推測しないでください。
{ "source": "~/Desktop/demo.mov", "out": "~/Desktop/angles", "trim": { "in": 2, "out": 8 },
  "look": "bright", "background": "mist", "shadow": "soft",
  "variants": [{ "style": "close", "level": "gentle" }, { "style": "raking" }, { "style": "float" }] }
フィールド値
source録画 (.mov .mp4 .webm) またはスクリーンショット (.png .jpg)。録画は一度フレームに分割され再利用されます(--fresh で再実行)。
styleclose、raking(近接・実アングル)。float、angle、flyby、focus、push、reveal、rise、tiltshift
levelstill、whisper(デフォルト)、gentle、lively、bold。それぞれ速度予算であり、動きはそれに合わせて縮小されます。speed ≤ budget は落ち着いた動きとして扱われます。
trim、loop、aspect{ "in": s, "out": s };true で終わりを始まりにクロスフェード;16:9(デフォルト)、1:1、9:16、任意の W:H
beats1クリップ内の複数スタイル:[{ "at": 0, "style": "float" }, { "at": 4, "style": "close" }]
look、lookAmountbright、crisp grain、glossy、sunlit、pixel macro、cool studio、film print、none;0–1
background、shadowmist linen sky sage blush dusk または #hex;none soft close float
focus{ "at": s, "u": 0–1, "v": 0–1, "size": 30 }。u/v を省略すると、録画内容が変化する場所にフォーカスします。
overlays[{ "at": 1, "dur": 1.5, "keys": ["⌘", "K"] }] または { "text": "…" }:カメラ上部のバッジ
ease、dir、travelsteady soft settle constant;left right;0–2(デフォルト .8)

こつ:控えめが勝ち(whisper または gentle)、1クリップにつき1つのアイデア(1つのスタイル、または2~3の beats)、3~8秒のトリムでアクションで終わること。

Chrome、ffmpeg、Node.js 18+、および numpy と pillow をインストールした python3 が必要です。ここで npm i を一度実行してください。ポート8790で自身を提供します(変更するには ANGLES_PORT を設定してください)。

関連スキル