Equippable (装備可能) という Interactable タイプのセットアップ

__________________

用語

この記事では、"hover" とは、"カーソル (PC または Mac) またはコントローラー ポインター (Quest) がオブジェクトの上にある場合" を意味します。

オブジェクトを "装備する" は、オブジェクトを手に持つということです。 つかんで手に持つことができるオブジェクトは "装備可能" です。 アバターがオブジェクトを持っている場合、オブジェクトは "装備されている" と表現します。

テストの制限事項

重要: この記事で説明する オブジェクトの配置手の配置、および プリセット 機能では、アバターの手または胸に対するオブジェクトの位置と回転を調整できます。 なお、Unity エディターでは、メッシュ エミュレーターのアバター (制限あり) での結果のみが表示されます。 完全な Mesh イベント アバターで行ったこれらの調整の結果を表示するには、プロジェクトをビルドして発行してから Mesh イベントを作成し、イベントに参加して、シーン内のオブジェクトをつかんで保持する必要があります。

対話の設定

  • 対話式操作の範囲: アバターがこのオブジェクトと相互作用できる最も遠い距離(メートル単位)。

  • ホバー時に IK アームの照準: IK ターゲットを使用してホバーしながらアバターの腕がオブジェクトに到達するかどうか。

  • ホバー ハンド ポーズ: オブジェクトの上にマウス ポインターを置いたときにアバターの手を置く手のポーズ図形。

    __________________

    たとえば、ピンチ操作 を選択した場合、アバターがオブジェクトに到達すると、その手はピンチ位置を想定します。

    __________________

  • [Hover Hand Pose Size] (ホバーする手のポーズのサイズ): 0 から 1 のスケールでアバター の指の間隔を決定します。 0 の場合、指は触れます。スライダーの値を大きくすると、指がさらに離されます。これは、(ホバーする手のポーズ) ドロップダウンで選択した図形によって直接影響されることに注意してください。

設定の強調表示

[Highlight Settings] (強調表示設定)

  • ホバー/選択: オブジェクトが強調表示されている場合、または選択されている場合に、そのオブジェクトを強調表示するかどうか。

  • 強調表示メカニズム

    • メニュー項目 1: シェーダープロパティ

      • 強調表示の色: オブジェクトが強調表示されたときに素材のカラー プロパティを設定する色。
      • [強調表示の切り替え期間]: 切り替え時に強調表示をフェードイン/アウトする時間。
      • 強調表示量プロパティ: 強調表示時のハイライトの量を設定する素材のプロパティ。 これはフローティング値です。
      • 強調表示の色プロパティ: 強調表示時にハイライトの色を設定する素材のプロパティ。 これは色の値です。
    • メニュー項目 2: メッシュ アウトライン: 指定した色/幅の自動アウトラインをオブジェクトに追加します。

      • 強調表示の色: アウトラインの色。
      • 切り替え期間の強調表示: 切り替え時にアウトラインをフェードイン/アウトする時間。
      • アウトライン幅の強調表示: アウトラインの太さ (メートル単位)。 グラフィックス ツール/標準の素材の [押し出し値] をオーバーライドします。
      • カスタム アウトライン素材: アウトラインのレンダリングに使用する素材。
      • ユーザー設定のステンシル書き込み素材: ステンシル バッファーに値を書き込む素材
      • アウトライン除外モード: アウトラインに含めないレンダラーを除外するオプション。
    • メニュー項目 3: 光彩 (内側): 特定のプロパティを使用して、光彩効果で強調表示を適用します。

      • 強調表示の色: 内側の光彩の色。
      • 切り替え時間の強調表示: 切り替え時に内側の光彩をフェードイン/アウトする時間
      • カスタム強調表示素材: このオブジェクトに固有のオーバーライド オプションを使用して、光彩に使用する素材を設定します。 これが設定されていない場合は、設定アセットの既定の素材が使用されます。
      • 除外文字列: これが設定されている場合、除外文字列を含む名前を持つゲーム オブジェクトが強調表示から除外されます。

[Object Positioning] (オブジェクトの配置)

  • [Position] (位置) と [Rotation] (向き): これらの設定を使用して、アバターの手に対するオブジェクトの位置と向きを微調整します。 ここで少し調整すると、オブジェクトの持ち方のリアルさを大幅に向上させられます。

手の位置

これらの設定は、アバターの手の位置 (具体的には手首) を胸の位置に対して決定します。

プリセット

アバターの手の 既定 ポーズに加えて、さまざまなポーズの選択肢を提供する 9 つのプリセットがあります。 たとえば、プリセット 1 を選択した場合、アバターは手のひらを上に向けてオブジェクトを保持します。

__________________

プリセットを選択するには、次のいずれかを行います。

  • Default Pose を表示するボタンをクリックし、一覧からプリセットを選択します。

    __________________

または

  • 手の配置の右側にある前方/後方矢印をクリックします。

    __________________

プリセットの設定を変更する

前後のボタンを使用してプリセットリスト内を移動し、各プリセットには独自の設定があることに注意してください。

__________________

  • [Position] (位置): オブジェクトを装備しているときのアバターの手から胸までの距離。
  • [Rotation] (向き): オブジェクトを装備しているときの手首の回転量。
  • [Hand Pose Shape] (手のポーズの形): これは、装備時にアバターの手が取る手のポーズの形の範囲を指定するドロップダウンです。 何も選択しないことも可能です。
  • [Hand Pose Size] (手のポーズのサイズ): 手のポーズのサイズは 0 から 1。

プリセットで求めている正確なポーズが得られない場合は、これらの設定を変更してさらに改善することができます。 変更するとすぐに、リセットボタンをクリックして既定のプリセット設定を復元できることを示すメッセージが表示されます。

__________________

1 つ以上の設定を変更した後、シーン内の別のオブジェクトを選択し、その設定を変更したオブジェクトを再度選択すると、Presets ドロップダウンの代わりに "Custom" という単語が表示されます。

__________________

変更は引き続き行うことができますが、変更を新しいプリセットとして保存することはできません。 ただし、次に説明するように、一意の新しいプリセットを作成できます。

独自のプリセットを作成します。

シーン内に既存のプリセットにまったく適していないオブジェクトがある場合は、独自のカスタム プリセットを作成できます。 パッケージ内にあるファイルをコピーすることはできないため、最初の手順では、 EquipablePresets フォルダー全体をコピーし、そのコピーしたフォルダー内のファイルを操作します。 これは、プリセットドロップダウンがそのプリセットを探すフォルダになります。

  1. プロジェクトタブで、Packages>Microsoft Mesh Interactables>Interactables Core>リソース>EquipablePresets フォルダーに移動します。

    プリセットは、このフォルダーにスクリプト可能なオブジェクトとして格納されることに注意してください。

  2. フォルダーをドラッグし、アセットフォルダーにドロップして、そこにコピーします。

    __________________

  3. コピーするプリセットを選択します。この例では、 プリセット 9 : を使用し、Ctrl + D キーを押してコピー プリセット 10に自動的に名前を付けます。

  4. コピーしたプリセットの名前を、より分かりやすいものに変更します。 この例では、シーン内の水差しにプリセットを適用するため、プリセットの名前を "Jug" に変更します。

  5. Jugを選択したら、Inspector で必要な変更を行います。 変更は永続的になります。別のプリセットをクリックし、[プリセット 10] を再度クリックすると加えた変更が保持されます。

  6. 階層 または シーン ウィンドウで、プリセットを適用する GameObject を選択します。

  7. [Inspector] で、GameObject の Mesh Interactable Setup コンポーネントに移動します。

  8. プリセットドロップダウンをクリックし、( デフォルトポスト表示されます)、リストから Jug を選択します。

    __________________

アクティブ化の設定

アクティブ化の詳細については、 Equippable を持つオブジェクトを現実的に保持するの記事に詳細に記述されています。

  • アクティブ化の種類

    • なし: このアイテムをアクティブにすることはできません。
    • 切り替え: この項目は、アクティブ化コントロールがクリックされるたびにアクティブ/非アクティブの間で切り替わります。
    • 単一: この項目は、アクティブ化コントロールがクリックされたときにアクティブ化され、最後のターゲット ポーズに達すると自動的に非アクティブ化されます。
  • IK ターゲット位置

このセクションには、アイテムがアクティブになったときにアバターの手を置くために使用される最大 2 つのターゲット ポーズの一覧が含まれています。 各ポーズは、位置回転補間時間アニメーション カーブの 4 つのプロパティで構成されます。 位置と回転のオフセットは、アバターの胸に対して相対的です。 アバターは、Interpolation time プロパティで定義された時間の間、前のポーズから現在のポーズまでアニメーションカーブを使って順次リストの下に補間し、無効化されるまで最後のポーズに留まります。 非アクティブ化すると、アバターの手のポーズがリスト内を後方に移動します。

リストに 1 つのポーズが含まれている場合は、"+" ボタンをクリックして、追加のポーズを追加できます。 ポーズを削除するには、ポーズを選択し、"-" ボタンをクリックします。 IK ターゲット位置の右側にある番号は、リスト内のポーズの数を示します。 重要: "+" ボタンを使用して複数のポーズをリストに追加できますが、登録されるのは 2 つだけです。

__________________

次のステップ