メインコンテンツへスキップ
見出し画像

アルトルタの短編アニメ「お月見」を作った|狙った構図をMiniMax H3で安定させるコツ

    YoutubeでAI VTuberユニット「アルトルタ」を開発している四ツ谷です。今回は、アルトとオルタがお月見をするコメディ短編「アルトルタのお月見」(約150秒)を作りました。これまでの記事で検証してきた構図コントロールの知見を、実際の1本の作品づくりに落とし込んだ記録です。

    まずは完成した動画をご覧ください。


    結論

    自作の絵コンテと MiniMax H3 で、14カットの脚本を29ショットに割り、狙った構図と演技をできる限りコントロールしながら約150秒のコメディ短編を完成させました。今回いちばんの発見は、背景を詳しく指定するほど背景は揃うが人物が小さくなる、というトレードオフです。このトレードオフにどう向き合ったかと、実際に効いたコツをまとめます。

    前提(環境とモデル)

    モデル MiniMax H3(Ref2VA・I2V)
    実行基盤 ComfyUI
    GPU NVIDIA GeForce RTX 5090(32GB)
    構成 14カットの脚本を、話者ごとに29ショットへ分割
    素材 自作の絵コンテ(棒人間)/キャラの立ち絵/英語プロンプト

    作ったもの|14カットを29ショットに割った理由

    台本は23行の掛け合いで、当初は14カット=14ショットとして絵コンテを組んでいました。ところが、2人の掛け合いがあるシーンでは「話している方のアップに切り替えたい」という要望に対して、1枚の固定画では応えられません。2行以上の台詞があるカットが9つあったため、話者ごとにショットを分割し、最終的に29ショットに組み直しました。

    分割しても尺はほとんど変わりません(14本で約140秒、29本で約141秒)。同じ時間を細かく割っただけです。あわせて、満月・団子を載せる台(三方)・口元のあんこ・ぽかん顔といった、間を持たせるインサートショットを4つ足しています。

    画像
    脚本の14カットぶんの静止画です(制作途中の版)。
    ここから話者ごとに29ショットへ割りました

    うまくいく作り方のコツ

    1. 背景を詳しく指定するほど、背景は揃うが人物が小さくなる

    いちばん大きな発見です。プロンプト本文・シード・解像度・ステップ数をすべて同じにして、背景の与え方だけを変える対照実験をしました。

    A 背景の指定はほぼなし(参照はキャラと下絵のみ) 構図は下絵どおり/背景はカットごとに変わる
    B 背景板を参照に追加 構図が引きにずれる/背景は揃う
    C 背景板と小道具を参照に追加 さらにずれる/背景は揃う
    D 参照は増やさず、背景を詳しい文章で指定 Bより大きくずれる/背景は揃う

    画像
    背景の与え方を変えた対照実験の一部です。
    左の下絵が指示で、Aは参照がキャラと下絵のみ、Bは背景板を追加、Cはさらに小道具を追加しています。背景を足すほど背景は揃いますが、人物が下絵より小さく引いた絵になります

    当初は「参照画像の枚数が多いのが原因」と考えていましたが、これは誤りでした。条件Dは参照を増やさず文章だけで背景を指定したのに、構図の崩れはBより大きくなったからです。原因は参照の枚数ではなく、背景をどれだけ指定したかでした。背景を詳しく指定するほど、H3は画面を背景に配分し、人物が小さくなります。画像で渡しても、文章で渡しても同じです。

    つまり「参照を減らせば構図が守れる」とは限りません。この作品では、背景や小道具がカットごとに変わるほうが、構図が少し引くよりも違和感が強いと判断し、背景の一貫性を優先しました。そのぶん出る構図のブレを、以下の方法で追い込んでいます。

    2. 書いた語は、否定していても絵に呼び寄せられる。消したい語は語ごと消す

    プロンプトに書いた語は、「〜するな」と否定していても、絵の中に呼び寄せられることがあります。今回の制作でも同じ型を4回踏みました。

    あんこの小鉢を白背景で焼いたときは、匙(spoon)の語を入れていたせいで人の手が写り込みました。そこで匙の語を消したつもりでしたが、プロンプトファイルに書いた日本語の注記の中に「匙(spoon)」と残っていて、今度はあんこが上から流れ込む絵になりました。プロンプトファイルに書いた注記も、そのままH3に渡ります。

    さらに、終盤のカットで団子を空にしたかったときは、参照画像に空の三方を渡したのに、本文の「piled with round white dumplings(丸い団子を山盛りにした)」が勝って山盛りのままでした。参照画像より、プロンプトに書かれた語のほうが強く効きます。

    対策は、禁止を重ねるのではなく、語そのものをプロンプトから消すことです。消したかどうかは目視ではなく、焼く前に機械的に数えます。

    grep -ociE "<消したい語>" <プロンプトファイル>

    件数が0であることを確認してから焼きます。大文字小文字を無視すること、単語の境界で検索すること("IMPORTANT"の中の"ORTA"を拾ってしまう、といった誤検出を避けるため)がポイントです。

    3. 下絵のカメラを寄せても、思ったほど寄らない

    構図が引きになるのを防ぐために、絵コンテの下絵のカメラをあらかじめ寄せておく方法を試しました。ずれの向きは必ず「引き」で一定だったので、先回りして寄せれば狙いの画角に着地するはず、という考えです。

    画像
    下絵のカメラ距離を変えて焼いた結果です。
    上から狙いの下絵、補正なし、0.65倍、0.45倍。下絵を寄せるほど少し寄りますが、
    下絵の画角には届きません

    結果は、方向は正しいものの、効き目がとても弱いものでした。

    下絵のカメラ距離0.65倍(下絵での寄り1.54倍) 焼き上がりは少し寄った
    下絵のカメラ距離0.45倍(下絵での寄り2.22倍) 焼き上がりは約1.3倍しか寄らなかった

    3点からの当てはめですが、焼き上がりの寄りは下絵の寄り倍率の約0.35乗程度しか返ってこない、というのが目安です(推定)。下絵だけで狙いの画角に届かせようとすると、0.2倍前後という極端な下絵が要り、頭が下絵から外れて別の壊れ方をする恐れがあります。一見効きそうで、実は頼りにならない手でした。

    4. 画角は「頭の大きさ」で書く。背景の説明は短くする

    構図が引き過ぎるという指摘を受けて、プロンプトを読み返したところ、原因は自分が書いた文章でした。たとえば次のような書き方です。

    a wide two-shot that holds the veranda, the dumpling stand, the pampas grass and the moon all inside the frame

    「これとこれとこれを画面に入れる」という書き方は、そのまま「引け」という命令になります。下絵のカメラを詰めても、本文が引きを命じていれば引きになります。

    直し方は、画角を「何を入れるか」ではなく「頭の大きさが画面の何割か」で指定することです。

    THE TWO GIRLS ARE THE BIGGEST THINGS IN THE PICTURE: together they fill most of the
    width of the frame, and each girl's head alone is about one sixth of the height of the frame.

    寄りのカットでは「頭だけで画面の高さの3分の1」のように書き、wide や fill much of the frame といった、背景を画面に収めようとする語を本文から消します。アルトのアップのような寄りのカットには、これが劇的に効きました。

    二人を写す中景のカットでは、頭の大きさよりも、場面説明を短くすることのほうが効きました。「縁側の向こうに飛び石と低木、空に満月」のような長い背景説明が、そのまま引きを呼んでいたためです。wide を mid に変え、背景の説明を削ったところ、引き過ぎていたカットが直りました。

    5. いちばん近い1枚を渡して、そこだけ直す。ただし保ちたい演技も書き直す

    ここまでの手を効いた順に並べると、下絵のカメラを詰める(効くが弱い)、画角を頭の大きさで書く、場面説明を短くする、小道具の参照を外す、設定画像を1枚にまとめる、と続き、いちばん確実だったのが、いま一番近い1枚の絵を参照に渡して、変えたい所だけを直す方式でした。

    背景板や小道具の参照は渡しません。その絵の中に、すでに正しい背景も顔も入っているためです。参照が増えるほど構図が崩れる、という1のトレードオフからも理にかなっています。

    ただし落とし穴があります。「この絵をそのまま描き直す」と指示するだけでは、演技(ポーズ)が勝手に消えることがあります。小道具の左右を入れ替える指示をしただけで、月を指さしていた腕が下りてしまったことがありました。背景・小道具・カメラ・服装は保たれたのに、腕だけが元に戻ったのです。

    保ちたい演技は、変更点と同じ強さで、その演技自体をもう一度書きます。

    ORTA KEEPS HER ARM UP. She still stretches one arm up and away towards the night sky and
    points at it with one finger, her arm held high above the level of her own head, exactly as
    she does in <Picture 1>.

    これで3シードとも指さしが戻りました。

    それでも、書き直すたびに前回の「保つ」文を落としてしまう失敗が続いたため、注意するのではなく、指示文の作りを変えました。プロンプトを「今回変えるもの」と「変えてはいけないもの」の2つの見出しに分けて管理します。

    ## WHAT IS DIFFERENT IN THIS PICTURE
    (その回に変えるものだけを書く)
    
    ## WHAT MUST NOT CHANGE
    (耳・演技・置き物の位置・画角など。書き換えず、積み上げる)

    同じ型のミスを2回したら、気をつけるのではなく、書き方の形そのものを変えるほうが確実でした。

    6. キャラクターの参照は、どんなときも毎回渡す

    構図を直すために参照画像を減らしていく中で、キャラクターの参照まで外してしまったことがありました。結果、目の色が変わったり、アルトが下絵の青い棒人形そのままの姿で描かれたりしました。

    減らしてよいのは背景板と小道具の参照だけです。キャラクターの参照は、他の参照を削るときも必ず残します。設定画像(置き物の見た目を決める1枚)は、キャラクターの参照の代わりにはなりません。

    7. 描いてほしい部位は、設計画を参照に足す

    アルトのメカ耳が、生成を重ねるうちに動物の耳に変わってしまう現象がありました。原因は、参照に使っていたキャラクターシートが、三面図と表情を1枚に詰め込んだもので、1体あたりの頭が小さく、耳の細かい作り(硬い板、発光パネル、小さな刻印)まで伝わっていなかったことです。シートを切り分けたものは参照として弱い、ということです。

    対策は、耳だけを大きく描いた設計画を参照に追加することでした。キャラクターシートは外さず、耳の寄りの絵を足すことで、メカ耳の形が戻りました。あわせて本文にも「体の一部ではなく、頭に留めた硬い機械の板」と書いています。

    ただし、2人ぶんの耳の設計画を同時に渡すと、まれに取り違え(片方の耳がもう片方のデザインに入れ替わる)が起きました。3シード焼いて選ぶ運用にしています。

    8. 動画は、完成した静止画を渡すI2Vにすると構図を完全に固定できる

    動画は4つの条件を実測して方式を決めました。対象は175フレーム(7.29秒)のカットです。

    Ref2VA+完成静止画(参照5枚) 構図は固定/口以外がほぼ動かない/872秒
    Ref2VA+完成静止画(参照3枚) 構図は固定/口以外がほぼ動かない/772秒
    Ref2VA+下絵+参照音声 左右が入れ替わった/776秒
    I2V+Turbo8 構図が完全に固定/296秒

    構図をそのまま活かしたいなら、完成した静止画を最初のフレーム(first_frame)として渡すI2Vがいちばん確実で、しかも約3分の1の時間で焼けました。引き換えに、I2Vは音声を参照として渡す仕組みを持たないため、音声はあとからAivisSpeechで載せています。

    9. 動画では、1コマ目に写っていない子の名前を書かない

    I2Vにはキャラクターの参照画像を渡せません。そのため、1コマ目に写っていないキャラクターの名前をプロンプトに書くと、途中からカメラが引き、黒髪の知らない女の子が入ってくることがありました。静止画では同じ文でも別人は出なかったので、キャラクターの参照を渡せるかどうかの違いだと考えています(推定)。

    動画のプロンプトには、1コマ目に実際に写っている人物だけを書く、というルールにしたところ解決しました。

    10. 尺いっぱいの演技を書く。余ると勝手に寄る

    演技の分量が尺より短いと、H3は余った時間を埋めようとして、カメラを寄せたり画を重ねたりします。ある驚きの演技を書いたカットでは、3.5秒から引きの画に顔のアップが半透明で重なってしまいました。驚きの演技は一瞬で終わるため、残りの約5秒をH3が寄りで埋めにきた、と考えています(推定)。

    後半の台詞に合わせた仕草まで含めて、尺いっぱいの演技を書き、「1つの続いた画」と明記したところ、2つのシードとも最後まで同じ引きの画のままで、驚く、手を下ろす、頬に指を当てて考える、という演技まで演じました。

    ただし、手元の細かい演技(頭をなで続ける、など)を書くと、それを見せるために寄ってしまうことがありました。同じ文でもシードによって「切る」「流れる」「保つ」に分かれたので、カメラの動きは文だけでは抑えきれません。3本焼いて選ぶのが確実でした。

    11. 新しいカットは「二人の全景」を基準画にする

    台本の途中でカットを足す必要が出たとき、絵の作り方を7通り試しました。いちばん効いたのは、背景の参照を「人のいない障子の板」から「二人が座っている全景(基準画)」に替えたことです。変えたのは背景の参照1枚だけです。

    画像
    二人の全景(基準画)の候補です。
    この場所のこの位置に、二人がこの向きで座っている、
    という情報を伝える参照として加えます。この中からseed5555を採用しました

    背景の参照が「人のいない板」のままだと、どこに誰がいるのかH3が掴めず、空いた場所に同じキャラクターを描き足してしまうことがありました。

    33枚のうち、同じキャラクターが2人描かれた枚数 3枚が0枚に減りました。狙いどおりのアップになった枚数は、23枚から約29枚に増えました。二人が座っている絵を渡すことで、この場所には彼女が1人だけ、この位置に座っている、ということが伝わったためと考えています(推定)。

    実測値

    参照枚数ごとの生成時間(静止画・1344×768・20ステップ・22コマ)

    参照2枚(キャラ1と下絵) 58〜73秒
    参照3枚 72〜82秒
    参照5枚 106〜132秒
    参照6枚 140〜143秒

    生成時間は参照の枚数に伸びますが、VRAM使用量はほとんど変わりません(約29〜31GB)。

    動画の方式ごとの所要(175フレーム・7.29秒ぶん)

    Ref2VA+完成静止画(参照5枚) 872秒
    Ref2VA+完成静止画(参照3枚) 772秒
    Ref2VA+下絵+参照音声 776秒
    I2V+Turbo8 296秒

    ショット単位のI2V+Turbo8(1344×768)

    39フレーム(1.62秒) 約45秒
    56フレーム 61〜68秒
    107フレーム 約140秒
    175フレーム 約288秒

    1コマあたりの所要は、尺が長いほど少しずつ遅くなりました(107フレームで1.21秒、175フレームで1.57秒、277フレームで2.24秒)。

    まとめ

    • 背景を詳しく指定するほど背景は揃いますが、人物は小さくなります。参照の枚数ではなく、背景の指定量が原因でした

    • 消したいものは否定せず語ごと消す、画角は頭の大きさで書く、変えるものと保つものを分けて書く。この3つが構図と演技を安定させるいちばんの土台でした

    • 一見効きそうな下絵のカメラ補正は、思ったほど寄りませんでした。いちばん確実なのは、いま一番近い1枚を渡して、そこだけを直す方式です

    • 動画は完成した静止画を渡すI2Vにすると構図が完全に固定できます。ただし1コマ目にいないキャラクターの名前は書かないこと、尺いっぱいの演技を書くことが必要です

    • 新しいカットを作るときは、その場所に二人が座っている全景を基準画として渡すと、キャラクターの重複や構図の崩れが大きく減ります

    次の記事では、生成した動画を解像度アップ・色合わせ・BGM・カメラワークで完成品に仕上げる工程をまとめます。

    続編(仕上げ編)はこちらです。https://note.com/altolta_428/n/n252924dac87d


    X(旧Twitter)もやっています

    日々の検証の様子や、記事にする前の途中経過はXで先に投稿しています。よかったらフォローしてください。

    ▼ アルトルタ(AI Vtuber Unit Ver.0.01)
    https://x.com/Altolta_Project

    note のフォローもお願いします

    この開発記録は不定期に更新しています。続きが気になる方は、ぜひフォローをお願いします。

    お知らせ

    アルトルタ開発チームでは、配信で使えるOBS用ツール・オーバーレイをBOOTHで販売しています。zipを解凍するだけで使え、外部への通信は行いません。

    ▼ Altolta428(BOOTH)
    https://altolta428.booth.pm/

     
     
     
    YoutubeにてAIVtuberユニット アルトルタの配信を行おうとしています。 こちらには、デビューまでの開発記録を書いていこうと思っています。

    あなたへのおすすめ