[ue4]ボーンアニメーションの再利用　MMDモデル編


#【前提】
__・Unreal Engine 4.9.2の使用を前提に記述しています。ただし、現時点(2015/12/20)の最新版の4.10.1でも同様に動作します__
__・うそを書くつもりはありませんが、私の使用経験に基づいて記述しているため、間違いが多分にある可能性があります__
__・私の環境がWindowsなのでWindows環境前提です__
__・できる限り初心者前提で書くつもりです__
__・twitterのアンケートでMMDのモデルに関心がある率が高かったためMMDのモデルを前提に再利用を説明します__
__・MikuMikuDanceはこちらです__
http://www.geocities.jp/higuchuu4/
__・ニコニコ立体さんはこちらです__
http://3d.nicovideo.jp/works/td14712

__・【超重要】MikuMikuDanceのモデルは、MikuMikuDanceで使用される（レンダリング）ことを前提として作成されているものが多く、他の環境での使用を前提としていないため、モデラーさんによっては他の環境での使用を控えるよう注意書きをされている場合があります__
__　【超重要】他のMMDモデル用に作成されている他人のモデルを使用される場合は、作者さんが作成されているReadMe等を熟読し、モデルをお借りしているのだという意識の元で自己判断での使用をお願いします__
__・MMDモデルの読み込みは、当記事の前提記事をお読みください__
http://qiita.com/housakusleeping/items/4e171f2ab9a1805c4e77

__・各httpのリンクを開く場合はブラウザの右クリックから「新しいタグで開く」が便利です__
__・手順に使用されている画像が小さくて見づらい場合が画像をクリックしてください。大きくなります__

#【目的】
UE4でプレイヤーのキャラクタのゲーム内アニメーションをグレーマン先生（ブルーマン先生）等のプロトタイプから
変更する方法を解説します。

#【モーションのリターゲット】
##【骨】
人体のモーション（アニメーション）を再利用する場合、3Dモデルの骨の構造を理解することは重要です。
通常、3Dモデルの骨のことをボーン（Bone）と呼びます。
ボーンは回転、移動等を行って3Dモデルを曲げたり移動させたりする場合に使用します。

##【主要な部位】

異なるボーン構造をもったモーションをリターゲット機能を利用してモーションを変換して再利用する場合

人体の以下の部分の骨の名称が重要になります。

・頭
・首
・肩（左右）
・上腕（左右）
・前腕（左右）
・手首（左右）
・背中
・腰
・大腿（左右）
・下腿（左右）
・足首（左右）

手の指として
・親指（左右）
・人差し指（左右）
・中指（左右）
・薬指（左右）
・小指（左右）

これらの部分の骨の位置と名称が重要になります。
簡単ではありますがwikipediaに骨の名前が書かれています参照ください
https://ja.wikipedia.org/wiki/%E4%BA%BA%E9%96%93%E3%81%AE%E9%AA%A8%E3%81%AE%E4%B8%80%E8%A6%A7

##【ue4の標準ボーン】
ue4の標準ボーンと思われるこのキャラクタのボーン構造を、まず、理解することから始めます。

ue4のテンプレート等で使用されている人体キャラクタモデルです。
![2.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/9f28c945-2128-95ea-7ab7-4b2f2e77db28.jpeg)

このモデルのボーン構造はこうなっています。
![1.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/05ae1350-2e55-ffa2-1ceb-570ded206a8a.jpeg)

手の指の骨はこうです
![3.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/6e5a90b0-ab96-dcee-ce5a-b55fb508f88a.jpeg)


これを上記した主要な部位に当てはめると

・頭
head
・首
neck_01
・肩（左右）
clavicle_l 左
clavicle_r 右
・上腕（左右）
upperarm_l 左
upperarm_r 右
・前腕（左右）
lowerarm_l 左
lowerarm_r 右
・手首（左右）
hand_l 左
hand_r 右
・背中
spline_01
spline_02
spline_03
・腰
pelvis
・大腿（左右）
thigh_l 左
thigh_r 右
・下腿（左右）
calf_l 左
calf_r 右
・足首（左右）
foot_l 左
foot_r 右

手の指として
・親指（左右）
thumb_01_l 左手
thumb_02_l
thumb_03_l

thumb_01_r 右手
thumb_02_r
thumb_03_r

・人差し指（左右）
index_01_l 左手
index_02_l
index_03_l

index_01_r 右手
index_02_r
index_03_r

・中指（左右）
middle_01_l 左手
middle_02_l 
middle_03_l 

middle_01_r 右手
middle_02_r 
middle_03_r 

・薬指（左右）
ring_01_l 右手
ring_02_l 
ring_03_l 

ring_01_l 左手
ring_02_l 
ring_03_l 

・小指（左右）
pinky_01_l 左手
pinky_02_l 
pinky_03_l 

pinky_01_r 右手
pinky_02_l 
pinky_03_l 

となります。

この辺りの骨の命名は、命名する人によってもツールによっても違いますので注意が必要です。
ue4の標準構造の命名規約がこうなっていると言うことです。
（_l _r等の左右の名前の付け方も前だったリ後ろだったりします）

例えば、指などの名称も

■ 親指：Thumb
■ 人差し指：Pointer Finger, Index Finger, Forefinger, First Finger,
■ 中指：Middle Finger, Long Finger, Second finger,
■ 薬指：Ring Finger, Third Finger
■ 小指：Little Finger, Pinkie, Pinky, Fourth Finger

のように様々な名称付けがされている場合がありますので、他のツール（他の人）で作成したボーンの構造には注意が必要です。
当然ですが、腰などの他部位に関しても同じことが言えます。

##【MMDの標準ボーン】

MMDのモデルであるpmxのニコニコ立体さんのモデルです

![24.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/ec28fb33-bc3e-8def-040c-9b877af2a189.jpeg)

骨の構造はこうなっています。
![22.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/294c20f8-55fb-9993-8684-f311a49359bc.jpeg)

手の指の骨はこうです

![23.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/820f0862-f2ab-262f-a76c-da28d4ca8def.jpeg)

次にMikuMikuDanceのモデルの保存形式であるpmd,pmxの標準ボーンを上記の主要部位に当てはめると

・頭
頭
・首
首
・肩（左右）
左肩
右肩
・上腕（左右）
左腕
右腕
・前腕（左右）
左ひじ
右ひじ
・手首（左右）
左手首
右手首
・背中
下半身
上半身１
上半身２
・腰
腰
・大腿（左右）
左足
右足
・下腿（左右）
左ひざ
右ひざ
・足首（左右）
左足首
右足首

手の指として
・親指（左右）
左親指０
左親指１
左親指２

右親指０
右親指１
右親指２


・人差し指（左右）
左人差１
左人差２
左人差３

右人差１
右人差２
右人差３

・中指（左右）
左中指１
左中指２
左中指３

右中指１
右中指２
右中指３

・薬指（左右）
左薬指１
左薬指２
左薬指３

右薬指１
右薬指２
右薬指３

・小指（左右）
左小指１
左小指２
左小指３

左小指１
左小指２
左小指３

##【ボーンの対応表】
| 骨の部位（ベース） | ue4標準ボーン | MMD標準ボーン |
|:-----------|------------:|:------------:|
| 頭       |        head |     頭     |
| 首     |      neck_01 |    首    |
| 肩（左）| clavicle_l |    左肩     |
| 肩（右）|clavicle_r |     右肩     |
| 上腕（左）       | upperarm_l |    左腕   |
| 上腕（右）   |     upperarm_r |   右腕   |
| 前腕（左）   |     lowerarm_l |   左ひじ   |
| 前腕（右）  |     lowerarm_r |   右ひじ    |
| 手首（左）   |     hand_l |  左手首    |
| 手首（右）   |     hand_r |   右手首   |
| 背中1   |    spline_01 |   下半身   |
| 背中2   |    spline_02 |   上半身１    |
| 背中3   |    spline_03 |   上半身２    |
| 腰   |    pelvis |   腰    |
| 大腿（左）   |    thigh_l |   左足   |
| 大腿（右）   |    thigh_r |   右足   |
| 下腿（左）  |    calf_l |  左ひざ   |
| 下腿（右）   |    calf_r |   右ひざ    |
| 足首（左）   |    foot_l |  左足首    |
| 足首（右）   |    foot_r |  右足首    |

| 骨の部位(詳細設定） | ue4標準ボーン | MMD標準ボーン |
|:-----------|------------:|:------------:|
| 親指（左1）       |        thumb_01_l |    左親指０     |
| 親指（左2）    |      thumb_02_l |    左親指１   |
| 親指（左3）| thumb_03_l |     左親指２     |
| 親指（右1）       |        thumb_01_r |    右親指０     |
| 親指（右2）    |      thumb_02_r |    右親指１    |
| 親指（右3）| thumb_03_r |     右親指２     |
| 人差し指（左1）|index_01_l |      左人差１      |
| 人差し指（左2）|index_02_l |      左人差２      |
| 人差し指（左3）|index_03_l |      左人差３      |
| 人差し指（右1）|index_01_r |      右人差１      |
| 人差し指（右2）|index_02_r |      右人差２      |
| 人差し指（右3）|index_03_r |      右人差３      |
| 中指（左1）       | middle_01_l |    左中指１    |
| 中指（左2）       | middle_02_l |    左中指２    |
| 中指（左3）       | middle_03_l |    左中指３    |
| 中指（右1）       | middle_01_r |    右中指１    |
| 中指（右2）       | middle_02_r |    右中指２    |
| 中指（右3）       | middle_03_r |    右中指３    |
| 薬指（左1）   |     ring_01_l |   左薬指１    |
| 薬指（左2）   |     ring_02_l |   左薬指２    |
| 薬指（左3）   |     ring_03_l |   左薬指３    |
| 薬指（右1）   |     ring_01_r |   右薬指１    |
| 薬指（右2）   |     ring_02_r |   右薬指２    |
| 薬指（右3）   |     ring_03_r |   右薬指３    |
| 小指（左1）   |     pinky_01_l |   左小指１    |
| 小指（左2）   |     pinky_02_l |   左小指２    |
| 小指（左3）   |     pinky_03_l |   左小指３    |
| 小指（右1）   |     pinky_01_r |   右小指１    |
| 小指（右2）   |     pinky_02_r |   右小指２    |
| 小指（右3）   |     pinky_03_r |   右小指３    |


#【MMDのモデル読み込みプラグイン導入】

こちらの記事を確認して、ニコニコ立体さんをue4に持ってきてください。
http://qiita.com/housakusleeping/items/4e171f2ab9a1805c4e77


##【モーションリターゲット】

異なるボーンのモーションのリターゲットには大きく2つの方法があります。
1)ue4の標準リグ（ボーンではない）を使用する方法
2)異なるボーンのスケルタルメッシュのどちらかをリグ化する方法

###1)ue4の標準リグ（ボーンではない）を使用する方法

__１ ue4標準ボーンのリグ登録__

まず、ue4の標準ボーンをリターゲットするために設定します。

スケルトンをダブルクリックします。
![32.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/4228b564-8837-4ee8-4ae0-148452b71806.jpeg)

次にリターゲットマネージャを開きます。
![33.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/a1cb6159-bfb5-f177-007a-07af429a13ef.jpeg)

リターゲットマネージャです
![34.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/1dc21942-db93-4b88-1629-f71f2f8811fd.jpeg)

__ue4の標準リグを選択するため__
リグの選択画面で「ヒューマノイドリグを選択」をクリックします
![35.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/76bb0223-6ff9-94ec-4579-491692c683f3.jpeg)

下記のようにリグとボーンが同じ名称であるため、勝手に紐づけされ設定されます。
ue4の標準リグにはue4の標準ボーンと同じものが紐づけされています。
![36.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/cb24a2a9-ce04-5ec4-6cbf-5f63ce8bc504.jpeg)

体の部分です。
![37.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/348bcc06-bea1-7100-d87f-f84947b06e1d.jpeg)

手の指も勝手に紐づきます
![38.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/8a67877c-72f2-228f-a75c-3abecbd099cb.jpeg)

「ポーズを表示」ボタンをクリックしモデルのスタンスを確認します。
![39.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/cd9fa443-758d-e1b6-033c-29233d345655.jpeg)

以下のように確認画面が出ますので、モデルのリセット時の、ＡスタンスＴスタンス等を必ず確認します。
![40.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/4b5a8539-e8f6-4cf8-94a0-166d611dd315.jpeg)

また、ここで指や腕、足等々曲がっている等の問題があるとリターゲットが上手く実行できないため
ここで修正できるものは修正します。

以下の例は方の角度を修正しＡスタンスからＴスタンスに変更する例です。
![41.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/303f3698-e6e7-ea9e-86dc-3f6c3771ee18.jpeg)

ue4の標準ボーンの場合は特に何も修正が必要ないので、そのまま「ポーズの保存」ボタンをクリックします。
![42.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/5c9e1910-5ce0-7a46-3db2-110f511160d0.jpeg)

__２ MMDモデルのリグ登録__
ニコニコ立体さんのスケルトンをダブルクリックします
![2.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/9d6065ea-ae9d-ea78-3037-e1752a2029b2.jpeg)

リターゲーットマネージャを起動します
![1.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/f816bbde-f341-b762-c024-dbf58d7b5e40.jpeg)

__ue4の標準リグを選択するため__
リグの選択画面で「ヒューマノイドリグを選択」をクリックします
![3.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/cfc80cb7-7cb2-9a89-2f20-26e2c95815f6.jpeg)

【ボーンの対応表】を参考に、ue4の標準リグにMMDのボーンを紐づけていきます。

![25.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/b54e0c30-f721-d770-c226-2ea3a6fbc9ad.jpeg)

「詳細設定を表示」をクリックし指の設定画面を開きます。
![26.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/3be47609-5e50-ec3a-e4a6-b7aa840644dd.jpeg)

左手です
![27.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/2afb613b-43cb-7c96-31ac-d611e9e218bc.jpeg)

右手です
![28.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/4af59414-354b-cc92-5ad5-ca650f92563e.jpeg)

ボーンの設定が終わったら「ポーズを表示」ボタンでスタンスを確認します。
![29.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/da2c64e9-6ff2-5acb-09bb-7d46a0d869a0.jpeg)

以下のようにモデルの元となるポーズが表示されます。
![30.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/95c95f85-a9bf-b2fc-6772-a5a92ca9d545.jpeg)

ここで注意するべきは、モデルのＴスタンスとＡスタンスの違いです。
（後述します）
ただし、ue4標準ボーンとMMD標準ボーンは同様にＡスタンスであり特に確認は必要ありません。
ですので、このまま「ポーズを保存」ボタンをクリックします。
![31.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/9077e797-2b76-6e1f-cff7-e19b85fb6b67.jpeg)

次の【モーションの変換コピー】に進めます。

###2)異なるボーンのスケルタルメッシュのどちらかをリグ化する方法
ue4で標準に用意されている人型のリグであるhumanoidrigを使用せずに
自分でリグを指定する方法です。

例えばMMDのボーンをリグとして登録する方法です。
![4.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/478c8ae2-373b-8ab2-f42c-ac9a4fe98733.jpeg)

リグの元になるボーンを選択し、右クリックを押し「作成する」を選択後に「リグを作成」を選択します。
![5.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/0d15405d-96ee-118f-c89e-853736ddc75f.jpeg)
ＯＫをクリックします

コンテンツブラウザ上に新しい「リグ」が追加されます。
![6.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/1b882a64-3a7c-23ce-2c7e-4057a9627c8f.jpeg)

新たなリグを作成すると、リターゲットマネージャのリグ選択画面で追加したリグが使用できるようになります。
![7.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/3e1c072b-7b99-d01f-f215-634a5267f917.jpeg)

これを適用すると以下のように今回追加したリグが変換の型になって、ここに各ボーンを紐づけていくことになります。
この方法を使った場合、リグの元になったボーンはそのままボーンが紐づけられるため便利です。
![8.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/56999aea-1b83-7e23-347c-df791c79433f.jpeg)


感の良い方は気付かれたかと思いますが
このリグを使用してue4の標準ボーンをこのリグに紐づける場合、先程の「1)ue4の標準リグ（ボーンではない）を使用する方法」に逆のことをやることになります。

つまり、ue4の標準ボーンをMMDの標準ボーンに紐づける作業が必要になります。

詳細は説明しませんが、みなさん試してみてください。

#【モーションの変換コピー】
上記の異なるリターゲット設定が終わったら、モーションのリターゲットをしてみましょう。

とりあえず、試しに以下のアニメーションをMMDモデルにコピーしてみます。
![9.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/d0be9416-9222-c45b-a4d4-b814cb59ce1d.jpeg)

コピーしてリターゲットしたいモーションを選択します
右クリックしメニューを開き「別のスケルトンのコピーを作成」を選択します。
![10.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/c56272ee-fd6e-7751-a46c-6876fe54e824.jpeg)

以下のリターゲット画面が開きます
![11.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/6b3eb97d-aa6c-8e88-363b-937497018812.jpeg)

MMDのモデルを選択します
![12.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/f2b856d7-ad0e-e192-2139-5350f8012eb2.jpeg)

「選択」をクリックします
![13.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/6529d6ef-e330-4189-8ae4-fad4bac1a31f.jpeg)


リターゲットが開始されコピーされたMMDのモデルのアニメーションが再生されます。

![15.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/51d8c010-fa72-b81d-85f8-08387998dfe9.jpeg)

うまく行きました？

いえいえ、何かおかしくないですか？
![14.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/cfea870d-0389-e785-4f8e-35b636295f03.jpeg)

明らかに手首の座標が狂っています。

#【リターゲットの調整】
ここまでは、経験がなくてもある程度、クリアできる単純な手順です。
モーションのリターゲットで重要なのは、こういった不具合が起こったときに
トラブルを経験し、対処した経験の積み重ねによる調整です。

さて、なぜこのようなことが起こってしまったのか考えなければなりません。
一番、良いのは「なぜ？」と考えて色々なところを見直すことです

###【リターゲットのトラブル】

よくあるトラブルの例の一覧を箇条書きしておきます

・Ａスタンス、Ｔスタンスの誤り
　異なるボーンのリターゲットを行う場合、リターゲット元、リターゲット先でスタンスが違う場合
　どちらかのスタンスに合わせなければなりません

・余計なボーンの回転角度(rotation)が入っている
　異なるボーンのリターゲットを行う場合、できうる限り、各ボーンの回転角度は合わせる必要があります
　この例はよくおこります。そもそも、原理的にはＡスタンス、Ｔスタンスの違いもこれが原因です。
　また、スタンスポーズ（元のポーズ）をよく見ると、実は指が曲がっていたり等々
　私も沢山経験しました。

・左と右を間違える
　これは単純にリグに登録するときに左のボーンと右のボーンを間違える場合です。
　私の経験上、指等の登録時に陥りがちです。

・そもそもリグのボーン登録を間違える
　リグを登録するとき対応するボーンを正しく登録していない、英語のボーンの場合ありがちです。

※「モーションリターゲットは一日にしてならずじゃ」by 猪熊滋悟郎

###【この例の答え】

この、ue4の標準ボーンから、MMDの標準ボーンへのリターゲット時の答えは以下です。
（これですべて解決するとは限りません）

ue4の標準ボーンを開き、「ref pose」をクリックしてスタンスポーズ（大元のポーズ）を確認してみましょう。
![0.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/d6734640-5fc4-5d10-0fcf-a025a1dea289.jpeg)

この部分が明らかに回転（曲がって）しています。
![16.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/3cc17253-21e6-a523-9b02-d51146d844a1.jpeg)

次にMMDの標準ボーンを確認します。
まっすぐですよね
![17.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/afed08fa-29db-7ab6-eef3-4540951be5e6.jpeg)

ここを合わせて、リターゲットしてみましょう。

ue4の標準ボーンの画面からリターゲットマネージャを起動しポーズを修正します。
リターゲットマネージャの「ポーズを表示」ボタンをクリックします
![18.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/7610ae98-a12e-1993-b5ea-1fc76291f020.jpeg)

肘の部分のボーンに角度がついてしまっていますので、「-30」回転しできる限りまっすぐにします。
![19.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/315f1408-6728-f701-45a7-658339a58e79.jpeg)

逆の腕も実施します。こちらは「+30」です。
![20.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/7da90bba-7946-ae8c-d799-7ccee2d69498.jpeg)

修正したらポーズを保存をクリックし編集後のポーズを保存します
![21.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/0dcd05a5-8617-a333-05b3-bdfdceb7b6e4.jpeg)

再度リターゲットしてみます。
![22.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/ea64b8be-c546-137d-108f-51b5e2df5fbd.jpeg)

大分、改善されたこと思います
![23.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/527ad6f0-1cee-825c-2713-b30e52af67bc.jpeg)

この辺りの調整は、完全な正解がありません
よく見て、おかしいところを確認し調整していきましょう。


#【プレイヤーキャラの入れ替え】
ここまで、異なるモーションのリターゲットがなんとなく上手くいくようになったら
ゲーム上のプレイヤーのキャラを入れ替えてみます。

例として、サードパーソンのテンプレートのキャラクタをMMDの標準ボーンに変えてみます。
![24.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/727e9a7f-f6b5-59e7-564c-69ea8c4b7864.jpeg)

サードパーソンのプロジェクト上に上記の方法でMMDモデルを読み込み
リターゲットでモーションのコピーが正しく行われるところまで実施しておきます。

###【コントロール系の全てアニメーションのリターゲット】

プレイヤーキャラクタになっている「グレーマン先生」のボーンを選択し右クリックし、メニューを開きます
![25.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/fb68b33f-61c6-47e5-0676-a8c1a98aa7da.jpeg)

ここで「別のスケルトンへリターゲットする」を選択します

以下のダイアログがでますが「はい」をクリックします。
![27.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/674ef51c-45d3-7109-1182-402a7d8d67d1.jpeg)

リターゲット画面が出るので対象を選択し
![28.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/5061083f-7039-ba62-6eff-afe2a4619ae2.jpeg)

「選択」をクリックしリターゲットを行います。

この時点でエディタの「プレイ」ボタンを押しゲームを実行するとグレーマンがまったくアニメーションしなくなります。
![29.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/c233e451-af28-bda3-56a5-d78e0956a942.jpeg)

次に元々、プレイヤーをコントロールしていた以下のアクターのブループリントをエディタで開きます
![30.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/75d8f856-4874-d1d2-a2de-0fa272c386b8.jpeg)

ブループリントを開いたら「ビューポートタグ」を開き「Mesh]を選択します。
![31.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/421cea42-c6ab-e54b-f2c2-a958c1ce11ed.jpeg)

ここが右の赤枠で示す通り「グレーマン」のままになっています。

ここをMMDモデルに変更します。
![32.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/3d932997-b6d6-eabb-02b4-d633bc469824.jpeg)

以下のようにアニメーションしていれば成功です。
![33.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/71ad48d9-428c-799c-76f7-e93b4013f651.jpeg)

ここで、MMDモデルがまったく動かずＡスタンス等になっているようなら、どこかで間違っています。
上記をもう一度読み返し再挑戦してみてください。

上手くアニメーションされていたらブループリントをコンパイルします。
![34.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/e1d5d7d4-4e2f-8d0b-b389-87a4c16b8c9a.jpeg)

エディタに「プレイボタン」を押すとプレイヤーキャラクタが入れ替わり、アニメーションも適用されました。
![35.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/99fed32f-6f58-b11c-f2ef-f4605d769f75.jpeg)

なぜ、アニメーションのリターゲットだけでなくゲーム自体も問題ないかといいますと
この方法を使用すると
・アニメーション全て
・アニメーションブループリント（ステートマシンも）
・アニメーションブレンドスペース

の全てが新しいキャラクタに置き換わるからです。以下のように入れ替わっているはずです。

アニメーションブループリント
![37.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/02626696-9017-4e3c-e71b-71dcaacdd60f.jpeg)

アニメーションブレンドスペース
![38.jpg](https://qiita-image-store.s3.amazonaws.com/0/59114/64493222-b3bc-a9de-8143-aa514dca7893.jpeg)

#【応用】

この手順の応用を行うと以下のような動画も簡単に作成可能です。

[ue4] A Girl and Her Kite [WIP] 
https://www.youtube.com/watch?v=SynlYfasm-M

[ue4] A Boy and His Knife [He does not have a knife] 
https://www.youtube.com/watch?v=30nkgEnGEoc

ゲームだとこんな感じ
[UE4]鷺宮カノさんに私のゲームに来て頂いた[中野シスターズ」 
https://www.youtube.com/watch?v=8f38kkuDl20

#【おまけ】
今回、このブログを作成するために作成した途中経過のプロジェクト
ニコニコ立体さんとグレーマンのリグの紐づけだけ行ったプロジェクトを以下に置いておきます
リターゲットを試してみたい方どうぞ

https://drive.google.com/file/d/0B-7H8IjwA4OyZlJMT29HNlJfa1E/view?usp=sharing

#【最後に】
アニメーションデータの再利用は結構奥の深い分野です。
私のmotionbuilder使用時の頃からの経験からue4に置き換えて記述しています

モーションのリターゲットは、最終的には調整がすべてです。
この方法以外にも、モーションによるモデルのポリゴン抜け等に対処するために
加算キーを追加してモーション自体を修正することもあります。

みんさんもモーションを上手く再利用して、作成時間の節約をしましょう。

最後まで読んでいただきありがとうございました。

明日はみんな大好きue4の中の人、@junyash シモダさんです。


#【追記 2016/01/10】

##【ボーンの対応表 HumanIK】
| 骨の部位（ベース） | ue4標準ボーン | HumanIKボーン |
|:-----------|------------:|:------------:|
| 頭       |        head |    Head     |
| 首     |      neck_01 |    Neck    |
| 肩（左）| clavicle_l |    LeftShoulder     |
| 肩（右）|clavicle_r |     RightShoulder     |
| 上腕（左）       | upperarm_l |    LeftArm   |
| 上腕（右）   |     upperarm_r |   RightArm   |
| 前腕（左）   |     lowerarm_l |   LeftForeArm   |
| 前腕（右）  |     lowerarm_r |   RightForeArm    |
| 手首（左）   |     hand_l |  LeftHand    |
| 手首（右）   |     hand_r |   RightHand  |
| 背中1   |    spline_01 |   Spine   |
| 背中2   |    spline_02 |   Spine1    |
| 背中3   |    spline_03 |   Spine2    |
| 腰   |    pelvis |   Hips   |
| 大腿（左）   |    thigh_l |   LeftUpLeg  |
| 大腿（右）   |    thigh_r |   RightUpLeg   |
| 下腿（左）  |    calf_l |  LeftLeg   |
| 下腿（右）   |    calf_r |  RightLeg    |
| 足首（左）   |    foot_l |  LeftFoot   |
| 足首（右）   |    foot_r |  RightFoot   |

__HumanIKの指は1～4まであるので4は含めない__

| 骨の部位(詳細設定） | ue4標準ボーン | HumanIKボーン |
|:-----------|------------:|:------------:|
| 親指（左1）       |        thumb_01_l |    LeftHandThumb1     |
| 親指（左2）    |      thumb_02_l |    LeftHandThumb2   |
| 親指（左3）| thumb_03_l |     LeftHandThumb3     |
| 親指（左4）|  |     LeftHandThumb4     |
| 親指（右1）       |        thumb_01_r |    RightHandThumb1     |
| 親指（右2）    |      thumb_02_r |   RightHandThumb2    |
| 親指（右3）| thumb_03_r |     RightHandThumb3     |
| 親指（右4）|  |     RightHandThumb4     |
| 人差し指（左1）|index_01_l |      LeftHandIndex1      |
| 人差し指（左2）|index_02_l |      LeftHandIndex2      |
| 人差し指（左3）|index_03_l |      LeftHandIndex3      |
| 人差し指（左4）| |     LeftHandIndex4      |
| 人差し指（右1）|index_01_r |      RightHandIndex1      |
| 人差し指（右2）|index_02_r |      RightHandIndex2      |
| 人差し指（右3）|index_03_r |      RightHandIndex3      |
| 人差し指（右4）| |      RightHandIndex4      |
| 中指（左1）       | middle_01_l |    LeftHandMiddle1    |
| 中指（左2）       | middle_02_l |    LeftHandMiddle2    |
| 中指（左3）       | middle_03_l |    LeftHandMiddle3    |
| 中指（左4）       |  |    LeftHandMiddle4    |
| 中指（右1）       | middle_01_r |    RightHandMiddle1    |
| 中指（右2）       | middle_02_r |    RightHandMiddle2    |
| 中指（右3）       | middle_03_r |    RightHandMiddle3    |
| 中指（右4）       |  |    RightHandMiddle4    |
| 薬指（左1）   |     ring_01_l |   LeftHandRing1    |
| 薬指（左2）   |     ring_02_l |   LeftHandRing2    |
| 薬指（左3）   |     ring_03_l |   LeftHandRing3    |
| 薬指（左4）   |      |   LeftHandRing4    |
| 薬指（右1）   |     ring_01_r |   RightHandRing1    |
| 薬指（右2）   |     ring_02_r |   RightHandRing2    |
| 薬指（右3）   |     ring_03_r |   RightHandRing3    |
| 薬指（右4）   |      |   RightHandRing4    |
| 小指（左1）   |     pinky_01_l |   LeftHandPinky1    |
| 小指（左2）   |     pinky_02_l |   LeftHandPinky2    |
| 小指（左3）   |     pinky_03_l |   LeftHandPinky3    |
| 小指（左4）   |      |   LeftHandPinky4    |
| 小指（右1）   |     pinky_01_r |   RightHandPinky1    |
| 小指（右2）   |     pinky_02_r |   RightHandPinky2    |
| 小指（右3）   |     pinky_03_r |   RightHandPinky3    |
| 小指（右4）   |      |   RightHandPinky4    |