Страница 1 из 1

АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 07 ноя 2017, 16:26
andrewio
Привет! Начал играться с акселерометром, и есть проблемка.

При повороте камеры при помощи акселерометра возникают колебания (дрожание камеры) при затухании движения, и далее продолжаются в состоянии покоя.

Если чувствительность = 1, то колебаний нет, всё плавно.
Следование камеры за движением телефона происходит медленно, не реалистично.

Если чувствительность > 1, колебания есть.
Чем больше чувствительность, тем реалистичнее движения, но больше колебания.

Пробую несколькими способами, но поведение одинаковое.
Гироскоп не интересует.

--------
Задача
--------

Убрать колебания (дрожания), увеличив чувствительность.
Скрипт прикладываю.

--------------------
Движение камеры
--------------------

Ориентация: Landscape.

Наклон телефона от себя или к себе поворачивает камеру в игре вверх или вниз.
Наклон телефона влево или право поворачивает камеру относительно оси Z (при этом сохраняя ощущение, что земля в игре всегда параллельна полу в вашем помещении) .

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class AccelerometerCameraControl : MonoBehaviour
{
        public float sensitivityXZ = 9f;

        private float rotationalAngleFactorXZ = -90f;
        private Vector3 currentRotationXZ;     

        void LateUpdate ()
        {      
                Way2();
        }

        // Quaternion.Slerp
        public void Way2()
        {
                currentRotationXZ.x = Input.acceleration.z * rotationalAngleFactorXZ;
                currentRotationXZ.z = Input.acceleration.x * rotationalAngleFactorXZ;

                transform.localRotation = Quaternion.Slerp(
                        transform.localRotation,
                        Quaternion.Euler(currentRotationXZ),
                        Time.deltaTime * sensitivityXZ);
        }

        // Math.Lerp
        public void Way1()
        {
                currentRotationXZ.y = transform.localEulerAngles.y;
                currentRotationXZ.x = Mathf.LerpAngle(
                        transform.localEulerAngles.x,
                        Input.acceleration.z * rotationalAngleFactorXZ,
                        sensitivityXZ * Time.deltaTime);

                currentRotationXZ.z = Mathf.LerpAngle(
                        transform.localEulerAngles.z,
                        Input.acceleration.x * rotationalAngleFactorXZ,
                        sensitivityXZ * Time.deltaTime);

                transform.localRotation = Quaternion.Euler(currentRotationXZ);
        }
}
 


UPDATE 09/12/17:

Спасибо за наводку про ФНЧ.

Из этой темы у меня получился новый ассет
AR Camera ACCELEROMETER: http://u3d.as/YSM


Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 07 ноя 2017, 17:11
snezhok_13
Гироскоп вам нужен, а не акселерометр

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 07 ноя 2017, 18:07
Cr0c
snezhok_13 писал(а):Гироскоп вам нужен, а не акселерометр

и отрезать минимум половину устройств. Логично.
andrewio писал(а):Убрать колебания (дрожания), увеличив чувствительность.

ФНЧ поищи для акселерометра

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 08 ноя 2017, 21:50
andrewio
snezhok_13 писал(а):Гироскоп вам нужен, а не акселерометр

бро, я ведь предупредил, что решение с помощью гироскопа меня не устраивает :ymparty:

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 09 ноя 2017, 11:35
snezhok_13
Cr0c писал(а):и отрезать минимум половину устройств. Логично.

Половину каких устройств? На айфоне 4 появился гироскоп, если я не ошибаюсь. Я меньше года назад работал в студии где 4s УЖЕ не поддерживался.

andrewio писал(а):бро, я ведь предупредил, что решение с помощью гироскопа меня не устраивает

Извини, пропустил :) Кмк, фильровать помехи акселерометра ПРОГРАММНО, КОДОМ ИГРЫ, чтобы получить приближение к тому, что дает другая аппаратная более-менее распространенная штука это не комильфо.

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 09 ноя 2017, 12:22
Cr0c
snezhok_13 писал(а):Половину каких устройств? На айфоне 4 появился гироскоп, если я не ошибаюсь. Я меньше года назад работал в студии где 4s УЖЕ не поддерживался.

Гениально! Только айфон телефон, остальное не стоит внимания )))

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 09 ноя 2017, 12:51
snezhok_13
Cr0c писал(а):Гениально! Только айфон телефон, остальное не стоит внимания )))

Ну зачем Вы так. Разочаровали.
Я сам не эплодрочер, перешел на андроид и вполне счастлив.
Мне кажется классы телефонов примерно одинаковые, андроиды даже мощнее аппаратно, но только классы андроидов чем измерять? Самсунгами?
Моя мысль в том, что 4s - телефон вышедший в 2011 году с гироскопом, а на дворе почти 18й. 7 лет прошло.

Каков процент девайсов без гироскопа? Каков процент телефонов для игр без гироскопа?

7 лет пользоваться телефоном и не обновить его, ну не знаю...

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 09 ноя 2017, 17:26
Cr0c
snezhok_13 писал(а):Каков процент девайсов без гироскопа? Каков процент телефонов для игр без гироскопа?

По Яндекс.Маркету - половина без гироскопа. На руках телефоны ещё старее, значит две трети телефонов без гироскопа, как минимум.

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 10 ноя 2017, 19:42
Gamer_Jack5
В итоге прошло 3 дня, и мы ушли от вопроса)

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 10 ноя 2017, 20:06
Cr0c
Cr0c писал(а):
andrewio писал(а):Убрать колебания (дрожания), увеличив чувствительность.

ФНЧ поищи для акселерометра

Re: АКСЕЛЕРОМЕТЕР. ИГРОВАЯ КАМЕРА.

СообщениеДобавлено: 09 дек 2017, 19:47
andrewio
Спасибо за наводку про ФНЧ.

Из этой темы у меня получился новый ассет
AR Camera ACCELEROMETER: http://u3d.as/YSM