Сплайны для камеры третьего лица

У меня возникли проблемы с приемом формулы /метода создания камеры третьего лица с переменным расстоянием от плеера, учитывая конкретный шаг камеры.

Это изображение показывает что-то близкое к моему желаемому результату:

 Расстояние камеры от смещений поворота и цели

У меня в основном есть только два требования. Камера должна рассчитываться непосредственно с высоты тона. Камера должна примерно следовать плавной кривой между минимальным и максимальным расстоянием между камерами и половинной точкой составляет около 50% расстояния (как видно на графике в правом верхнем углу изображения).

Итак, вариант A:

Я создаю функцию онлайн, чтобы преобразовать шаг непосредственно на расстояние камеры и использовать это. http://www.timotheegroleau.com/Flash/experiments/easing_function_generator.htm

У меня есть эта работа, и она заканчивается тем, что смотрит близко, но имеет две разные проблемы. Он является жестким и не позволяет мне редактировать любые смещения или расстояния без необходимости создавать совершенно новую функцию, а камера с шагом 0 градусов составляет около 15-30% от максимального расстояния, которое не ощущается хорошо, как если бы он был ближе к 50%.

Вариант B:

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

Вариант C:

Придумайте конкретную формулу, которую я понятия не имею, как ее найти. Учитывая минимальные и максимальные расстояния камеры, смещения и шаг камеры, верните расстояние, которое следует за гладкой кривой расстояния камеры, а средняя точка составляет примерно 50% от максимального расстояния.

Итак, мой вопрос в том, может /как я могу выполнить вариант B или C? Есть ли лучший способ?

4 голоса | спросил Saevax 18 FebruaryEurope/MoscowbSat, 18 Feb 2017 07:58:15 +0300000000amSat, 18 Feb 2017 07:58:15 +030017 2017, 07:58:15

2 ответа


1

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

Теперь вы можете оценить эту кривую (передавая шаг + смещение), чтобы получить расстояние от камеры.

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

ответил Victor T. 23 FebruaryEurope/MoscowbThu, 23 Feb 2017 00:41:56 +0300000000amThu, 23 Feb 2017 00:41:56 +030017 2017, 00:41:56
0

Чтобы я понял, что вы говорите, это то, что для варианта A: когда у вас есть камера «flat» (pitch 0), похоже, что она слишком близко к игроку? Если так ... добро пожаловать в каждую игру третьего лица!

Несмотря на всю серьезность, я думаю, что вы, возможно, передумали. Почему бы не взять опцию А, а затем поставить чек на место под /над некоторыми значениями тангажа и немного изменить расстояние? То, что вы, по существу, получите, - это типичный трепетанец «отскок», когда вы слишком высоко или низко поднимаетесь с полем.

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

ответил Aithos 23 FebruaryEurope/MoscowbThu, 23 Feb 2017 17:58:25 +0300000000pmThu, 23 Feb 2017 17:58:25 +030017 2017, 17:58:25

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132