2015年6月2日火曜日

SDユニティちゃん活用その4 ~Blender出力のFBXファイルをUnityでインポート~

BlenderでエクスポートしたSDユニティちゃんのアバターモデルをUnityでインポートするメモ。



環境

Windows7x64
Unity 5.0.1f1 Personal
Blender2.74(x64)
SDユニティちゃん 3Dモデルデータ Download ver1.0。(2015/5時点最新)

※作業中素材には『ユニティちゃんライセンス』で提供されるコンテンツを利用しています。




前提

前記事までの作業経過は、
  • 公式配布されている「SDユニティちゃん 3Dモデルデータ」からSDユニティちゃんのアバターモデルをBlenderでインポート。

  • Blender上でもテクスチャ/ノーマルマップが見えるように、マテリアル経由のテクスチャを設定。

  • BlenderでSDユニティちゃんのアバターモデルをFBXフォーマットでエクスポート(ボーン込み)。

と、いうことでBlenderで出力済みのSDユニティちゃんアバターモデルをUnityでインポートします。

ついでにHumanoidタイプとして、公式配布のアニメーションコントローラで簡単に動かしてみます。






Unityでプロジェクト作成

Unityを起動、プロジェクトを新規作成。
公式配布の「SDユニティちゃん 3Dモデルデータ」をインポートしておきます。

※後で配布物に含まれているアニメーションを流用する為。
※既にインポート済みのプロジェクトが残っていればそれでもOK。




Unityでインポート

Unity上で作業します。

  • Assets 配下にインポートするフォルダを作成
    図中ではフォルダ名 Blender_SDUnityChan で作成。
    フォルダ Blender_SDUnityChan をクリックして選択状態にする。

     
  • Blenderでエクスポート済みのSDユニティちゃんのFBXファイルをフォルダ内にドラッグ&ドロップする。


  • インポート後
    自動的に Materialsフォルダが作成されてテクスチャが格納。
    テクスチャは貼られている状態。
    ※ノーマルマップは貼られていない。別途マテリアル調整する必要有。今はとりあえずこのまま。


  • 今回FBXファイルにアニメーションは同梱していないので Import Animation のチェックは外しておく(特にやる必要もないかもしれませんが一応)
    モデル選択 > Inspector > Animation > Import Animation チェック外し > Apply


  • リグのタイプをHumanoidに設定
    モデル選択 > Inspector > Rig > Humanoid > Apply
    ※公式配布のHumanoidタイプのアニメーション/コントローラが利用できるようになるので重要


インポート&Humanoidタイプ設定完了。

補足: Unity4系はModelのScale Factorのデフォルト値が 0.01でしたが、Unity5系ではデフォルト値 1 になっています。今回はデフォルト 1 のままいじっていません。
4系でデフォルト値が 0.01となっていた理由は、MayaのFBXエクスポーターが100倍していた事に起因するらしい?。





インポートしたSDユニティちゃんを動かす


Blenderでエクスポート&UnityでインポートしたSDユニティちゃんをアニメーションさせてみます。


アニメーションコントローラは「SDユニティちゃん 3Dモデルデータ」で配布されているHumanoidタイプSDユニティちゃんのものを使ってみます。


具体的には、公式配布のプレハブ SD_unitychan_humanoid のコンポーネント Animator に使われている、アニメーションコントローラ SD_unitychan_motion_humanoid を使います。

これをインポートした blender_SDUnityChan(BlenderでFBX出力したモデル)をシーンに配置して適用します。


シーンも配布されているものを使ってみます。
  • シーンの読込
    シーン SD_unitychan_Humanoid をダブルクリックして読み込む。


  • インポートしたSDユニティちゃんをシーンに配置
    FBXファイルでインポートした blender_SDUnityChan をシーンに配置。



  • アニメーションコントローラ を確認
    シーンの SD_unitychan_humanoid をクリックして選択。
    Inspector > Animator の Controller の欄をクリック。
    Projectウィンドウにアニメーションコントローラ SD_unitychan_motion_humanoid が選択表示されます。


  • blender_SDUnityChan にアニメーションコントローラを設定
    アニメーションコントローラ SD_unitychan_motion_humanoidblender_SDUnityChan のAnimatorのControllerにドラッグ&ドロップ。


  • スクリプト IdleChangerblender_SDUnityChan に追加
    下図ではドラッグ&ドロップで追加しています。


  • SD_unitychan_humanoid のスクリプト IdleChanger をDisable
    ※操作ボタンが重なる為。


UnityをPlayします。

GUIの Next、Back ボタンを押すと blender_SDUnityChan がアニメーション動作します。

これでメカニム経由で公式配布のアニメーションも blender_SDUnityChan で使えます。
※メカニムを自分で組み替えれば自由に制御可。


コンソールに赤字でエラーらしきものがでていますが、これは FaceUpdate スクリプトを blender_SDUnityChan に追加していない為です。

FaceUpdate スクリプトをドラッグ&ドロップで追加すれば一応エラーは消えますが、顔の表情は現段階では動きません。(これらもいずれ対策します)

ここまででインポート、Humnanoidのアニメーション動作まではできました。
今回はここまで。


0 件のコメント:

コメントを投稿