Как отдалить камеру в юнити
Перейти к содержимому

Как отдалить камеру в юнити

  • автор:

Камера

Камеры являются устройствами, которые захватывают и отображают мир игроку. Путем настройки и манипулирования камерами, вы можете сделать презентацию своей игры поистине уникальной. Вы можете иметь неограниченное количество камер в сцене. Вы можете настроить рендеринг камерами в любом порядке, на любом месте экрана, либо только в определенных частях экрана.

Свойства

Свойство: Функция:
Clear Flags Определяет, какие части экрана будут очищены. Это удобно при использовании нескольких камер для отрисовки разных элементов игры.
Background Цвет, применяемый для фона после отрисовки всех элементов, в случае отсутствия скайбокса.
###Маска отрезания Включение или исключение слоёв объектов на рендер этой камерой. Назначение слоёв объектам производится через Inspector.
Projection Переключает способность камеры симулировать перспективу.
X Камера будет рисовать объекты в перспективе.
X Camera will render objects uniformly, with no sense of perspective. NOTE: Deferred rendering is not supported in Orthographic mode. Forward rendering is always used.
Size (когда выбран ортографический режим) Размер зоны видимости камеры для ортографического режима.
Field of view (когда выбран режим перспективы) Ширина угла обзора камеры, измеряется в градусах по локальной оси Y.
###Clip Planes (Плоскости отреза) Дистанция, на которой камера начинает и заканчивает рендеринг.
X Ближайшая точка относительно камеры, которая будет рисоваться.
X Дальняя точка относительно камеры, которая будет рисоваться.
Normalized View Port Rect Четыре значения, отражающие то, в какой области экрана будет выведено изображение с камеры, в экранных координатах (от 0 до 1).
X Начальная позиция области по горизонтали вида камеры, который будет рисоваться.
Y Начальная позиция области по вертикали, где вид камеры будет рисоваться.
W (Ширина) Ширина вида камеры на экране.
H (Высота) Высота вида камеры на экране.
Depth Позиция камеры в очереди отрисовки. Камеры с большим значением будут нарисованы поверх камер с меньшим значением.
###Способ рендера Опции для определения методов рендеринга для камеры.
X Камера использует метод рендеринга, установленный в Player Settings.
Вершинное освещение Все объекты рисующиеся этой камерой будут рендериться как Vertex-Lit-объекты.
X Все объекты будут рендериться с одним проходом на материал.
Deferred Lighting (только в Unity Pro) Все объекты будут рендериться сначала без освещения, а затем будет произведён рендер освещения для всех объектов разом, в конце очереди рендеринга.
Target Texture Ссылка на Render Texture, которая будет содержать результат рендеринга камеры. Назначение этой ссылки отключает способность камеры рендерить на экран.
HDR Включение технологии High Dynamic Range.
Target Display Defines which external device to render to. Between 1 and 8.

Детали

Камеры очень важны для демонстрации вашей игры игроку. Они могут быть изменены, заскриптованы, наследованы для получения различных визуальных эффектов. Для паззла вы можете сделать камеру статичной и охватывающей обзором весь паззл. Для шутера от первоого лица вы можете сделать камеру дочерней по отношению к игроку и разместить её на уровне глаз персонажа. Для гоночный игры вы можете закрепить камеру позади автомобиля и заставить её следовать за ним.

Вы можете создать несколько камер и назначить каждой свою глубину(Depth). Камеры будут отрисовываться от низшей глубины до высшей глубины. Другими словами, камера с Depth 2 будет отрисована поверх камеры с Depth 1. Вы можете настроить значение свойства Normalized View Port Rectangle для изменения позиции и размера изображения с камеры на экране, например для создания нескольких экранов в одном, или для создания зеркала заднего вида.

Способ рендера

Unity поддерживает различные способы рендеринга. Вы должны выбрать один из них, в зависимости от содержимого вашей игры и целевой платформы / аппаратного обеспечения. Различные методы рендеринга поддерживают различные возможности и дают различную производительность, особенно в аспекте применения теней и источников света. Метод рендеринга, используемый в вашем проекте, выбирается в Player Settings. Дополнительно свой метод рендеринга может быть выбран для каждой камеры.

См. способы рендеринга для получения всех подробностей.

Clear Flags

Каждая камера хранит информацию о цвете и глубине, когда рендерит свой вид. По умолчанию, незаполненные части экрана, будут показаны в виде скайбокса. При использовании нескольких камер, каждая камера будет иметь свои буферы цвета и глубины, заполняемые при каждом рендеринге. Каждая камера будет рендерить то, что видно с её ракурса, а путем изменения настройки Clear Flags можно выбрать набор буферов, которые будут обновлены (очищены), во время рендеринга. Это осуществляется, выбором одного из четырёх вариантов:

Skybox

Это настройка по умолчанию. Пустые участки экрана будут отображать скайбокс текущей камеры. Если текущая камера не имеет скайбокса, то скайбокс будет использован стандартный скайбокс из меню Render Settings ( Edit->Render Settings ). Если и там не будет указан скайбокс, то будет использован цвет Background Color . Также к камере может быть добавлен компонент Skybox. Если вы хотите создать новый скайбокс, см. это руководство.

Solid color

Любые пустые части экрана будут отображать текущий фоновый цвет ( Background Color ) камеры.

Только глубина

Если вы хотите рисовать оружие игрока не подвергая его обрезке объектами окружения, внутри которых оно находится, установите одну камеру, рисующей окружение, с Depth 0, и ещё одну камеру, рисующую оружие — Depth 1. Для камеры оружия выберите Clear Flags depth only . Это позволит отобразить окружение на экране, но проигнорировать всю информацию о взаимном положении предметов в пространстве. Когда оружие будет отрисовано, непрозрачные части будут полностью отрисованы на экране поверх ранее находившегося там изображения, независимо от того, насколько близко оружие находится к стене.

Оружие отрисовано последним после очистки буфера глубины предшествовавшей камеры.

Не очищать

В этом режиме не очищаются ни цвет, ни буфер глубины. В результате каждый кадр рисуется поверх другого, из-за чего получится эффект размытия. Это обычно не используется в играх, и лучше использовать вместе с пользовательским шейдером.

Clip Planes (Плоскости отреза)

Near и Far Clip Plane — свойства, определяющие, где начинается и заканчивается область отрисовки камеры. Эта область ограничивается плоскостями, перпендикулярными направлению камеры, и находившимися в этих позициях относительно неё. Near Plane — это ближайшая позиция, а Far Plane — дальняя позиция.

Плоскости также определяют точность буфера глубины. Для обеспечения наивысшей точности вам следует отодвинуть Near Plane так далеко, насколько возможно.

Обратите внимание, что эти плоскости вместе определяют поле зрения камеры, которое известно как фрустум. Unity гарантирует, что объекты, полностью находящиеся за пределами фрустума, не будут отображаться. Это называется Frustum Culling и это срабатывает независимо от Occlusion Culling.

Из соображений производительности вы можете прекращать отрисовку мелких объектов раньше, чем отрисовку прочих. Для этого поместите их в separate layer и настройте дистанцию обрезки для этого слоя, используя функцию Camera.layerCullDistances.

Маска отрезания

Culling Mask используется для выборочного рендеринга групп объектов посредством использования слоёв. Больше информации об использовании слоёв можно найти здесь.

Normalized Viewport Rectangles

Normalized Viewport Rectangles предназначено для определения части экрана, на которой будет отрисовано изображение с камеры. Вы можете, к примеру, вставить изображение карты в нижний правый угол экрана, а вид с камеры на выпущенной ракете — в верхний левый угол. Немного поработав над дизайном, используя Viewport Rectangle , вы сможете создать кое-какие уникальные системы.

Очень просто создать раздельный экран для двух игроков, используя Normalized Viewport Rectangle . После создания двух камер, установите обеим камерам свойство H в значение 0.5 и для одной из них свойство Y в значение 0.5, а для другой — в значение 0. В результате, первая камера будет рисовать изображение в верхней половине экрана, а вторая камера — в нижней половине экрана.

Создание экрана для двух игроков с помощью Normalized ViewportRectangle

Orthographic

Переключив камеру в ортографичесий ( Orthographic ) режим, вы устраните всю перспективу из отрисовываемого ей изображения. Это полезно для создания двумерных и изометрических игр.

Заметьте, что туман отрисовывается при этом равномерно, так что может выглядеть не так, как вы ожидали. Прочтите справко по компоненту Render Settings для получения подробностей.

Перспективная камера. Ортографическая камера. Изображение объектов не уменьшается при увеличении дистанции.

Текстура рендера

Эта возможность доступна лишь в расширенных лицензиях Unity. Она позволяет отрисовывать изображенеи с камеры в текстуру (Texture), которая может быть применена к другому игровому объекту. Это делает простым создание спортивной арены с видеомониторами, камеры наблюдения, отражений и т.д.

Использование рендертекстуры для создания монитора

Target display

A camera has up to 8 target display settings. The camera can be controlled to render to one of up to 8 monitors. This is supported only on PC, Mac and Linux. In Game View the chosen display in the Camera Inspector will be shown.

Советы

  • Камеры могут быть вызваны, назначены дочерним объектом и заскриптованы как любой другой игровой объект
  • Для эффекта ускорения в гоночной игры используйте повышенный Field of View .
  • Камеры можно использовать в симуляции физики, если к ним добавить компонент Rigidbody .
  • Нет ограничения на количество камер в сцене.
  • Ортографические камеры отлично подходят для создания 3D пользовательских интерфейсов
  • Если вы наблюдаете артефакты глубины (мелькают близкорасположенные поверхности), попробуйте выставить Near Plane в максимально возможное значение.
  • Камеры не могут рендерить одновременно на экран и в Render Texture, только в одно из них.
  • Pro-лицензия предоставляет функцию названную Render-to-Texture, которая позволяет рендерить камеру в текстуру, для еще более уникальных эффектов.
  • Unity поставляется с предустановленными скриптами для управления камерой, их можно найти в Components->Camera Control . Поэкспериментируйте с ними чтобы узнать об их возможностях.

Работа с 2D камерой в Unity3D

Недавно начала изучать Unity3D, и столкнулся с неожиданной проблемой: в Unity3D очень неудобно работать с камерой в плане ее размеров на разных разрешениях, ну или я чего либо не понимаю. Мне необходимо что бы игра на iPhone и iPad выглядела идентично, за исключением того что на iPad камера растягивается вниз/вверх, т.е. что бы по ширине на обоих устройствах было все одинаково.. но сделать у меня это не получается из-за неудобной настройки камеры — нельзя просто задать постоянных размер по ширине и что бы он не менялся. На iPhone (16/9) все как надо, но вот на iPad (4/3) камера увеличивает высоту тем что просто отрезает длину, иначе говоря зумит пока не будет заполнен весь экран, но мне надо что бы она не зумила, а просто растянулась вверх/вниз — может кто подсказать как это реализовать? UPD: Добавил на камеру скрипт со следующим кодом:

Camera camera = GetComponent(); float cameraHeight = 10.0f; // Нужное значение размера камеры float desiredAspect = 16.0f/9.0f; // Соотношение под которое подобран размер float aspect = camera.aspect; float ratio = desiredAspect / aspect; camera.orthographicSize = cameraHeight * ratio; 

В целом все работает как надо, но может есть еще другие способы?

Отслеживать

задан 4 ноя 2017 в 14:32

451 3 3 серебряных знака 14 14 бронзовых знаков

Статья по теме: «Hor+vert+ FOV, или адаптивное поле обзора».

4 ноя 2017 в 14:39

@Arhad для 2D Orthographic камеры это не подходит..

4 ноя 2017 в 14:57

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • c#
  • unity3d
  • camera
  • 2d

Не получается сделать камеру как в TDS игре Hotline Miami

Я хочу сделать камеру как в игре Хотлайн Миами. Только вот нихера не получается!! Я не понимаю просто как это сделать. Я не про следование камеры за персом. Я про «скольжение» камеры за курсором как в этой игре. Я прошу помочь мне пж. Я реально не представляю как это сделать.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FollowCamera : MonoBehaviour { public GameObject player; public GameObject Tryp; private Vector3 offset; void Start () { offset = transform.position - player.transform.position; } void LateUpdate () { transform.position = player.transform.position + offset; } void Update() { } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class PlayerMovement : MonoBehaviour { public float moveSpeed = 30f; public Rigidbody2D rb; public Camera cam; public GameObject deathPrefab; public GameObject Player; public Transform deadPoint; public AudioClip Movement; public Image bar; public float fill; public GameObject DeadPlayer; public GameObject healthsss; public GameObject _died; public int Life = 100; Vector2 movement; Vector2 mousePos; float hearRadius = 30f; void Start() { fill = 1f; } void Update() { Vector2 mp = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector2 direction = (mp - (Vector2)Player.transform.position) / 2.0f; direction = Vector2.ClampMagnitude(direction, 30.0f); Vector3 cp = Camera.main.transform.position; Vector3 newPosition = Player.transform.position + new Vector3(direction.x, direction.y, cp.z); cp = Vector3.Lerp(cp, newPosition, 5.0f * Time.deltaTime); Camera.main.transform.position = cp; movement.x = Input.GetAxisRaw("Horizontal"); movement.y = Input.GetAxisRaw("Vertical"); mousePos = cam.ScreenToWorldPoint(Input.mousePosition); bar.fillAmount = fill; if (Input.GetKeyDown(KeyCode.F)) { SceneManager.LoadScene(1); } } void FixedUpdate() { rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime); Vector2 lookDir = mousePos - rb.position; float angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f; rb.rotation = angle; } void OnCollisionEnter2D(Collision2D Player) { //Дамаг персонажа if(Player.gameObject.tag == "enemy") { fill -= 0.02f; } //Смерть персонажа if(fill  0f) { _died.SetActive(true); DEAD(); GameObject death = Instantiate(deathPrefab, deadPoint.position, deadPoint.rotation); } if(Player.gameObject.tag == "BigEnemy") { fill -= 0.05f; } if(Player.gameObject.tag == "bullet") { fill -= 0.06f; } void DEAD() { Destroy(DeadPlayer); } if (Player.gameObject.tag == "Health" && fill  1f) { fill += 0.3f; Destroy(healthsss); } } void OnTriggerEnter2D(Collider2D collision) { if(collision.GetComponentHPPLUS>() && fill  1f) { fill += 0.35f; Destroy(collision.gameObject); } } }

Помогаем камерам в фильмах и играх

Получившая награду «Эмми» система Cinemachine — это набор инструментов для создания динамических, умных, не требующих программирования камер, создающих лучшие кадры на основе композиции сцены и взаимодействия объектов в ней, что позволяет вам настраивать, разрабатывать, экспериментировать и задавать поведение камеры в реальном времени.

Установка Cinemachine

Воспользуйтесь пакетным менеджером Unity (в верхнем меню: Window > Package Manager), чтобы выбрать и установить Cinemachine. Если вы не видите этого пакета, найдите выпадающее меню над списком и выберите All packages.

Cinemachine бесплатна и доступна для любого проекта. Если система уже установлена, вы можете обновить ее до последней версии.

Harold Halibut by Slow Bros

Cinemachine ускоряет разработку игр. Она освобождает вашу команду от разработки дорогостоящей логики поведения камер и позволяет сразу же разрабатывать и прототипировать новые идеи, одновременно сохраняя настройки в режиме Play. Модули камеры Cinemachine были доведены до совершенства за долгие годы использования в разных условиях, от шутеров с видом от первого лица до игр со следящей камерой, от 2D до 3D, от игр в реальном времени до кат-сцен.

Основное поведение

Composer

Процедурное наведение

Настройте камеру так, чтобы она автоматически поворачивалась и следила за вашими объектами в любой точке экрана. Composer позволяет осуществлять процедурную компоновку в реальном времени, настраивать задержку следования, ширину/высоту заглушения и даже опережающий просмотр движения, чтобы профессионально управлять кадром.

Transposer

Следящая камера

Прикрепите камеру к любому объекту или прикажите ей следовать за любым объектом. С помощью большого количества настроек и поведений вы можете задать, как именно камера будет следовать за объектом и что будет делать в различных условиях.

Обзорные камеры

Парящая камера

С легкостью управляйте орбитальными камерами в приключенческих играх от третьего лица с помощью проверенных в реальных условиях современных установок для парящих камер. К вашим услугам — многочисленные настройки, такие как скорость и форма орбиты, возвращение к центру, заглушение и тип ввода. Крайне точно управляйте несколькими обзорными камерами так, как требуется для событий в игре.

Cinemachine для 2D

Cinemachine поддерживает насколько характерных для 2D функций, включая ортогональную отрисовку и 2D-кадрирование, с помощью которых вы сможете компоновать, отслеживать и следовать за объектами. Настройка мощной 2D-камеры крайне проста.

Target Groups

Отслеживайте несколько объектов одновременно

С легкостью отслеживайте группу объектов и настраивайте вес и важность каждого из них. Функция Target Group позволяет динамически настраивать методы слежения, компоновки, настройки поля зрения и даже положение камеры, в зависимости от действий множества объектов.

Пользовательские смешения

Определяйте отношения

Выбирайте, как будет смешиваться вид с двух камер. Это пригодится при использовании сред с машинами состояний, где необходимо устанавливать сложные отношения при смешении. Так как это ассет, вы можете создавать пользовательские варианты смешения камер для каждого уровня.

Расширенное управление

Impulse

Тряска камеры

Модуль Impulse является основой полноценной системы тряски камеры. Настройте источники импульсов на объектах, и камера будет соответствующим образом реагировать, согласно масштабу и дистанции, выполняя тряску в 6 направлениях, которые вы можете задать вручную или сгенерировать процедурно.

Микшер

Абсолютный контроль

Изменяйте свои кадры, смешивая до 8 виртуальных камер, и управляйте смешением вручную с помощью Timeline или посредством кода. Микшер — это крайне гибкая система, где характеристики нескольких камер могут объединяться для создания идеального кадра в меняющихся условиях.

Коллайдер

Уклонение от препятствий

С легкостью управляйте и автоматизируйте уклонение от стен и объектов любой камеры Cinemachine, не прибегая к программированию. Коллайдер позволяет использовать несколько способов удержания камеры от столкновения с объектами мира.

Ограничитель

Задайте пределы

Задайте пределы помещений для своих камер, что автоматически запретит им выходить за границы определенных объемов или зон и сэкономит ресурсы (в отличие от коллайдеров).

Шум

Встряхнитесь!

Легко добивайтесь эффекта ручной съемки или добавляйте другие типы тряски камерам без необходимости создавать ключевые кадры, использовать пресеты или ручную настройку. Многоуровневая система шума Perlin в Cinemachine также снабжена визуальным дисплеем, на котором вы сможете увидеть, что именно происходит.

Приоритет

С легкостью управляйте приоритетом камер в больших средах с машинами состояний для достижения лучшего поведения камер при любых сценариях.

Разделенный экран и режим «картинка в картинке»

Без усилий настраивайте несколько «мозгов» Cinemachine для получения режимов «картинка в картинке», разделенного экрана на две или четыре части. Назначьте камеры Cinemachine к одному или всем «мозгам» и даже смешивайте изображения от одиночного и разделенного экранов и наоборот.

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Интеграция стека постобработки

Настраивайте изображение с каждой камеры Cinemachine так, как нужно вам, и смешивайте результаты. Cinemachine поддерживает профили постобработки и будет обрезать или смешивать эти настройки в зависимости от того, что делают камеры.

Clear Shot

Всегда получайте отличные кадры. Если что-то встанет между персонажем или объектом, Clear Shot выберет самую подходящую камеру, в зависимости от оценки кадра. Эта функция отлично подходит для повторов или кат-сцен в изменяемыми сценариями.

Мощные функции

Разделенный экран и режим «картинка в картинке»

Без усилий настраивайте несколько «мозгов» Cinemachine для получения режимов «картинка в картинке», разделенного экрана на две или четыре части. Назначьте камеры Cinemachine к одному или всем «мозгам» и даже смешивайте изображения от одиночного и разделенного экранов и наоборот.

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Интеграция стека постобработки

Настраивайте изображение с каждой камеры Cinemachine так, как нужно вам, и смешивайте результаты. Cinemachine поддерживает профили постобработки и будет обрезать или смешивать эти настройки в зависимости от того, что делают камеры.

Clear Shot

Всегда получайте отличные кадры. Если что-то встанет между персонажем или объектом, Clear Shot выберет самую подходящую камеру, в зависимости от оценки кадра. Эта функция отлично подходит для повторов или кат-сцен в изменяемыми сценариями.

Behind the Scenes on “Baymax Dreams”

Для кино и ТВ

Cinemachine — это ваш личный оператор-постановщик, знающий куда направить камеру и на чем сфокусироваться. Экспериментируйте с тележками для камер, слежением, тряской и постэффектами в реальном времени. Все выполняется процедурно, поэтому изменения просто срабатывают. Вы даже можете вносить изменения в анимации после разметки — Cinemachine знает, какие кадры вам нужны, и автоматически подстраивается, даже если события в кадре изменятся. Cinemachine получила премию «Эмми» за революцию в области кинематографии.

Мощные функции, полностью меняющие разметку CG

Composer

Процедурное кадрирование

Камера автоматически создает компоновку кадра с помощью специальных настроек так же, как работает оператор камеры. Представьте, что вы настроили разметку, изменили анимации, но кадры все равно получились, несмотря на то, что анимация была изменена! Composer полностью меняет процесс предварительной подготовки и разметки.

Transposer

Виртуальные операторы камер

Камера автоматически следует за происходящим так же, как работает оператор камеры. Transposer открывает доступ к огромному количеству настроек того, как камеры должны следовать за действием в сцене. Настраивайте кадры, изменяйте происходящее, но результат все равно выйдет удачным.

Постобработка

Цветокоррекция каждого кадра

Постобработка, цветокоррекция, эмуляция линз, глубина поля и многое другое — в реальном времени для каждого кадра. Если вы измените редактуру, цветокоррекция изменится вместе с ней. Смешивайте кадры на Timeline, и все остальное тоже смешается. Новый, функциональный и крайне быстрый метод работы.

Смешивание кадров

Быстрая предварительная подготовка

Timeline позволяет смешивать клипы из Cinemachine, создавая анимацию. Настраивайте последовательности кадров и смешивайте их в течение заданного времени. Вы за секунды добьетесь плавного движения камеры.

Следящее увеличение

Автоматически всегда получайте на экране объекты верного размера в сценариях, где положение персонажей может изменяться. Камера будет динамически изменять уровень увеличения, чтобы объекты всегда отображались нужного размера. Отлично подходит для интерактивных сцен диалогов.

Наборы линз

Ваш набор линз

Наборы линз Cinemachine позволяют составить список любимых линз в выпадающем меню. Добавьте своему проекту последовательности, ограничив фокусные расстояния набором пресетов, как это делается на съемочной площадке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *