[Unity]MMDのモーションをUnityに入れて鑑賞会をしよう

この記事は[ITRC Advent Calendar 2020](https://adventar.org/calendars/5535)の9日目の記事です。
前の記事→[セキュリティ(物理)を強化しよう！(NVR)](https://www.epsv.tech/?p=123)←ぽっしぶ！いえぃ！
次の記事→[Docker-composeで気軽にetcdに触れてみる](https://qiita.com/rin1208/items/7005207adb0dc9bff9f2)←rin先輩！ふぁいと！


こんにちは!@saba383810です。今回はMMDのモデルをfbxに変換するツールを紹介します！

# 用意するもの
この記事では以下のソフトなどを使用しますので先にダウンロードしてから本記事をお読みください。

- [MikuMikuDance](https://sites.google.com/view/vpvp/)
- [MMD4Mecanim](http://stereoarts.jp/)
- お好きなMMDモデル (sabaは[Tda式初音ミク・アペンドVer1.10](https://bowlroll.net/file/4576)を使用します。)
- お好きなモーション (sabaは[【MikuMikuDance】 好き！雪！本気マジック 【MMDモーショントレース】](https://www.nicovideo.jp/watch/sm23692832)を使用させていただきます。)

# MMD→Unity
## モデル確認
まずはモデルがMMDで動作するか確認していきます。

MMDを起動してダウンロードしたモデルを3Dビュー右下の「モデル編」をクリックしてモデルを読み込みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/899f9f7d-3a41-9f33-6991-7271f29de9bc.png)

次にファイル>モーションデータ読み込みからダウンロードしたデータを読み込みます。
画面中央下の再生を押してモデルが以下のように動きだしたことを確認出来たら次に進みましょう！
![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/2f8d9b4b-731b-76f5-22c5-a40b9200768f.gif)


## Unityでの準備

次にUnityにMMDのモデルを動かす準備をしていきます。

新しいプロジェクトが開けたらAssets>Import Package>Custom Package...をクリックしダウンロードしてきたMMD4Mecanimのフォルダ内にあるUnityPackageを開きましょう！開いてしばらくすると下のようなウィンドウが出てくるのでimportをクリック！
![スクリーンショット 2020-12-08 160147.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/fe394df1-5eda-268a-5e99-25a48c20d37a.png)

しばらくするとimportが終わるのでMonsterでも飲みながら待ちましょう！

## 「.pmx」を「.fbx」に変換

「.pmx」を「.fbx」に変換する準備ができたので変換作業をしていきます。

まずは、MMDに取り込んだモデルのフォルダごとUnityのProjectにドラック＆ドロップしてきてください。
モデルのはいっていたフォルダを開くとモデル名.MMD4Mecanimが生成されているのがわかると思います。

クリックしてinspectorウィンドウを確認すると以下のメッセージが出てきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/a80b0d6e-6492-984a-4f39-9cf8d0915de4.png)

モデルの利用規約を確認し、確認できたらスクロールしてチェックボックスのすべてにチェックを入れて「同意する」を押して下さい。


![スクリーンショット 2020-12-08 161703.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/438b7493-24e9-b5c4-1a21-1fa1c0737f4e.png)


すると画面が切り替わり上の画像の画面になっていると思います。
VMDの欄にMMDのモーションデータを入れると一緒に変換をしてくれるので忘れずに入れましょう。

モーションデータの指定が終わったらProcessを押すとコンソールが出てきて変換が始まりまるのでMonster2杯目でも飲みながら待ちましょう！:)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/c5e44c03-48ed-0ab5-6022-0ef6b49b2563.png)

変換が終わると.pmxが入っていたフォルダに.fbxが生成されていることが確認できます。

シーンに配置してみましょう。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/b8f15d71-d624-225d-8ce4-b6ec2e82e58d.png)

「あ"あ"あ"あ"あ"あ"あ"がわい"い"い"い"~~~~」

## モデルにアニメーションをつける。

モデルを配置しただけでは踊ってくれないのでAnimationをつけていきましょう！

配置したモデルを選択した状態でInspectorウィンドウの「AddComponent」をクリックし、検索欄にAnimatorと入力してAnimatorコンポーネントを追加しましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/fef09627-3124-d574-da97-ac9bf5c75028.png)



次に、projectウィンドウで右クリックしCreate>AnimatorControllerで新しくAnimatorControllerを作成しましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/3dfdcb4d-5439-e6cb-5345-6f2ec038aabc.png)
作成したAnimatorControllerを開きMMDのモデルの中に入っているvmd形式のアニメーションをAnimatorControllerにドラック＆ドロップしましょう！

![スクリーンショット 2020-12-08 164530.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/9eb0799d-55c7-2942-f330-47931136c1b0.png)

最後にモデルを選択した状態で作成したAnimatorControllerをInspectorのAnimatorのControllerの欄にドラック＆ドロップしましょう！

![スクリーンショット 2020-12-08 164831.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/ed8a869a-70f7-83bf-4c26-96bcd03fc1c3.png)


Unityの再生ボタンを押すことでアニメーションが再生されれば成功です！

![Videotogif (3).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422338/566d4849-f8e1-df04-e04d-59089b1c515d.gif)

## 仕上げ

モデルがUnity上で動作するととてもテンションが上がりますが、このままではさみしいのでごにょごにょして音や背景を整えていきます。
(この記事の趣旨は.pmx→.fbxなので見た目の説明は割愛します。)

「ごにょごにょ」
「ごにょごにょ」
「ぴかぁーん！」

完成したものがこちらです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">MMDのモデルとモーションをUnityで動かしてみました！ <a href="https://t.co/HEnCv5WTba">pic.twitter.com/HEnCv5WTba</a></p>&mdash; 三鳩のあ/saba (@mitsubatonoah) <a href="https://twitter.com/mitsubatonoah/status/1336245918702526465?ref_src=twsrc%5Etfw">December 8, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## まとめ
今回は「.pmx」から「.fbx」に変換する方法を学びました。次回は[ITRC Advent Calendar 2020](https://adventar.org/calendars/5535)の16日目の記事でこのモデルを使用して「RPG風会話イベント」を作っていこうと思います。ではでは皆さんまた来週！！

## 参考資料

- [UnityでMMDモデルを動かす手順とコツ| MMD4Mecanim解説](https://xr-hub.com/archives/12978)