夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

SFチックのUIボードを作る その② ~Unityでシェイプキーを使う~

HoloLensの開発ツールであるMixedRealityToolkitではサンプルとして配置するだけで使用できるボタンやスライダーなど数多くのUIが同梱されています。

 開発者はプレファブとして提供されているこれらをシーンに配置し、Eventを指定するだけでUIとして機能します。

 ここではBlenderを用いてSF映画や近未来を描いたアニメ作品に登場するようなFUI(Fictional User Interface)を基にHoloLens用のオリジナルデザインのUIボードを作ります。

 今回は第3回目です。 5~10つほど作品が完成したタイミングでGitHubにて公開します。

f:id:Holomoto-Sumire:20200131090611j:plain

前回の記事はこちらです。

redhologerbera.hatenablog.com

BlenderからエクスポートしUnityへインポートする

 前回シェイプキー付きのボタンのメッシュが完成しました。FBX形式でエクスポートしてUnityでインポートします。

 Blenderで上部タブの[ファイル]から[エクスポート]→[FBX(.fbx)]を選択します。

 f:id:Holomoto-Sumire:20200202091809j:plain

 ウィンドウが開くので名前を付け(①)、エクスポートする対象をメッシュのみに設定し(②)[エクスポート]ボタンを選択します。

f:id:Holomoto-Sumire:20200202092256j:plain

 ウィンドウが閉じたらエクスポートの完了です。

〇Unityでインポート

 エクスポートしたFBXをUnityのプロジェクトウィンドウにドラッグ&ドロップすることでインポートが行えます。

 インポートしたFBXのinspectorの[Materials]タブから[Extract Materials...]を選択することでMaterialを書き出してShaderなど含め自由に編集できるようになります。

〇Unityでシェイプキーを使用する

 シェイプキーを設定したメッシュには[Skinned Mesh Renderer]がアタッチされます。(未設定のメッシュの場合[Mesh Renderer])

f:id:Holomoto-Sumire:20200202094047p:plain

 [Skinned Mesh Renderer]の[Blend Shape Weights]の[Size]に作成したシェイプキーの数と同じ数値を入れます。

 [Element]がSizeに指定した数追加されます。

f:id:Holomoto-Sumire:20200202094511j:plain

 [Element]の値を0~100で入力することでBlenderのシェイプキーで扱った[相対]での0~1と同じ動作に対応した形状の変化が発生します。

以上でUnityでシェイプキーを使うことに成功しました。

 実際のアプリケーション内で扱うためにはスクリプトやアニメーションなどで変化させます。

 次回はアニメーションでシェイプキーを変化させます。

redhologerbera.hatenablog.com