見出し画像

OpenAI Agent BuilderとSora2で始める!|AIで物語を動画化する最速ワークフロー(2025年版)

OpenAIのAgent BuilderとSora2を使って、TRPGストーリーから動画生成/YouTube公開までをノーコードで完結する方法を、設定手順やAPI接続テストを交えて具体的に解説。動画制作のハードルを下げたい人向けの実践ガイドです。


こんにちは、SHOです。
またまた前回に引き続き、僕が最近作ったTRPGを例に、これから「どうやって自分が作ったものをみんなに見てもらおうか」っていうのを、実践していきたいと思います。

TRPGのPV動画を作って格好良く作品を紹介できるまでっていうことしていきます。

一人でも頑張れば簡単に制作から宣伝までできるんだよっていうのを頑張ってやっていこうっていう試みです。

僕のゆっくりチャレンジの一旦最後です。

今回はストーリーから動画用のプロンプトを生成して、一人でも効率よく動画制作したいよねっていう事をやっていきたいと思います。

つまり、OpenAIのAgent BuilderとSora2を使って動画を作ればいいんじゃないかっていうことなのでやっていきます。

だからTRPGに限らず、何かしらの題材から動画制作をしたいと思ってる人も応用できると思うので、是非見てってください。

てことで、今回の題材はこれ。



AI動画生成


今回のテーマはAI動画生成についてです。
これも、ちょっと前に書いてて、僕の撮影チームを作って練習してました。

今回はもう少し内容を詳しくしてみます。

僕の場合は、TRPGのストーリーとゲームプロンプトがあるので、それをワークフローツールに読み込ませて画像生成まで出来れば、僕は物語作りだけ頑張ればいいよねって思ってやってみたやつです。

おおむね挙動も安定してきたし、せっかく新しいTRPGも出来たから早速活躍させていきたいと思います。

んで、出来上がったのはこれです。

※音出ます。


なかなか格好いいです。You Tubeデビューです。僕はユーチューバーになれました。

だからせっかくなので、ついでにnoteも有料会員です。動画貼れるし。

チャンネル登録、高評価よろしくおねがいします!

はい、人生で一回言ってみたかったやつです。満足です。

動画はまだ一個しかないけど、これはこれでまぁ気長にね。


OpenAI Agent Builderとは?


これのことです。Agent builder

OpenAIが提供してるAIワークフロー設計ツールです。
プログラミングの知識がなくても、ここで自分だけのAIエージェントを設計したり、テストしたりできるオンライン環境です。

つまり、OpenAIのAI技術を自分専用のアシスタントやワークフローとしてカスタマイズできちゃう場所です。要は、TRPGってことですね。

主にできること

複数のAI処理をつなげて、順番に動かすワークフロー設計(Workflow Design)ができるってことですね。

つまり、この仕組みを使えば、「入力 → 分析 → 出力」といった流れを自動化して、AIをチームのように動かすことができます。

もちろん、API連携(API Integration)を使えば、別のツールや外部データとやり取りできます。今回Sora2のAPIを試してみたけどまだサポートされてないみたいです(←あとで解説します)。


僕がつくったAgent Builder


みなさんは、AIで何か作業をするとき、一緒に進める手順は決まってますか?

僕はだいたい決まってます。

だから、僕はAIに決まった役割を持たせて、そのAI同士でやり取りしてもらうようにしました。

例えば、「情報を読み込んで、要約して、映像生成用のプロンプトを作る」という作業を毎回手でやると、いままでは

  1. ストーリーをAIに理解してもらう

  2. 動画生成用プロンプトを貼り付け

  3. 結果を確認

  4. 修正

  5. 生成結果を確認

みたいな感じになります。

この方法だと、都度「どのテンプレート」「どの順番」「どんな出力」かを自分で管理しなきゃいけないから、考えるし、間違えたり、管理が雑になったり、時間がかかっちゃいます。

でも、Agent Builderを使うと、そういう一連の処理が仕組み化できます。

今回僕が作ったワークフローはこんな流れになっています。

OpenAI Agent Builder で構築したワークフロー全体図。Start → Parser/Input Splitter → World & Cast Extractor → Script Generator → User approval → Scene Generator/Get data へと処理が流れる構成。
これが僕のチームですっ!


このワークフローは、ストーリーの文章から動画生成に必要な要素を抽出し、動画の台本を書いてもらって、動画生成用プロンプトを生成するまでを自動でつなぐっていうものです。

一言でいうと、

凄く便利でカッコイイものです。

動画生成に必要な役割をAIに持たせて制作チームみたいに動くイメージです。安定します。

最後にその結果を動画生成ツール(今回はSora2)に渡して動画を生成します。

次に、このワークフローの使い方を説明します。


使い方


ステップ1:情報を入力

まずは、どのストーリーの動画を作りたいかAIに教えます。

以上です。これで、動画生成用のプロンプトが出てきます。

…これだけだとつまんないので、ちょっとだけ流れを説明します。

OpenAI Agent Builder のAIワークフロー実行画面。Start→Parser→World & Cast Extractor→Script Generator→User approval→Scene Generator の流れが可視化され、右側にTRPGストーリーの生成テキストがプレビュー表示されている。
画面の右下のチャットボックスに「ストーリー」と「ゲームプロンプト」を貼ります。
noteで公開してるので、公開してるまんまの内容をそのまま雑に貼り付けます。


ここからはAIがなんかいい感じにやってくれます。僕の制作チームです。

やってくれてることを順番通りに説明すると、

1. Parser / Input Splitter:解析係
物語のストーリーとゲームプロンプトをAIが読み取って、「導入ストーリー」と「ゲームの設定部分」に自動で分けてくれます。

2. Set state:シール貼り係
解析した内容をみんなに配れるようにラベルを貼ってもらう係の人です。こうすると、みんなは自分の仕事に必要なものだけ受け取ることができます。

3. World & Cast Extractor:アナリスト係
分けられた文章から、登場キャラクターや世界観のキーワードを抽出します。たとえば「森」「AI」「記録」「風」みたいな単語を拾って、次の台本づくりに必要な素材として整理します。

4. Script Generator:脚本係
ここでQuiet(静)→ Burst(動)→ Echo(余韻)の3区間構成の台本を作ります。セリフや演出の流れを文章で整えて、映像化のベースにします。

5.User approval:監督係
ここだけ僕の係です。
このまえ監督デビューしました。はい、そういう妄想です。脚本係から渡された台本を読んで、いいよとかダメだよって言います。ぶっちゃけここ要らないです。ただ言いたいだけです。

6. Scene Generator:動画用プロンプト生成係
4のScript Generatorで作られた台本を、Sora2が理解できるプロンプトに変換します。この段階で映像指示はすべて英語に変わり、「Camera」「Lighting」「Action」「Sound」などの要素に分かれて出力されます。

すると、こんな感じで動画生成用のプロンプトが作れます。

AIのScene Generator が出力したSora2向け動画プロンプト画面。アニメOP風のグローバルスタイル設定と、Scene1〜Scene3のカメラワーク・照明・アクション・台詞を含む詳細な撮影指示が羅列されている。
今回はSora2用です。


これをSora2のプロンプトボックスに貼れば、こんな感じで動画ができます。

それをYou tubeにアップロードすれば完了です。


※Sora2の詳しい使い方はこちらで解説しています。

これで僕は、これから物語とTRPGのプロンプトだけ作ってれば動画が簡単に作成できるようになりました。

以上です。

OpenAI Agent Builder で構築したワークフロー全体図。Start → Parser/Input Splitter → World & Cast Extractor → Script Generator → User approval → Scene Generator/Get data へと処理が流れる構成。
心強いチームです!


はい、お待たせしました。次は作り方です。

本当はこれをSora2とAPI連携させて自動で動画まで生成してもらおうかとおもったんだけど、僕にはよくわかりませんでした。

でも、Sora2のAPI自体はあるのでちょっと調べたことを合わせて共有します。

今回はみんなに共有できるような成果物は無いのですが、将来的にSora2のサービスがここに入ってきた時のための僕のメモも兼ねてです。


このワークフローの作り方


まずは、Agent builderのアカウントとAPIキーが必要です。

OpenAI Agent Builder のプロジェクト設定画面のスクリーンショット。左側メニューの API keys が選択されており、APIキーを取得する位置を示している。
画面左下のGet API KeyからAPIキーの取得ができます。
Agent Builderの機能を使うには有料プラン(Plus以上の契約)が必要で、API料金がかかります。
詳しい料金形態については、こちらです。

OpenAI Agent Builderでワークフローをつくる


Agent builderで作ります。ここにアクセスすると左側にこんなメニューが表示されます。

OpenAIのプロジェクトメニュー画面。左側のCreate項目にある Agent Builder が選択されており、AIエージェント作成画面へアクセスする位置を示している。
「Agent Builder」ってかいてあるところをクリックします。
もし出てこなかったら画面右上らへんの「Dashboard」をクリックしてみてください。


OpenAI Agent Builder の新規ワークフロー作成画面。中央に「Create」ボタンが表示され、カスタムロジックを使ったAIエージェントのワークフロー構築を開始できる。
すると、この画面で「+ Create」を押すと制作に取り掛かれます。


OpenAI Agent Builder の新規ワークフロー作成画面。左側にAgent・End・Noteなどのノード一覧が表示され、中央にはStartノードとMy agentノードが配置されている。
この画面で左側のノードを並べていく感じです。
ドラック&ドロップで並べられます。


いま使えるノードの一覧はこんな感じです。

OpenAI Agent Builder のノードパネル。ワークフロー構築で使用する Agent・End・Note、File search、Guardrails、MCP、If/else、User approval、Transform などのノードがカテゴリ別に一覧表示されている。
「MCP」でSora2に接続できるかと思ったんだけど、
いまはまだ出来ないっぽいのでこれは後で調べたことを共有します。


全部のノードを説明すると大変なので、一番よく使うであろうノードをいくつか解説します。

OpenAIのコミュニティで調べると大変なので、僕が理解している範囲で設定もメモしておきます。


1. Agentノード

OpenAI Agent Builder に配置されたエージェントノード「My agent」。ワークフロー内でAIエージェントの処理を担当するノード。
Agentノード。
右側の丸いところをクリックすると、次のノードにつなげられるよ!


これは、ノード自体がAIです。だから、難しいコードは要らないです。

僕のこのノードの中身はこんな感じになってます。

OpenAI Agent Builder の Script Generator ノード設定画面。アニメPV用プロンプトの指示文と state.intro_story の入力、gpt-4o モデル、Max tokens 5000、Temperature 1.0 などの生成設定を含む詳細パラメータが表示されている。
動画の台本を作ってくれるノードの中身の設定です。


  1. Name:名前
    ノードの名前です。好きなの付けて大丈夫です。

  2. Instructions:指示
    このノードに「何を」「どんなふうに」してほしいかを言葉で定義する部分です。つまり、このノードにプロンプトを入れるだけでOKです。

  3. Include chat history:チャット履歴を含む
    会話の履歴や処理をこのノードに引き継ぐかどうかのスイッチです。有効にすると、前のノードやユーザー発言の履歴をもとに動きやすくなります。僕はこれが一番の特徴だと思ってます。過去にやったn8nみたいなAPIでAIを呼び出すようなものだと、AIからの応答が一方通行なのですが、Agent Builderだとコンテキストを引き継いでやりなおしてくれるので、良い感じに直してもらえます。

  4. Model:モデル
    このノードが使うAIモデルを指定する所です。たとえば「gpt-4o」などを選んでいて、「このマシンがお題に取り組みますよ」という設定になります。

  5. Output format:出力形式
    このノードが作ったものを次のノードに渡す形式を指定する部分です。テキストでも十分です。

  6. Model parameters:モデルパラメータ
    ここはAIの挙動を細かく調整するところです。

    • Temperature:値が高いと自由度が高くクリエイティブな出力になり、低いと安定して予測可能な出力になります。

    • Max tokens:このノードが生成できるトークン(言葉・文字の単位)の最大数を制限します。

    • Top P: 高く設定すると、創造的・少し意外性ありな感じで、低くすると、文章の流れが定番寄りになります。

  7. ChatKit / Display response & Show in-progress
    ChatKitというUI設定のようで、「進行中のメッセージを表示するか」「応答をチャット形式で表示するか」などの表示上のオプションです。解析中の内容とかを確認しやすくします。

  8. Advanced / Continue on error / Write to conversation history
    ここでは「エラーが出ても処理を続けるか」「このノードの会話を履歴として保存するか」とか、細かい設定ができます。


僕はこのノードで重要なのは、6のモデルパラメータが結構重要だって思ってて、こんな感じでかんがえるのがコツだと思ってます。

  • 文章を非常に安定させたい/正確さ重視の出力にしたいとき:
     👉Temperature は低め、Top P も低めが安全。

  • 創造的な文章を書きたい/バリエーションを出したいとき:
     👉Temperature を上げる、または Top P を上げて語彙の幅を増やす。


2. User approvalノード

OpenAI Agent Builder の User approval ノード。生成内容をユーザーが承認(Approve)または拒否(Reject)できるインタラクティブな承認ステップ。
User approvalノード。


要らないとか言いながら結構好きなノードなので解説します。

これは、渡ってきた出力に対して、良いか悪いかをユーザーに判断を求めるノードです。

OpenAI Agent Builder の承認フロー画面。生成されたアニメシーンの説明テキストが表示され、ユーザーが Approve/Reject を選択して修正指示を出せる状態になっている。
挙動はこんな感じ。内容を確認してボタンを押すだけ。
Rejectしたときは、どんなふうになおしてほしいかを伝えます。
この時に、Agentノードの「Include chat history:チャット履歴を含む」が効いてきます。


今回のワークフローでは、台本が作られたらその内容を確認する用に使ってます。僕が監督なので。

設定は超シンプルです。

OpenAI Agent Builder の User approval ノード設定画面。生成されたPV台本をユーザーに提示するメッセージテンプレートが記載され、state.pv_script_text を差し込んで承認フローを構築している。
User approvalノードの中身。


  1. Name:名前
    ノードの名前です。好きなの付けて大丈夫です。

  2. Message:ユーザーへのメッセージ
    ここも好きなメッセージで大丈夫です。ご主人様系でもイケメン執事系でもなんでも大丈夫です。


3. MCPノード(番外編)

OpenAI Agent Builder に配置された MCP ノード。外部ツール連携やカスタム処理を行うための Model Context Protocol ブロック。
MCPノード。


これは、Agent Builderの外にあるツールやAPIとやり取りするための接続口のようなものです。

だから、Sora2のAPIがあれば今回のワークフローの中に入れて、動画ができるまで洗い物とか洗濯とかできると思ってチャレンジしたけど、僕は出来なかったやつです。洗い物と洗濯は終わりました。

ここでSora2とAPI連携ができない理由はこちら。

OpenAI Agent Builder の MCP サーバー追加画面。Gmail、Google Calendar、Drive、Outlook、SharePoint、Teams、Dropbox など外部サービスと連携できるMCP一覧が表示されている。
OpenAIが公開しているサーバー。その1


OpenAI Agent Builder の MCP サーバー追加画面。Other developers タブには、Zapier、Shopify、Stripe、Plaid、Cloudflare、HubSpot、PayPal など外部ツールとの連携サービスが一覧で表示されている。
OpenAIが公開しているサーバー。その2


はい。Sora2無いです。Pipedreamとかを上手く使ってるひともいるみたいなのですが、僕にはさっぱり理解が追いつかないので断念しちゃいました。

でもたぶん上手な人ならもっといい感じに自動化ができると思うので、うらやましいです。

んで、将来的に連携されたらきっとこんな感じの設定になるんじゃないかなって思ってます。たぶん。

Connect to MCP Server の設定画面に Sora2 用の想定設定を入力した例。URL に https://api.openai.com/v1/videos を入力し、Label に Sora2、Authentication に APIキーを設定して「Connect」ボタンが表示されている。
これができればなー。


で、ここに至るまで色々やってみたことをメモしておきます。

やったのはAPIの接続確認です。頑張って調べたので、きっと誰かの何かの役にも立つと思います。


Sora 2のAPI接続確認の全プロセス(PowerShell版)

そもそもAgent BuilderのAPIキーでSora2は使えるのかっていう話です。

結論から言うと使えます。僕はWindowsのPowerShellで確認しました。

Windows PowerShell の起動画面。Sora2 のAPI接続をテストするためにコマンド入力を行う準備状態で、プロンプトが「PS C:\Users\owner>」と表示されている。
こんな感じの黒くて格好いいやつです。
「powershell」はPCの検索窓にpowershellって入れれば出てきます。


ついに僕はこんなことができるようにもなりました。

1. 文字コードをUTF-8に変更

まずPowerShellをUTF-8モードにしておきます。これをしておかないと、APIキーが文字化けして認証エラーになります。

chcp 65001

これをコピペしてEnterを押します。以降、コピペ+Enterが続きます。


2. APIキーを環境変数に登録

OpenAI Platformで発行したキーをコピーして貼り付けます。

$env:OPENAI_API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Enterを押すだけでOK。"sk-xxx…"と書いてあるところにAPI keyを入れます。「" "」は残したままです。


3. モデル一覧を取得して接続テスト

APIが通るかを確認します。これをコピペしてEnterを押します。

Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{Authorization="Bearer $env:OPENAI_API_KEY"}


成功例(※これは出てくるやつです)

object data
------ ----
list   {@{id=gpt-5; object=model; ...}, @{id=sora-2; object=model; ...}}

ここに 出てきたモデルは有効ってことです。でも、Sora 2 のような限定アクセス系モデルは、APIキーに内部的なアクセス権が紐づけられていても、リストには 非公開モデル扱い で含まれないことがあります。


4. だからとりあえず動画生成リクエストを送ってみる

以下を実行します。引き続きこのままコピペ+Enterです。

$headers = @{
  Authorization = "Bearer $env:OPENAI_API_KEY"
  "Content-Type" = "application/json"
}

$body = @{
  model  = "sora-2"                      # sora-2-pro も可
  prompt = "A cute cat meowing and celebrating with confetti and balloons"
  seconds = "4"                          # 4 / 8 / 12 のみ指定可
  size    = "1280x720"                   # 幅x高さ
} | ConvertTo-Json -Compress

$r = Invoke-RestMethod -Uri "https://api.openai.com/v1/videos" `
  -Method POST -Headers $headers -Body $body
$r | ConvertTo-Json -Depth 8


成功例(※これは出てくるやつです)

{
  "id": "video_69044...",
  "object": "video",
  "status": "queued",
  "model": "sora-2",
  "seconds": "8",
  "size": "1280x720"
}

これが出ればリクエスト成功です。


5. ステータスを確認

生成中のステータスを確認します。これもコピペ+Enterです。

$vid = $r.id
Invoke-RestMethod -Uri "https://api.openai.com/v1/videos/$vid" `
  -Headers @{Authorization="Bearer $env:OPENAI_API_KEY"}


成功例(※これは出てくるやつです)

id                    : video_XXXXXXXXXXX
object                : video
created_at            : 123456789
status                : in_progress
completed_at          :
error                 :
expires_at            :
model                 : sora-2
progress              : 84
remixed_from_video_id :
seconds               : 8
size                  : 1280x720

注目するところは上から4番目の「status」の項目です。読み方は、次の通りです。

  • queued:待機中

  • in_progress:生成中

  • completed:完成

  • failed:失敗


6. 完成した動画をダウンロード

5のステータス確認を何回かやると、そのうちstatusが「completed」になります。そしたら以下のコードをコピペ+Enterします。

Invoke-WebRequest -Uri "https://api.openai.com/v1/videos/$vid/content?variant=video" `
  -Headers @{Authorization="Bearer $env:OPENAI_API_KEY"} `
  -OutFile "$env:USERPROFILE\Downloads\sora2_result.mp4"


そうすると、普段何かDLしたときに保存されるダウンロードフォルダに保存されています。
例)「C:\Users<ユーザー名>\Downloads\sora2_result.mp4」

なんの動画か観れましたか?やってみた人はコメントで教えてください。

って、思ったけどリクエストしてるプロンプトに書いてあります。

注意点:
同じファイル名で生成されるので、可愛い猫ちゃんの動画を消したくなかったら、一旦DLしたものを名前を変更して別のところに保存してください。


まとめ


いかがでしたでしょうか?今回は動画生成に使えるワークフローを作ってSora2で動画を作ってYoutubeにアップするのをやってみました。

これで、僕がやってみたかった

TRPGのPV動画とか作って格好良く作品を紹介できるまで

っていうのが実現できたので、チャレンジ成功です。拍手です。

ここまでできたので、これから僕はAIと遊ぶTRPGの面白さっていうのを追求していかないとダメなので、作品を作りながら仕組みも調整して上手にやっていきたいと思います。

これからもどんどん新しいツールも増えると思うから、色んなツールを試しつつ、自分に合ったものを見つけていければいいなって思いました。

もし、面白かったり何か役に立ったら、スキやフォローしてくれるととっても嬉しいです!


ここまででやってきたこと

※PEP検定にも通じるプロンプトの書き方のコツ。

※アプリを作って画像を安定させる方法


※Sora2の動画生成用プロンプトを安定して作るツールもあります。僕の有料記事です。