本日はホロ恋子モデルの作成枠です。
ホロ恋子モデルを使って HoloLens アプリを作成してみます。
ホロ恋子モデルのダウンロード
ホロ恋子モデルのダウンロードページから HoloLenko_Ver1.1.zip をダウンロードします。
ファイルのダウンロードを行うにはニコニコ動画のアカウントが必要です。
3d.nicovideo.jp
ダウンロードしたファイルを展開して開きます。
今回利用するのは HoloLenko_Ver1.1/UnityPackage_Ver1.1 配下の HoloLenKo_Ver1.1.unitypackage です。
HoloLens向けプロジェクトの作成
HoloLens 向けのビルド設定を行ったプロジェクトを作成します。
MRTK を利用すれば数ステップで各種設定を行った Unity プロジェクトが作成可能です。
以下の記事を参考に、基本設定までを実施して Unity プロジェクトを作成します。
bluebirdofoz.hatenablog.com
基本設定を行ったら、先ほどダウンロードした HoloLenKo_Ver1.1.unitypackage を実行します。
Import Unity Package ダイアログが表示されるので[Import]ボタンをクリックします。
Assets 配下にインポートされた HoloLenKo/Prefabs フォルダを開きます。
HoloLenKo.prefab ファイルを Hierarchy にドラッグしてホロ恋子モデルをシーンに配置します。
そのままだとホロ恋子モデルがカメラに重なった状態になっているので、表示位置を調整します。
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
シーンの作り込み
このままビルドしてもホロ恋子が目の前に表示される HoloLens 向けアプリが作成できます。
しかし、折角なのでモデルが様々なポーズを取る機能を追加します。
アセットとしてユニティちゃんの UnityChan_1_2_1.unitypackage を利用します。
以下の記事を参考にアセットをインポートしてください。
bluebirdofoz.hatenablog.com
再び HoloLenKo オブジェクトをクリックして Inspector ビューを開きます。
この状態で Assets 配下にインポートされた UnityChan/Animators フォルダを開きます。
Animator コンポーネントの[Cotroller]項目に UnityChanActionCheck.controller を設定します。
Controller を設定したら、これを制御するスクリプトを追加します。
[Add Component]を選択し、[Idle Changer]を検索します。
[Idle Changer (Script)]が見つかるので、これを追加します。
[Idle Changer (Script)]コンポーネントが追加されます。
各項目の設定値を以下の通り、変更します。
Random(自動遷移設定):チェックあり Threshold(判定閾値) :0 Interval(遷移待機秒):3
プロジェクトのビルドとインストール
以上でシーンの作り込みは完了です。
以下の記事を参考に、作成したアプリケーションをビルドし、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 上でアプリを起動すると、目の前でホロ恋子モデルが色々とポーズを取ってくれます。