Четверг, 18 Апреля 2024, 01:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вращение камеры вокруг персонажа.
Вращение камеры вокруг персонажа.
ggmanДата: Вторник, 08 Июля 2014, 23:41 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Знаете во многих играх от третьего лица можно вращать камеру вокруг персонажа на 360 градусов, а персонаж при этом стоит и не двигается. В результате можно посмотреть на него спереди, сзади или сверху. Камера вращается по сферичной плоскости и при этом всегда направлена на персонажа.
Подскажите, пожалуйста в какую сторону копать чтоб это сделать?


Сообщение отредактировал ggman - Среда, 09 Июля 2014, 01:53
romgermanДата: Среда, 09 Июля 2014, 00:25 | Сообщение # 2
старожил
Сейчас нет на сайте
Цитата ggman ()
от первого лица

Цитата ggman ()
посмотреть на него спереди, сзади или сверху

Цитата ggman ()
всегда направлена на персонажа

Что-то тут не так.
allodsДата: Среда, 09 Июля 2014, 00:51 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
стандартный MouseLook скрипт
ggmanДата: Среда, 09 Июля 2014, 01:54 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Воу, воу, воу.
Тупанул.
Я имел в виду от третьего лица.
Перепутал.
RangerДата: Среда, 09 Июля 2014, 05:04 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
В стандартных ассетах есть скрипты для камеры.
Если хочется своего, то самое простое решение:
сделать сложный объект: в центре пустой ГО . чилдом повесить камеру, повернутую к пустому ГО. Пустой ГО совместить с игроком и просто делать поворот этого сложного объекта.
Решение простое, но будут косяки при подходе к препятствиям.

более сложное: повесить физику на камеру и держать ее физикой около персонажа
ротацию камеры получать через LookAt.

Ну и третье. Компромиссный вариант: повесить физику на камеру и пустой ГО и привязать камеру к пустому ГО джоинтом.
Успехов.




Сообщение отредактировал Ranger - Среда, 09 Июля 2014, 05:29
lentinantДата: Среда, 09 Июля 2014, 15:22 | Сообщение # 6
ленивый программист
Сейчас нет на сайте
Цитата Ranger ()
Решение простое, но будут косяки при подходе к препятствиям.

Обычный рейкаст решает эту проблему.


Когда-то тут будут ссылки на крутые проекты. Или нет.
Vip_and_RipДата: Среда, 09 Июля 2014, 16:05 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Цитата romgerman ()
от первого лица

Цитата ggman ()
посмотреть на него спереди, сзади или сверху

Цитата ggman ()
всегда направлена на персонажа

Что-то тут не так.


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


Больше никогда не буду делать игры.
RangerДата: Среда, 09 Июля 2014, 16:20 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата lentinant ()
Обычный рейкаст решает эту проблему.

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


allodsДата: Среда, 09 Июля 2014, 16:44 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
Цитата Vip_and_Rip ()
хоть женскому персонажу под юбку заглядывай.

Норм увидеть чего сможешь только с модами biggrin


Сообщение отредактировал allods - Среда, 09 Июля 2014, 16:44
andarkyДата: Среда, 09 Июля 2014, 16:56 | Сообщение # 10
старожил
Сейчас нет на сайте
я делаю обычного FPS из.стандартной поставки.
Отключаю его камеру (можно вообще удалить её) ну или пишу скрипт переключения меж камерами.

Потом создаю пустышку - и привязываю к ней камеру №2. В стандартном наборе скриптов также есть какой-то для следования за объхектом, там можно и замедления плавные сделать - вот его я вешаю на эту пустышку и в скрипте Target = FPS-character

настраиваю удаленность угол камеры и дописываю скрипт которым вращать вокруг перса. Хотя можно не писать а порыться в стандарт-ассет - там всё есть. Уже все придумано и написано.

Так я могу бегать и смотреть из глаз - а потом щелк - на нужную кнопку - и я вижу себя со стороны. Камеру можно крутить как кнопками так и мышой.
Можно вообще сделать чтобы плавно вращалась и двигалась сверху всегда держа в фокусе гл.перса

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



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
lentinantДата: Среда, 09 Июля 2014, 18:12 | Сообщение # 11
ленивый программист
Сейчас нет на сайте
Цитата Ranger ()
да, кстати.
я примерно понял, как это можно сделать.
Но хотелось бы твое решение, если не затруднит.

Находить необходимое положение камеры (можно просто брать вектор типа transform.forward пустого GO, и умножать на радиус), лайн/рейкастить от центра этого самого GO до полученной координаты, если получили результат - перемещаем камеру в точку столкновения, если не получили - на ранее рассчитанную координату.


Когда-то тут будут ссылки на крутые проекты. Или нет.
ggmanДата: Четверг, 10 Июля 2014, 01:39 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Так ребята, давайте по порядку, что за стандартный скрипт которым можно крутить камерой вокруг персонажа? Сейчас смотрел и не могу найти подходящий.
Цитата Ranger ()
Если хочется своего, то самое простое решение:
сделать сложный объект: в центре пустой ГО . чилдом повесить камеру, повернутую к пустому ГО. Пустой ГО совместить с игроком и просто делать поворот этого сложного объекта.
Решение простое, но будут косяки при подходе к препятствиям.

Да, тоже думал об этом, но не хочется делать нагромождение лишних объектов, а сделать все через математику.
RangerДата: Четверг, 10 Июля 2014, 06:40 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
Цитата ggman ()
сделать все через математику.

ну хозяин - барин. smile
умножением кватерниона поворота на вектор, (up или forward не помню что там с камерой - нужно смотреть) получаем вектор направления в пространстве, соответствующий повороту камеры.
от персонажа пускаем луч согласно вектора направления . кастуем рэйкаст (как говорил лейтенант) получаем точку коллизии с препятствием. если дистанция до препятствия меньше желаемой дистанции камеры, помещаем камеру туда.
если нет - на луче отмеряем нужную дистанцию. и ставим туда камеру.
потом меняем ротацию камеры через LookRotation на персонажа и всё.
Только:
1. подобрать поправку на дистанцию при коллизии камеры
2. отключать рендер персонажа, если камера слишком близко к нему




Сообщение отредактировал Ranger - Четверг, 10 Июля 2014, 06:53
dimanmonsterДата: Пятница, 11 Июля 2014, 13:35 | Сообщение # 14
почетный гость
Сейчас нет на сайте
используй transfom.rotation

Может я и не прав
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вращение камеры вокруг персонажа.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг