MRが楽しい

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

HoloLens2でホロモンアプリを作る その94(ホロモンの体調に合わせて待機モーションを変化させる)

本日はアプリ作成枠です。
HoloLens2でホロモンアプリを作る進捗を書き留めていきます。
f:id:bluebirdofoz:20220113234953j:plain

今回はホロモンの体調に合わせて待機モーションを変化させるメモです。

ホロモンの体調に合わせて待機モーションを変化させる

ホロモンの体調に合わせた3つの待機モーションを作成しました。
・空腹時
f:id:bluebirdofoz:20220113235004j:plain
・退屈時
f:id:bluebirdofoz:20220113235015j:plain
疲労
f:id:bluebirdofoz:20220113235027j:plain

待機ロジック内で以下の関数を通して現在取るべきモーションを判定します。
該当するモーションがない場合は通常の待機モーションが再生されます。

        /// <summary>
        /// 現在の調子に合わせたリアクションを制御する
        /// </summary>
        /// <returns></returns>
        private bool ReactionCurrentStatus()
        {
            // 各種パラメータを取得する
            int hungryPercent = p_ModeLogicCommon.ReferenceConditionLife
                .IReadOnlyReactivePropertyHoloMonLifeStatus.Value.HungryPercent.Value;
            int humorPercent = p_ModeLogicCommon.ReferenceConditionLife
                .IReadOnlyReactivePropertyHoloMonLifeStatus.Value.HumorPercent.Value;
            int staminaPercent = p_ModeLogicCommon.ReferenceConditionLife
                .IReadOnlyReactivePropertyHoloMonLifeStatus.Value.StaminaPercent.Value;

            // 疲労時のアクション
            if (staminaPercent <= 40)
            {
                TempReaction(ReactionPose.TiredStatus);
                return true;
            }

            // 空腹時のアクション
            if (hungryPercent <= 40)
            {
                TempReaction(ReactionPose.HungryStatus);
                return true;
            }

            // 退屈時のアクション
            if (humorPercent <= 40)
            {
                TempReaction(ReactionPose.BoardStatus);
                return true;
            }

            return false;
        }

動作確認

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

Inspector ビューから直接、体調のパラメータを調整して各状態の待機モーションを再生してみます。
以下の通り、体調に応じた待機モーションをホロモンが行うようになりました。
・空腹時
f:id:bluebirdofoz:20220113235050j:plain
・退屈時
f:id:bluebirdofoz:20220113235059j:plain
疲労
f:id:bluebirdofoz:20220113235108j:plain