Edited at

パイプライン構築支援フレームワーク Pyblish 入門 その1 概説編

More than 3 years have passed since last update.


pyblish とは

公式サイト: http://pyblish.com/

動作ムービ: https://www.youtube.com/watch?v=j5uUTW702-U

動作ムービ: https://www.youtube.com/watch?v=-MKujcU88W8

説明: https://github.com/pyblish/pyblish/wiki/What-is-publishing

開発ガイド: https://pyblish.gitbooks.io/developer-guide/content/

Abstract Factory社 の開発する、映像・ゲーム制作向けの パイプライン構築支援フレームワーク 。単体でも、DCCにも組み込みでも動く。Shotgun / FTrack / 5th Kind / Tactic などとは 違い 大規模な管理を狙うものではない。名前の通り出力データに対する、ミニマムな品質管理を主眼におき、些細な問題の早期発見と解決を目指す。つまり pyblish はデータ作成上の各工程に対しpublish前に不都合がないかを検証し、自動的にパイプラインに流していくためのフレームワーク。共通の一つの成果物を目指し異なる部品を組み上げていく開発者達が、日々のコンテンツ開発で遭遇する問題に対峙し、退治するためことを目的としている。

コアはただのフレームワークなので、パイプラインに必要な実際の挙動の実装は利用者で行う必要がる。現時点で使用可能な組み込み版は Houdini, Maya, Nuke, hiero と基本的に映像向け。が、その概念や機能は他業種であっても有用だろう。

ゲーム・映像制作におけるパイプライン構築自体については、長舩龍太郎さんのCEDEC2014のスライド 1や、ボーンデジタル刊の書籍 2や、北田栄二さんによるその書評 3、0303さんの記事 4 などを参照されたい。

まずは以下に利点欠点について触れておく。


利点

もちろん、pyblishに限らずこのような品質管理を狙い、各種 validation をかける仕組みは各々保有することと思う。pyblish が他と異なる点は、


  • チェッカ単体として提供されているのではなく、フレームワークである

  • 設定如何によりどのように振る舞わせるかを自在にかえられる

  • 筆者の寡聞ではあるが(OSSな)類似フレームワークの存在を知らない

チームで使用する際、担当パート、データにより、必要なチェッカのみ走るようにすることができる。不要なチェッカを手動でオフにする必要が無い。

pyblish を使う上での制約でもあるが、以上により制作環境、フローを揃え管理することができる。


欠点


  • ドキュメント不足

  • 導入の敷居の高さ

  • 開発途上

  • 実動作を担うプラグインは自分で用意する必要がある。(サンプルは存在するが)

  • セットアップの煩雑さ


構成

https://github.com/pyblish/pyblish/wiki/How-it-works

pyblish 本体は各種のモジュールより構成され、大別してa:コア b:OS c:DCCアプリ統合 にレイヤ分けできる。 https://github.com/pyblish のレポジトリ一覧を見ればつかめるだろう。

pyblish 本体では動作の枠組みを提供し、実動作はエクステンション(以後 pyblishエクステンションと表記する)として実装。pyblish本体は設定に従い pyblishエクステンションに実装された機能を作動させる。エクステンションのレファレンス実装例として、

が存在する

pyblishプラグインには4つのタイプ、つまり出来ることがある。処理順に、


  • collection

  • validation

  • extraction

  • integration


collection

収集 ― publish するものについての情報を収集し、以後の段階に備える。マシンへのログインユーザ名、日付、開いているシーンはいかなる種類のファイルか、どのようなブツがシーン上に存在するか、など。


validation

検証 ― 収集したデータに対し検証を行う。一番重要なフェイズ。例えば、ノードが命名規則に従っているか、単位系は正しいか、空のレイヤがないか、などなど。


extraction

抽出 ― 検証されたデータから、必要となるものを保存する。validation 通過しないとこのフェイズは実行されない。


integration

統合 ― 抽出され保存されたデータを、他の環境・パイプラインに向け統合する。例えば、何らかのデータベースに登録、vcsへの保存、タスクトラッキングシステム記録、データのコンバート、などなど

以後、実際の導入についてや動作について記事作成予定。いつになるかは未定