知識なしの初心者がHololensを手にして変わった一年 その2

2018年12月06日

こんにちは

ホロ元です。

前回に引き続きHololens Adventカレンダーに合わせて記事を書いていきたいと思います。

前回はこちら

今回はHololensを手にして実際に作ったもなどについて詳しくご紹介できたらと思います。

Hololensで作ったもの

とりあえずHololens手にして作ったものをまとめます。

・Hololens×VRoid

 前回MMDを使って初めてのアプリを作成したと書きましたが、

 Hololensに触った最初の日から、自分で作った3DモデルをHololens上で表示させたいと思っていました。

 Vroidというのはpixivよりβ版が提供されているVRMモデル作成環境です。

 3Dモデルを作成するにはBlenderやMayaなどいくつかのアプリケーションが存在します。

 ですが高機能な反面使いこなすには知識と経験が必要で、感覚で扱うことは難しいです。

 VroidはBlenderなどに比べ何でもかんでも作れるわけではありませんが、人型キャラクターモデルの制作という点で見た場合、現状モデリング経験がない人にとって最強の環境といえるでしょう。


 Vroidでのキャラクター作成に関してはこちらの記事でまとめています。

 HololensでVroidキャラ(=VRMキャラクター)を扱う際、主に次の点を注意する必要があります。


〇.NET形式でのビルドができない。

UnityにVRMファイルを持ち込む際にUniVRMを使用するためUniVRMが.Netに対応していません。

そのためビルド形式をIL2CPPにする必要があります。

 IL2PCCでのビルドは.Netと比べ処理に時間がかかりデバックなどの作業において.Netより大変な面がある代わりにアプリの起動などが早いというメリットがあります。


 Unityでは.NETではなくIL2CPPでのビルドを推奨しているようです。


アプリとしてはxBoxゲームコントローラーで自作のキャラクターを操作できるというもので

私はこれにMRTK(Mixed Reality Toolkit)の音声認識機能やAirTapでコインを出せる機能を盛り込み最低限ゲームとして成り立つものを作りました。

今回はこの一年で変わったことを紹介するため詳しい作成過程は以前の記事を参考にして下さい。

今後の改善点としては

  • SpatialMappingで認識される前の空間にキャラクターがいた場合『奈落へと落ちてしまう』
  • コインに付けたコライダー(当たり判定)が大きすぎ、キャラクターがコインを拾えないことがある。

といった点です。

『奈落へと落ちてしまう』点に対してはBoundary Boxを配置することでオブジェクトを破壊できます。

  1. public class DestroyByBoundary : MonoBehaviour {
  2.     public GameObject Vroid;
  3.     public GameObject reStartPoint;
  4.     private void OnTriggerEnter(Collider other)
  5.     {
  6.         Destroy(other.gameObject);
  7.         Instantiate(Vroid, reStartPoint.transform.position, reStartPoint.transform.rotation);
  8.     }

 今回初めて目的に合わせコピペでもなく自分でスクリプトを書いてみました。

VRoid(キャラクター)が一定の値まで落ちDestroyByBoundaryコンポーネントを入りつけたコライダー(当たり判定)にほかのオブジェクトが接触した場合、Destroyでそのオブジェクトを破壊し、InstantiateでreStartPointに設定しているVRoidを出現させる。という処理を行っています。

 

 とりあえずまだ不具合もあり、勉強が必要です。

 

・HoloSuilawari(現在開発中)、

 ホロ元が頑張って作ったはいいものの、Hololensミートアップにてとある有名Microsoftデベロッパーの方に見ていただいて

「アプリとして破断している!」

と息の根を止められそうになったものの改善点を20ほど教えてきただき現在修正、開発中のアプリです。


 未完成のため具体的には紹介できないもののHololensのSpatialSoundに着目し、「視野角が狭いなら最初から何も見えなければいい!」というホロ元的コロンブスの卵なアイデアで音だけで隠れたオブジェクトを探すというアプリです。

・Funnel


 ファンネル...ガンダムの武器です。皆さんご存知でしょうか?

 「いけ!ファンネルっ!」というとガンダムから分離してミサイルのごとく飛んでいき、敵の死角からビームを浴びせる小型移動砲台です。

 ガンダムのコスプレイヤーさんや、モデルガンを改造してガンダムに出てくる武器を作る方がいますが、ホロ元も挑戦しました。

 これはBlenderの勉強も兼ね作成したもので、「ファンネル!」と命ずればオブジェクトが展開、砲撃準備をして「ファイア!」と命ずればビームを放つもので

MRTKの[Speech Input handler]を用いて実装しています。

 時間ができたらガンダムのほかの武器も作ってみたいです。


 知識0の超初心者でも一年間でこれだけのものを作りました。

 実際はテストアプリでもっと多くのものを作っています。


Hololensで広がった世界

 次にHololensと出会って広がった世界について紹介したいと思います。

・ Hololens Meetup

 二か月に一回の期間で開催されているHololensやxRの集まりです。

 開発者が多いですが、学生や開発はしていないけどxRに興味がある!という人も多く集まります。

 私は多くの知識をこのイベントから得ました。

 Hololens Meetupには様々な職業の方がいます。

 私が実際にお会いした方だけでもミュージシャン、ジャーナリスト、高校教諭、主婦、玩具メーカーなどとても様々です。

 イベントでは主にHololensに関する3つの講演が行われた後、親睦会でピザを食べながらLT(ライトニングトーク)を聞いたりほかの開発者が開発したデモ実演を体験したり、素晴らしい時間を過ごしています。

 Hololensを所有していない人でも参加できるイベントのため(事前知識0でもOK)私と同じように開発経験0から日本を代表するxRのトップランナーまで幅広い人と会えることが特徴です。

東京だけでなく、大阪、札幌、我が地元熊本でも開催されています。

ここで出会えた


私が、まがいなりにもここまでできるようになったのもここで素晴らしい方々と出会え、勉強する機会を得られたからです。


とりあえず今回は前回の続きということで1年間に作ったものをまとめてみました。


余談

ブログなどこれまでやったことがなかったので文章とか、構成とかいつも考えちゃう私です。

少しづつ情報を発信できればと思います。