Communitygithub.com

OliviaPp8/minara-video-skills

Minara動画のスクリプトに基づいてBGMと同期サウンドエフェクトを生成します。各シーンの雰囲気と画面上のアクション(タップ、タイピング、成功、通知、トランジション)をキューシートに変換し、ローカルでBGM+SFXを合成します(numpyシンセ、外部サービス不要)。ボイスオーバー下での自動ダッキング機能も搭載。

minara-video-skills とは?

このスキルは、Minara動画プロジェクト向けに、スクリプトから音楽と効果音を自動生成するツールです。スクリプトの各秒に記述された内容(タップ、タイピング、通知、トランジションなど)とシーンの雰囲気を解析し、`cues.json`形式のキューシートを作成します。その後、純粋なローカルnumpy合成を用いてBGMとSFXをレンダリングするため、外部サービスへの依存や追加費用が発生しません。出力は決定論的であり、同じキューシートとシードからは常に同じオーディオが生成されます。このスキルはClaude Code上で動作し、`/minara-music`コマンドで起動します。`minara-video`や`minara-guide-video`プロジェクトで使用することを想定しており、ボイスオーバーが存在する場合の自動ダッキング(BGM音量を下げる)機能も備えています。最終的には48kHzステレオのWAVファイル(`bgm.wav`、`bgm-duck.wav`、`preview-mix.wav`)を出力し、HyperFramesなどの動画編集ツールに取り込めます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/OliviaPp8/minara-video-skills/tree/HEAD/skills/minara-music

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

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

ドキュメント

/minara-music — スクリプトから音楽+効果音を生成

動画の秒単位スクリプトを音楽キューシートcues.jsonに変換し、BGMと映像同期の効果音をローカルで合成します。合成は純粋なローカルnumpyを使用し、出力は決定論的です(同じキュー+シードから常に同じオーディオが生成されます)。外部サービスを呼び出さず、コストはかかりません。

ソース: Minara V2ローンチフィルムのスコアリング手法を汎用スクリプト化したもの。examples/v2-launch.jsonがそのフィルムのキューシートです。

ワークフロー(順序通り)

  1. スクリプトを読む: minara-video(またはストーリーボード/ナレーションタイミングシート)から秒単位のスクリプトを取得します。スクリプトに「サウンド・アトモスフィア」や「ミュージック」の列があればそれに従い、なければ映像の雰囲気から判断します。
  2. キューシートを書く: プロジェクトのaudio-src/cues.jsonに以下を記述します:
    • duration(= 最終的な動画の長さ), bpm(デフォルト120), key(デフォルトA minor、明るくお祝いムードの場合はC major), seed。
    • sections: スクリプトを音楽セクションに分割し、各セクションにenergyを設定、noteに対応する映像の説明を記述します(相互参照しやすくするため)。
    • sfx: スクリプト内の目に見えるアクション(タップ、タイピング、注文完了、通知ポップアップ、トランジション、ロック着地)ごとに効果音を追加し、スクリプトに指定された秒数に合わせて配置します。
  3. レンダリング前にオペレーターにシートを提示する: マークダウンテーブルで「時間範囲/energy/対応映像」と「効果音時間/種類/対応アクション」をリスト表示し、オペレーターがOKと言うまで待ちます。オペレーターはコードではなくシートを編集します。
  4. レンダリング:
    python3 ~/.claude/skills/minara-music/scripts/make_music.py <project>/audio-src/cues.json -o <project>/assets [--vo <project>/assets/vo.wav]
    
  5. 自己チェック: スクリプトが各セクションを表示します。その後、セクションごとにラウドネスを測定し、クライマックスが最も大きく、ブレイクダウン/アウトロが明らかに音量を落としていること、ダッキングが機能していることを確認します。聞き取りの問題がある場合(ごちゃごちゃしている、効果音がフォーカスを奪っている)、level/gainを調整して再レンダリングします。各レンダリングは数秒で完了します。
  6. 納品: bgm.wav(またはbgm-duck.wav)へのパスを提示し、open -Rでpreview-mix.wavをハイライト表示して聞いてもらえるようにします。HyperFramesでは、これをオーディオトラックとして追加し、ボイスオーバーは別のトラックに配置します。

出力

ファイル内容
bgm.wav音楽+効果音、48 kHz ステレオ、-1 dBFS ピーク、開始0.4秒フェードイン、終了3.2秒フェードアウト
bgm-duck.wavボイスオーバーがある場合に生成: 発声中は音楽がduck_db(デフォルト-8 dB)下がります。効果音はダッキングされません
preview-mix.wavボイスオーバーがある場合に生成: 音楽+ボイスオーバーをミックスしたもの。試聴用であり、最終的な動画には使用しません

energy セクションの種類

energyサウンド使用場面
silent無音完全な静寂が必要な間
intro低いドローン+ソフトパッドオープニング、ロゴ、データ収束
lightパッド+軽いアルペジオ+控えめなビートモバイル操作、軽量な機能デモ
build各ビートにベースとキックを追加、セクション終了時に自動でライザー重要な瞬間に向けた徐々の盛り上がり
fullフルドラムキット+クラップ+ベース+アルペジオコア機能の継続的な紹介(バックテスト、稼働、自動化)
breakdownドラムとベースを削除、パッドとソフトアルペジオのみ。最終小節でキックが復帰シーンの変更、セキュリティ/プライバシーに関する「呼吸」が必要なセクション
climax最も充実: フルドラムキット+リードメロディ+セクション開始時のクラッシュ。前セクションがbuildでなければ自動でライザーを追加製品名/ローンチクレームが表示される
outroトニックコード+ブランドベルの解決音、ミックス全体をフェードアウトエンドカード、CTA

各セクションは"level": 0.5–1.3で音量を微調整できます。コードはグローバルな小節パターン(短調: i–VI–III–VII、長調: I–V–vi–IV)に従うため、セクション間で不連続になりません。

効果音の種類(sfx)

種類サウンド典型的なアクションオプションパラメータ
tap短いクリックボタンタップ、選択gain
typing連続的なタイピングのカチカチ音入力フィールドでのタイピングchars, cps(毎秒文字数、画面のタイピング速度に合わせる)
success2音の上昇するベル音注文完了、戦略実行中gain
notify3音のアラート通知やリマインダーのポップアップgain
bell単音のベル音アバター/ロゴ出現note(MIDI、デフォルト81)
blips上昇する短い音バックテスト進行、データ読み込みcount, step(秒), note
sparkleきらめく粒状音+息のようなノイズパーティクル収束、オープニングdur
riser上昇するノイズ手動で追加するトランジションの盛り上がりdur
whoosh逆スイープウィンドウの折りたたみ、プッシュ/プルトランジションdur
thud低いロック音ロック、確認、重い着地gain
crashシンバル追加のアクセントgain

すべての効果音はgainで音量を調整できます。

ルール

  • 効果音は目に見えるアクションにのみ従う: 画面上に対応するアクションがない場合は、「テキストを軽々しく追加しない」のと同じく、効果音を追加してはいけません。
  • タイミングはスクリプトからコピーし、推定しない: 効果音のtは秒単位スクリプト/アニメーションタイムラインから実際の秒数を使用し、cpsはアニメーションでのタイピング速度を使用します。
  • スクリプトの長さや順序が変更された場合は、先にcues.jsonを更新して再レンダリングする。手動でオーディオを引き伸ばさないでください。
  • 外部のAI音楽サービスやWebからダウンロードしたトラックは使用しないでください。商用ライセンスされた音楽が必要な場合は、オペレーターがファイルを提供します。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

OliviaPp8/minara-video-skills

Create Minara product guide/tutorial videos from screen recordings supplied by the operator. Use for /minara-guide-video, “给录屏加字幕配音”, retiming a new recording cut, building a timeline approval player, or correcting caption/product meaning. Drives caption-recording from source analysis through pre-render approval, final verification, and local delivery. Not for synthetic HyperFrames marketing videos.

OliviaPp8/minara-video-skills

Make Minara use case / beginner tutorial videos (mobile App or desktop), rebuilding the product UI in HyperFrames code and walking through the real user path step by step. Unlike minara-video (marketing demo, UI redesign allowed), this skill requires a faithful UI: copy, layout, components, and interaction paths all follow the product frontend code and screen recordings. Triggers: "use case 视频", "教程视频", "操作演示", "新手教程", "按 App 界面做一个视频"; also makes covers for these videos ("封面", "cover", "缩略图").

OliviaPp8/minara-video-skills

Write Minara video scripts before any animation work — launch / promo films, single-scene supplements, use case tutorials. Turns a brief, product screenshots, frontend code, Figma frames or a feature note into an English-only script doc built around a keyframe sheet; each keyframe has a still image (rendered from UI code, exported from Figma, or AIGC-generated from screenshots), a picture description, the voiceover line, on-screen text (花字) with style, timing and duration, and the BGM style / sound cues. Also covers what each scene must land, user flow + UI copy, voiceover word budget and open questions, in a calm, neutral, natural voice. Then hands off to minara-video, minara-usecase-video and minara-music. Use for /minara-videoscript, "写视频脚本", "视频脚本", "分镜脚本", "关键帧", "关键帧脚本", "花字", "补充脚本", "旁白稿", "video script", "voiceover script", "keyframes".

OliviaPp8/minara-video-skills

The operator's standard workflow for making Minara marketing / launch / demo videos. Built on the hyperframes skill, with a stricter process - confirm style → high-level storyboard → copy → build each scene separately → confirm a per-second script → iterate on a local test page → render only once the user is satisfied.

関連スキル