UZURIG 2 導入編

## UZURIG 2 について

**UZURIG 2** は、ゲーム開発向けに設計されたモジュラーリグシステムです。Autodesk Maya用の無料ツールとして提供され、個人法人問わずに、商用利用可能なライセンスになっています。開発は株式会社TAが行っています。

#### 対応バージョン
Maya 2023, 2024, 2025


#### 主な特徴

+ 既存の骨構造に対してリグを構築する方式を採用
+ 骨のアニメーションからリグコントローラのアニメーションに変換
+ すべてのカスタムノードはC++製プラグインとして実装されており、高速で安定した動作を実現
+ リグ生成処理やUIのコードはPythonで実装されているため、カスタマイズが可能
+ モジュール空間内でのローカルセットアップによって無駄な計算を排除


#### 機能一覧

+ 選択しやすく視認性に優れた専用形状のリグコントローラ
+ コントローラ形状の保存機能により、リグ再構築時の作業負担を軽減
+ すべてのコントローラで軸方向の自由な変更が可能
+ Offset Parent Matrixを活用し、DAG階層を圧縮したスマートなコントローラ構造
+ 複数の骨チェインを1つのリグモジュールとして扱う柔軟な設計
+ リグの設定情報を外部ファイルとして入出力可能（保存・再利用に対応）
+ 補助骨（サポートジョイント）を制御するための補助ノードを用意
+ 2種類のメソッドによるSoft IK機能
+ つま先のフロアコンタクト処理に対応
+ 原点等倍スケールに対応


## 入手方法

公式サイトで配布されており、以下のページからダウンロードします
https://uzurig.com/ja/uzurig2-rigging-plugin-for-maya-jp/

## インストール

バージョンごとにMayaの起動バッチが用意されているので、バッチからMayaを起動すれば、**UZURIG 2** が使用できる状態になります。

ゲーム開発プロジェクトで複数人で使用する際は、既に起動バッチやMaya起動専用のツールが用意されている場合があるかと思います。その際は、同梱されている **maya_env.bat** 内で設定されている環境変数を参考に、自身のプロジェクトに組み込んでください。

:::note warn
**プラグインがロードできていない場合**
ツールと一緒に配布されている**KanoRig__PluginRequired.mb**を開いて、画像のようにぐしゃっとなったらプラグインがロードされていません。スクリプトやプラグインのパスが正しく設定されているか確認しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59043/c9b54566-7d36-422b-8b39-a07ac51933e1.png)
:::

:::note warn
**起動バッチで起動しない場合**
Mayaのインストールディレクトリがバッチ内に記載されたパスと違っている可能性が高いです
バッチをテキストエディタで開いて、実際のMayaのインストールディレクトリと合っているか確認しましょう
:::

:::note warn
**コントローラが表示されない場合**
ツールと一緒に配布されている**KanoRig__PluginRequired.mb**を開いたとき、身体の各コントローラが表示されていない場合があるかもしれません。可能性として考えられるのは、ビューポートの設定です。
**ViewerPort2.0 のみ対応**しています。LegacyViewport用の対応は行っていません。
![2025-04-04_18h11_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59043/f64dae43-97b3-4354-bec7-978c1d637612.png)
:::

## セットアップツール

#### 最もシンプルな生成方法

<iframe width="560" height="315" src="https://www.youtube.com/embed/u0yct2VYQaw?si=rh6MbqVqJGtEzAEj" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

#### コントローラ形状の保存・再ビルド

<iframe width="560" height="315" src="https://www.youtube.com/embed/kCpCBBzMt6s?si=rvd-A9zIp-jaoOYM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

#### コントローラの親空間切り替え機能の設定方法

<iframe width="560" height="315" src="https://www.youtube.com/embed/HbLLJ6vyjpk?si=yJ5FlHCPRVkCPG3o" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

#### 複数チェインをまとめて制御するSplineIKモジュール

<iframe width="560" height="315" src="https://www.youtube.com/embed/8XHrbuhALrc?si=tN-jc_gZC0ijI834" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## FBXインポーター

骨アニメーションからリグコントローラのアニメーションに変換します

:::note warn
インポートするFBXアニメーションデータについて
リターゲット機能は搭載されていませんので、**別キャラのデータをインポートする場合は、事前にそのキャラに合わせたFBXアニメーションを用意**しておく必要があります。リターゲットはHumanIKが便利です。

:::

<iframe width="560" height="315" src="https://www.youtube.com/embed/FjeMaKxELrE?si=zejBiX6BqfT5XiD2" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## あとがき
ようやく最初のリリース（v2.0）を公開できました！
このタイミングで、**UZURIGでやりたかったことの第一段階はひと通り形にすることができた**と思います。

とはいえ、まだまだ改良の余地はあります。今後は伸縮系機能やスケール対応、モジュールのブラッシュアップや新しいモジュールの追加など、継続的にアップデートを行っていく予定です。

なお、本ツールのPython部分では [cymel](https://github.com/ryusas/cymel) を使用しております。回転ｎ計算には [maya_rotationDriver](https://github.com/ryusas/maya_rotationDriver) のコードを参考にさせていただき、C++プラグインを実装しています。
この場を借りて、佐々木さん、本当にありがとうございます！