MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens用のオリジナルモデルを作成する その42(ホロ恋子モデルをHoloLensアプリに組み込む)

本日はホロ恋子モデルの作成枠です。
ホロ恋子モデルを使って HoloLens アプリを作成してみます。

ホロ恋子モデルのダウンロード

ホロ恋子モデルのダウンロードページから HoloLenko_Ver1.1.zip をダウンロードします。
ファイルのダウンロードを行うにはニコニコ動画のアカウントが必要です。
3d.nicovideo.jp
f:id:bluebirdofoz:20181127031330j:plain

ダウンロードしたファイルを展開して開きます。
今回利用するのは HoloLenko_Ver1.1/UnityPackage_Ver1.1 配下の HoloLenKo_Ver1.1.unitypackage です。
f:id:bluebirdofoz:20181127031340j:plain

HoloLens向けプロジェクトの作成

HoloLens 向けのビルド設定を行ったプロジェクトを作成します。
MRTK を利用すれば数ステップで各種設定を行った Unity プロジェクトが作成可能です。
以下の記事を参考に、基本設定までを実施して Unity プロジェクトを作成します。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20181127031356j:plain

基本設定を行ったら、先ほどダウンロードした HoloLenKo_Ver1.1.unitypackage を実行します。
Import Unity Package ダイアログが表示されるので[Import]ボタンをクリックします。
f:id:bluebirdofoz:20181127031406j:plain

Assets 配下にインポートされた HoloLenKo/Prefabs フォルダを開きます。
HoloLenKo.prefab ファイルを Hierarchy にドラッグしてホロ恋子モデルをシーンに配置します。
f:id:bluebirdofoz:20181127031426j:plain

そのままだとホロ恋子モデルがカメラに重なった状態になっているので、表示位置を調整します。
HoloLenKo オブジェクトを選択し、Inspector ビューの Transform を以下の通り変更します。

Position X:0 Y:-1.6 Z:2
Rotation X:0 Y:180  Z:0
Scale    X:1 Y:1    Z:1

f:id:bluebirdofoz:20181127031441j:plain

シーンの作り込み

このままビルドしてもホロ恋子が目の前に表示される HoloLens 向けアプリが作成できます。
しかし、折角なのでモデルが様々なポーズを取る機能を追加します。
アセットとしてユニティちゃんの UnityChan_1_2_1.unitypackage を利用します。
以下の記事を参考にアセットをインポートしてください。
bluebirdofoz.hatenablog.com
f:id:bluebirdofoz:20181127031501j:plain

再び HoloLenKo オブジェクトをクリックして Inspector ビューを開きます。
この状態で Assets 配下にインポートされた UnityChan/Animators フォルダを開きます。
Animator コンポーネントの[Cotroller]項目に UnityChanActionCheck.controller を設定します。
f:id:bluebirdofoz:20181127031510j:plain

Controller を設定したら、これを制御するスクリプトを追加します。
[Add Component]を選択し、[Idle Changer]を検索します。
[Idle Changer (Script)]が見つかるので、これを追加します。
f:id:bluebirdofoz:20181127031519j:plain

[Idle Changer (Script)]コンポーネントが追加されます。
各項目の設定値を以下の通り、変更します。

Random(自動遷移設定):チェックあり
Threshold(判定閾値) :0
Interval(遷移待機秒):3

f:id:bluebirdofoz:20181127031527j:plain

プロジェクトのビルドとインストール

以上でシーンの作り込みは完了です。
以下の記事を参考に、作成したアプリケーションをビルドし、HoloLens にインストールします。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

※ 2018/11/27現在、ユニティちゃんアセットを全て含んだ状態で UWP 向けビルドを行うと以下のエラーが発生します。

Assets\UnityChan\Scripts\AutoBlink.cs(8,23): error CS0234: The type or namespace name 'Policy' does not exist in the namespace 'System.Security' (are you missing an assembly reference?)

該当箇所の以下の2つのスクリプトについて今回は利用しないのでコメントアウトで回避して問題ありません。
・AutoBlink.cs 6行目から

using UnityEngine;
using System.Collections;
//using System.Security.Policy; // コメントアウト

・SpringManager.cs 66行目から

private void UpdateParameter (string fieldName, float baseValue, AnimationCurve curve)
{
  /* 全てコメントアウト
  var start = curve.keys [0].time;
  var end = curve.keys [curve.length - 1].time;
  //var step	= (end - start) / (springBones.Length - 1);

  var prop = springBones [0].GetType ().GetField (fieldName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);

  for (int i = 0; i < springBones.Length; i++) {
    //Kobayashi
    if (!springBones [i].isUseEachBoneForceSettings) {
      var scale = curve.Evaluate (start + (end - start) * i / (springBones.Length - 1));
      prop.SetValue (springBones [i], baseValue * scale);
    }
  }
*/
}

HoloLensでの動作確認

HoloLens 上でアプリを起動すると、目の前でホロ恋子モデルが色々とポーズを取ってくれます。
f:id:bluebirdofoz:20181127031558g:plain