このコラムでは企業のDX相談から映像制作のワークフロー改善まで、技術に関わることを幅広く扱うテクニカルディレクター集団「BASSDRUM(ベースドラム)」が、アニメ制作における技術活用の可能性を探ります。

実際の現場で起きているお悩みを例に、その課題を解決するためのプロトタイプを開発していきます。みなさんもぜひ、一緒に試してみてください。本企画で取り上げるお悩みも随時募集しております!

記事の目次
    お悩み相談はこちら

    森岡東洋志

    1981年生まれ。東京工芸大学博士課程満期退学。工学修士。メーカー勤務を経て、2014年からIoTデバイスの開発やスマートフォンアプリの開発、インスタレーションの開発に携わる。2015年、プロトタイピングに特化したワントゥーテンドライブを設立し、CTOとしてメーカーとの新製品開発やテクノロジーを使ったエンターテイメントの開発を行う。2020年に独立し、BASSDRUMに参画。大阪芸術大学にて非常勤講師も務める。

    今回のお悩み「制作初期の効率的なラッシュ制作方法は?」

    アニメスタジオ勤務 プロデューサー A氏の悩み

    「カットごとに上がってきた映像をラフに繋ぎ合わせたものを“ラッシュ”と呼びます。前後のつながりや全体のボリュームを確認するために、ラッシュはとても重要です。本来は素材が更新されるたびに作成・確認するのが理想なのですが、制作初期、とくにプロダクションフェーズ前は制作ラインが整っておらず、プロデューサーや演出が自ら時間を割いて作ることも多く、負担が大きくなりがちです。その結果、更新が遅れたり、ラッシュが作成されなかったりすることも。もっと効率的に作る方法はないでしょうか?」

    今回はこちらのお悩みを解決していきましょう!

    ラッシュを自動生成する「ラッシュジェネレーター」

    プリプロダクション段階でのラッシュの作成は創造性が入り込む余地が比較的少ない、定型的な作業と言えます。また、必要な情報もある程度構造化されているため、プログラムを組めば機械的に処理することができそうですね。そこで今回は、ラッシュを自動生成する「ラッシュジェネレーター」を作ってみました。

    ラッシュジェネレーターが実現すること
    ・ラッシュ作成作業の効率化
    ・動画作成ソフトのスキルが不要になる
    ・動画作成ソフトのライセンスが不要になる
    ・素材が更新されても同様の手順で再生成可能
    ・プロデューサーや制作進行の負担を軽減し、他の業務に時間を使える

    GitHubで公開中のサンプルプログラムはこちら →(github.com/bassdrum-org/rush-generator)。

    ReadMeに従って環境を構築すれば、コマンド1つで指定素材を使ったラッシュを自動生成できます。

    サンプルで出力したラッシュ画像

    アニメや映像制作のワークフローは複雑で、プロジェクトごとに進め方も異なるため、統合アプリを作っても都度の改修が必要になり、結果としてコストがかさみがちです。


    そこで今回は、機能を最小限に絞った「ラッシュジェネレーター」を提案しました。目的ごとに小さなツールを用意し、それらを必要に応じて組み合わせることで、柔軟かつ継続的な運用が可能になります。たとえば、将来フローが変わっても、ツール本体はそのままにGUIだけを差し替えることで対応でき、再開発の手間も抑えられます。


    このように、ツール開発では、作り直しのコストを最小限に抑えるためにも、機能を絞ったシンプルな設計で、まずは必要最低限から始めてみるのがおすすめです。


    さて、ここからは実際にプログラムを動かしていきましょう。プログラムを動かすには「各PCへの環境構築」と「実行」の2つの作業が必要になります。GitHubのReadMeにも使い方が記載されていますが、ツールに慣れていない方でもスムーズに進められるよう、以下に丁寧な手順をまとめました。

    環境構築

    必要な環境とインストール方法

    本プログラムの実行には、バージョン3.6以上のPythonが必要です(Pythonは、3DCGソフトの拡張から機械学習まで、様々な分野で利用されているプログラミング言語です)。Macには標準でインストールされており、古いモデル以外はインストール不要ですが、Windowsでは別途インストールが必要になります。

    Windowsの方はマイクロソフトの「Pythonのインストール」を参考にしてみてください。うまくいかない場合は、エラーメッセージを検索するなどして原因を調べていきます。最近はChatGPTのようなAIツールを活用すると、かなりの精度で考えられる原因と対策を教えてくれるので、試してみても良いかもしれません。

    Macの場合は「ターミナル」、Windowsの場合は「PowerShell」を起動して、‟python –version”と入力し、3.6以上のバージョンと表示されれば準備完了です。

    python --version

    ★TIPS:AIでコードをアップデート!

    今回のプログラムは人間がベースを手書きしていますが、その後のちょっとしたアップデートには、AIエージェントである Roo Code(当時は Roo-Cline という名称)や Devinを活用し、プログラミングにも挑戦しています。


    具体的には、Slackなどのチャットツール上でAIに指示を出し、コードの追記や修正を行なってもらいました。完璧なコードとはいえないものの、テキストベースのやり取りだけでアップデートを実現できました。

    GitHubからプログラムをダウンロード

    GitHubのリポジトリ(このプログラムを公開している場所)に移動し、「<> Code」という緑のボタンを押します。次に、「Download Zip」を選択し、プログラムファイルをダウンロードした後、ZIPファイルを解凍します。

    必要なライブラリをインストール

    ラッシュジェネレーターのプログラムに必要なPythonのライブラリ(プログラムを動かすのに必要な部品のことです)をインストールするため、ターミナルもしくはPowerShellを開き、「rush-generator-main」のディレクトリに移動します。cdコマンドで移動して、‟pip install -r requirements.txt”と入力してライブラリをインストールします。

    pip install -r requirements.txt

    ★TIPS:ラッシュ生成に適した動画ライブラリの選択

    動画を生成するプログラムをゼロから作るのは手間がかかるため、一般的には専用のライブラリを利用することが多くなります。通常、このようなシンプルな動画の作成や編集には「FFmpeg」と呼ばれるライブラリがよく使われますが、今回は「OpenCV」の動画作成機能を採用しています。ラッシュでは、1フレームごとに異なる情報をテキストとして映像内に埋め込む必要があるため、その処理に柔軟に対応できるOpenCVが適していると判断しました。

    実行方法

    まずはサンプルデータでラッシュを生成してみましょう。ターミナルで‟python rush_generator.py”と入力してEnterを押すと、プログラムが実行されます。しばらくすると、以下のような表示がされ、処理が徐々に進んでいきます。

    python rush_generator.py

    しばらく文字が流れたあと、“Export completed!”と表示されれば完了です。

    プログラムが終了すると、「videos」の中の素材が繋ぎ合わされ「out」というフォルダにラッシュが出力されます。

    プロジェクトのカスタマイズ

    実際のプロジェクトでも使えるように、より細かい使い方を見ていきます。詳しくはReadme.txtやGitHubのトップに記載していますが、このラッシュジェネレーターを使用するには、大きく3つの素材が必要です。

    1.プロジェクト設定
    動画に入れ込むプロジェクト名、縦横のサイズ、フレームレートなどを指定する必要があり、「project_info.csv」という名前のファイルで管理します。

    2.各カットの動画・絵コンテpng素材
    これらは必須ではありませんがあると映像の確認がしやすくなります。サンプルは「videos」というフォルダに集約していますが、実行時の引数を追加することで、このフォルダ以外でも実行可能です。

    3.カット情報
    カットの番号(フォルダ名と同一である必要があります)、カットのステータス、テイク番号、担当者などを設定します。今回は「cut_info.csv」という名前になっています。CSVファイルは、ExcelやGoogle Spreadsheet、メモ帳などで編集できます。

    この3つのフォルダおよびファイルの場所と最終出力の場所は、プログラムの実行時にオプションとして指定することができます。つまり、サンプルフォルダやサンプルのCSVを書き換えなくても、新たに別の場所に作ったCSVやフォルダに対して実行することができます。

    その他のカスタマイズ案

    今回のプログラムは短時間で作り上げたサンプルですが、もう少し作り込むことで、色々な応用が可能になります。

    ▼videosのドライブをGoogle Driveにしてクラウドからデータを参照する

    ▼毎日12時に起動させる

    ▼GUIをつけてCSVの編集を簡単にする

    ▼Webサーバとして立ち上げてリモートで操作できるようにする

    ▼連番pngに対応して、ラフな動画なども一気に動画化できるようにする

    ▼OpenTimeLineの出力機能を追加し、Da Vinci ResolveやPremiere Proとの連携も可能にする

    など……

    プログラミングの知識が必要な部分もありますが、うまく活用すれば演出チームが常に最新のラッシュをチェックできる環境が整うはずです。

    ★TIPS:まずはCUIでスタートしてみよう

    今回のアプリケーションはGUI(グラフィカルユーザーインターフェース)がなく、CUI(キャラクターユーザーインターフェース)と呼ばれる、文字だけで操作するアプリケーション(コマンドラインアプリケーション:CLI)として作られています。

    エンジニア以外の方にとっては、CUIは少しハードルが高く感じられるかもしれませんが、GUIに比べて開発コストや改修コストが低いという大きなメリットがあります。「こういうツールがあると便利かも」と思ったときは、まずCLIでプロトタイプを作って評価し、実際にニーズがあることが確認できた段階でGUI化していくのが、効率的な進め方です。

    最後に

    いかがでしたでしょうか?


    このコラムでは、アニメ制作における技術的な課題を、実際のプロトタイプを通じた解決策を提案していきます。「こんなことで困っている」「こういうのがあったら助かる」など、現場の声をぜひお寄せください! お悩みは下のリンクより投稿お待ちしております。


    また、実際の案件としてワークフロー改善やツール開発のご相談も承っています。お気軽にご連絡ください。

    お悩み相談はこちら

    ベースドラム

    Webサービスやフィジカルプロダクト開発・イベント企画などのさまざまなプロジェクトを技術面からリードするテクニカルディレクターを集めた、世界初のテクニカルディレクターコレクティブ、およびその中核にある会社組織。クリエイティブとテクノロジーを横断的に理解し、両者のコミュニケーションを媒介しながら、プロジェクトのあらゆる局面において技術を武器にチームの実現力を最大化している。
    bassdrum.org

    執筆:森岡東洋志
    設計:池田航成
    プログラミング:池田航成、原淳之助
    プロジェクトサポート:福井彩加
    編集:柳田晴香