みなさんこんにちは。ここ最近、世間ではStable DiffusionChatGPTといったAI技術が大きな注目を集めています。CGWORLD本誌でも1月号でさっそく表紙絵に使うというフットワークの軽さを見せていましたね。画像生成AIについては、私はちょっと試してみて「ふーん、こんな感じかぁ」という感想でしたが、ChatGPTはかなり良く、有料版を購入して使い始めています。特にこれまでGoogle検索では手が届きにくかった部分で、ChatGPTに頼ることがどんどん増えてきました。その反面、嘘も結構普通に混ぜてくるので、情報の収集と選別は今まで以上に難しいなと感じる部分もあります。とは言っても、今後は使えて当然のものになっていくことが確実なので、この技術との付き合い方を身に着けていく必要がありますね。

記事の目次

    これまでのまとめ

    前回までで、これまで積み上げてきた要素技術を組み上げて、アプリケーションランチャーの作成に辿り着くことができました。前回は細かい解説を省いて一気にランチャーが動くところまでつくってしまったので、改めて現在出来上がっている環境を整理します。

    全体のディレクトリ構成

    全体のディレクトリ構成は下図の通りです

    C:\PJ以下に、ローカル環境に作成したvenvが格納されます。venvはプロジェクトとアプリケーションの組み合わせごとに作成されます。場合によっては同じアプリケーションでも複数の環境を切り替えたくなるかもしれないので、venvMaya2023以外にvenvMaya2023_Arnoldのような別のvenv作成されるかもしれません。
     
    P:\PJ以下には、プロジェクトデータがかれます。
     
    T:\PJ以下に、プロジェクトの設定ファイルが含まれています。アプリケーション起動用のショートカットもここに格納しています。
     
    T:\Tools以下に、全体で共有するプログラムや設定ファイルが含まれています。アプリケーション起動用のショートカットも、この中にあるBATファイルへのショートカットとなっています。
     
    T:\wheelhouseには、venvにインストールするために使用するPythonのパッケージが入っています。この中には自分たちで作成したプログラムも含まれます。


    以降では、それぞれの中身の詳細を見ていきます。

    T:\Tools

    ランチャーを動かすために使用するPythonとランチャー本体、設定ファイル、起動用BATが入っています。

    今はランチャーがとてもシンプルなのでlauncher.pyという1つのファイルで済んでいます。ランチャーやこのフォルダにあるPythonもvenvで管理したい気分になりますが、そうするためにはどこかにvenvを管理するためのPython環境をつくっておく必要があるため、卵が先か鶏が先かという状態になってしまいます。ほかに、ランチャーをexe化するといった方法も考えられますが、exeファイルがそこら中に散らばってしまって管理できなくなる未来が見えるのでイマイチです。

    T:\PJ

    プロジェクトフォルダ以下に、プロジェクト用設定ファイルやアプリケーション起動用ショートカットが入っています。

    config.jsonがプロジェクト用設定ファイルです。今はプロジェクト名しか定義していませんが、パイプラインが成長して多方面で使われるようになると、様々な情報が放り込まれてカオス化する場所です。そうならないように細心の注意を払う必要があります。

    maya.jsonがプロジェクトで使用するMayaの設定ファイルです。使用するバージョンや、venvの名前が書いてあります。こちらも使っていくうちに様々な情報が放り込まれていくので、config.json同様、仕様の整理には十分注意します。

    venvMaya2023.txtは、一般的にはrequirements.txtと呼ばれており、venvにインストールするパッケージを書いたものです。アプリケーションごとに設定する必要があるため、maya.json内で指定されたvenv名と同名のファイルにしています。

    Maya2023アイコンのショートカットはT:\Tools\launcher.batをリンク先にして、手動でMayaのアイコンをセットしました。こうすることで、ユーザーはMayaを起動しているのとまったく同じ感覚でランチャーを起動できます。

    P:\PJ

    ここの構成は本連載のパイプライン編で考えてきたものです。「第23回:パイプラインのルールについて考える」などを読み返してみてください。

    C:\PJ

    ランチャーによって生成されるvenvが格納されます。このvenv名はT:\PJ\(プロジェクト名)\maya.jsonで設定されています。このフォルダはローカル環境に作成されるため、高速でアクセスが可能な上にスタッフが増えてもネットワークやファイルサーバに負荷がかからないようになっています。


    また、この環境はアプリケーション起動時に自動的に作成されるため、基本的にユーザーが意識する必要はありません。システム管理者が新しいPCをセットアップしてユーザーに配布する場合でもMayaなどのアプリケーションをインストールするだけで良いですし、何かトラブルがあってアプリケーションの動作がおかしくなってしまった場合、このvenvをフォルダごと削除してしまえば次回起動時にイチから環境をつくり直してくれます。

    T:\wheelhouse

    venvにインストールするPythonのパッケージを入れておきます。事前にダウンロードしたファイルを置いておけるので、会社のポリシーの関係でインターネットに接続できない環境でもpipを使用できます。また、自分でつくったパッケージをここに置いて管理することもできます。パッケージのつくり方は「第43回:より良いプログラムを書くために[パッケージをつくってみる]」などを再度読んでみてください。

    まとめ

    今回までで、ランチャーを起点とした作業環境構築のためのしくみを整理できました。第50回から今回までの内容で、ユーザーがツールを使うながれのつくり方の解説に区切りがついたことになります。基盤となる知識や技術の解説まで含めると、第21回から今回までの内容で区切りがつきました。記事に書いてある個別の要素だけを追いかけていると、全体を俯瞰したかたちがわかりにくくなってしまいます。今回の内容を参考にしながら過去の記事を読み返していただければ、新たな発見があると思います。

    痴山紘史

    日本CGサービス(JCGS) 代表

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

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