本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
今回は両手の位置に合わせてアイテムを持つロジックを実装します。
アイテム保持位置の判定ロジック
以下の常に2つのオブジェクトの中央位置にオブジェクトを配置するスクリプトを作成しました。
・TrackingTargetBetween.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; namespace HMProject.HoloMonUtilities { public class TrackingTargetBetween : MonoBehaviour { [SerializeField, Tooltip("追跡対象トランスフォーム")] private Transform p_TargetTransformOne; [SerializeField, Tooltip("追跡対象トランスフォーム")] private Transform p_TargetTransformTwo; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { Tracking(); } /// <summary> /// 位置トラッキング /// </summary> private void Tracking() { // 2つのトランスフォームの中央をトラッキングする this.transform.position = Vector3.Lerp( p_TargetTransformOne.position, p_TargetTransformTwo.position, 0.5f); this.transform.rotation = Quaternion.Lerp( p_TargetTransformOne.rotation, p_TargetTransformTwo.rotation, 0.5f); } } }
オブジェクトにスクリプトを設定します。
スクリプトの参照トランスフォームに、ホロモンの右手と左手の参照を設定します。
手のオブジェクトは手首の位置を示すので、オフセットを設定した子オブジェクトを作成し、そこにアイテムを保持するスクリプトを設定しました。
動作確認
ホロモンにアイテムを持ってもらい、動作確認します。
両手で挟むようにアイテムを持っていれば成功です。
スクリプト側でアイテム位置を制御しているため、アニメーション側は手の位置をある程度自由に変更できます。