UE4でSD版ユニティちゃんを動かしてみる　ー Part1 ユニティちゃんをUnrealEngineへお出迎え（インポート）ー

# 概要
SD版のユニティちゃんをUnrealEngineにどこまで組み込めるかを試してみました。結果として自分でキーボード入力でモーション付きで動かすことができるようになったので、その変遷を記事にしていこうと思います。
**ユニティちゃん可愛い。**
![unity_stand.gif](https://qiita-image-store.s3.amazonaws.com/0/109159/7541cd08-bf01-8566-d5ca-d38269d4b1e6.gif)

# この記事でカバーしていること
Part1ではSD版ユニティちゃんをUnrealEngine内へインポートしてシーンに配置するところまで行います。ユニティちゃんを動かすところや表情付けなどは別記事で行う予定です。
UnrealEngineにユニティちゃんをインポートすること自体は偉大な先達たちが既に記事にされていますが、SD版ユニティちゃんに関しては結構記事が少ないのでSD版ユニティちゃんが好きな方の参考になればと思います。
**ユニティちゃん可愛い。**

# 環境
- UnrealEngine 4.10系
- Unity 5.2系

上記2ソフトがインストールされている前提で話を進めます。主にUnrealEngineを使用します。
Unityは主にユニティちゃんモデルの抽出と、ユニティちゃんアニメーションデータがどのような構成になっているかを確認するために使用します。

# やること(Unity側)
## ユニティちゃんのモデルファイルを手に入れる
まずは <a href="http://unity-chan.com/contents/guideline/">ユニティちゃん公式サイト</a>からライセンス条項に同意したうえで「SDユニティちゃん 3Dモデルデータ」のunitypackage形式ファイルをダウンロードしてきてください。

## ユニティちゃん用のUnityプロジェクトを作る
主に確認用とモデルデータを抜き出すために使用するのでプロジェクト作成場所やプロジェクト名などは任意で構いません。

## ユニティちゃんのunitypackageをUnityへインポート
メニュー上部の[Assets] → [Import Package] → [Custom Package...]から、ダウンロードしてきたUnityちゃんのunitypackageを選択し、作成したUnityプロジェクトにユニティちゃんファイル一式をインポートしてください。設定は特にいじらなくて大丈夫です。全てインポートしてしまってください。
![import_package.png](https://qiita-image-store.s3.amazonaws.com/0/109159/5969857c-3cb1-abc7-9f15-6a468b6ccd1a.png)

## ユニティちゃんのモデルファイルをかき集める
インポートが終了したらAssetsフォルダ以下に「UnityChan」というフォルダができるはずです。今回はそこから、UnrealEngine側で必要になるユニティちゃんのモデルファイルをかき集めます。主に必要なファイルは

1. 「fbx」拡張子のファイル：ユニティちゃんのモデルデータやアニメーションデータが保存されている
2. 「tga」拡張子のファイル：ユニティちゃんモデルのテクスチャデータが保存されている

の2種類です。僕がダウンロードしてきたバージョンでは下記パスに集中していました。

**Unityプロジェクトパス/Assets/UnityChan/SD_unitychan/Models/SD_unitychan_generic.fbx
Unityプロジェクトパス/Assets/UnityChan/SD_unitychan/Animations/SD_unitychan_motion_generic.fbx
Unityプロジェクトパス/Assets/UnityChan/SD_unitychan/Models/Textures/XXXX.tga一式**

ダウンロードしてきたバージョンによって変更があるかもしれませんが、現時点では下図のファイル群をかき集めてコピーしておけば十分です。今回の記事では、ここでUnityの役目は終了です。閉じてしまっても構いません。ただし次回以降に、ユニティちゃんをUnrealEngine側でモーションさせるにあたって引き続き今回作成したUnityプロジェクトを参考にしますので、プロジェクト自体はとっておいてください。
![file_contents.png](https://qiita-image-store.s3.amazonaws.com/0/109159/b2653269-4a57-bfab-dfb0-36df04ac52e7.png)

# やること(UnrealEngine側)
## UnrealEngine用に新規プロジェクト作成
それではいよいよUnrealEngine側の作業に入ります。まずはUnrealEngine側で新規にプロジェクトを作成します。
UnrealEngineではよくあるゲームの形式をテンプレートにして新規プロジェクトを作成することができます。よくあるパターンを新たに頑張って作る必要はありません。今回はThirdPersonゲームタイプをプロジェクトのテンプレートとして作成します。
![startproj.png](https://qiita-image-store.s3.amazonaws.com/0/109159/c40db2f1-d190-7c19-1bb1-5cec2a39e571.png)
例によって、プロジェクトの場所やプロジェクト名は任意で大丈夫です。
※ThirdPerson：第三者の視点から眺めてプレイするゲーム。KingdomHeartsとかゼルダとか所謂普通の３Dアクションゲームの形式

## 管理用にフォルダ追加
今回は管理上、コンテンツフォルダの階層に「UnityChan」というフォルダを作りました。さらにUnityChanフォルダ中でもファイルの種類（Model,Texture,Material,Animation）に応じてフォルダを作成していきます。（あくまで管理しやすいようにフォルダ分けしているだけなので、ファイル管理が面倒なようであれば全インポート操作を1階層内でやってしまっても問題ありません。）
![import_fbx.png](https://qiita-image-store.s3.amazonaws.com/0/109159/2434cf61-1eb9-1543-0253-7e86086c7245.png)

## UnrealEngineにユニティちゃんFBXファイルをインポート
それでは早速ユニティちゃんをUnrealEngineへインポートしていきます。まずはModelフォルダの中にユニティFBXファイルをインポートしていきます。インポートを選択し、「Unityプロジェクトパス/Assets/UnityChan/SD_unitychan/Models/SD_unitychan_generic.fbx」のファイルを選択してインポートしてください。
![import_setting.png](https://qiita-image-store.s3.amazonaws.com/0/109159/42e14b96-91ad-cb93-8cdc-662b8e287564.png)
現状のUnrealEngineのバージョン(4.10系)だと上図のような設定でインポートしたらうまくいきました。コツはConvertSceneに必ずチェックを入れることです。これはUnityとUnrealEngineとでY軸やZ軸などの座標系の扱いが異なるため、UnrealEngine用に座標をコンバートする設定です。インポートすると「以下のボーンがバインドポーズに不足しています～」のようなエラーが沢山出てくると思いますが一旦無視して閉じてしまって大丈夫です。Modelフォルダに「SD_unitychan_generic_head」というファイルができたと思うのでダブルクリックしてみましょう。
![gray_unitychan.png](https://qiita-image-store.s3.amazonaws.com/0/109159/dfd89cae-a425-7210-09ed-d35019572dca.png)
新しくモデル編集用のウィンドウが開くのと同時にグレーな感じのユニティちゃんが表示されたと思います。
**可愛いですね。**
ただ、このままだと味気ないのでユニティちゃん用のマテリアルデータを設定してあげましょう。それにはマテリアルファイルを生成してオレンジに囲った場所に設定して上げる必要があります。

## UnrealEngineにユニティちゃん用テクスチャファイルをインポートしマテリアルを生成
ユニティちゃんFBXファイルをインポートしたのと同様に、「UnityChan/Texture」フォルダへテクスチャファイルもインポートを行います。インポートするファイルは「utc_all2.tga」だけで十分です。FBXファイルと同じ要領で「utc_all2」というファイルがプロジェクト内に追加されたと思います。
このファイルを右クリックして「マテリアルを作成」を押してください。すると同じ階層にmtc_all2_Mat(名前変更可)のマテリアルファイルが作成することができます。
（今回は管理上、作成したマテリアルファイルはMaterialフォルダに移動させました。面倒であればTextureフォルダと同じ階層でも構いません。）

## ユニティちゃんモデルにマテリアルを設定
あとは作成したマテリアルをユニティちゃんモデルに設定してあげるだけです。設定は、上項目のグレーなユニティちゃんの図でオレンジで囲った場所全てに、「utc_all2_Mat」ファイルをUnrealEngine上でドラッグ＆ドロップするだけです。
![mat_unitychan.png](https://qiita-image-store.s3.amazonaws.com/0/109159/ee7b65fc-2a90-b3e9-1b53-1eebf325f1a5.png)
これで**ますます可愛くなりましたね。**

## シーン上にユニティちゃんモデルを配置してみる
あとは「SD_unitychan_generic_head」をシーン上にドラッグ＆ドロップしてテキトーな位置に配置しましょう。その後シーン画面の上にある「プレイ」ボタン（再生マークのボタン）を押してみましょう。デフォルトのテンプレートで作ったシーンの設定だとマネキンをキーボードの上下左右キーで操作することができますが、ユニティちゃんを配置した場所まで移動してみると、ユニティちゃんがシーン上に配置されているのが確認できると思います。
![unitychan_play.png](https://qiita-image-store.s3.amazonaws.com/0/109159/9cfd11c7-02c5-9963-aca3-a46676c68984.png)

# おわりと次回の予告
序盤で宣言したとおり、Part1は一旦ここで終わりです。ユニティちゃんをシーン上に配置するところまで行きましたが、現状のままだとユニティちゃんは直立不動で全くモーションをしていません。
次回はユニティちゃんのアニメーションファイルをインポートして何かしらのモーション付けをしていきます。

# ライセンス表記
本記事はユニティちゃんライセンス条項(© UTJ/UCL)に従います。
http://unity-chan.com/contents/guideline/
ライセンスに関して誤った認識をしている部分等ございましたらご指摘いただけると助かります。