|
|
|
Канал Игры Мечты: «Unity -- учим вместе» |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
Guest : |
Надо снять ограничения на движение поршня, а вместо проверок на сдвиг поставить либо проверки на скорость (пока не нашёл, где это контролируется, но уверен, что есть - такие вещи ручками давно уже считать моветон)
З.Ы.: вот почему нет цилиндрического коллайдера, когда он так нужен?
|
скорость Rigidbody.velocity, а вместо цилиндрического коллайдера есть такая вещь как Mesh collider хотя конечно для динамических объектов это тяжеловато.... а чем кстати не подходит капсульный коллайдер ? или там нужен цилиндр хитрый ? тогда без меш коллайдера не обойтись...
добавлено спустя 32 минуты:
Guest : |
Я больше за ИИ переживаю, он может быть лютым, поскольку его задача будет не следовать проложенным маршрутам, а выбирать свои: пока два варианта - один, попроще, подбирает оптимальную дорогу и к ней "липнет" через LookAt - конечно, немного дёргано, зато надёжно и относительно дёшево; второй - сложнее примерно на порядок, с анализом варианта "а не срезать ли нам прямо тут?" в зависимости от параметров машины и террейна. Вот второй легко может отбирать до 60% времени всего кадра, возможно придётся дробить таймер его вызова на более редкие промежутки. Впрочем, если нагрузка будет такой пульсирующей - возникнет крайне неприятный эффект "стробоскопные лаги". В общем, пока на физику можно не заморачиваться, я прототип же собираю Даже модельки пока не импортил, на примитивах Юнити всё держится.
|
Я тут кое чего подумал, в принципе реализовать такой ИИ, будет не так уж и сложно, что бы не отягощать лишними проверками, можно на трассе( я думаю она будет заранее известна ?) растянуть теже самые триггеры, и при наезде на один такой через BroadcastMessage запускать нужные действия ИИ, так же как совет, всегда отключайте ненужные скрипты myscript.active = false; сэкономите кучу ресурсов, а так же расставить вейпоинты по которым сами машинки и будут передвигаться(можно подглядеть реализацию в демке FPS tutorial), а что бы LookAT небыл дерганым я предлагаю использовать такое
Код: |
var direction = position - transform.position;
var moveDirection = Vector3.forward*spedUP ;
moveDirection = transform.TransformDirection(moveDirection);
rigidbody.isKinematic = true;
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(direction,transform.up), rotationSpeed2 * Time.deltaTime);
rigidbody.isKinematic = false;
rigidbody.AddForce (moveDirection);
|
да и еще, например если будет камера ГГ от 3го лица,(резиновая) и машинка будет двигаться через rigidbody.AddForce то обязательно обрабатывайте движение машины и камеры через FixedUpdate иначе не избежать рассинхронизации и эффекта дерганой камеры, вообще в документации сказано что любое действие с физикой лучше производить именно в FixedUpdate но это не всегда хорошо, например в том же ИИ....
да еще забыл полезную вещ как OnBecameVisible, но правдо для ИИ это не подходит, а вот всякую анимированную статику глушить когда на нее не смотрит камера самое оно
Последний раз редактировалось: Kann (23:45 09-03-2010), всего редактировалось 7 раз(а) |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Kann : |
а чем кстати не подходит капсульный коллайдер ? или там нужен цилиндр хитрый ? тогда без меш коллайдера не обойтись...
|
Там нужен цилиндр с большим радиусом, малой высотой и коллайдером, максимально повторяющим его объём. У капсулы крышки даже с большим радиусом будут чувствительно выпирать, либо, если погрузить коллайдер в цилиндр - углы обрабатыватся не будут...
При этом цилиндр - процедурная фигура, обрабатывается довольно быстро. Ну ладно, посмотрим, может и меш прицеплю.
Kann : |
Я тут кое чего подумал, в принципе реализовать такой ИИ, будет не так уж и сложно, что бы не отягощать лишними проверками, можно на трассе( я думаю она будет заранее известна ?) растянуть теже самые триггеры, и при наезде на один такой через BroadcastMessage запускать нужные действия ИИ, так же как совет, всегда отключайте ненужные скрипты myscript.active = false; сэкономите кучу ресурсов, а так же расставить вейпоинты по которым сами машинки и будут передвигаться
|
К сожалению, ИИ получается сложнее, т.к. примерно четверть свободных НПЦ и половина соревнующихся НПЦ должна быть способна ездить по дорогам и бездорожью, решая известную задачу по поиску быстрейшего (а не кратчайшего) пути по нескольким покрытиям в зависимости от падения скорости на каждом из них Просто по дороге - только часть будет...
Да, чистый кинематик основного тела машин в сочетании с физическим моделированием сцепления колёс будет выглядеть "немного" странно Так что мысль скорее в использовании поворота управляющих колёс примерно таким же методом, и выбора скорости. Благо скриптов для решения этой задачи уже немало написали.
З.Ы.: вопрос, может кто-то знает: максимальная скорость автомобиля с ДВС (предполагая, что сопротивление воздуха пренебрежимо мало, что не есть верно) на прямой ровной дороге определяется точкой разрушения двигателя и максимальным коэффициентом коробки передач. А чем определяется максимальная скорость паромобиля?
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
Guest : |
А чем определяется максимальная скорость паромобиля?
|
наверно давлением пара в котле ? вспомни фильм, Назад в будущее, там в одной из серий они разгоняли паровоз, и из котла начинали выскакивать заклепки
|
|
|
Варсик 545 EGP
Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4039 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Kann : |
наверно давлением пара в котле ?
|
Не всегда. Там еще передаточный механизм... Если он довольно тяжелый, то он может тупо с оси слететь.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Простите за идиотский вопрос: но если у одного геймобжекта два и более одинаковых компонента - как можно получить доступ к свойствам конкретного из них? Например - есть два ConstantForce - как обратиться в скрипте к одному из них, не попутав с другим?
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Zaicheg
|
|
Никак. С коллайдерами в своё время так хотел. Вообще, по задумке Unity использование двух одинаковых компонентов на объекте не предполагается — я так думаю.
|
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
ой Зайчег ты и сюда добрался
а по теме да, Зайчег правильно сказал что юнити не предусматривает одновременное использование 2х одинаковых компонентов на 1м ГО.... кстати интересно а какая ситуация требует 2х одинаковых компонентов ?
|
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Kann : |
кстати интересно а какая ситуация требует 2х одинаковых компонентов ?
|
Мультиколлайдерная система, например - когда нужно именно раздельные реакции на касания разных частей объекта (один меш, реагирующий по-разному с разных сторон, на два меша делить нельзя - объём убьётся).
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
А можно сделать составной невидимый меш, а еще лучше набор коробок, и ими уже коллайдерить?
_________________ У меня бисера не доxеpа. |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
это реализовывается по другому, идем сюда и читаем на тему Compound Colliders
http://unity3d.com/support/documentation/Manual/Physics.html
|
|
|
Zaicheg
|
|
Kann : |
кстати интересно а какая ситуация требует 2х одинаковых компонентов ?
|
Один коллайдер — для физики, второй — триггер. Сейчас приходится городить дочерний объект с лишним скриптом.
Цитата: |
А можно сделать составной невидимый меш, а еще лучше набор коробок, и ими уже коллайдерить?
|
Да, через дочерние объекты.
|
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
понятно, для удобства... кстати нашел не очень приятную особенность юнити, походу мировая матрица считается в float отсюда координатная система имеет плохую точность, отсюда проблемы с расстояниями,и размерами объектов, черт, засада... солнечную систему в более менее приличных размерах не реализовать....
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
А какой именно float? Сколько байт/какое разрешение?
_________________ У меня бисера не доxеpа. |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
Shirson : |
А какой именно float? Сколько байт/какое разрешение?
|
да походу обычный, 7 знаков, а редактор сдыхает еще раньше.....
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Всмысле наихудший из возможных 4х байтовый single ?
И это никак и нигде не поменять?
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (10:23 16-03-2010), всего редактировалось 1 раз |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
ну точнее не скажу, исходных кодов юнити нет, ну и собственно поменять float на double не представляется возможным...
|
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Думаю, есть смысл спросить у разработчиков unity.
добавлено спустя 16 минут:
Kann : |
солнечную систему в более менее приличных размерах не реализовать....
|
А в приличных - это близко к реальным размерам тел и расстоянию между ними? В принципе, это можно хакнуть либо через несколько сцен (разбить пространство на части, подгрузку осуществлять при подходе к границе - бесшовный объём, всё равно видимые размеры планет друг с друга ничтожны - можно их картинками делать), либо через масштаб объектов (вместо реального перемещения скейлим и/или сдвигаем) объекты.
Да, по последнему меня интересная мысль посетила: что, если трансформировать не камеру в мире, а мир вокруг камеры? Это будет тяжелее, конечно, но зато проблема низкой точности мировой матрицы исчезает... Всё, что в мире - имеет свои мешовые размеры, выходя за пределы мира - деградирует в биллборд и остаётся на границе.
Да, сложно и извращение, это вам не матрицу трансформации камеры один раз умножить, но всё-таки
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (11:21 16-03-2010), всего редактировалось 2 раз(а) |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
да не то что бы прям к реальным, но хотелось бы чуток по больше чем доступно, хотя бы покрыть расстояние между землей и луной, так как сложно создать иллюзию огромной планеты в 3D не увеличивая ее размеров, в тоже время и саму модель кораблика сильно не уменьшиш, опять же упираемся в точность вычислений, модель начинает прыгать да, придется извращенствовать и разбивать уровни на сцены с загрузкой, но в тоже время непонятно что делать с сатурном и его спутниками, опять разбивать на сцены ? весь концепт летит к чертям , крутить мир вокруг нулевой координаты... занятие не для слабонервных
|
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Kann : |
крутить мир вокруг нулевой координаты... занятие не для слабонервных
|
На самом деле не так сложно, как кажется. Жалко только, глобальный апдейт переписывать придётся на скриптах... Скрипт трансформации, унифицированный, цепляется на все объекты.
Собственно, трансформация нужна только на сдвиг, вращать мир вокруг камеры не надо - она сама может крутиться, не сдвигаясь из нуля.
Хуже обстоит дело с физикой - её придётся эмулировать.
добавлено спустя 5 минут:
Kann : |
так как сложно создать иллюзию огромной планеты в 3D не увеличивая ее размеров, в тоже время и саму модель кораблика сильно не уменьшиш, опять же упираемся в точность вычислений, модель начинает прыгать
|
Ну есть же вариант - не юзать настоящие размеры. Не в смысле отскейлить всю сцену - тогда действительно прыжки начнутся, да и геометрия поехать может в поворотах. А в смысле - доскейливать объекты. Приближаемся к планете наполовину реальным перемещением, наполовину - масштабируем планету. Будет ошибка в позиционировании других тел, но они далеко, так что можно и проскипать этот момент...
В общем - хаков много, если подумать. А тут вопрос совместимости с яТелефончиками - там проц двойную точность не знает.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (11:50 16-03-2010), всего редактировалось 2 раз(а) |
|
|
Kann 64 EGP
Рейтинг канала: 3(45) Репутация: 7 Сообщения: 232 Откуда: Москва Зарегистрирован: 11.04.2008 |
|
Guest : |
Приближаемся к планете наполовину реальным перемещением, наполовину - масштабируем планету.
|
не вариант, проблема с Atmospheric Scattering, что бы его адаптировать к трансформации слишком много геморроя, тут обычным глобальным трансформом не обойдешся..... к тому же что делать с скоростями ? тут надо уже будет двигать планету в зависимости от дистанции до камеры одновременно ее масштабируя, но тут выходят новые траблы, что делать с остальной статикой ? если например действия разворачиваются около астероидного пояса или какой либо станции, к тому же совершенно непонятно как в таких условиях сделать облет вокруг планеты, аля я Гагарин кароче хз, буду рыскать варианты....
|
|
|
|
|
|
Канал Игры Мечты: «Unity -- учим вместе» |
|