# スタジオプロダクション

> AI アシスタントからスタジオプロダクションとして映画を監督します。プランを無料で検証し、見積もりを確認してフレームとモーションを生成し、Studio で編集を続けられます。

Source: https://nodaro.ai/ja/docs/mcp/studio-productions

**スタジオプロダクション**は、AI アシスタントが会話から監督でき、あなたが [studio.nodaro.ai](https://studio.nodaro.ai) のスタジオで編集を続けられる映画です。プロダクションは順番に並んだシーンのリストで、各シーンには、フレーム、任意のモーション、そしてそれらを作ったプラン、ルック、キャスト、ボイスがあります。アシスタントは映画の下書きを作ってあなたに渡し、あなたがシーンを 3 つ動かした後でも、作業を再開できます。スタジオプロダクションは、Nodaro Cloud の機能です。

「映画やシーン、シーケンスを作って、その後も編集させて」という依頼には、この方法を選びます。1 つの JSON ドキュメントとして書く映画については [Recast](https://nodaro.ai/docs/mcp/recast) を、キャンバス上のワークフローについては [Film Director](https://nodaro.ai/docs/mcp/film-director) を参照してください。

## 2 つの用語体系
エディターとプロダクションのドキュメントでは、同じものを違う名前で呼びます。ユーザーが目にするのはエディターだけなので、アシスタントはエディターの言葉で話し、ドキュメントの名前はツール呼び出しにだけ使います。

| ユーザーの言葉 | ドキュメントの言葉 |
| --- | --- |
| **映画** | プロダクション |
| **シーン**（タイムライン上のカード。たとえば「シーン 3」） | `shot_id` で指定する、`shots[]` のエントリー |
| シーンの**フレーム**（その結果はテイク） | `still` |
| シーンの**モーション**（その結果はテイク） | `clip` |
| モーションの中の**ショット** | `set_beats` で設定する `beats[]` |

- **「シーン N」は、常に `shots[]` の N 番目のエントリーです**。「シーン 3 の名前を変えて」はそのエントリーに対する `rename_shot` で、「シーン 3 を削除して」はそのエントリーに対する `remove_shot` です。
- **「ショット」は、モーションの中のショットを指します**。つまり、ユーザーが見ているシーンの `beats[]` のエントリーで、`shots[]` のエントリーを指すことはありません。表示中のシーンがない場合や、そのモーションのショットがユーザーの指定より少ない場合、アシスタントは推測せずに質問します。
- **シーンのフレームは、その `still` です**。計画フレームは別のものです。`generate_studio_keyframe` で作る、ユーザーが確認して採用するフレームのプランです。シーンの開始フレームと終了フレームは、そのモーションの始点と終点です。
- **レシートでは、ドキュメントの言葉が使われます**。操作の名前と編集の `receipts` では、シーンのことを「shot」と書きます。アシスタントは、その言い方をユーザーにそのまま繰り返すべきではありません。

## 作業の流れ
### ガイドを読む
`get_studio_production_skill` は、ガイドを 4 つのパートで返します。`operating`（ツール、作業の流れ、操作）、`authoring`（プランの形式）、`catalog`（すべてのピッカー、モデル、オプション）、`schema`（プランの JSON Schema）です。ガイドは稼働中のデプロイメントから生成されるので、使っているサーバーと一致します。無料です。

### プランを検証する
`validate_studio_plan` は、プランを無料でチェックします。何も保存せず、キャストの名前を自分のライブラリと照合します。クレジットを使う前に、プランが有効になるまで、各 `errors[].path` を修正します。

### プロダクションを作成する
`create_studio_production` は、新しい映画を作成します。プランを渡した場合は、そのプランのシーンも含めて作成します。`import_studio_production` は、既存の映画にプランのシーンを追加します。どちらも無料です。プランのないストーリーの場合は、`describe_studio_production` が、LLM の実行として、監督（Director）にシーンを書かせます。

### 読み込み直す
`get_studio_production` は、現在の状態の映画と、まだ実行中のものを示す `pending` ブロックを返します。書き込み権限がある場合、読み込みの前に、完了したものがすべて反映されます。そのため、完了した生成は、読み込み直すことでシーンに届きます。1 つのシーンだけを軽く読み込むには、`shot_id` を渡します。

### 操作で編集する
`edit_studio_production` は、操作のバッチを適用します。[操作による編集](#editing-with-operations)を参照してください。

### 生成する
`generate_studio_still` はシーンのフレームを、`generate_studio_clip` はシーンのモーションを作ります。`new_studio_shot_from_frame` はモーションからフレームを取り出し、`voice_studio_shot` はセリフを読み上げます。`revoice_studio_clip` はモーションの声を差し替え、`score_studio_production` はサウンドトラックを作ります。

### エクスポートと共有
`plan_studio_export` は、映画を組み立てるステップを、それぞれの料金とともに一覧にします。`share_studio_production` は共有リンクを有効または無効にし、`clone_studio_production` はコピーを作ります。

会話を途中でやめても、何も取り残されません。プロダクションは、エディターで開ける実際の映画です。実行中だった生成は、次にプロダクションが最新の状態に更新されたときに反映されます。更新するのは、あなた、エディター、次のアシスタントのいずれでもかまいません。

## 操作による編集
プロダクションへの変更は、すべて**操作**です。操作を適用するツールは、`edit_studio_production` だけです。バッチは、ドキュメントの最新のバージョンに対して、1 つのステップとして適用されます。

- **操作は、安定したキーで対象を指定します**。シーンは ID で、キャストメンバーはロールのスラッグで、結果はジョブ ID か URL で指定します。位置では指定しません。ユーザーがブラウザーで、同じ映画を編集しているかもしれないためです。
- **少し古いバージョンをもとに作ったバッチも、そのまま適用されます**。その場合、応答にはリベースされたことが示されます。`expected_version` とともに `strict: true` を指定すると、代わりに拒否されます。
- **1 つでも不正な操作があると、バッチ全体が拒否され**、何も書き込まれません。エラーには、0 から数えたインデックスで、その操作が示されます。修正して、バッチをもう一度送ってください。
- **`receipts` には、操作ごとに過去形の 1 行が入ります**。何が起きたのかをユーザーに聞かれたら、これを見せます。
- **一部の削除は元に戻せます**。削除したシーン、テイク、計画フレームは、プロダクションのゴミ箱に移動し、復元できます。キャストメンバー、ボイス、サウンドトラックのクリア、カットの削除、シーケンスの除去、ゴミ箱の項目の完全削除、ゴミ箱を空にする操作は、元に戻せません。
- **共有は操作ではありません**。共有には専用のツールがあるので、編集のバッチで作品の閲覧者が変わることはありません。
- **プロダクションは削除できません**。アーカイブは操作の 1 つで、元に戻せます。

操作の一覧は、このページには載せず、サーバーから提供されます。`part: "operating"` を指定した `get_studio_production_skill` が、そのデプロイメントで受け付ける操作を返します。

### バッチをプレビューする
`dry_run: true` を指定した `edit_studio_production` は、バッチを適用した場合に何が起きるかを返し、何も書き込みません。各操作のレシートには、分類が付きます。`S` はドキュメントの変更、`D` は削除、`P` は作品にアクセスできる人の変更、`$` はクレジットの消費です。ゴミ箱に移動する削除には、`restorable: true` が付きます。プレビューをユーザーに見せてから、同じバッチを `dry_run` なしで送ります。

このツールは、まずデプロイメントがプレビューに対応しているかを確認します。対応していない場合は、何も送信せずに `studio_preview_unavailable` で拒否します。プレビューの ID は、実際の変更の ID ではありません。元に戻すには、適用したバッチのレシートから、ゴミ箱の ID を読み取ります。

## クレジットの消費
映画を監督するアシスタントは、何十回もツールを呼び出します。そのため、次の 2 つの習慣が重要です。

- **先に見積もる**：`generate_studio_still` と `generate_studio_clip` は、`dry_run: true` を受け付けます。この場合、モデルと料金を返し、何も書き込みません。`credits: null` は料金が不明という意味で、無料という意味ではありません。料金を見せて、ユーザーに承認してもらいます。ほかのクレジットを消費するツールには、見積もりがありません。モデルから料金を見積もるか、先にユーザーに確認します。
- **安全に再試行する**：クレジットを消費するツールは、すべて `client_request_id` を受け付けます。値は、`A-Za-z0-9_.:-` からなる 8〜128 文字です。同じトークンで呼び出すと、最初の呼び出しのジョブが返され、新たな料金はかかりません。新しいリクエストごとに新しいトークンを作り、トークンなしでクレジットを消費する呼び出しを再試行しないでください。

生成は、**実行、ポーリング、反映**の順に進みます。

1. フレームやモーションの呼び出しは、すぐにジョブ ID を返します。
2. `get_job` でジョブを待つか、プロダクションの `pending` ブロックを監視します。
3. `get_studio_production` で、プロダクションをもう一度読み込みます。書き込み権限がある場合、読み込みは、応答する前に、完了したすべてのジョブを反映します。
4. 届いたものを、ユーザーに見せます。

読み取り専用の権限では、読み込んでも何も反映されません。完了したジョブは、書き込みが許可された誰かがプロダクションを最新の状態に更新するまで、`pending` に残ります。

## 確認マーク
クレジットを消費するツールや、作品を見られる人を変更するツールは、自身の定義の `_meta.nodaro.confirm` でそのことを示します。クライアントは、独自のリストを管理しなくても、マークの付いたすべてのツールの前に、確認のプロンプトを表示できます。

| マーク | 事前に確認する理由 | ツール |
| --- | --- | --- |
| `$` | クレジットがかかります。 | `describe_studio_production`、`generate_studio_still`、`generate_studio_keyframe`、`generate_studio_clip`、`new_studio_shot_from_frame`、`voice_studio_shot`、`revoice_studio_clip`、`score_studio_production` |
| `P` | 作品を見られる人が変わります。 | `share_studio_production` |

`edit_studio_production` にはマークがありません。バッチの動作は、その中の操作によって決まるためです。削除の前に確認するには、バッチをプレビューします。プレビューでは、すべての操作が分類されます。

## 権限
クレジットを消費する 7 つのツールには、`workflows:write` と `workflows:execute` の両方が必要です。2 つのうち一方しか許可していない接続では、これらのツールが説明なしに 1 つも表示されません。生成を行うには、両方を許可してください。読み取りには `workflows:read` が、作成、編集、共有、複製には `workflows:write` が必要です。各ツールの権限とパラメーターは、[ツールリファレンス](https://nodaro.ai/docs/mcp/tools/studio-productions)に記載されています。

## 提供状況
スタジオプロダクションを提供していないデプロイメントでは、このファミリーのすべてのツールが `not_available` を返します。これは単純な拒否で、再試行しても意味はありません。この機能を提案する前に、`list_studio_productions` を呼び出して確認してください。

## プランの形式が記載されている場所
プランの形式 `nodaro-studio-production` が公開されている場所は、1 か所だけです。Studio アプリは、同じ作成ガイド、カタログ、JSON Schema を [studio.nodaro.ai/skills/studio-production/](https://studio.nodaro.ai/skills/studio-production/) で提供しています。そのため、`get_studio_production_skill` を読むアシスタントと、そのページを読む人は、同じドキュメントを読むことになります。

同じプロダクションの機能は、REST の [スタジオプロダクション](https://nodaro.ai/docs/developers/api/studio-productions)と、SDK の `client.studio.productions` でも使えます。

## Frequently asked questions

### スタジオプロダクションとは何ですか？

シーンで構成された映画です。各シーンには、フレーム、任意のモーション、そしてそれらを作ったプラン、ルック、キャスト、ボイスがあります。studio.nodaro.ai のスタジオで開けるので、アシスタントが下書きを作り、その後はあなたが手作業で編集を続けられます。

### アシスタントが、場所によってシーンをショットと呼ぶのはなぜですか？

プロダクションのドキュメントのキーでは、シーンがショットと呼ばれているためです。会話では、アシスタントは常にあなたの言葉（シーン、フレーム、モーション、ショット）を使い、ドキュメントの名前はツール呼び出しの中だけで使うべきです。

### 完了した生成は、いつ映画に反映されますか？

書き込みが許可されたセッションが、get_studio_production でプロダクションをもう一度読み込んだときです。その読み込みで、前回以降に完了したすべてのジョブが反映されます。get_job と wait_for_job は、ステータスを報告するだけです。

### 編集は元に戻せますか？

多くの削除は元に戻せます。削除したシーン、テイク、計画フレームは、プロダクションのゴミ箱に移動し、復元できます。キャストメンバー、ボイス、サウンドトラックのクリア、カットの削除、ゴミ箱を空にする操作は、元に戻せません。どの削除を復元できるかは、プレビューで確認できます。

### Film Director とはどう違いますか？

Film Director は、キャンバス上にワークフローを構築します。スタジオプロダクションは、スタジオでシーンごとに編集を続けられる映画です。「映画を作って、その後も編集させて」という依頼に向いています。
