株式会社デジタル・フロンティア-Digital Frontier

Header

Main

  • TOP
  • DF TALK
  • Shotgunをより活用していくために

Shotgunをより活用していくために

2015/11/9

Tag:

こんにちは、TD室の森本です。

今回はMotionBuilder周りの記事から離れて
最近よく関わることになったShotgunについて書いてみようと思います。

Shotgunとは?

Shotgunとはプロジェクトの管理ツールで下記に公式ページがあります。
Shotgun公式ページ
AreaJapan Shotgun紹介ページ

また、DFTalkでは先日行われたCEDECでのShotgunに関連するセッションの記事も以下に掲載しています。
DFTalk 【来場御礼】CEDEC 2015セッション

Shotgunの機能について簡単に紹介していくと

アセットのバージョン管理

アセットバージョン管理例
上図のようにアセットのバージョンを登録して管理することができます。
上図ではキャラクターに対してですが、アセットワーク、ショットワークともにバージョン管理することで、
各チーム間のパイプラインフローの向上に役立ちます。

例えば、アセットチームが新しいバージョンのキャラクターをUPした場合に、
すでに作業を開始していたアニメーションチームに通知がくることで、
スムーズにシーン内のアセットを最新のものに変更することができます。
さらに変更内容やこれまでの履歴についても簡単に確認できます。

RVPlayerとの連携レビュー機能

RVPlayerとの連携機能
RVPlayerとの連携機能により、Shotgun上に登録されたチェックデータをPlayer上で再生することができ、
修正内容を書き込んだ際に同時にShotgunにも登録されます
これまでの修正内容も履歴として閲覧できるため、スムーズなチェック体制を構築できます。

プロジェクトの進捗管理

Shotgunページ作成
Shotgunのデータベースに入力したデータから必要な情報をウィジェットをつかって、
レイアウトを自由に設定したページを作成できます。
Shotgunのデータベースを中心にすることでリアルタイムに情報が更新されるため、
プロジェクトの制作進捗管理にも有効に活用できます。

簡単に紹介しましたが他にも様々な機能がありますので、詳細は上記リンク先で確認してください。

今回はテクニカル面の話としてよりShotgunを有効活用していくために、
Shotgunのデータベースとページについての話を中心に書いていきます。

現在Shotgunのバージョンはv6.3.2を使用しているため、上記バージョンでの記事になりますが
今回は概要的なことを書いてますので大きくは変わらないと思われます。

Shotgunのデータ構造

まずはShotgunのデータ構造がどうなっているかについて書いていきます。
Shotgunのデータ構造は以下の図のような構造をしています。
Shotgunデータ構造1
まずAsset、Sequence、Shot、Task、People、Note等の各種大きな枠組みのEntityと呼ばれるデータがあります。
それぞれのEntityはFieldというデータをもっています。

もう少し具体的な例に置き換えた図が以下になります。
Shotgunデータ構造2

Shotgunでの表示事例

上図では例としてShotEntityを中心に構造例を挙げています。
Shotgun上の見え方として、Grouping設定等の表示設定をすることで
Sequence>Shotのようなツリー構造の表示にすることはできますが、
中身のデータ構造としてはそれぞれSequenceとShotのテーブルが別々に存在しています。

Shotgunでは標準でAsset、Shot、Note等の基本的なEntityが用意されています。
単純な例として一部ではありますが、Entity同士がつながっているイメージは以下のようになります。
このほかにも標準の状態でも多数のEntityがあり、Entity同士の繋がりも書ききれないため下図がすべての構造ではありません。
Entityの繋がり
また、上図ではEntityに対して説明が入っていますが、Entityの使い方自体もカスタマイズできるので一例として考えてください。
デフォルトで用意されているEntityでも十分な種類が用意されていますが、
さらにCustom枠として自由に設定できるEntityも多数用意されているので、
それぞれの会社のパイプライン、ワークフローにあわせたデータ構造を持たせることができます。

Entityのカスタマイズ以外にEntity内のFieldに関しても追加でカスタマイズが可能になっていて、
例えばあるプロジェクトで、そのプロジェクト特有の情報を入れるための枠がほしい場合も、
プロジェクト毎や会社全体の枠かの選択も含めたカスタマイズができます。
権限設定も閲覧、編集をField毎に細かくカスタマイズできるため、
管理側のみ閲覧したい情報の枠を設定するといったことも可能です。

Shotgunのページについて

Shotgunのページは上記で説明したデータ構造から、Filter設定を通して必要なデータに絞り込んだものを表示することで作られています。

Shotgunページについて

Entity同士がFieldでリンクされて繋がっているため、様々なFilter設定が可能です。
ページに関しては全員で共有するShareページとPrivateページがあり、以下の図のような特徴があります。

よくあることとしてデザイナーが自分用に進捗管理するために、
担当の表を表計算ソフト等をつかって管理していることがありますが、
上図のようにShotgunのPrivateページを使うことで、
自分の担当分だけを表示した表の個人用のページを簡単に作ることができます。

すべてのページの情報元になっているデータベースは共通のものを利用しているため、チームリーダーや制作管理者は、
自分の担当チームのメンバーに絞りこんだページを設定することで、進捗状態をリアルタイムで管理することが可能です。

ツールとの連携について

Shotgunについて簡単に説明してきましたが、運用する上で重要なこととして情報の更新頻度があります。
Shotgunを中心にしてパイプラインを構築する上では避けては通れない部分ですが、すべての情報を常に手動で更新し続けるのは
ヒューマンエラーや情報の遅延を招くため、ツールとの連携は必要不可欠です。

Shotgunのデータベースにアクセスする方法としてPythonAPIがあります。
ShotgunPythonAPI
基本的にはWeb上でのShotgunへのアクセスと同じ仕組みになっていて、
情報を取得する場合はEntityとFilter設定の指定からデータを取得し書き換えたりすることができます。
上記APIを使えばPythonの知識とツールの知識があれば、
各会社のパイプライン、ワークフローに合わせた既存ツールとの連携も可能ですが、
1から作っていくことになるので検証も含めた時間がそれなりに必要になります。

他の方法としてはワークフロー、パイプラインをある程度あわせる必要がありますが、
Shotgunから提供されているShotgunPipelineToolKitを使うこともできます。
ShotgunPipelineToolKit
こちらを使えば特別な設定なしに対応している各DCCツールで、Shotgun用のメニューが追加されて、
そのメニューにある項目からファイルのOpen、Save、Publish等の処理を行うことができます。
Shotgunのメニューから実行された処理は自動でShotgunのデータベースとも連携されます。
またpythonの知識があれば設定ファイルと処理用のPythonスクリプトを追加編集することで
比較的簡単にカスタマイズも可能なつくりになっています。

まとめ

ここまで説明してきましたがShotgunはカスタマイズ性が高く、
会社毎のワークフロー、パイプラインに併せて設定を細かく変更することができます。
また、設定に関してもShotgunのWEBのUIベースでデータの構造さえわかっていれば、
Entity、Fieldの設定やページの設定ができるため、
プロジェクトのチームリーダーや制作管理の方にも慣れれば使いやすいと思います。
また、Privateページもあるのでデザイナー単位の個人レベルで使いやすいページを構築できます。
表示がWEBベースで権限設定が細かく追加できることもあり、外注先、子会社との情報共有にも使いやすいです。

ただし、Shotgunベースでパイプラインを進めるには情報の更新は重要であり、
中途半端に導入した場合は余計に混乱する事態になりかねません。
ShotgunのWEBから直接情報を書き換えたり、データをUploadしたりすることは可能ですが、
極力Shotgun上に登録する情報を増やしたほうがデータの構造上リンクを辿ってとれる情報が増えるため、
すべてを手動でまかなうのは現実的ではないのでツールでの自動化のサポートは必須だと思います。

DFでもShotgunを導入後ツールとの連携を進めていますが、まだまだ改善していける余地は残っているので日々改良を進めています。

今回はDFで独自にカスタマイズしている部分は置いておいて、まずはShotgunのベースの部分について書いてみました。
また何か機会があればAPI周りやToolKit周りの話を書いてみようかと思います。

それでは、また。

※免責事項※
本記事内で公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。
これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。

Pocket

コメント

コメントはありません

コメントフォーム

コメントは承認制ですので、即時に反映されません。ご了承ください。

*