記事の目次

    みなさんこんにちは。『劇場版「鬼滅の刃」無限列車編』が公開後3日間で興行収入46億円を突破したということで話題になっています。公開前から山手線の時刻表のような上映スケジュールで話題になっていましたが、初動もそれ以上に驚異的なことになっています。私も公開初日にたまたまいい席が取れたので妻子の目を盗んで行ってきました。いやー、映画だからという以上の熱がこめられていて凄かったです。スタッフの皆さん、おつかれさまでした。

    • ちなみに、さすがに一人で映画に行くのは気が引けたので帰りに詫びシュークリームを買って帰ったのですが、こういう "飲んで家に帰るのがとても遅くなったり朝帰りした時に、奥さん(や彼女)のご機嫌取りのために買って帰るお土産" というのをドイツ語でDrachenfutterと言うんだそうです。ドラッヘンフッター。日本語で竜の餌。カッコイイですね~。恐ろしいですね~。我が家のDrachenfutterは十分役目を果たしてくれました。

    ※現在、当社パイプラインツールはWindowsのみの対応となっています。ご了承ください。

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

    スプレッドシートについて考える

    前回までで、どのようにして入れ物の構造を決め、中身を詰めていくか、詰めた中身をどのように管理するかというお話まで進みました。今回は、詰めた中身を人にどのように見せ、管理するかというお話になります。

    最近ではタスク管理にShotgunのようなWebベースのツールを使用することが多くなってきました。また、Shotgunを使うほどではないけれどもスタッフで情報共有をしたいという場合にGoogleスプレッドシートを使用して管理するケースも増えています。

    どのようなツールを使うにしても、情報を入力することと入力された情報を整理して適切なかたちでユーザーに伝えることが大事な点は変わりません。そこで、今回はスプレッドシートを例にお話を進めていきます。何故スプレッドシートかというと、プロジェクトでの使用率がほぼ100%なのにも関わらず、チームでの情報の入力や整理にはとても向いていないものだからです。反面、その手軽さや普及率は捨てがたいものがあります。不得意な部分は補いつつ、得意な部分を生かすことができないか考えてみます。

    Excel(やGoogleスプレッドシート)が重宝されるのは以下のような理由があるからです。

    ・使用するのに特別なトレーニングを必要としない
    ・手軽に自分好みの表を作成できる
    ・困ったらネットで検索すれば大抵の解決方法が見つかる
    ・みんなが使っているため、データのやり取りに困らない

    逆に、Excel(やGoogleスプレッドシート)が嫌がられるのは以下のような理由があるからです。

    ・オレオレスプレッドシートが増えて、フォーマットが統一されなくなる
    ・複数人での閲覧・編集が難しい(Excel)
    ・データの再利用を考えない書式で作成されてしまう
    ・様々な視点からデータを分析し、評価することができない

    総じて、個人が軽いフットワークでデータを整理するにはとても向いているものの、チーム作業となった途端に破綻するという傾向が強いです。この傾向はGoogleスプレッドシートを使用することでかなり改善されますが、それでもデータの再利用や分析という点では課題が多いです。

    当社では、xlganというツールを開発し、ShotgunやRedmine、Excel、Googleスプレッドシートの間でデータをやり取りできるようにしています。また、スプレッドシートのフォーマットのちがいはxlganの設定ファイルで吸収するため、ユーザーは自分の好みに合ったスプレッドシートを使用できます。

    例えば、日常業務を以下のような流れで行えます。

    1. プロジェクト管理者がExcelでアセットリストやカットリストを作成する

    2. プロジェクト管理者が、作成したリストを用いてShotgunにアセットやショットを登録する
    ー2.1 アセットやショット上のタスクは、事前に定義されたテンプレートを元に作成される

    3. プロジェクト管理者がExcel上でタスクごとの予定スケジュールを記入する

    4. プロジェクト管理者がShotgun上で作業者にタスクをアサインする

    5. プロジェクト管理者がxlganを用いてExcelとShotgunの同期を行う
    ー5.1 予定スケジュールがShotgun上のタスクに登録される
    ー5.2 タスクのアサイン情報がExcelに書き戻される

    6. 作業者はShotgunを参照し、自身のタスクをこなしていく。その際、作業に着手するなど状況が変化したらタスクのステータスを更新する

    7. プロジェクト管理者がxlganを用いてExcel とプロジェクト管理システムの同期を行う
    ー7.1 Excelで新たに追加したアセットやショットがShotgunに登録され、更新した予定スケジュールも登録される
    ー7.2 タスクのアサイン情報やステータス、スケジュール実績、進捗率といった必要な情報がExcelに書き戻される

    8. 以後、6と7が任意のタイミングで実行される

    このようなしくみをつくることで、スプレッドシートのフットワークを生かしつつチーム作業を進めることも可能になります。

    スプレッドシート作成時のセオリー

    スプレッドシートはある程度柔軟な書式が使えるとはいえ、押さえておくと良いポイントがあります。最低限、以下の3つを実践するだけで、トラブルが少なく、ツールを使った処理を適用しやすいデータにできます。

    ・1セル1情報
    ひとつのセルに複数の情報が入っているとプログラムでの判別がとても難しくなってしまいます。下図は、よくあるダメな例です。アセット名に日本語名を併記することでひとつのセルに複数の情報が含まれてしまっていたり、プロジェクトのタスク管理に必要な情報が人間にしか理解できない情報として書き込まれています。


    ・セルの結合は極力避ける
    セルの結合で表示されている内容と、プログラムから読み書きしたときのデータが一致しない場合、トラブルの原因となります。見た目の体裁を整えるためだけに使用すれば問題ないですが、そのつもりで整形した部分が実はプログラムにとって大事な情報だった場合もあり得るので、セルの結合は避けるのが無難です。

    ・行と列の非表示は使用しない
    スプレッドシートでは、ひとつの表が大きくなってしまい、ほしい情報が見えづらくなりがちです。そのため、行や列を非表示にしたり、極端に幅を狭めて見えなくすることがよくあります。これは必要な情報を見落としてしまうだけではなく、非表示にしたセルの存在を忘れてしまい、各種トラブルの元になります。ツールの使用中に「変な動作をするなぁ」と思ったら列が非表示になっていたというのはとてもよくある落とし穴です。

    この3つはちょっとしたプログラムを使って処理を自動化しようとする際に必ずハマるポイントです。そして、今まで私が見た感じでは、8割方このどれかの問題を抱えたデータでした。

    スプレッドシートのフォーマット

    JCGS Pipeline Toolsでは、下図のようなフォーマットをベースにすることをお勧めしています。また、個別にカスタマイズした場合でも、可能な限り設定ファイルを変更するだけで対応できるようにしています。赤い部分が設定ファイルで指定する場所で、ヘッダ部分も必要な項目を追加したり順番を自由に決められるようにします。


    また、これまで議論したアセットの階層構造、作業フェーズ、タスクは下図のように対応します。


    このように、きちんとした構造を定義した上にデータを作成することで、Excelであろうと、Shotgunであろうと、ファイルサーバ上のディレクトリ構成であろうと、全て一貫性をもって管理できるようになります。また、一貫性があるためxlganのようなツールを使用して情報を相互にやり取りすることが可能になります。

    まとめ

    今回はスプレッドシートを例に、情報を管理し、集めた情報を活用できるようにする手段を考えていきました。ここがきちんとできていると、プロジェクトが佳境になったときに管理情報の更新が間に合わなくなり、内容が信頼できなくなり、泥沼化してしまう事態を防げるようになります。もちろんスプレッドシートだけで全てに対応するのは大変なので、ほかのシステムを使うことも多いでしょう。それでも、どのようなシステムを使用しても気をつけなければいけないことや実現しなければいけないことの基礎は同じなので、ぜひ応用してみてください。



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

    プロフィール

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

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