本日はHoloLensの表現の実験枠です。
9月に入り季節が秋に傾いていきます。[○○の秋]と秋は何事にも取り組みやすい季節ですが、筆者自身は[運動の秋][勉学の秋]にしたいと思っています。
1日のデスクワークの3時間を立つなど筋トレを意識した生活を始めたのですが、何事にも知識 筋肉を知ることから始まります。
そこで今回HoloLens2を用いて思い付きで等身大人体模型を作ることにしました。
〇前回の記事
前回は人体模型の3Dモデルを作成しました。
〇Unityでの実装
すでにMRTKを導入したUnityプロジェクトから進めていきます。
MRTKの導入は過去の記事を参考にしてください。
〇モデルの配置
①前回作成した筋肉と骨格をシーンに配置します。 Blenderで書き出す前にスケールなどを変更していない場合筋肉と骨格のモデルはぴったりと重なるように配置されます。
②皮膚に当たるモデルでは以前より作成している[MB-Lab]のモデルを使用しました。 こちらもシーンに配置します。
③[MB-Lab]のモデルはスケールや位置がずれているため重なるように合わせます。もともとのモデルの体格が違うので大体で合わせました。
④新規でマテリアルを作成、[MRTKStandardShader]に変更後筋肉と骨格のモデルにそれぞれアタッチします。
〇クリッピングの実装
今回は[MRTKStandardShader]とMRTKのクリッピング機能を用いてモデルをスライスできるようにしました。
①[Plane]オブジェクトを追加します。
②[Plane]オブジェクトに[BoxCollider],[ClippingPlane],[NearInteractionGrabbable],[Object Manipulator]コンポーネントをアタッチします。
[NearInteractionGrabbable]コンポーネントはHoloLens 2 の[HandTracking]を用いた[Grab] の動作を検知します。
[Object Manipulator]コンポーネントはGrabの動作を用いてオブジェクトの移動、スケール、回転の調整が行えます。
③[ClippingPlane]コンポーネントの[Renderers]の[Size]を1に変更し[Element0]にMB-Labのモデルの[Renderer]を設定します。
また[Clipping Side]を[Outside]へと変更します。
これによって[Plane]でMB-Labのメッシュがクリップされます。
④[Cube][Sphere]オブジェクトを追加し[NearInteractionGrabbable],[Object Manipulator]コンポーネントをアタッチします。
それぞれ区別がつくように透明なマテリアルをアタッチしています。
⑤[Cube]には[BoxCollider],[ClippingBox]コンポーネント、[Sphere]には[Sphere Colloder],[ClippingSphere]コンポーネントを追加します。
⑥[ClippingBox]には筋肉の[Renderer]、[ClippingSphere]には骨格の[Renderer]を設定します。
[ClippingBox]の[ClippingSide]を[Outside]、[ClippingSphere]の[ClippingSide]を[Inside]に設定します。
〇実機で確認
実機で確認すると次のようになります。