UE4でSD版ユニティちゃんを表示してみる
他サイトで2016年に書いた記事の転載。内容は比較的古めです。

目次
!! 注意 !!
この記事は他サイトからの記事サルベージと自サイトコンテンツの充実を目的として 他技術サイトで2016年に執筆した記事を一部修正して転載したものです。
特にUE4側の情報が古くなっている可能性があるため参照する際はご注意ください。
概要
SD版のユニティちゃんをUnrealEngineにどこまで組み込めるかを試してみましたので記事にしてみます。

この記事でカバーしていること
SD版ユニティちゃんをUnrealEngine内へインポートしてシーンに配置するところまで行います。
環境
- UnrealEngine 4.10系
- Unity 5.2以降
- Unity2019系でも動作確認済み
上記2ソフトがインストールされている前提で話を進めます。主にUnrealEngineを使用します。 Unityは主にユニティちゃんモデルの抽出と、ユニティちゃんアニメーションデータがどのような構成になっているかを確認するために使用します。
やること(Unity側)
ユニティちゃんのモデルファイルを手に入れる
まずは ユニティちゃん公式サイトからライセンス条項に同意したうえで「SDユニティちゃん 3Dモデルデータ」のunitypackage形式ファイルをダウンロードしてきてください。
ユニティちゃん用のUnityプロジェクトを作る
主に確認用とモデルデータを抜き出すために使用するのでプロジェクト作成場所やプロジェクト名などは任意で構いません。
ユニティちゃんのunitypackageをUnityへインポート
メニュー上部の[Assets] → [Import Package] → [Custom Package…]から、ダウンロードしてきたユニティちゃんのunitypackageを選択し、作成したUnityプロジェクトにユニティちゃんファイル一式をインポートしてください。設定は特にいじらなくて大丈夫です。全てインポートしてしまってください。

ユニティちゃんのモデルファイルをかき集める
インポートが終了したらAssetsフォルダ以下に「UnityChan」というフォルダができるはずです。今回はそこから、UnrealEngine側で必要になるユニティちゃんのモデルファイルをかき集めます。 主に必要なファイルは下表の2種類の拡張子ファイルです。
拡張子名 | 詳細 |
---|---|
fbx | ユニティちゃんのモデルデータやアニメーションデータが保存されている |
tga | ユニティちゃんモデルのテクスチャデータが保存されている |
僕がダウンロードしてきたバージョンでは下記パスに集中していました。
UnityProjectPath/Assets/UnityChan/SD_unitychan/Models/SD_unitychan_generic.fbx
UnityProjectPath/Assets/UnityChan/SD_unitychan/Animations/SD_unitychan_motion_generic.fbx
UnityProjectPath/Assets/UnityChan/SD_unitychan/Models/Textures/XXXX.tga
ダウンロードしてきたバージョンによって変更があるかもしれませんが、現時点では下図のファイル群をかき集めてコピーしておけば十分です。今回の記事では、ここでUnityの役目は終了です。閉じてしまっても構いません。ただし次回以降に、ユニティちゃんをUnrealEngine側でモーションさせるにあたって引き続き今回作成したUnityプロジェクトを参考にしますので、プロジェクト自体はとっておいてください。

やること(UnrealEngine側)
UnrealEngine用に新規プロジェクト作成
それではいよいよUnrealEngine側の作業に入ります。まずはUnrealEngine側で新規にプロジェクトを作成します。
UnrealEngineではよくあるゲームの形式をテンプレートにして新規プロジェクトを作成することができます。よくあるパターンを新たに頑張って作る必要はありません。今回はThirdPersonゲームタイプをプロジェクトのテンプレートとして作成します。
※ThirdPerson:第三者の視点から眺めてプレイするゲーム。KingdomHeartsとかゼルダとか所謂普通の3Dアクションゲームの形式
管理用にフォルダ追加
今回は管理上、コンテンツフォルダの階層に「UnityChan」というフォルダを作りました。さらにUnityChanフォルダ中でもファイルの種類(Model,Texture,Material,Animation)に応じてフォルダを作成していきます。(あくまで管理しやすいようにフォルダ分けしているだけなので、ファイル管理が面倒なようであれば全インポート操作を1階層内でやってしまっても問題ありません。)

UnrealEngineにユニティちゃんFBXファイルをインポート
それでは早速ユニティちゃんをUnrealEngineへインポートしていきます。まずはModelフォルダの中にユニティFBXファイルをインポートしていきます。インポートを選択し、下記ファイルを選択してインポートしてください。
Unityプロジェクトパス/Assets/UnityChan/SD_unitychan/Models/SD_unitychan_generic.fbx

現状のUnrealEngineのバージョン(4.10系)だと上図のような設定でインポートしたらうまくいきました。コツはConvertSceneに必ずチェックを入れることです。これはUnityとUnrealEngineとでY軸やZ軸などの座標系の扱いが異なるため、UnrealEngine用に座標をコンバートする設定です。インポートすると「以下のボーンがバインドポーズに不足しています~」のようなエラーが沢山出てくると思いますが一旦無視して閉じてしまって大丈夫です。Modelフォルダに「SD_unitychan_generic_head」というファイルができたと思うのでダブルクリックしてみましょう。

新しくモデル編集用のウィンドウが開くのと同時にグレーな感じのユニティちゃんが表示されたと思います。
ただ、このままだと味気ないのでユニティちゃん用のマテリアルデータを設定してあげましょう。それにはマテリアルファイルを生成してオレンジに囲った場所に設定して上げる必要があります。
UnrealEngineにユニティちゃん用テクスチャファイルをインポートしマテリアルを生成
ユニティちゃんFBXファイルをインポートしたのと同様に、「UnityChan/Texture」フォルダへテクスチャファイルもインポートを行います。インポートするファイルは「utc_all2.tga」だけで十分です。FBXファイルと同じ要領で「utc_all2」というファイルがプロジェクト内に追加されたと思います。 このファイルを右クリックして「マテリアルを作成」を押してください。すると同じ階層にmtc_all2_Mat(名前変更可)のマテリアルファイルが作成することができます。 (今回は管理上、作成したマテリアルファイルはMaterialフォルダに移動させました。面倒であればTextureフォルダと同じ階層でも構いません。)
ユニティちゃんモデルにマテリアルを設定
あとは作成したマテリアルをユニティちゃんモデルに設定してあげるだけです。設定は、上項目のグレーなユニティちゃんの図でオレンジで囲った場所全てに、「utc_all2_Mat」ファイルをUnrealEngine上でドラッグ&ドロップするだけです。

シーン上にユニティちゃんモデルを配置してみる
あとは「SD_unitychan_generic_head」をシーン上にドラッグ&ドロップしてテキトーな位置に配置しましょう。その後シーン画面の上にある「プレイ」ボタン(再生マークのボタン)を押してみましょう。デフォルトのテンプレートで作ったシーンの設定だとマネキンをキーボードの上下左右キーで操作することができますが、ユニティちゃんを配置した場所まで移動してみると、ユニティちゃんがシーン上に配置されているのが確認できると思います。

おわりに
ユニティちゃんをシーン上に配置するところまで行ないました。 機会があればユニティちゃんのアニメーションファイルをインポートして何かしらのモーション付けするところまで解説しようと思います。
ライセンス表記
本記事はユニティちゃんライセンス条項(© UTJ/UCL)に従います。 http://unity-chan.com/contents/guideline/ ライセンスに関して誤った認識をしている部分等ございましたらご指摘いただけると助かります。