アーティストがスクリプトを手軽に導入できる環境を作りたい ① 計画編

超ひさしぶりにBlogをこうしんをば。
お題の通りなのですが

ここ最近、Twitterを見ていて「ツールを導入するのの難易度がたかすぎるよMaya様」
という話題が上がっていてたのを見て、
前々から私もなんとかならないものかと思っていた所もあったので、
わりと時間がある今のタイミングでなんかアプローチできないかなというのを考えてみました。

現状の問題点

個々近年は、GitHubを利用していろいろなツールを公開している人も増えてきました。
自分もささやかながら作ったものをGitHubにあげてみたりもしたのですが

アーティストがGitHubからクローンして、
Path通したところにいれて、
コマンド実行するの・・・

それ自体が…敷居たかすぎやしませんかね…?

GitHub上で公開されているツールは多々あるのですが
Maya的にPath通ってる所に置いておけばOK程度のルールしかないということもあるし
Python的にもいろいろなアプローチがあるということもあり
インストールの仕方も多種多様。

1. Mayaのモジュール
2. ApplicationPlugins
3. そのまま実行すればOKな単独pythonスクリプト(ソースコードコピペしてShelf投げる)
4. Pythonのモジュール形式にまとめたものをPATH通ったところにコピーしてね

主なパターンだとこのあたりでしょうか。
正直、ある程度スクリプトになれてて色々環境作っている自分でも
GitHubで公開されているツールを導入するのはそれなりに調べたりすることも多いので
アーティストが導入するのはかなり敷居が高く、
導入コストが高いのではないかと思うわけです。

もう1つが、わりと単純なコマンド(書ける人なら数分で書けてしまうようなたぐいのもの)は、
自分も含めて公開するまでもないだろうとスクリプトエディタに都度書いて実行して…みたいになってしまい、共有化されず死蔵されてしまうケースが多々ある事。

例としてですが

選択しているノードをすべてLockするスクリプト。
数行で書けるものですが、
こういう内容を必要なときにさくっと書くというのは
やはりそれなりに敷居も高いと思うし、やり方を探すにしても意外と
欲しい答えが検索をしても出てこないなぁという気がしています。

そんなかんじで。

1 スクリプトの導入難易度の高さ
2 簡単なスクリプトをぱっと導入できるようなものが以外とない

会社にTAが充実していて、すでに用意されている環境なところも多いとはおもうのですが
フリーランスで在宅で仕事をしているであったり
社内にスクリプトを書ける人が少ない(いない)環境だったりの所も多いと思うし
もうすこしMayaのツールとして導入できるハブみたいなものが在ると良いのに…
と、いうのをなんとかできるアプローチを考えてみることにしました。
作るとは言ってない。けど言い出しっぺが(ry

必須要件

大きく分けると2つ。

Maya側からGitHubやGistsなどで公開されている物をUIから選択してダウンロードできるようにする

これは、いわゆるツールを使用するアーティスト側から見たときに
どこかページを探して、なにかの手順を踏んで…みたいのをなくして
選ぶ→Shelf等に登録 という手順だけになるようにしたい。

さすがに、このダウンロード用のランチャーツールだけは
インストールしてもらわない事にはどうにもならないですが、
基本はそれだけやってもらえれば、使用者は選ぶ→登録で済むようにしたいというのが
わりとマスト要件になります。
(それが出来ないと、そもそも手間がふえるだけになってしまうし、手軽さが失われる)

もう1つが、自分以外のTA・TDあるいはエンジニアの人も
ダウンロードランチャーに登録をできるようにすること。
私だけが公開するのであれば、Gistにスニペット登録してとかでもOKかなとか思ったのですが
VSCodeの拡張や、Emacsのpackage.elとかのように
いろいろな開発者が提供をしあえるようなプラットフォームにしないと
もったいないよね?と思うわけです。

しかし立ちはだかる問題

とはいえ、そう簡単な話ではないわけです。

どのコードがツールから呼べる物なのかはなにかしらで定義する必要があるので
別途サーバーを用意してAPI作りつつGitHubのURLやコメント、タグなどを管理する
必要があるよねってことで
Djangoでサーバー作るか?????と考えたのですが、
DBの構造的にはなんとかなっても登録用のフロントエンドつくるにしても
ユーザー認証つくるとかにしてもけっこうヘヴィーです。
これだけでかなりの要求コスト。きつい。むり。

もう1つが、GitHubにUPしている公開形式がけっこう人それぞれだったりするので
その辺のルール化だったり形式を
それぞれの開発しやすさとかやりやすさを崩さずにできるかどうか。
ツールを使う人も必要ですが、それ以上に登録しやすさも重要なので
付け焼き刃のWebサーバーでやってもたぶんだめな気がしたわけです。

色々なアイディアが!

フォーム利用+GASアプローチ。
認証部分はクリアしつつ、Google先生ならシートをある程度共有して
編集(コメントやタグ類)というのもできるのでわりと可能性が。
この場合のハードルは、それぞれ違う実行方式問題。

登録ツール経由。
Webページ作らずツール化(TA用)して、DjangoのDBで管理するというというのも
雑多なスクリプトに絞ればなんとかなりそうな気がする。
Gistにこだわらず、簡単スクリプトもフォームからGitにコードをためられるようにするのも
アプローチとしては取り入れられそう。

これはナイスなアイディア。
ダウンロード用のランチャーは、ツール起動時にこのリポジトリをクローンしにいけばOKで
クローンしたフォルダしたの情報をUIに表示
URLから欲しいツールをクローンしてPATH通して実行コードをSlelfなりに入れればOK。
登録する側はGitHubにフォルダを入れればOKなので
登録用テンプレがあれば、書き換えてコミットすればツールに反映される。
TA側はGitHubにコミットしたりクローンしたりの使い方は問題ないし
逆になれた形な気がするので、GitHubで管理するのはツール開発者側的にはやりやすいですね。
(この管理用GitHubを複数登録できるようにすればさらにGood)

自分だけだったら思いつかないアイディアがでてくるのがTwitterの凄いところです。
ありがとうございます。

といった感じで、なんか出来そうな気がしてきたぞ?????
しかしこれ、私作るのでか…??? 感ありますが
せっかくなので、もらったアイディア取り入れつつ、
ざっくりプロトタイプ版を休日つかって組み立ててみようと思います└(┐Lε:)┘

失踪したらごめんなさい…

2 comments

コメントを残す

メールアドレスが公開されることはありません。

*