🕋

オープンスタジオプラットフォームAYONを試す(2)

2024/11/20に公開

引き続き、オープンソースのパイプラインプラットフォーム AYON(旧 OpenPype) を使っていきたいと思います。
前回まででWindows版を設置、起動しました。

ユーザー登録

まず管理者ユーザーを登録する画面が現れます。

続いてサーバー設定。ブートストラップ・セットアップを利用すると便利だと案内されます。
オフラインで利用する場合や諸々を手動でインストールする場合はスキップできますが、そうでない場合はYnput Cloudアカウント登録しましょう。

設定

ひとまずStudio settingsページに通されます。

右上のlaunchpad風メニューから設定系ページにリンクされていますが、Studio settingsはその一番上にあります。

設定系ページは大きく「Settings」系と「ManageProjects」系に分かれていて、さらにそれとは独立に「Event Viewer(Events)」「Services」「Addon Market(Market)」が存在します。

なお、メニュー右側にS+SP+Pと書いてある通り、キーを素早く二度タイプするとそのページへ移動できます。

Settings系ページ

  • Addons (Settings/Addons)
  • Bundles (Settings/Bundles)
  • Studio settings (Settings/Studio)
  • Site settings (Settings/Site)
  • Anatomy presets (Settings/AnatomyPresets)
  • Attributes (Settings/Attributes)
  • Users (Settings/Users)
  • Permissions (Settings/AccessGroups)
  • Secrets (Settings/Secrets)

Ayon全体に関わるような設定で、後述のプロジェクト管理に使ったりする内容を準備したりします。
UsersとPermissionsのみ、プロジェクトごとの設定があります。
Siteは、多拠点やリモートを含む運用時に使う設定です。いま起動しているAyonのサイトについての設定ではありません。

ManageProjects系ページ

  • Anatomy (ManageProjects/Anatomy)
  • Project settings (ManageProjects/ProjectSettings)
  • Site Settings (ManageProjects/SiteSettings)
  • Roots (ManageProjects/Roots)
  • Teams (ManageProjects/Teams)

これらはどのページからでも新規にプロジェクトをCreateでき、プロジェクトリストで選択したプロジェクトについての設定を行なっていきます。
「Anatomy」は直訳すると解剖学ですが、詳細な構造(に関する設定)くらいのニュアンスと思われます。パイプライン使用時のストレージのルートや、命名規則、タスクやステータスなどに関する設定を行います。

スタジオ側にもある設定について、プロジェクト側でオーバーライドしている場合はオレンジ色の印がつきます。

今回はとりあえず動かしてみたい!というモチベーションで、それぞれの設定については掘り下げません。

プロジェクトを作る

プロジェクト名とプロジェクトコード、プリセット、等々を入力します。
プリセット欄については、「Anatomy presets」ページで作っておいたものここで利用できます。

プロジェクトができました。

ショットやタスクの追加など、なにか手を加えた場合は 水色の印 がつき、「Save Changes」か「Clear All Changes」するまで保留状態になります。即時反映はされません。水色印(=未保存)を残したまま離脱すると無かったことになるので注意が必要です。

また、プロジェクト内で扱うアイテムとして「アセット」「シーケンス」「ショット」「タスク」……などが挙げられますが、AYON上の用語としては タスク が特別意味のあるアイテムで、それ以外は全てフォルダです。フォルダに、アセットやショットといったタイプがあるという考え方です。

自由に階層化でき、フォルダ以下にタスクを登録したり、タスク以下にフォルダをさらに登録したりもできるようです。
「Add Folder sequence」はフォルダを一括登録する機能です。ショットを連番で登録する時などに使えます。


このあたりはFlowPT(SG)では弱点な部分を埋めてきている感じで好感が持てます。


プロジェクトページには三つのタブがあります。

  • Browser
  • Editor
  • Workfiles

ご覧の通り、AYONのWeb UIは「見る」と「変更する(入力する)」が分離されています。
Browserを見ている限り「うっかり変えちゃった!」は起きないので、かなり安全側な設計という感じです。ほかのこれ系のツールでは分離されているのはあまり見かけないので、お作法に慣れるのに多少期間が必要そうですが。
Workfilesは、AYON用語としては

Workfile
アーティストがタスク内で作業するソースシーンファイル。
これらはバージョン管理されたシーンファイルであり、
ワークファイルツールを介してロードおよび保存(自動命名)できます。

ということなので、バージョン管理された作業ファイルを中心としたビューということになります。
Workfileを扱うパイプラインツールについてのドキュメントは下記

https://ayon.ynput.io/docs/artist_tools_workfiles

アドオンやランチャーの登録

この辺りからいろいろ試行錯誤したため順番等が曖昧になっていますが……

Ynput Cloudに登録します

AYONとアカウントがコネクトされました。

アドオンパッケージを選んだり、インストールするアドオンを選んだりします。

プラットフォームの選択。

インストール中……

インストールできました

インストールが済むとAYONが再起動されます

インストール時には、アドオンだけでなくランチャーもインストールされますが、
ランチャーは自前でビルドしたものをAYON上にアップロードしておくこともできます。
Settings / Bundlesタブの「Upoload Launcher」がそれです。

これによって、多拠点時にもカスタムしたランチャーを各所に配信できるということのようです。
ランチャーをアップロードするときは、公式の配布状況のようにjsonもセットで上げる必要があるようです。(本稿時点でのランチャーの最新は1.1.1でした)
https://github.com/ynput/ayon-launcher/releases/tag/1.1.1

パッケージとしてダウンロードされたランチャーと手動でアップロードしたランチャーが登録されている状態

ランチャーの起動

ランチャーはダウンロードしてきてインストールして使います。
AYONサイト経由で配信されるということで、テクニカル側に「ランチャーのセットアップしてくださいー」が集中することなく各作業者側で済ませられるというのが、なんとなくいい感じな気がしますね。

起動時にはログインを求められ、AYONサイト側に飛ばされて認証、コネクトされます。
あとクソデカAYONロゴが表示されます…

起動ロゴがでっかい

起動後はトレイに常駐し、アイコンからメニューを展開できます。
バージョンナンバーの項目から環境変数等の情報を確認できます。


また、ランチャーを複数起動しようとすると警告されます。

起動したランチャーはこちら

上段が、アセットやショットなどのフォルダ選択+タスク選択、下段がアプリケーション起動。
アドオン周りの設定ができていないために、Blender等のアイコンが出ていません。

アドオン関連設定

アドオンマーケット

右上のメニューから、もしくは m+m でアドオンマーケットにアクセスします。

このアドオンマーケットと、後述するSettings / Addonsは別物なんですが、どちらもアドオンを扱うページなので、いま自分がどちらを開いているのかときどき混乱します。

アドオンマーケット上のステータスは三つあり、

  • Downloaded = 最新をダウンロード済み(クラウド上に新しいのはない)
  • Update = より新しいのがクラウド上にある
  • Download = そもそもうちのAYONサイトに入れていない

(あと一応UpdatingとFinishedもあります)
「Update」「Download」ボタンが表示されていても、使わなそうなら入れる必要はありませんし、サイトに使うバージョンは指定できるのでダウンロードするだけしておくのも可です。

左の「Downloaded」リストでは、「Updates Available(アップデートのあるアドオンのみ)」「サイトに使っているアドオンのみ(In Production)」など表示を切り替えられます。
アドオンマーケットでの日常的な行動としては「In Productionを開く > Update All」でいいんじゃないかなと思います。

アドオンを選択すると右側に詳細が表示され、説明文やサイトにダウンロード済みのバージョンを確認できます。Githubページへも飛べます。

右上のメニューから特定の過去バージョンをダウンロードしたりもできます。
「Production Usage」が「0.4.0 Use 1.0.2→」となっているのは、現在0.4.0を使っていて、1.0.2がDownloadedなので使えます、という表示です。ダウンロード済みのなかで最新のを使っている場合は、Bundle→という表示になります。

アドオンアップロード後は、適用するためにリスタートが要求されます。

要リスタートになると画面下にも常駐されるのでそこからでも可です

Settings / Addons

AYONサイトにインストールしているアドオンについての設定ページです。
3カラムに分かれています。

  • 左:全アドオンのリスト
  • 中:選択したアドオンのバージョンのリスト
  • 右:選択したバージョンを使っているバンドルのリスト

Addonそれぞれが持っている設定は「Studio Settings」側で行うため、ここではアドオンのインストール・アンインストールやインストール済みのバージョンの確認、アドオンが使われているバンドルの確認と、そんなにやることは多くありません。

バンドル はアドオンをまとめて扱う概念です。後述します。

アドオンは⚪︎でステータスが表示され、グレーが「どれかのバンドルには入っているけど使われてない」、緑・赤が「使われているバンドルに入っている」。⚪︎なしは、AYONサイトに入れてあるもののどのバンドルにも入っていない。です。

Settings / Bundles

AYONでは、使用するアドオンのバージョンの組み合わせをまとめて保存しておくことができます。
このアドオンのまとまりをバンドルと呼びます。

バンドルは↓このように、それぞれのアドオンごとに使用するバージョンを選んだりNONE(=使用しない)を選んだりして設定していきます。バージョンの組み合わせによっては互換性がないため、「Bundle has unresolved compatibility errors」と警告されます。

バンドルは多数登録しておくことができますが、そのうちプロジェクトで使用できるのは二つで、「Production」と「Staging」に指定したもののみです。「Production」「Staging」についてのドキュメント / フォーラム記事はこちら。

https://ayon.ynput.io/docs/admin_launcher_distribute/#staging-vs-production

https://community.ynput.io/t/how-to-use-different-bundles-with-different-projects/1096

また、既存のバンドルから新しくバンドルを作ることができ、その際にはアドオン設定をコピーするかどうかを選択することができます。

Studio Settings

Production指定バンドルに含めたアドオン、Staging指定バンドルに含めたアドオン、それぞれについてのスタジオ全体向けの設定を行います。

本稿はランチャーからのアプリケーションの起動が主眼なので、 「Applications」アドオン が重要です。

MayaやHoudiniのバージョンや実行ファイルの場所など、ランチャー経由で起動するアプリケーションに関する定義を行います。(アプリケーション以外にもArnoldやmGearなどについての定義を行うTools Definitionsというのも含まれます)

設定を変更すると、項目の左側に青い印がつき、保存すると緑色になります。
変更は右側に溜まっていき、不要な変更は保存前にゴミ箱アイコンで削除できます。

※ここでアドオン名の横についているバージョンは、アドオンのバージョンです。

緑色になっている項目は、デフォルトからなにか値が変更されている(=オーバーライドされている)ということです。
そういうオーバーライドは右クリックからremoveすることができます。

Anatomy presets

プロジェクトには細かな設定がたくさん必要になりますが、そのベースとなる設定を保存しておくページです。
ここでベースを作っておき、プロジェクト側でこれを適用した上で細かくオーバーライドしていくことになりますが、プロジェクト側でオーバーライドする項目はもちろん少ない方がいいので、実際にはプロジェクト運用を繰り返しながらここのプリセットを練っていくことになるのかなと思います。

なお、もとから設置されている「AYON default」は リードオンリー なので、このページでまず最初にやることは「とにかく + Save as a new preset を押して保存」です。

その上で、FPSが25(PAL?)なのを24にしたり、アプリケーションやツールメニューに項目を追加したりしましょう。
アプリケーションのメニューに無い項目を使いたい(増やしたい)場合は、Studio Settingsに定義を追加した上で、アトリビュート↓を編集します。

Settings / Attributes

ここがややこしいんですが、
例えばMayaやBlenderなどのバージョンが不定期的に増えますが、その時にはここの値をいじる必要があります。
アプリケーションやツールのアトリビュートを探して、右クリックしてEdit

そして使いたいアプリケーションのラベルと、Studio Settingsでの定義を入力します。

サーバーのリスタートを要求されるのでリスタート。
すると、上記のアナトミーで設定時に利用できるようになります。

プロジェクト設定

新規プロジェクト

プロジェクト設定系のページならどのページでも、左上の「Add New Project」からプロジェクトを作れます。

基本的にはプロジェクト名とコードと、Anatomy Presetを指定します。
それ以下に並ぶ項目はAnatomyのものなので、適宜に変更します。

Anatomy Presetでの設定内容はペーストされるだけの関係であり、変更した場合もどこを変更したかは不明(オーバーライドの印はつかない)という点にはやや注意です。

ManageProjects / Anatomy

作成済みのプロジェクトの詳細設定を変更できます。
項目的にはAnatomy Presetや新規プロジェクトのときと同じです。

アプリケーション、ツールズ欄を確認 します。
ここでランチャーに現れるアプリケーションを指定できます。

ManageProjects / ProjectSettings

Studio Settingsで行ったアドオンの設定を、プロジェクトごとにカスタマイズするページです。レイアウトもほぼ同じで、左側にプロジェクトのリストが追加された形です。

ただしアドオンごとに設定項目には「プロジェクト側でオーバーライドできるもの」「スタジオ設定でしか設定できないもの」があり、オーバーライドできるものしか現れないので設定項目は減っています。

Applicationsアドオンで言えば、Mayaの定義、Arnoldの定義はスタジオ側にしかないので、本項の趣旨としてはここでやることは特にありません。

ランチャーからアプリケーションを起動

ここまでの設定で、ランチャーでタスクを選ぶとアプリケーションが起動できるようになりました。

ここに現れるアイコンは、そのマシンにインストールされているもののみ(実行ファイルを見つけられたもののみ)です。
ちなみにここで扱うBlenderやHoudini、あるいはMaya、NukeといったAYONと連携するアプリケーションを、AYONパイプライン上では「ホスト」と呼びます。

https://ayon.ynput.io/docs/artist_concepts/#host

Blender

Blender 4.3を起動してみます。
初回起動時にはPySideのインストールが走り、その後Blenderが起動します。

メインメニューにAYONメニューが追加されているのが確認できるかと思います。

AYON所定のパイプラインツール群も利用できます。
パブリッシャーやワークファイルを開いたところ。

構成としては、FPT(SG)のパイプラインツールキットと基本的には同様です。
詳細は下記
https://ayon.ynput.io/docs/artist_tools

Houdini

Houdiniも同様にAYONメニュー込みで起動できました。

まとめ

ここまででAYONをWindows機にインストールし起動、ランチャー経由でパイプラインツール込みのBlender、Houdiniが起動する様子を確認しました。

ここからはAnatomyをプロダクションごと、プロジェクトごとに設定を詰めて行ったり、

https://ayon.ynput.io/docs/admin_settings_project_anatomy

パブリッシュプラグインを吟味したり開発したり、FPTなどのプロジェクトマネジメントシステムと連携させたりと、細かい精度上げが続きますが、

https://ayon.ynput.io/docs/addon_flow_admin/

パイプラインを敷く基本的な流れとしてはお手軽に確認できたかと思います。

機を見てUEでのワークフローを確認したりもしてみたいですね。

https://ayon.ynput.io/docs/addon_unreal_artist

Discussion