タスクの依存関係を整理する
洗い出したタスク間の依存関係を整理します。例えば、アセットのリギングはHighモデルが完成していないと着手できない場合、RiggingフェーズのHighタスクはModelingフェーズのHighタスクに依存していることになります。 逆に、Lowモデルをリギングする場合は、Highモデルが完成している必要はありません。
下図はタスク間の依存関係を図にした例です。
効率的なパイプラインを構築するための目標のひとつとして、タスク間の依存関係を極力減らし、並行して作業できるようにする、ということがあります。例えば、モデルデータとリグデータを合成するためのツールがあり、Buildフェーズで合成できるようにすれば、下図のようにモデリングとリギング間でタスクの依存関係をなくすことができます。すると、リグチームはモデルデータの完成前に仕事を始めることができるようになりますし、モデルデータが更新されたとしても、ほとんどコストをかけることなくリギング済のアセットを用意することができます。
依存関係を整理するときに注意すべきことがいくつかあります。ひとつは、タスクが相互に依存関係をもってしまう場合です。Modeling:Highを行なった後にCloth:Highを行い、その結果を元にModeling:Highを再度行うようなフローが存在すると、Modeling:Highというタスクを見たときに、それが何をしているのか、成果物は何なのかということが曖昧になってしまいます。
もうひとつは、ケースバイケースでタスク間の依存関係が変わってしまう場合です。作画とCGを組み合わせてつくるアニメの現場では、作画が終わってからそれに合わせてCGをつくる場合と、CGをつくってからそれに合わせて作画をする場合があり、ひとつの作品の中でそれらが混在することもあります。このような場合、作業フェーズやタスク名を見ただけでは、そのタスクが全体のフローの中のどこに位置するものなのかわかりづらくなってしまいます。
まとめ
今回はアセット(やショット)を作成するための作業内容の整理について考えていきました。作業フェーズやタスクの洗い出しはとても大変で、ここでも前回のアセットの階層構造を決めるときと同様、様々なケースを想定して全てに対応できるように複雑なルールを決めてしまいがちです。ルールを決めるときにはそこに集中しているため、多少複雑になっても十分理解できるのですが、いざ時間が経つと細かい経緯などひとつも覚えていないのが普通です。そのような状況になってもスムーズに物事を進めることができるように、シンプルかつ一貫性のあるルールと、それを支えるツールを用意することが大事であると、繰り返しお伝えしておきます。
第26回の公開は、2020年9月を予定しております。
プロフィール