2025/06/11
第13回リグナイト『リグシステム座談会2』~開催レポート【GRIS】~

こんにちは。
BACKBONEの福本です。
2025年5月23日に開催した、第13回リグナイト『リグシステム座談会2(KaraQri,miRA,GRIS,XXX)』の当日の様子を4回に分けてお伝えします。今回は【GRIS(小森氏)】のレポートになります。
リグナイトに関してはこちら。
◆アンケート結果
今回もZoomでのオンライン開催となりました。
下記、ご参加いただいた方の業種や職種、使用されているリグシステムなどのアンケート結果になります。
※以下の議論内容は、各テーマの「解」ではなく、皆さまの経験談に基づく「ご意見」となります。
◆『GRIS』ご紹介&ディスカッション(小森氏)
<概要>
- 2015年頃から開発を始めた。
- GRISはGlobal Rigging Systemの略。
- モジュラーリギングとビルド機能を搭載したリグシステム。
- 自分が欲しいと思う機能を開発してきた。
- 随時必要な機能を追加している。
- ショートカットキーでGRISを呼び出すと、マウスカーソルの下にGRISのGUIが表示される。GUIへのアクセス速度向上が目的。
- リグを構築する上での基本的な機能はほぼ搭載している。
- クリーンナップやリネームツールなど、データ整理用の便利機能も多数搭載している。
- 骨の作成(人型テンプレート有)やウェイト作業、ドリブンキーセットなど、セットアップ用の補助ツールも多数搭載している。
- モジュラーリグとビルドを併用してリグを組み立てていく。
- 自分はビルドでのリグ構築に慣れているので、ビルド機能に力を入れたツールになっている。
- eSTの思想に影響を受けているので、基本的にはローカルセットアップで構築される。
- コントローラの階層は、部位ごとに整理されて格納される。
- 各部位には「コントロールルート」と呼ばれる親のダミーノードが作成され、そのノード内に対応する要素が配置される。腕、足、頭などの各部位は、すべて同一階層上に並列で構成される。このように各要素を個別に管理することで、リグ構築時に処理の順序に依存することなく、順不同でも問題なく構築することが可能になる。
<ビルドのフロー>
1. 先ずはプロジェクト用のフォルダ階層を作成する。※ツールで自動作成される。
2. プロジェクト名やアセット名などを入力して実行する。
最終的にこの情報はメタデータとして保存される。
3. Applyボタンを押すと、コンストラクター機能(リグを構築するためのコアとなるエンジン)に応じて各種必要なデータを保存するフォルダなどの階層が自動作成される。
4. あとは必要な要素を作成していく。
5. プリセットを使用して骨を作成する。
人型には、腕、足、手などの各部位のプリセットが用意されている。
組み合わさったコンパウンド型のプリセットもある。
6. 骨作成後は、ツール上で保存を実行すると該当するフォルダに骨データが保存される。
7. モデルはLowとHiを保存する場所がある。
こちらもツール上で保存を実行すると該当するフォルダに保存される。
今回のコンストラクターでは、モデルはLowとHiの2種類のLODを保存できるが、コンストラクターによってモデルのLODは変わる。
8. 他にも作業内容に応じて色々と必要なデータ要素を足していく。
9. 上記の流れでセットアップを進めると、ビルドするための(決まったプリセットに沿った)スクリプトが自動で作成される。
__init__:ローモデルでもハイモデルでも使用する共通処理
setup_hi:ハイモデル用
setup_low:ローモデル用
など
10. setup_hiを選んでExecuteボタンを実行すると、ビルドが実行されてコントローラまで自動で作成される。
<ビルド詳細>
- 骨、ウェイト、モデル、ケージなどの各種データはバラバラに作成しておく。
- それらをスクリプトで全てを読み込んで自動でリグを構築する。
- 各処理の状態については、スクリプトエディターに表示される。
- 該当するプリセット(モジュール)が存在している場合、骨に任意の骨を追加してモジュールで組み立てていく。
- カスタムのリグを追加したい場合、GRISの命名規則に沿った名前の骨を作成して保存する。骨のみを保存しただけではExcuteを実行しても何も処理はされない。作成した骨がRoot階層にペアレントされており、かつ既のモジュールを割り当てていればコントローラまで作成される。既存モジュールではなく追加のモジュールが必要な場合は、setup_hiのスクリプトに必要な内容を記述していくことで、ビルド時にコントローラまで作成されるようになる。
- 基本的には、ペアレントなどの細かい処理もsetup_hiに記述する必要があるが、こういった処理は使用頻度も多く量産の場合にも使用するので、自分は関数として書いておくことが多い。
- LODに応じて書き分ける。
- コンストラクタークラスを継承した処理の中に、ルールに沿ってペアレントなどのセットアップ処理やコントローラ作成モジュールなどを書いていく。
- コントローラのモジュールを書く際は、先ずコントロールルートを作るところから開始する。
- 使用頻度が多いコマンドは、メソッドとしてGUIに登録しているのでGUI上で選択できる。コマンドを忘れたとしても、メソッド一覧から探せる。タブキーでフィルターをかけたり、任意の名前で検索をかける機能も搭載している。メソッドを選択すると、スクリプトのテンプレが表示され引数なども確認できる。
- これらのメソッドをCtrl+Cでコピーして、先ほどのビルドスクリプトに張り付けた後、細かい処理を追加していく。
- コントローラのシェイプタイプなどもGUIに複数登録されており、任意のコントローラシェイプを作成することができる。ShowComandPreviewを実行すると作成したコントローラシェイプを作成するスクリプトが表示されので、これをコピーしてビルドスクリプトに張り付ける。
- バインドする際は、バインド用の骨を作成するとsetup_grp階層にローカルセットアップで構築された骨が作成される。
- ケージをバインドしてハイモデルはWrapする。
<Constructor・ExtraConstructor>
- GRISのコアとなる機能。
- コンストラクタークラス(リグ生成のフローを制御するための基幹クラス)がある。
- メソッドの順番にビルド処理が走るような仕組み。
後述するエクストラコンストラクターを使用すると、各メソッドの間に別の処理を挟むこともできる。
- コンストラクターには、スタンダードコンストラクターやUnityコンストラクターなど数種類ある。
- 例えば、Unityコントラクターを選択して実行すると、GUIやコンストラクターがUnity用に変わる。
- 構築したリグがUnity用パッケージと互換性がある場合、ビルドすると自動的にUnity出力骨まで作成される。
- 案件ごとに特殊なリグを追加したい場合や部位スケールの仕様を変えたい場合などは、エクストラコンストラクターを使用して設計すると簡単に調整できる。
- エクストラコンストラクタークラスの中に、任意の必要な関数を追記して使用する。
<Q&A>
- 〘 アイコンは何で作成されていますか? 〙
全てPhotoshopで作成して、アイコンフォルダに格納している。GRISのGUIはPysideで作成。専用のボタンに関しては、スクリプトライブラリでアイコン専用のクラスを書いていて、カーソルがアイコンに近づくと大きくなったり色が変わるなどの処理を行っている。QSS(Qt Style Sheets)で変更しているところもあるが、基本的にはペイントイベントの箇所にひたすら書いて描画をコントロールしている。GUIにハマった時期があり、かなりこだわって作成した。
- 〘 何人で開発されましたか?また何年かかりましたか?〙
全て1人で作成した。足掛けでいうと結構かかっているが、基礎の部分(GUIも内部処理も含めて)は半年ぐらい。今GRIS3で3代目。過去にパイプライン用のインターフェースなども作成したことがあり、知見ありきでスタートしたので基礎部分を作るのは早かった。徐々に更新していった。
- 〘 このツールはどうすれば使用できますか?〙
誰でも使用できます。下記アドレスからダウンロード可能です。※リグナイト後、githubに公開されました。
https://github.com/eske3/gris3
<注意事項>・個人利用または使用される方が関わる案件のみ利用可能です。
(使用の際に、(小森氏に)ご一報頂けると大変ありがたいです)
・サポートやお問い合わせについては、基本的に受け付けておりません 。
・GRISを使用しての、いかなる損害やトラブルについて責任を負いません。
- 〘 プラグイン化していますか?〙
やり取りで弊害になることがあるので、プラグインは一切使用していない。ほぼPyのみ。Mayaノードで全て完結。一部MelファイルもあるがC+などは使用していない。メタノードはトランスフォームノードにテキスト形式のExtraAttributeを追加して情報を保存している。
- 〘ピッカーはありますか?〙
昔は作っていたが廃止した。アニメーターの方が好みのピッカー(AnimSchool Picker)があり、そちらを使用されているので提供は辞めた。
- 〘IKFKマッチなどの機能はどうしていますか?〙
コマンドを用意している。IKFKマッチ用の別ウインドウがあり、そちらを使って切り替える。ベイクのコマンド、ミラーのコマンドもある。
- 〘IKFKマッチなどは右クリックメニューなどでできますか?〙
Mayaをカスタマイズする必要があるので開発はしていない。一部のコマンドはMaya標準のホットキーやマーキングメニューに登録して使用する。カスタムしたマーキングメニューも提供している。
◆『miRA』ご紹介&ディスカッション(中谷氏)
次回に続く。
本記事内で公開している全ての情報について、その完全性、正確性、適用性、有用性等いかなる保証も行っておりません。
これらの情報のご利用により、何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
自己責任でご使用ください。