MRが楽しい

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

HoloLens用のオリジナルモデルを作成する その44(モデルをHoloLensの3DViewerで表示する)

本日は(第一作目の)ホロ恋子モデルの作成枠です。
以前、HoloLens の RS5 で追加された、簡易に3Dモデルを表示する「MixedRealityViewer」を紹介しました。
※ 2018/12/08現在では名称が「3DVeiwer」になっているようです。
bluebirdofoz.hatenablog.com

今回はこの「3DVeiwer」でホロ恋子モデルを表示する方法についてまとめます。

「3DViewer」でキャラクタモデルを出力するにあたって主に気を付けるのは以下の5点です。
・三角ポリゴン数が 10,000 以下であること
・アーマチュアを含まないデータであること
・マテリアルで透過を行っていないこと
・放射が1を超える(発光する)モデルでないこと
・テクスチャを用いる場合、画像が埋め込み形式であること

必要なデータと環境の準備

サンプルにホロ恋子モデルを用います。
サンプルとして利用できるよう以下のダウンロードファイルにFBX形式のデータを追加しておきました。
3d.nicovideo.jp

画像を埋め込み形式とするため、今回「3DViewer」で使用するモデル形式は GLB を使います。
アドオンを設定することで Blender からエクスポートが可能です。以下の記事を参考にしてください。
bluebirdofoz.hatenablog.com

3DViewerで表示可能なモデルの設定

Blender プロジェクトを開き、ホロ恋子モデルの FBX ファイルをインポートします。
f:id:bluebirdofoz:20181209154854j:plain

カメラやランプの設定は「3DView」では利用されないので特に変更は不要です
f:id:bluebirdofoz:20181209154903j:plain

FBX形式で取り込んだモデルはマテリアルの透過設定がONになっています。
「マテリアル」タブを開き、「透過」パネルのチェックを外して透過を無効化します。
f:id:bluebirdofoz:20181209154914j:plain

次にアーマチュアを除く必要があります。
アーマチュアオブジェクトを選択肢て削除します。
f:id:bluebirdofoz:20181209154923j:plain

ポーズを設定する場合は

ただしアーマチュアを削除してしまうとキャラクタのポージングができなくなります。
キャラクタにポーズを取らせたい場合は、予めポージングを固定してからアーマチュアオブジェクトを削除します。

アーマチュアオブジェクト内の[ポーズ]を選択し、[ポーズモード]に切り替えます。
f:id:bluebirdofoz:20181209154934j:plain

ボーンを操作してキャラクタのポーズを作成します。
f:id:bluebirdofoz:20181209154945j:plain

ポーズによって変形したメッシュオブジェクトを選択します。
「モディファイア」タブを開き、「アーマチュアオブジェクト」の[適用]ボタンをクリックします。
f:id:bluebirdofoz:20181209154956j:plain

これでメッシュの状態が固定されます。
ポーズが定まったら、アーマチュアオブジェクトを削除します。
f:id:bluebirdofoz:20181209155009j:plain

GLBファイルでの出力

最後にメニューから ファイル -> エクスポート -> glTF 2.0 (.glb) で出力を行います。
f:id:bluebirdofoz:20181209155018j:plain

後は MixedRealityViewer の記事に従って GLB ファイルを HoloLens にアップロードすれば「3DViewer」でモデルを Home 空間に配置できます。
f:id:bluebirdofoz:20181209155029j:plain