February 20, 2026

Seedance 2.0 API でカメラムーブメントを再現する方法

Seedance 2.0 API でヒッチコックズーム、ワンテイクトラッキングショット、オービタルカメラを再現する方法を解説。@Video タグを使った Python コード3例を完全収録。

Seedance 2.0 API でカメラムーブメントを再現する方法

カメラムーブメントこそが、平坦で静的な動画とシネマティックな映像を分ける要素です。ドリーズームは緊張感を生み出し、オービタルショットは壮大さを演出し、ワンテイクトラッキングショットは没入感を構築します。従来、これらを実現するにはジンバル、クレーン、ドローン、ステディカムなど高価な機材と、それを操作できるオペレーターが必要でした。

Seedance 2.0 はハードウェアを不要にします。再現したいカメラムーブメントが含まれるリファレンス動画をアップロードし、@Video タグでモデルに指示するだけで、API が正確なカメラ言語 — スピード、軌道、リズム、加速カーブ — を再現した新しいコンテンツを生成します。

Seedance 2.0 API によるシネマティックカメラムーブメントの再現 — ドリートラック可視化

本チュートリアルでは、EvoLink 経由の Seedance 2.0 API を使った3つのカメラ再現ケースを解説します:

  1. ワンテイクトラッキングショット — 複数の環境を通して被写体を追い続ける連続カメラワーク
  2. ヒッチコックズーム(ドリーズーム) — 古典的なめまいエフェクト
  3. オービタルカメラ — 被写体の周囲を360°回転するショット

各ケースにはコピー&ペーストですぐに実行できる Python スクリプトを完全収録しています。

前提条件: Python 3.8+、EvoLink API キー(無料枠あり)、各カメラムーブメントタイプのリファレンス動画。


カメラムーブメントの再現がAI動画を変える理由

ほとんどのAI動画生成ツールは、テキストベースの基本的なカメラコントロールしか提供しません。「dolly in」や「pan left」と入力して、モデルが正しく解釈してくれることを祈るしかありません。結果は不安定で、スムーズなプッシュインになることもあれば、ぎこちないパンになったり、何も変化しないこともあります。

Seedance 2.0 は根本的に異なるアプローチを取ります:言葉で伝えるのではなく、見せる。カメラムーブメントを言葉で記述する代わりに、再現したい正確な動きを示す動画をアップロードします。モデルはリファレンスを分析し、以下を再現します:

  • カメラの軌道 — トラッキングパス、オービタルアーク、クレーンムーブメント
  • スピードと加速 — イーズイン、イーズアウト、急停止、スムーズなグライド
  • 焦点の挙動 — ラックフォーカスのタイミング、被写界深度の変化
  • 構図のリズム — カメラが動き出す前に各フレーミングがどれだけ維持されるか

つまり、ハリウッド映画のカメラムーブメント、YouTubeのドローンショット、自分で撮影したジンバルクリップを取り込み、その正確な動きをまったく新しいコンテンツに適用できるのです。

このレベルのカメラコントロールを提供するAI動画APIは他にありません。Sora 2 と Kling 3.0 はカメラ指示にテキストプロンプトを使用し、Veo 3.1 は基本的なカメラキーワードに対応するのみです。リファレンス動画入力によるカメラ言語の抽出に特化して対応しているのは Seedance 2.0 だけです。


Seedance 2.0 がカメラ言語を読み取る仕組み

@Video タグがそのメカニズムです。リファレンス動画をアップロードしてプロンプト内でタグ付けする際、モデルがそこから何を抽出すべきかを指定します。これは非常に重要です — 1本のリファレンス動画には、カメラムーブメント、被写体の動き、ビジュアルエフェクト、ライティング、ペーシングが含まれています。モデルにどの要素を使うか伝える必要があります。

@Video タグの構文

@Video1 — カメラムーブメントとトラッキング軌道のリファレンス

プロンプトで参照する内容を明示的に記述します。以下の2つのアプローチを比較してみましょう:

曖昧(不安定):

Use @Video1 as reference. Generate a city scene.

具体的(安定):

Replicate @Video1's camera movement exactly — the tracking speed,
trajectory, and push-in timing. Apply this camera work to a new scene:
a samurai walking through a bamboo forest at dawn.

2番目のバージョンはモデルに次のように伝えています:リファレンスからカメラ言語のみを抽出せよ。新しいコンテンツ(侍、竹林)を生成するが、仮想カメラはリファレンス動画のカメラの動きを正確に再現せよ。

抽出可能な要素

リファレンス要素プロンプトの記述
カメラパス/軌道"replicate camera movement"トラッキング、ドリー、オービット、クレーン
カメラスピード"match camera pacing"スロークリープ、高速ウィップパン
カメラ + 被写体の動き"replicate camera and choreography"ダンス + カメラのコンビネーション
被写体の動きのみ"replicate movement/action from @Video1"キャラクターの歩行パターン
ビジュアルエフェクト"replicate transition effects"ウィップパントランジション、モーフ

重要なルール: 何を参照するか明示的に記述してください。カメラムーブメントのみが必要なら「camera movement」と書きます。アクションの振り付けも必要なら、両方を記述します。曖昧さは混在した結果につながります。

@ タグリファレンスシステムの完全ガイドについては、マルチモーダルリファレンス:@Tags 完全ガイドをご覧ください。


環境のセットアップ

必要なもの

  • Python 3.8+
  • requests ライブラリ
  • EvoLink API キー(無料サインアップ
  • リファレンス動画ファイル(MP4、2〜15秒、50MB以下、480p〜720p)

依存関係のインストール

pip install requests

ベースAPI設定

import requests
import time

EVOLINK_API_KEY = "your-evolink-api-key"
BASE_URL = "https://api.evolink.ai/v1"
HEADERS = {
    "Authorization": f"Bearer {EVOLINK_API_KEY}",
    "Content-Type": "application/json"
}

def poll_task(task_id, interval=5, timeout=300):
    elapsed = 0
    while elapsed < timeout:
        resp = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers=HEADERS
        )
        result = resp.json()
        status = result.get("status")

        if status == "completed":
            print(f"Video ready: {result['results'][0]}")
            return result
        elif status == "failed":
            print(f"Generation failed: {result.get('error')}")
            return result

        print(f"Status: {status} ({elapsed}s elapsed)")
        time.sleep(interval)
        elapsed += interval

    print("Timeout reached")
    return None

このベースコードは、認証とタスクポーリングを処理します。以下のすべてのケースはこのコードの上に構築されます。

以下の例を試すには、evolink.ai無料の EvoLink API キーを取得してください。


ケース 1:ワンテイクトラッキングショット

ワンテイクトラッキングショットは、映画制作における最も印象的なカメラテクニックの1つです。カメラが被写体を複数の環境にわたって1回の連続テイクで追い続けます — カットなし。グッドフェローズの有名なコパカバーナのシーンや、オールド・ボーイの廊下の格闘シーンを思い浮かべてください。

Seedance 2.0 では、連続的なトラッキングムーブメントを示すリファレンス動画をアップロードし、同じカメラパスに沿った新しいコンテンツを生成することで、これを再現します。

必要なもの

リファレンス動画: 連続的なトラッキングカメラムーブメントを示すクリップ(2〜15秒)。ジンバルウォーキングショット、ドローンフォローショット、またはステディカムクリップが適しています。

プロンプト: リファレンス動画のカメラムーブメントを参照しながら、新しいコンテンツを記述します。

プロンプト

Replicate @Video1's camera movement exactly — continuous one-take
tracking shot, maintaining the same speed, trajectory, and smooth
forward motion throughout.

Apply this camera work to a new scene: a parkour runner sprinting
through narrow city alleyways, leaping over obstacles, vaulting up
a staircase, and reaching a rooftop overlooking the city skyline.
Golden sunset lighting. Dynamic and energetic. No cuts.

このプロンプトの重要な要素:

  • 1〜3行目: @Video1 からカメラムーブメントを抽出するよう明示的に指示
  • 5〜8行目: まったく新しいコンテンツを記述 — モデルがこの被写体を生成
  • 「No cuts」: ワンテイクの要件を強調

完全な Python コード

# Case 1: One-Take Tracking Shot

response = requests.post(
    f"{BASE_URL}/videos/generations",
    headers=HEADERS,
    json={
        "model": "seedance-2.0",
        "prompt": (
            "Replicate @Video1's camera movement exactly — continuous "
            "one-take tracking shot, maintaining the same speed, "
            "trajectory, and smooth forward motion throughout.\n\n"
            "Apply this camera work to a new scene: a parkour runner "
            "sprinting through narrow city alleyways, leaping over "
            "obstacles, vaulting up a staircase, and reaching a rooftop "
            "overlooking the city skyline. Golden sunset lighting. "
            "Dynamic and energetic. No cuts."
        ),
        "video_urls": ["https://your-cdn.com/tracking_reference.mp4"],
        "duration": 10,
        "quality": "720p"
    }
)

task_id = response.json()["id"]
print(f"Task created: {task_id}")
result = poll_task(task_id)

期待される結果

生成された動画には、都市環境を走るパルクールランナーが映ります — ただし、カメラムーブメント(トラッキングスピード、前進の勢い、スムーズな連続動作)はリファレンス動画から来ています。モデルはリファレンスの被写体や背景をコピーしません。カメラの動き方をコピーするのです。

出力例:都市環境を駆け抜けるパルクールランナーを追うワンテイクトラッキングショット。カメラはジンバルのような安定性でスムーズな前進運動を維持。

自分で試してみましょう: 自分のリファレンス動画 — ドローンフォローショット、車のドライブレコーダー映像、ウォーキングジンバル動画 — に差し替え、プロンプトを希望するシーンに合わせて変更してください。カメラムーブメントが転送されます。


ケース 2:ヒッチコックズーム(ドリーズーム)

ドリーズームは、アルフレッド・ヒッチコックのめまい(1958年)で発明された、映画史上最も不安感を与える強力なカメラテクニックの1つです。カメラが被写体に向かって(または離れて)物理的に移動しながら、レンズが逆方向にズームします。被写体はフレーム内で同じサイズを維持しますが、背景が劇的に歪みます。不安、気づき、感情の変化を内臓的に感じさせるエフェクトです。

実際の映画制作では、ドリートラックと精密なズームタイミングが必要です。Seedance 2.0 では、リファレンスクリップがあれば十分です。

必要なもの

リファレンス動画: ドリーズームエフェクトを示すクリップ。YouTubeで「dolly zoom effect」や「vertigo effect tutorial」と検索すると例が見つかります。被写体が静止した状態で背景が圧縮/拡張する3〜8秒のクリップが理想的です。

プロンプト: ドリーズームの明示的なリファレンスを含む新しい被写体の記述。

プロンプト

Replicate @Video1's camera technique exactly — the dolly zoom
(Hitchcock zoom) effect where the camera moves forward while
zooming out, keeping the subject the same size while the
background dramatically stretches.

Apply this effect to: a detective standing in a dim corridor.
As the dolly zoom activates, the corridor behind him stretches
impossibly long, creating a sense of dawning horror.
Dramatic side lighting with deep shadows. Film noir atmosphere.

完全な Python コード

# Case 2: Hitchcock Zoom (Dolly Zoom)

response = requests.post(
    f"{BASE_URL}/videos/generations",
    headers=HEADERS,
    json={
        "model": "seedance-2.0",
        "prompt": (
            "Replicate @Video1's camera technique exactly — the dolly "
            "zoom (Hitchcock zoom) effect where the camera moves forward "
            "while zooming out, keeping the subject the same size while "
            "the background dramatically stretches.\n\n"
            "Apply this effect to: a detective standing in a dim "
            "corridor. As the dolly zoom activates, the corridor behind "
            "him stretches impossibly long, creating a sense of dawning "
            "horror. Dramatic side lighting with deep shadows. "
            "Film noir atmosphere."
        ),
        "video_urls": ["https://your-cdn.com/dolly_zoom_reference.mp4"],
        "duration": 8,
        "quality": "720p"
    }
)

task_id = response.json()["id"]
print(f"Task created: {task_id}")
result = poll_task(task_id)

この手法が効果的な理由

ドリーズームはテキストで記述するのが非常に難しいことで知られています。「zoom in while moving backward」というプロンプトは、他のAI動画ツールでは混乱した結果を生みがちです。テクニックを実演するリファレンス動画を提供することで、Seedance 2.0 は空間関係の変化 — 背景が前景に対してどのように圧縮/拡張するか — を分析し、正確に再現できます。

ヒント: リファレンス動画内のドリーズームがクリーンで独立しているほど、結果が良くなります。被写体の動きやシーンチェンジが多いリファレンスクリップは避けましょう — モデルがカメラの動きと被写体の動きを混同する可能性があります。


ケース 3:オービタルカメラ(360°回転)

オービタルショットは、被写体の周囲をカメラが回転し、ドラマチックなリビールやキャラクターの存在感を演出します。ミュージックビデオ、ヒーロー登場シーン、商品ショーケースの定番テクニックです。

必要なもの

リファレンス動画: 被写体の周囲をカメラが回転するクリップ。スムーズな180°または360°の回転が最適です。ターンテーブルの商品ショットやキャラクターリビールショットが理想的なリファレンスです。

プロンプト: 新しい被写体 + 明示的なオービタルリファレンス。

プロンプト

Replicate @Video1's orbital camera movement — the smooth 360°
rotation around the subject, maintaining consistent distance
and speed throughout the arc.

Apply this camera movement to: a lone astronaut standing on
the surface of Mars. Red desert landscape stretches to the
horizon. The orbital camera reveals the astronaut from all
angles as dust particles float in the thin atmosphere.
Epic cinematic scale. Golden hour Martian lighting.

完全な Python コード

# Case 3: Orbital Camera (360 Rotation)

response = requests.post(
    f"{BASE_URL}/videos/generations",
    headers=HEADERS,
    json={
        "model": "seedance-2.0",
        "prompt": (
            "Replicate @Video1's orbital camera movement — the smooth "
            "360 degree rotation around the subject, maintaining consistent "
            "distance and speed throughout the arc.\n\n"
            "Apply this camera movement to: a lone astronaut standing "
            "on the surface of Mars. Red desert landscape stretches to "
            "the horizon. The orbital camera reveals the astronaut from "
            "all angles as dust particles float in the thin atmosphere. "
            "Epic cinematic scale. Golden hour Martian lighting."
        ),
        "video_urls": ["https://your-cdn.com/orbital_reference.mp4"],
        "duration": 10,
        "quality": "720p"
    }
)

task_id = response.json()["id"]
print(f"Task created: {task_id}")
result = poll_task(task_id)

適切なオービタルリファレンスの選び方

すべてのオービタルショットが同じではありません。リファレンス動画が結果を決定します:

リファレンスの品質結果の品質
一定速度でのスムーズで安定した回転クリーンでプロフェッショナルなオービタル
手持ちの揺れる回転オーガニックなドキュメンタリー風オービット
高速ウィップアラウンドダイナミックで高エネルギーなリビール
ゆっくりとした90°パーシャルオービット控えめでドラマチックなアングルシフト

求めるエネルギーに合ったリファレンスを選びましょう。ターンテーブルの商品動画はマシンのようにスムーズな回転を、手持ちウォークアラウンドはオーガニックな動きを提供します。


応用編:カメラムーブメントと他のリファレンスの組み合わせ

Seedance 2.0 のリファレンスシステムの真の力は、カメラムーブメントを他の入力タイプと組み合わせた時に発揮されます。単一のリファレンスに限定されず、最大3本の動画リファレンスと9枚の画像リファレンス(合計12ファイル)を使用できます。

カメラ + キャラクター + スタイル

3つの入力を組み合わせた例:

  • @Video1 — カメラムーブメント(オービタルショット)
  • @Image1 — キャラクターの外見(特定のキャラクターデザイン)
  • @Image2 — スタイルリファレンス(特定のアートスタイルまたはカラーパレット)
# Advanced: Camera + Character + Style combination

response = requests.post(
    f"{BASE_URL}/videos/generations",
    headers=HEADERS,
    json={
        "model": "seedance-2.0",
        "prompt": (
            "Replicate @Video1's orbital camera movement — smooth "
            "rotation around the subject.\n\n"
            "@Image1 is the character — maintain this character's "
            "appearance exactly.\n\n"
            "@Image2 is the visual style reference — match its color "
            "palette, lighting mood, and artistic treatment.\n\n"
            "Scene: The character from @Image1 stands in the center "
            "of a grand cathedral. The orbital camera from @Video1 "
            "slowly reveals the architecture. Visual style matches "
            "@Image2 throughout."
        ),
        "image_urls": [
            "https://your-cdn.com/character_design.png",
            "https://your-cdn.com/art_style_reference.jpg"
        ],
        "video_urls": [
            "https://your-cdn.com/orbital_reference.mp4"
        ],
        "duration": 10,
        "quality": "720p"
    }
)

task_id = response.json()["id"]
print(f"Task created: {task_id}")
result = poll_task(task_id)

リファレンス配分戦略

複数のリファレンスタイプを組み合わせる際は、12ファイル枠を戦略的に使いましょう:

シナリオ動画リファレンス画像リファレンス音声リファレンス
カメラ再現のみ1(カメラ)00
カメラ + キャラクター1(カメラ)1(キャラクター)0
カメラ + キャラクター + スタイル1(カメラ)2(キャラクター + スタイル)0
カメラ + 振り付け + キャラクター2(カメラ + ダンス)1(キャラクター)0
フルプロダクション1(カメラ)3(キャラクター + シーン + スタイル)1(音楽)

経験則: 2〜3つのリファレンスから始めましょう。リファレンスを増やしても必ずしも結果が改善するわけではなく、矛盾するシグナルを与えてしまう可能性があります。意図を伝えるために必要な最小限のリファレンス数を使用してください。

マルチリファレンス戦略の詳細については、マルチモーダルリファレンス:@Tags 完全ガイドをご覧ください。


よくあるミスとその修正方法

ミス 1:リファレンスの対象を指定しない

悪い例:

Use @Video1. A knight rides a horse through a valley.

モデルは @Video1 からカメラムーブメント、被写体の動き、ビジュアルスタイル、またはすべてのどれを参照すべきか分かりません。

良い例:

Replicate @Video1's camera movement and tracking trajectory.
A knight rides a horse through a green valley at sunrise.

ミス 2:リファレンス動画が長すぎるまたは複雑すぎる

リファレンス動画は2〜15秒で、クリーンで識別可能なカメラムーブメントを示す必要があります。3つの異なるカメラテクニック(パン、ズーム、オービット)が含まれる15秒のクリップは、混乱したシグナルを与えます。

修正方法: 必要な特定のカメラムーブメントを分離するようにリファレンスをトリミングしてください。そのテクニックの最もシンプルでクリーンな例を使いましょう。

ミス 3:カメラの動きと被写体の動きを混同する

誰かが踊っているリファレンス動画には、カメラの動きと被写体の動きの2つが含まれています。カメラワークだけが必要な場合は、明示的にそう記述してください:

Replicate ONLY @Video1's camera movement — the pan speed, tracking
trajectory, and framing rhythm. Ignore the subject's actions.

New subject: a robot assembling car parts on a factory floor.

ミス 4:プロンプトとリファレンスの矛盾

リファレンスがゆっくりスムーズなドリープッシュインを示しているのに、プロンプトが「fast-paced action with rapid cuts」と言っている場合、モデルは矛盾したシグナルを受け取ります。

修正方法: テキストプロンプトをリファレンス動画のエネルギーに合わせましょう。プロンプトはコンテンツを記述し、リファレンスはテクニックを示すものです。

ミス 5:最初から完璧な結果を期待する

カメラの再現は高度な技術です。最初の試みがリファレンスと完全に一致しない場合があります。繰り返し改善しましょう:

  1. シンプルなプロンプト + クリーンなリファレンスから始める
  2. 出力を確認 — カメラムーブメントは近いか?
  3. ずれている部分についてプロンプトの記述をより具体的に調整する
  4. テクニックが転送されない場合は、別のリファレンス動画を試す

FAQ

あるビデオのカメラムーブメントと別のビデオの振り付けを組み合わせることはできますか?

はい。2つの @Video リファレンスを使用します:@Video1 をカメラムーブメント用、@Video2 を振り付け/アクション用に設定します。プロンプトで「Replicate @Video1's camera movement and @Video2's dance choreography.」と指定してください。Seedance 2.0 は最大3本の動画リファレンスを同時に使用できます。

カメラリファレンスに最適な動画フォーマットと長さは?

MP4フォーマット、480p〜720p解像度、2〜15秒の長さ、50MB以下のファイルサイズ。カメラムーブメントリファレンスの場合、短い方が良いことが多く、単一のカメラテクニックのクリーンな3〜5秒のクリップの方が、複数のテクニックが含まれる長いクリップよりも確実に転送されます。

Sora や Kling のカメラコントロールとどう違いますか?

Sora 2 と Kling 3.0 はテキストベースのカメラ指示を使用します — 動きを言葉で記述します(「dolly in」「pan left」)。結果はモデルがテキストをどれだけ正確に解釈するかに依存します。Seedance 2.0 はリファレンスベースのカメラコントロールを使用します — @Video タグでモデルに求めるものを見せます。これにより、特にヒッチコックズームやワンテイクトラッキングショットなど、テキストで記述するのが難しい複雑なムーブメントに対して、より正確で一貫したカメラ再現が可能になります。

スクリーン録画やスマホ動画をカメラリファレンスとして使えますか?

はい。再現したいカメラムーブメントを示す動画であれば、何でもリファレンスとして使えます。歩きながら撮影したスマホ動画は手持ちトラッキングショットを生成し、映画クリップのスクリーン録画はその映画のカメラ言語を転送します。モデルは制作品質に関係なく、カメラの挙動を抽出します。

カメラ再現は画像から動画への生成でも使えますか?

はい。@Video1(カメラムーブメントリファレンス)と @Image1(最初のフレーム / キャラクター)を組み合わせて、画像から開始し、動画リファレンスに従ってカメラを動かす動画を生成できます。商品動画やキャラクターショーケースに強力な手法です。


あらゆるカメラムーブメントの再現を始めよう

カメラムーブメントは、もはや機材や専門知識によって制限されるものではありません。リファレンス動画と Seedance 2.0 の @Video タグシステムがあれば、繊細なラックフォーカスプルからフルのヒッチコックズームまで、あらゆるカメラテクニックを再現し、記述可能なあらゆるコンテンツに適用できます。

本チュートリアルの3つのケースは、最も需要の高いカメラテクニックをカバーしています:

  • ワンテイクトラッキング — 没入感のある連続的な動き
  • ドリーズーム — ドラマチックな緊張感と心理的インパクト
  • オービタルショット — キャラクターリビールと商品ショーケース

いずれも同じ手順です:リファレンスをアップロードし、タグ付けし、シーンを記述し、カメラはモデルに任せる。

試してみませんか? EvoLink の無料 API キーを取得して、精密なカメラコントロールによるシネマティックなAI動画の生成を始めましょう。


関連記事:


最終更新:2026年2月20日 | 執筆:J, Growth Lead at EvoLink

Ready to get started?

Top up and start generating cinematic AI videos in minutes.