.Tooトップへ
デジタルメディアシステム部 03-6757-3145 お問い合わせ

report

Maya + Python でインハウスツールを作ろう!(前編)

2017.12.08
 

CEDEC(Computer Entertainment Developers Conference)は、日本最大のコンピュータエンターテインメント開発者向けカンファレンス。CEDEC 2017は〝Breakthrough to Excellence!〟をテーマに、8月30日から9月1日までの3日間にわたってパシフィコ横浜で開催された。

ビジュアル・アーツのセッション『Maya + Python でインハウスツールを作ろう!』では、株式会社ポリフォニー・デジタルの富田岳伸氏がPythonの活用事例、Pythonによるツール作成について解説を行なった。

 

ポリフォニー・デジタルではPythonを使用したさまざまなツールを活用

講演では、まずポリフォニー・デジタルでのPython活用事例について、解説が行なわれた。
最初に紹介されたのは、マテリアルワークフローを改善するツール。これはMayaのアトリビュートエディターを書き換え、グランツーリスモに特化したUIに変更した例だ。GUIにはPySideを利用している。

また、アセットのコンバーター、アセットデータのデバッグツールなどをPythonで作成していることも紹介された。

 

Pythonで作るアセット管理ツール

続いて〝アセット管理ツールを作ってみよう〟と題して、デモを交えながらのツール作成の解説が行なわれた。
アセット管理には市販ツールが用いられることもあるが、富田氏は市販ツールはオーバースペックであったり、学習コストがかかったりするという理由から、最低限の機能を持つツールをPythonで作成することを選んだという。

ここでゴールとして示されたのは、登録したアセットが画像付きで一覧表示されるツールだ。
実装に必要なものとして挙げられたのは、お気に入りのテキストエディター、Maya、PySide2、Qt Designer、sqlite3、SQLAlchemy。なおテキストエディターについて、富田氏はSpyderを使用していると説明した。

富田氏は、テキストエディター以外の各項目について解説。
PySide2は、QtのPythonバインディング。同種のものにPyQtがあるが、機能にはほとんど差はない。両者の主な違いはライセンス形態だ。
Qt Designerはボタンなどの要素をドラッグ&ドロップするだけでUIを構築できるツール。デモでも使用された。
sqlite3はファイルベースの軽量DBエンジンで、 Pythonの標準モジュールにも含まれている。ORMライブラリとしては、SQLAlchemyを使用。SQLAlchemyは「最も有名なPython用のORM」と紹介された。

富田氏ではモックアップの作成において、紙にUIデザインをスケッチし、UI要素の配置を試行錯誤しながら進めているという。このとき、Qt Designerが役立つそうだ。

 

アセット管理ツールに必要な要素として、登録名や登録日時、登録実行ボタンなどをリストアップ。

アセット管理ツールに必要な要素として、登録名や登録日時、登録実行ボタンなどをリストアップ

 

Qt Designerで作成するのは、登録欄、検索欄、検索結果欄の3段で構成されたウィンドウだ。
以上を踏まえて、富田氏は実際の作成作業を開始。Qt Designerを起動してウィンドウを作成、提示した要素を入力していく。

要素の入力はすぐ完了したが、ウィンドウをリサイズしてみると、要素が追従してこない。これを解決するのが、レイアウト機能だ。
レイアウトには水平、垂直、グリッドがあり、これらを組み合わせて適用することで、縦方向、横方向いずれのリサイズにも要素が追従するようになる。

 

レイアウト機能を使用して崩れないウィンドウを作成

レイアウト機能を使用して崩れないウィンドウを作成

 

後編に続く)