MRが楽しい

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

MRTKのBillboardを使ってオブジェクトが常にユーザ側を向くようにする

本日は MRTK の小ネタ枠です。
MRTKのBillboardを使ってオブジェクトを常にユーザ側を向くようにする方法を記事にします。
f:id:bluebirdofoz:20210917002905j:plain

Billboard

Billboard を設定したオブジェクトは、常にユーザの方向を向きます。
これにより、ユーザが移動してもテキストやメニューシステムを読むことができます。
docs.microsoft.com

サンプルプロジェクトの作成

Billboard を試すための、MRTK を取り込んだサンプルプロジェクトを作成します。

MRTKのインポートと基本設定

MRTK のインポートと HoloLens 向けプロジェクトの基本設定を行います。
手順の詳細は以下の記事を参照してください。
bluebirdofoz.hatenablog.com

サンプルシーンの準備

シーンにボタンオブジェクトを配置しました。
今回はこのボタンオブジェクトを常にユーザの方を向くようにしてみます。
f:id:bluebirdofoz:20210917002943j:plain

対象オブジェクトの[Add Component]から MRTK の[Billboard]コンポーネントを追加します。
f:id:bluebirdofoz:20210917002951j:plain

Billboard には以下の2つのプロパティがあります。
f:id:bluebirdofoz:20210917003000j:plain

PivotAxis

オブジェクトが回転する回転軸を指定します。
デフォルトでは[XY]が指定されています。

TargetTransform

Billboard が方向を向けるターゲットを指定できます。
ターゲットが指定されていない場合は、メインカメラの方向を向きます。

動作確認

シーンを再生して動作を確認します。
f:id:bluebirdofoz:20210917003009j:plain

ボタンの周りをぐるりと回ると、ボタンオブジェクトが常にカメラの方向を向き続けるのが分かります。
f:id:bluebirdofoz:20210917003030j:plain

応用の使い方

Billboard の中心をズラすことで少し変わった見せ方もできます。
シーンに Sphere オブジェクトを配置します。
f:id:bluebirdofoz:20210917003042j:plain

Sphere オブジェクトと同じ位置に空オブジェクトを作成します。
f:id:bluebirdofoz:20210917003052j:plain

空オブジェクトの子オブジェクトとして、Sphere の上に乗るようにボタンオブジェクトを配置します。
f:id:bluebirdofoz:20210917003102j:plain

最後に空オブジェクトに Billboard を設定します。
f:id:bluebirdofoz:20210917003112j:plain

動作確認

シーンを再生して動作を確認します。
この場合、ボタンの中心ではなく Sphere の中心を原点にボタンが回転するため、常に Sphere の表面を張り付くようにボタンを移動させる表現ができます。
f:id:bluebirdofoz:20210917003120j:plain