前回同様にMicrosoft公式のチュートリアルが完了したところからやります
過去にUnity単独でゾンビを扱った時の記事も参照しながら進めます。
MR空間にゾンビを召喚する
Window -> Asset Store
を開いて、「zombie」で検索。
以下のフリーのゾンビさんをインポートします。
Project -> Assets -> Zombie -> Prefabs -> Zombie1
をSceneビューにドラッグ・ドロップし、X=0, Y=0, Z=1に配置します。Prefabsにzombie1, zombie2, zombie3とあるけど、置いたみた感じでは全部同じっぽい。
デフォルトのままのゾンビだと、勝手に走って勝手に倒れたりしてせわしないので、ただ歩けるようにします。
Project -> Assets -> Zombie -> Animation -> Zombie
を選択し、Inspector -> Open
するとAnimatorビューが表示されるので、Any State
, Entry
, Z_Idle
以外をすべて削除して、Z_Walk
を追加、Z_Idle
をクリックしてMake Transition
でZ_Walk
とつなげる。これでゾンビがただ歩くようになります。
Hololens2実機で確認する。なんかやけに高い位置を歩いてるな。
我が家にゾンビを召喚する
次にゾンビに物理演算(Ridigbody)と衝突(Collider)を与えます(Inspector -> Add Component
)。これにより、ゾンビが実際に空間認識されたオブジェクトにぶつかるようになります。つまり我が家にゾンビを閉じ込めることができる。
このとき、Rigidbody -> Constraints
のFreeze Rotaion
のXとZにチェックしておく。これをしておかないとゾンビが縦方向にぐるぐる回る超人技を見せてくれるようになります。
ColliderはCapsule Collider
を使います。
Hololens2はカメラの位置が、Unity空間でX = 0、Y = 0、Z = 0 の基点に配置されるらしく、カメラのPosition
をいじっても0にリセットされてしまう。なので、カメラ以外のオブジェクトのY座標をすべて-1.7(人の身長くらい)にセットしてみた(あくまでもUnity上で動作確認するためなので、たぶんやらなくてもOK)。
この時点でHololens2実機で動かすとこんな感じになる。ゾンビはちゃんと空間を認識して、障害物より先にはいかなくなった。
しかし、空間メッシュが表示されていてどうなっているかわかりづらいので、これを非表示にしていきます。公式のドキュメントを参考に進めた。
Hierarchy -> MixedRealityTookKit
を選択、Inspector -> MixedRealtiyToolkit
のプロファイルにDefaultHololens2ConfigurationProfile
を選択して、cloneします。名前は何でもOK。ここではZombieMixedRealityToolkitConfiguration
とした。
続いて、Spatial Awareness -> Enable Spatial Awareness System
にチェック。ここでもプロファイルをcloneする。名前はZombieMixedRealitySpatialAwarenessSystemProfile
とした。
Spatial Awareness
の設定が変更できるようになるのでDisplay Setings -> Display Option
をOcclusion
に変更。
これで空間メッシュが非表示になります。実機で試すとこんな感じ。
ゾンビさんが我が家に遊びに来てくれました!!嬉しいですね!
次はゾンビが自分を追いかけてくる部分を作りたかったですが、今日は時間がないのでここまでにします。