記事の目次

    みなさんこんにちは。オンラインカンファレンスや各種勉強会が続々と開かれています。皆さんは充実したカンファレンス生活をお過ごしでしょうか? 私は.........実は、申し込んだものの日常生活から切り替えてカンファレンスに参加するということがなかなかできず、宝のもち腐れ状態になってしまっています。オンラインカンファレンスは気軽に参加できる反面、結局は十分な時間を取って意識的に切り替えていかないといけないので、なかなか難しいものです。

    前回は、アセットを管理するための構造について考えていきました。今回は、アセット(やショット)を作成するための作業内容の整理について考えていきます。アセットを作成するためには多くの工程を必要とし、その内容もプロジェクトやアセットごとに異なる場合が多いため、タスクをどの程度まで細分化するかは悩みどころです。極端な話、"アセット作成" というタスクひとつにして管理しても、正常にプロジェクトが進めばまったく問題ないのです。現実にはそれでは困るので、アセット作成というタスクを分割して管理することになります。

    TEXT_痴山紘史 / Hiroshi Chiyama(日本CGサービス
    EDIT_尾形美幸 / Miyuki Ogata(CGWORLD)

    作業フェーズを洗い出す

    映像制作を行うときにどのような作業フェーズ(工程)があるかを整理し、作業フェーズ間でどのような関わりがあるかも整理します。

    専門化が進んで作業フェーズごとに部署が存在するような組織の場合、大枠では組織の形がそのまま作業フェーズの形になっています。

    日本のプロダクションの場合、1人のアーティストが複数の作業フェーズをまたいで担当する場合もあります。そのような場合、複数の作業をまとめてひとつにしてしまうか、細かく分けて管理するかは注意深く検討する必要があります。

    ここでは、アセット作成の場合は

    ・Modeling
    ・Rigging
    ・Cloth
    ・Hair
    ・Lookdev

    の、5つのフェーズがあるとします。場合によってはModelingをより細かく分けてSculptといったフェーズを追加したくなることもあるかと思います。そのように、細かい作業内容で分けることを検討してもいいです。

    ただし、ModelingをProxy・Low・High といったLODで分けることは、ここでは行いません。モデルの詳細さにかかわらずModelingというフェーズにちがいはないからです。

    ショット作成の場合は

    ・Layout
    ・Animation
    ・Simulation
    ・Lighting
    ・Effect
    ・Composite

    の、六つのフェーズがあるとします。

    ショットによってはエフェクトのあり・なしのように、必要な作業フェーズの内容が異なる場合があります。この場合でも、プロジェクト内で発生する作業フェーズを全て列挙します。

    作業フェーズは、その作業を行う人を元に分割するではなく、作業のチェックポイントを基準に分割します。例えば、Modeling・Rigging・Lookdevを1人の作業者が行うとします。この場合、この3つの作業が終わったら、初めて次の作業者にデータが渡ることになります。ここで「Modeling・Rigging・LookdevをAさんが行うから、ひとつのフェーズとして管理しよう」とするのが人を元に分割する場合の例です。

    ところが、3つの作業が全て終わった後、初めてチェックとフィードバックを行うことは少ないでしょう。多くの場合、モデリングが終わった段階でチェックして、各種修正を行うことになります。そこで、3つの作業を個別に管理し、それぞれにAさんをアサインするのがチェックポイントを基準に分割する管理の例となります。こうすることで、あるアセットではModelingとRiggingをAさん、LookdevをBさん、また別のアセットでは全てをCさんが行うといった組み合わせのバリエーションにも柔軟に対応できるようになります。

    アセット作成の場合は、人をベースに管理することは少ないと思います。ショット作成になると、人をベースに管理することが多いようです。あるカットのアニメーションからレンダリング、合成までを1人で担当して仕上げるような場合によく見られます。このような場合でも、きちんとタスクを洗い出して個別に管理するのがいいでしょう。

    タスクを洗い出す

    タスクが、実際に作業を行う内容となります。作業フェーズごとに、典型的なアセットやショットでどのようなタスクがあるのか洗い出します。

    アセット作成では、先ほど決めた Modeling・Rigging には Proxy・Low・Highの3種類のLODを作成するタスクがあり、Cloth・Hair・LookdevはHigh に対して行うタスクがあるとします。この場合、タスクの構成は以下のようになります。

    ・Modeling
    Proxy
    Low
    High

    ・Rigging
    Proxy
    Low
    High

    ・Cloth
    High

    ・Hair
    High

    ・Lookdev
    High

    ※以降、各タスクは(作業フェーズ名):(タスク名)という表記をします。 ModelingフェーズのProxyタスクであれば、Modeling:Proxyとなります。

    ショット作成はアセット作成よりも複雑になりがちです。ショットごとに必要なタスクも大幅に異なります。この場合でも、プロジェクトでよくあるタスクは一通り列挙しておきます。

    ・Layout
    Layout

    ・Animation
    Animation

    ・Simulation
    Cloth
    Hair

    ・Lighting
    Lighting

    ・Effect
    Debri
    Smoke
    Water

    ・Composite
    Composite

    これで、社内に存在する典型的な作業フェーズとタスクのリストアップができました。ここで作成したリストを元にプロジェクトを管理していきます。

    ひとつの作業フェーズをどのようなタスクに分割するかは、タスクの内容と、タスクをこなすためにかかる時間がひとつの目安になります。ひとつのタスクがあまりにも長時間かかるものだった場合、1ヶ月間作業をして、いざチェックに回したら見当ちがいのことをしていたという悲劇が起きかねません。また、作業者としても、ずっと同じタスクに向き合っていると飽きてしまいます。そのような場合、数時間~数日程度で完結するタスクに分割することを検討します。例えば、キャラクターのモデリングであれば、顔・体・手・衣服といったパーツそれぞれを個別のタスクとして管理することができるでしょう。短い期間でひとつのタスクをこなすことができるため、作業者は仕事が進んでいる実感を得ることができ、管理者も細かい単位で進捗状況を把握することができるようになります。

    一方で、タスクを細かく分割すると、問題も出てきます。Excelなどのスプレッドシートで管理していると、表が大きくなる、情報の更新に手間がかかるといった話はよくあります。実際、こういった管理の手間を嫌がって、細かいタスク管理を避けているケースもよく見かけます。これに関しては、最近はShotgunのような専用のソフトウェアを使用することで解消できます。とは言っても、タスクを細かく分割しすぎると管理の手間が増えることは確かなので、上手にバランスをとる必要があります。それでも、情報の更新などはツールで補助できる場合が多いので、ある程度細かく分割して短い時間で終わるタスクをたくさん消化する方向に寄せたほうがいいです。

    次ページ:
    タスクの依存関係を整理する

    [[SplitPage]]

    タスクの依存関係を整理する

    洗い出したタスク間の依存関係を整理します。例えば、アセットのリギングはHighモデルが完成していないと着手できない場合、RiggingフェーズのHighタスクはModelingフェーズのHighタスクに依存していることになります。 逆に、Lowモデルをリギングする場合は、Highモデルが完成している必要はありません。

    下図はタスク間の依存関係を図にした例です。


    効率的なパイプラインを構築するための目標のひとつとして、タスク間の依存関係を極力減らし、並行して作業できるようにする、ということがあります。例えば、モデルデータとリグデータを合成するためのツールがあり、Buildフェーズで合成できるようにすれば、下図のようにモデリングとリギング間でタスクの依存関係をなくすことができます。すると、リグチームはモデルデータの完成前に仕事を始めることができるようになりますし、モデルデータが更新されたとしても、ほとんどコストをかけることなくリギング済のアセットを用意することができます。


    依存関係を整理するときに注意すべきことがいくつかあります。ひとつは、タスクが相互に依存関係をもってしまう場合です。Modeling:Highを行なった後にCloth:Highを行い、その結果を元にModeling:Highを再度行うようなフローが存在すると、Modeling:Highというタスクを見たときに、それが何をしているのか、成果物は何なのかということが曖昧になってしまいます。

    もうひとつは、ケースバイケースでタスク間の依存関係が変わってしまう場合です。作画とCGを組み合わせてつくるアニメの現場では、作画が終わってからそれに合わせてCGをつくる場合と、CGをつくってからそれに合わせて作画をする場合があり、ひとつの作品の中でそれらが混在することもあります。このような場合、作業フェーズやタスク名を見ただけでは、そのタスクが全体のフローの中のどこに位置するものなのかわかりづらくなってしまいます。

    まとめ

    今回はアセット(やショット)を作成するための作業内容の整理について考えていきました。作業フェーズやタスクの洗い出しはとても大変で、ここでも前回のアセットの階層構造を決めるときと同様、様々なケースを想定して全てに対応できるように複雑なルールを決めてしまいがちです。ルールを決めるときにはそこに集中しているため、多少複雑になっても十分理解できるのですが、いざ時間が経つと細かい経緯などひとつも覚えていないのが普通です。そのような状況になってもスムーズに物事を進めることができるように、シンプルかつ一貫性のあるルールと、それを支えるツールを用意することが大事であると、繰り返しお伝えしておきます。



    第26回の公開は、2020年9月を予定しております。

    プロフィール

    • 痴山紘史
      日本CGサービス(JCGS) 代表

      大学卒業後、株式会社IMAGICA入社。放送局向けリアルタイムCGシステムの構築・運用に携わる。その後、株式会社リンクス・デジワークスにて映画・ゲームなどの映像制作に携わる。2010年独立、現職。映像制作プロダクション向けのパイプラインの開発と提供を行なっている。新人パパ。娘かわいい。
      @chiyama