BlenderのAuto-Rig Proを使ってUE5向けにリギングからエクスポートまで

# 概要

![image_processing20240820-2-c9p6jo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/60d3c1d8-6444-b7c3-51f8-96951259a84d.jpeg)

**Blender** の有名アドオンである **Auto-Rig Pro** についての備忘録。
Blender バージョンは **4.1** 系を使用。

## はじめに
今回は **アニメ調のSD素体モデル** を Auto-Rig Pro を使ってリギングし、ゲームエンジン (UE5) 向けに **FBX** としてエクスポートするまでの基本の流れを記事として残してみた。

- 左右対称なヒューマノイドモデル (要は人型) を扱う
- UE5で使用することを想定しているが、ボーン構造は **UE4マネキン準拠**
- フェイシャルやシェイプキーは扱わない
- カスタムボーンはまだ追加しない

:::note info
あれこれ試行錯誤しつつ残した学習メモなので間違ってる内容もあるかも。
:::

今回使うモデル。仮テクスチャで色分けした程度。9000 ポリゴンぐらい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/cebf2b8f-7081-fbc3-4239-84d587696014.png)
- 目は別オブジェクト、マテリアル＆テクスチャは頭と体で分けてある
- ミラーモディファイアで左右対称化している

## 公式マニュアル

https://www.lucky3d.fr/auto-rig-pro/doc/

# アドオンの機能
大きく分けると下記の２つ

1. モデルのメッシュ形状に合わせた **高機能なリグを自動生成**
1. 各種 **ゲームエンジン** 向けの **エクスポート機能** (Unity / Unreal Engine / Godot)

:::note info
特に人体モデルにリグを入れてポーズつけて確認までの流れが簡単に出来る
:::

<details><summary>リグについての補足</summary>

生成されるリグは、FBX形式にエクスポートした時点でコンストレイントやIK設定などの情報は引き継がれない (多分)。そのためゲームエンジンや外部アニメーションツール側でFBXファイルをインポートしても、これらの設定をそのまま使用することは出来ない。これはARPで生成したリグに限らず標準でも同じで、インポートした後にツール側で再設定する必要がある。
</details>

# 導入

BlenderMarket でアドオンを購入する。

https://blendermarket.com/products/auto-rig-pro

個人なら一番上の **Full** を購入すれば良い。Lite には必須機能が入っていない。
結構良い値段するがアップデートはずっと無料。

![2024-09-04_01h40_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/046b17bd-1821-64db-f013-4af9d1496324.png)

:::note warn
BlenderMarket は購入したアドオンを管理しているわけではなく、購入履歴が残るだけなので入手済でも多重購入出来てしまう。
既に購入済でないか気を付けること。（過去のセールの時とか）
:::

購入したら **auto_rig_pro_xxxxx.zip** をダウンロード。
いくつか並んでいるが基本的にはこれ一つで良い。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/9880b154-86d2-2a0d-d519-322dd014b1a7.png)

:::note warn
ダウンロードした zip は解凍しないこと。
:::


ダウンロードが完了したら Blender を起動し、編集 > プリファレンス > アドオン > インストール ボタンから先ほどの zip を選択。通常のアドオン追加時の流れと同じ。


# 前準備

### モデルを配置する

- シーンの中心 (0,0,0) に配置する
- 正面(-Y方向)を向かせる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/dbb4d5ef-71fc-3624-5194-38fd6b9ffa92.png)

### トランスフォームを適用しておく
- オブジェクトモードでオブジェクトを選択して **Ctrl + A** , **全トランスフォーム**

### ポーズについて
- 指の自動検出用に**手のひらが地面に向いている**必要がある。これは後述の Smart 機能の為
- デフォルトのポーズは **T** と **A** どちらでも良い（後で変えられる）

# リギング

ARPの機能でモデルにリグを追加する。
まずはじめに、ARPのリグ設定済 **Armature** をシーンに追加する。

## Armature の追加について
Armature の追加方法として、いくつかのプリセットから選択して追加するか、もしくは **Auto-Rig Pro: Smart** 機能を用いて自動生成するか、の２つの方法がある。

- プリセットの場合はボーンの位置やサイズを手動でモデルに合わせる必要があり、
- Smart の場合はその工程を自動化出来るが、利用出来るのは**ヒューマノイドのみ**

:::note info
今回はヒューマノイドなので、この **Smart** 機能を使用して**モデルの形状に合わせてArmatureを自動生成**する。
:::

## Auto-Rig Pro: Smart

Smart とは Armature をモデルの形状に合わせて自動生成する為の便利機能。
前述の通りヒューマノイド限定。

### Smart を開始する

Smart はモデル上の主な人体パーツの位置を示す為の **マーカー** をいくつか配置することで完了する。まずはマーカー設置前の段階として下記の手順を行う。

1. オブジェクトモードにして**人体オブジェクトを選択**
1. サイドバー (表示されてなければ N キー）の **ARP** を選択
1. **Auto-Rig Pro: Smart** セクション > **Get Selected Objects**
1. **Full Body** > OK

:::note info
選択するオブジェクトは人体形状の検出用なので必要なものだけ選択すれば良い。
:::

![2024-08-31_01h58_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/90a4d70d-9a81-e33a-384a-9f65529f223a.png)

### マーカーを配置する
![2024-09-02_02h17_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/cebb06f8-be4b-94fa-2431-b7e58e7efe79.png)

次に体の各部位を示す **６つのマーカー** を順次配置していく。
Armature は **このマーカーを基準にしてメッシュ形状から自動配置** される。

#### マーカー配置の流れ
メニューは最初のマーカー追加ボタンである **Add Neck** (首) が表示されている状態。

![2024-08-31_02h47_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/444b77b4-53e0-b2d9-4f8e-797760fc4969.png)

**Add Neck** を押すと **3D Viewport 上に丸いマーカー**が表示されるので、カーソルを動かして大体の首の位置まで移動させてから左クリックで配置確定する。

:::note warn
ボタン押下と同時にボタンは次の Add Chin（あご）に変化するが、マーカー配置前にクリックしてはいけない。必ずマーカー配置後に次のボタンを押すこと。
:::

- まちがえても Ctrl + Z で元に戻せる
- 一度置いたマーカーは選択して G キーで移動出来る
- カメラは自動で正面図に切り替わっているが正面図のまま配置で良い
- マーカーは割と適当に配置しても OK

残りのマーカーも順次設置していく。Ankles まで配置出来たら次の作業へ。

```
Neck (首) → Chin (あご) → Shoulders (肩) → Wrists (手首) → Spine Root (股の上あたり)
 → Ankles (足首）
```

※マーカー設置の流れを理解する為の動画を用意してみた。そんな難しくはない。
![ARP_Smart_Marker_Anim.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/9354629e-7210-e26f-9f79-90db6a0cef72.gif)

マーカー追加以外の２つの便利ボタンについても解説しておく。

#### Restore Last Session ボタン
以前マーカーを設置したことがあるのであれば、**同じ配置で復元してくれる**。
マーカー配置後の手順からやり直したい時に便利。

#### Cancel and Delete Markers ボタン
現在実行中の Smart 機能をキャンセルし、配置途中のマーカーがあれば削除する。
なんかよくわかんなくなったら押す。

:::note warn
Turn と ミラーは触らずにそのままで良い
:::

### 確定して Armature を生成する

最後のマーカーをセットした時点で Auto-Rig Pro: Smart セクション内の項目が下記の様に変化する。ここでは **人体ボーン構造の初期設定** (指や背骨の数等) と、**Go! ボタン**による確定を行うことが出来る。今回触るのは赤枠で囲った２か所のみ。

<img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/676b34e0-4f0b-c709-9c5d-533e7ca02772.png">

#### Skelton Settings Presets
初期設定のプリセットは **Skelton Settings Presets** のドロップダウンから選択する事が出来るが、大体の項目は次のリファレンスボーン編集工程でも変更可能だと思う。
今回は **UE4 Mannequin** を選択する。

![2024-09-02_02h07_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/13265a3d-38b4-ac61-fce0-51db3947bb48.png)

何故 UE5 で使うのに UE4 Mannequin にしたのかというと、UE5 Mannequin は無茶苦茶ボーン数が多くて自分の用途には過剰すぎるから。（背骨が６、首が２もある）

↓ UE5 Mannequin
![2024-09-02_02h48_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/bc7c18e0-8ee8-ea63-54a5-5f048c97685d.png)

ARP Default と UE4 Mannequin の違いは背骨の数が３か４かの差ぐらい。
あとは背骨の曲がり具合。（Unity Humanoid なら ARP Default で良さそう）

#### Go! で確定

![2024-09-06_03h03_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/bd710572-a2ec-b5ca-64ec-683f3d87fe89.png)

プリセットを選んだら他は触らずに Go! ボタンを押して Armature を生成する。
これで Smart 機能での作業は終了。

## リファレンスボーン編集

Smart による Armature 生成直後の画面はリファレンスボーン編集状態となっている。
（一番上の Auto-Rig Pro セクションが閉じていたら開いておく）

![2024-09-02_03h16_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/bc3df681-b4f5-93d1-5045-545d575f97f0.png)

:::note info
ARPの Armature の中には **リファレンスボーン** と呼ばれる **ガイド用のボーン構造** が含まれており、リグはこのリファレンスボーンの配置や設定を元に自動生成される。
:::

リファレンスボーンにはボーンの分割数指定、コントローラーの追加など様々な設定を追加で加えることが出来るが、まず必要なのはそれぞれの**ボーンの配置調整**。

ボーンの配置はモデルの形状や関節部分のトポロジー、最終的なモデルの用途によっても変わってくるので、この工程はメッシュ側の修正もしつつ何度も調整が必要になるが、**ひとまずポーズが取れるようになるまでの全体の流れを解説する為に、おおまかな修正だけを行い先へ進む**。

参考：

https://www.slideshare.net/slideshow/guilty-gear-xrdtips-240121572/240121572

### ボーンの位置合わせ

今回はおおむね良い感じで配置されているが、横から見ると頭から背骨にかけてちょっとズレているのでそこだけ直しておく。

![2024-09-03_02h30_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/b8066df3-d396-731f-03cd-2076bb9bfcc8.png)

修正方法は通常のボーン編集と同じで、各ボーンの部位を選択して G 等で動かしたり伸ばしたりするだけ。

#### 左右対称のボーンを修正する場合の注意点
左右対称のボーンを調整する場合には、**X ミラー**のチェックが付いているのを確認すること。忘れて動かした後は、編集した**片側のボーンだけを選択して RClick > 対象化** でも反映される。

![2024-09-03_02h39_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/cd6f1745-d246-b364-31af-b2148b7ba260.png)

#### 肘と膝の曲がる方向について

IK で肘と膝の関節が曲がる方向はボーンの角度から自動算出される。

この方向については **Show IK Directions** を有効にしてボーンを選択すると、緑色のライン表示で確認することが出来る。（腕であれば上腕か前腕どちらかのボーンを選択）

![2024-09-06_21h13_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/f9b66b66-44d3-9d40-2339-fee33066b271.png)

デフォルトの配置では角度がついているが、角度調整したい場合はこの緑のラインを見ながら調整する。少し調整するだけで結構ラインが動いてしまうので、G でボーンを移動する場合は Shift を押しながら少しずつ動かすとやりやすい。

:::note info
自動算出の為に**関節部分にはわずかに角度がついている必要がある**。

角度を付けずまっすぐにした場合、たとえ緑のラインが肘方向に向いていたとしても IK が正しく機能せず、腕が曲がらない場合がある。（Blender の IK の制限っぽい？）
:::

##### 余談：手首のねじれ対策

今回作ったモデルだと腕の関節が肘に寄ったまま手首を回転させると前腕が歪んでしまうので、**この記事の後から**出来る限りまっすぐにした。

ほかにもツイストボーン数を 3 に増やしたり、前腕のメッシュをプロポーショナル編集であらかじめ 90 度捻ったりとかで対策。

![2024-09-07_00h22_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/e89ddd04-b617-897b-bdd6-8039930d1bda.png)

### Limb Options

**ボーンを選択してから Limb Options を押す**と、各部位に対するオプション設定メニューが表示される。Smart で設定されていた背骨の数などもここから変更することが出来る。

- ある程度の部位毎なので、例えば上腕と前腕はどちらかに設定したら同じになる
- ここでの設定は**ミラーされない**ので左右対称の部位にも同じ設定をする必要がある

![2024-09-06_23h28_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/7be5e58d-ab54-483b-9261-eee8ca2f4e46.png)

例：腕のボーンのオプション設定
![2024-09-06_23h31_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/4a7ec889-3c16-f856-73e6-a6f69e5f6099.png)

**今回はデフォルトのままにするので触らない**が、マニュアルの[ここら辺](https://www.lucky3d.fr/auto-rig-pro/doc/auto_rig.html#limb-options
)に細かく記載されているので詳しく知りたい場合は読んでみると良い。

※先ほどの肘と膝に関する話の中で少し説明した通り、この記事の後で腕の Twist Bones のみ 3 に増やしている。（Unity Humanoid の場合は 1 という制限があるらしい）

#### その他
方向を維持したままボーンの長さを調整したい時は、ボーンの Tail を選択してマニピュレーターで軸を引っ張る方が楽かもしれない。座標系はノーマルにする。

![2024-09-03_02h40_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/51ba3a55-6957-fe41-e516-1248f4871845.png)

### Match to Rig でリグへ反映する

現状こんな感じ。ほぼ Smart で生成されたままの状態。

![2024-09-03_21h02_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/3280f1a0-01ef-e9ed-9d42-6e431fdfc04c.png)

調整がおわったら **Match to Rig** ボタンを押すとリグに反映される。 

![2024-09-03_02h52_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/9a7f9e8c-caa9-9b1e-3d94-3bd2e687bdf0.png)

これでリギング作業は一旦終了。
画面はポーズモードでリグの各種コントローラーが表示されている状態になるはず。

![2024-09-03_03h30_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/ee6deee0-259f-0090-df17-aeedfefccf8d.png)

問題なければ次のスキニングへ進む。

:::note info
**リファレンスボーン編集には簡単に戻ることが出来る**。
Armature を選択した状態で **Edit Reference Bones** を押すだけ。編集を終わる際は Match to Rig。

![2024-09-05_02h04_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/edc7fda7-ff80-e4ee-142e-5d015a2605e5.png)
:::

#### 補足：Armature の削除について

Armature を選択し、Rig タブの一番上にある **delete_arp** ボタンを押すと削除出来る。

![2024-09-04_03h19_37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/17329c80-3809-ece0-1156-6af94bfde99f.png)

# スキニング

リグが生成されてポーズモードになっているが、この時点ではまだスキニング前なのでポーズを付けることは出来ない。ARP の**スキン**タブにて **バインド** を行うことでスキニングが完了する。（ARP のバインドとはメッシュとボーンの紐づけ ＋ 自動ウェイト付けのこと）

Auto-Rig Pro メニューの スキン タブに切り替える。

![2024-09-03_23h08_032.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/df90dabc-cdd6-553e-eb4d-98bd2b431273.png)

## Binding Settings

![2024-09-03_23h08_031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/7dbc9adb-f6cd-2aa0-22bd-338f3b4554b3.png)

このセクションでは **自動ウェイトエンジンの選択** および **自動ウェイト改善用のオプション** を設定する事が出来る。今回は画像通りの設定で問題は無いと思う。

<details><summary>エンジンの簡単な詳細について</summary>

エンジン選択はどれだけ自動ウェイトでショートカット出来るか？だけなので、ウェイトに問題がある場合は自分で修正するでも良いと思う。

#### Heat Maps
デフォルト。Blender 標準の自動ウェイトと何が違うのかは良く分かってない。つながってないメッシュには弱くて不要なウェイトが飛んだりする弱点はあるが、性能が悪いわけではない。

#### Voxelized
服や装飾等、複雑なメッシュを含む場合はこちらを選ぶと良いかも…？らしい。
試したことがないので良く分かってない。

#### Voxel Heat Diffuse Skinning (addon)
addon と書いてある通り、こちらは[有料の別アドオン](https://blendermarket.com/products/voxel-heat-diffuse-skinning)。Voxelized の上位版。
（インストールすると選択出来るようになるが、ARP 専用という訳ではなく作者も別）

つながってないメッシュも綺麗にウェイト付けされるので服や装飾ありのメッシュに強い。
全体的に見て Heat Maps より良い結果になるかどうかはわからない。

特に指などの小さいパーツに対しては精度が落ちるので、結果に問題がある箇所は少し下のバインドセクションにある Selected Vertices Only を選んで、**選択中の頂点** のみ Heat Maps で上書きするのが良い。
</details>

## バインド

![2024-09-03_23h08_033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/724dd9ba-51b2-73cc-074e-524e766c8a84.png)

こちらも設定は画像の通り。

:::note warn
注意点として **体積を維持** のチェックは必ず外すこと（デフォルト ON）
この機能はゲームエンジン側で対応していない。
:::

設定を確認したら下記の操作でバインドする。

1. オブジェクトモードにする
1. Shift を押しながらバインドするオブジェクト(複数可)、Armature の順に選択する
1. Bind ボタンを押す

バインドが終わっても**何の表示も出ない**がこれでバインド完了。

バインドが終わればポーズが付けられる状態になっている。
問題なければ次のポーズ確認に進む。

<details><summary>バインド挙動の詳細</summary>

- オブジェクトのモディファイアーに rig という名前の Armature が追加される
- オブジェクトが Armature のコレクション配下にリンク複製される
- オブジェクトに各ボーンのウェイト用頂点グループが作成される
- 自動ウェイトペイントされる
</details>

### 補足：Unbind について

Bind ボタンの横にある **Unbind** ボタンは、バインド済のオブジェクトを選択してから押すと追加された **Armature モディファイアーと頂点グループを削除**してくれる。

ARP を削除する場合は、Unbind してから delete_arp ボタンを押すと**完全削除**出来る。
頂点グループの扱いについてだけ注意。

:::note warn
頂点グループは**自分で設定した物も含めて全部削除される**ので、削除されたくない頂点グループはあらかじめロックしておくこと

![2024-09-04_03h37_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/1409b94a-c01a-7cd6-32b9-88f5fb02cf50.png)
:::

:::note warn
バインド時に自動でリンクされたオブジェクトは Armature のシーンコレクションに残るので、不要なら自分で**リンク切断**する必要がある。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/cee8a077-3b60-8af7-ce4b-30bf363f4171.png">
:::

# ポーズ確認

## ポーズを変更してみる

ポーズモードに入り、**コントローラーを何か一つ選択してから移動(G)や回転(R)** すると、メッシュが連動して変形するようになっているはず。

足のコントローラーを**移動**で動かしてみるとこんな感じ。

![2024-09-04_23h31_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/5113a2e5-47de-ca94-b952-14b5226d30da.png)

移動 / 回転 のどれを行うべきかはコントローラーによって違う。
スケール(S) で動くような仕組みが入っているコントローラーも一部ある。

- 手のひら等の回転にはトラックボールモード(R, R)も便利
- 背骨などは複数選択、ピボットをそれぞれの原点にしてまとめて回転すると楽

ポーズは初期状態に戻せるので色々触って確かめてみるのが一番早い。

:::note info
これまでの Edit Reference Bone > Match to Rig > Bind の流れは何度も繰り返し行うことが出来るので、何かしら問題があれば前の工程に戻って修正する。
:::

## ポーズをリセットする

ツール内にある **Reset All Pose** ボタンでポーズを初期状態に戻せる。

![2024-09-06_01h54_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/eecdd660-d484-e3d5-43e5-cefe6064b8a0.png)

標準のやり方であれば **A で全選択**（またはリセットしたいコントローラーを選択）して、**RClick > ユーザーのトランスフォームをクリア**などもある。

![2024-09-04_23h36_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/678944af-8f62-7348-3734-489086a58945.png)

## IK と FK を切り替える
IK と FK の切り替えも ARP のメニューではなく、ツール メニューにある。

![2024-09-05_03h01_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/72298da3-40b9-1346-679f-8928c568ba14.png)

例えば腕の IK / FK を切り替える場合、**腕のコントローラーのどれかを選択**してから **Snap IK-FK** を押すと切り替えが出来る。

![2024-09-05_03h03_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/66a81ba4-cd4f-d87f-6042-b94a6447a782.png)

## 初期ポーズを変更する

ポーズを変更してから Auto Rig-Pro リグ タブ内の Pose Tools セクションにある**レストポーズとして適用**ボタンを押すと、初期ポーズを変更することが出来る。

![2024-09-07_00h53_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/09c6a1b1-ca52-ece8-0890-d7acda8b1480.png)

このボタンを押してから **Match to Rig** を押す必要があるので注意。
あとなぜか FK モードに切り替わる場合があるので必要なら自分で IK に戻す。

# ウェイトペイント

自動ウェイトで問題が出た箇所は手動でペイントして修正する必要がある。

:::note info
細かい手動ウェイト調整は最後に行う。

再バインドすると**手動で付けたウェイトは上書きされてしまう**ので、メッシュの編集、リファレンスボーンの編集で改善できる箇所があるのであれば、出来る限りそちらを先に行ってからの方が良い。**特にリファレンスボーンの配置調整は重要**。
:::

ウェイトペイントはコントローラーではなく**変形ボーン**に対して行う。

現在はコントローラーのみが表示され、変形ボーンは非表示となっている状態なので表示を切り替える必要がある。

1. オブジェクトモードに戻る
1. Armature を選択して Armature のプロパティを開く
1. ボーンコレクションの **Deform** (変形ボーン) の目玉アイコンのチェックを付ける

![2024-09-06_02h06_38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/f1c056e2-abaf-3d4e-a141-16074ae71328.png)

ビューポート表示の**最前面**にもチェックを入れる

![2024-09-06_01h20_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/5bc27201-d795-51ac-07a0-0bd34d8c3bc0.png)

試しに変形ボーンのみを表示してみた状態がこちら。

![2024-09-06_01h29_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/773da061-337d-f75e-5a32-e22860f828f8.png)

ウェイトペイント方法に関しては標準と同じ。

※ポーズモードで変形ボーンを動かしてもメッシュ変形しないっぽい？IK / FK のコントローラーでのみ動くように制限されてそう。

## 今回発生した問題を修正してみる

耳や目のあたりに意図しないウェイトが飛んでしまっているのでこれを直す。
本体とメッシュが繋がっていないので誤検知されてしまっている。

![weight01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/90d0cc8e-4e42-6c46-444d-bfcacf6c50f0.gif)

※Heat Maps はこういう刺しているだけの繋がってないメッシュに弱い
![2024-09-07_03h44_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/f5679719-e121-09f1-4248-63659b5bdd8f.png)

バインドエンジンを Voxel Heat Diffuse Skinning にすると問題解消するが、ここ以外は Heat Maps の方が良さげな結果だったのでウェイトペイントで直すことにする。
ここは head.x に 100% 追従するので簡単。

### 事前準備

#### ウェイトを見やすくする

ウェイトペイントオーバーレイでウェイト0 の項目をアクティブにしておく
これをするとウェイトが載っていない箇所が黒色になるのでわかりやすい

![2024-09-07_02h41_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/bb16debb-4ca5-f5d6-1060-333451612ddc.png)

#### ボーン選択を有効にする

ペイント中に Alt + LClick でボーンが選択できるようになる

![2024-09-07_02h43_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/344226fc-f84e-66a6-e122-1311bdfab96c.png)

#### 自動正規化を有効にする

![2024-09-07_02h46_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/d9b304eb-6a4f-b942-bc7e-e4bae86367d1.png)

#### ブラシ設定する

今回は ウェイト 1.0 / 強さ 1.0 で良い

![2024-09-07_02h52_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/d3f75d47-4321-8803-996f-a03f18f9a7ab.png)

#### ミラーモディファイアを使ってる場合
オブジェクトのモディファイアーの順番に気を付ける。ミラーとかは上にしてアーマチュアは最後。

### ペイント

1. オブジェクトモードにする
1. Shift を押しながら アーマチュア > オブジェクトの順に選択
1. ウェイトペイントモードにする
1. Alt + LClick でボーンを選択する（今回は head.x を選択）

![2024-09-07_02h50_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/678d410b-d2b5-b21c-15a2-56e7fcdd5e34.png)

頭部の赤くなっていない箇所を塗りつぶしていく。
ウェイトペイントは頂点に対して行うので面じゃなくて頂点を塗る気持ちで。
F > カーソルを動かすとブラシサイズを変更することも出来る。

![2024-09-07_02h54_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/4fc7ff80-2f84-7085-8049-ab920446910a.png)

耳は頭にめり込ませているので内側も塗る。
ブラシ：前面のみのチェックを外し、減衰：透過 にするとメッシュを貫通させて塗ることが出来るが、間違えて関係ない頂点に塗ってしまわないよう注意。

頭部全体を塗り終わったら修正完了。

![2024-09-07_03h38_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/1072ad4e-fe41-c172-d963-8efba56350e9.png)

※ 逆に head.x 以外のボーンの頭部メッシュへの影響を 0 で消していく、でも良かったかもしれない。

# エクスポート

Unreal Engine 向けに FBX 形式でエクスポートする。
マニュアルは[ここを参照](https://www.lucky3d.fr/auto-rig-pro/doc/ge_export_doc.html#game-engine-export)

ここからアニメーションとゲームエンジン側での扱いによって分かれてくるのだけど、書いてる人にあまり知識がないので正しく理解できていない項目が多い。

### スケールを合わせる
出力前に寸法を調整しておく。用途によるとは思うが実寸サイズにしておけばよさげ。
メッシュと Armature の両方を合わせて調整しておく。
この記事のモデルはモデリング時に調整済。
あと、モデルのスケールが小さすぎるとリターゲット時に問題が起こる可能性があるらしい。

### Armature を選択する

![2024-09-08_04h38_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/8f2a16c0-169d-f7d8-1f65-264e95906125.png)

### エクスポート ファイルビューを開く

ファイル > エクスポート > Auto-Rig Pro FBX (.fbx)

![2024-09-08_13h00_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/18cc89f0-c513-aaff-f6b1-81e8546635c1.png)

※ サイドバーの ARP > Auto-Rig Pro: Export セクションからも可能

### リグのタイプ選択とチェック＆修正

エクスポートするリグのタイプを Unreal Engine / Humanoid にする。

![2024-09-08_13h04_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/a6aa1d1f-cc88-c61b-20a4-25d10595d6f9.png)

続けて２つのボタンを押しておく

#### Check Rig

エラー確認のみ。問題なければOK

![2024-09-08_04h04_37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/8f36fa96-ac9a-f327-5469-2c0d674ccf7d.png)

#### Fix Rig

下記の変更を適用する

- 腕と脚のストレッチを無効にする
- 体積を維持 を無効にする

![2024-09-08_04h05_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/62499299-adb1-e4ce-992f-3b88c5211741.png)

腕と脚のストレッチ無効化については良く分からない…。ツール でいじることが出来る[これ](https://www.lucky3d.fr/auto-rig-pro/doc/rig_behaviour_doc.html#stretch-length)だと思うけど詳しくないので理由は不明。ゲームエンジンで問題があるのでいじっちゃいけない機能なのかもしれない。

体積を維持についてはバインド設定ですでに無効にしているはず。
有効化した場合は Blender 上では手首の捻じれ問題が解決するのだけど、ゲームエンジン側で使えない機能なので最初から無効化してポーズチェックした方が良い。

### Rig タブ

各種詳細設定は画像の通り。

[マニュアル](https://www.lucky3d.fr/auto-rig-pro/doc/ge_export_doc.html#rig)

![2024-09-08_13h24_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/75c68b77-95e1-5c75-b789-9043196a3e85.png)

### アニメーション タブ

[マニュアル](https://www.lucky3d.fr/auto-rig-pro/doc/ge_export_doc.html#animations)

今回アニメーションは入れていないのであまり触らない。

![2024-09-08_13h18_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/61d66014-f934-b98d-a856-cd2c8a6d452d.png)

### その他 タブ

[マニュアル](https://www.lucky3d.fr/auto-rig-pro/doc/ge_export_doc.html#misc)

![2024-09-08_14h40_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/92a936a0-a522-19fa-8ac7-cd8b58c9304c.png)

- スムーズ : 法線にするとUnreal Engine側で警告が出る（無害らしいけど）
分割法線について良く分かってないのでとりあえず面にした。

- Apply Subsurf Modifiers : 今回のモデルはそもそも Subsurf 適用済なので意味ないけど、ローモデルとして出力したい時は無効にするのかな…？

- 三角面化 : FBX 化するときに三角面にするか、ゲームエンジン側で三角面化するかどうかの違いだと思う

### エクスポート実行

最後にファイルの出力先を選んでエクスポート実行。

![2024-09-08_13h25_53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/d062afaa-4a58-9a21-c896-52fa336a2fc9.png)

おわり。

![2024-09-08_15h34_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18334/1f1b574e-f221-6750-8284-91bbd604c01d.png)