Страница 3 из 19

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 03 дек 2009, 17:02
Neodrop
Я его использую в Drag and Drop
Если подскажеь, как его с мышью использовать, может поправлю её к лучшему :-? .

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 03 дек 2009, 21:05
Neodrop
К следующему выпуску, подготовлю :

[V] Мультитаги.
[V] Автопатчер.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 03 дек 2009, 21:24
PAX
По скриншотам видно, что используется кривая Безье высокого порядка. В большинстве случаев такие кривые применять оч сложно и накладно.
Меня например интересует кривая безье составленная из кривых третьего порядка т.е. каждая кривая строится на основе 4-х точек. Такие кривые реализованы во всех редакторах 3D графики. Я со временем могу передлжить код написанный мной для XNA для создания такой кривой, но вот засада в том, что нет возможности манипулирования отдельными GIZMO т.к. они привязаны к определенному объекту. Если создавать на основе дочерних объектов, то получается, что необходимо не произвольное число объектов, а 1+n, где n кратно трем для незамкнутой кривой. можно конечно если подобъектов не хватает их не учитывать... посмотрим.

У меня такой вопрос: ессть ли возможность равномерного перемещения по созданным кривым в данном проекте (я имею ввиду не постоянный шаг парамтра t, а постоянное расстояние между шагами)?

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 04 дек 2009, 03:04
Neodrop
Кривая не накладна. В рантайме она вообще не обсчитывается, потому что все её точки рассчитаны в Редакторе. Её можно обновлять, принудительной командой RefreshCurve при необходимости. Так что, по-сути, кроме памяти на массив векторов, она ничего не стоит и можно содержать в программе хоть сотни таких кривых.
Но алгоритм так себе, если честно. Так что кривые третьего порядка были бы не лишними. Сейчас один уважаемый камрад работает над ними, но и ваш вариант, мог бы быть весьма интересен.

Касательно шага : расстояние между точками кривой приблизительно равное. Но не гарантировано равное. В видео выше, я перемещаю автомобили по кривой так (псевдокод) :

Код: Выделить всё
if(Vector3.Distance(transform.position, targetVector) < 1f) targetVector = curve.curvePoints[index + 1];
LookAt на текущую цель движения (targetVector)
transform.Translate(0,0, Time.deltaTime * speed);


Таким образом, скорость перемещения по Кривой всегда равномерна на 100%.
Если сюда добавить сглаженную интерполяцию "взгляда", то движение объекта в повороте также будет гладким и плавным. К примеру использовать что-то вроде SmoothFallow

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 04 дек 2009, 21:05
PAX
Воторой вариант кривых помоему основан на кубических сплайнах (это не кривые Безье третьего порядка), неплохой вариант, но скрин который я видел не вдохновил формой кривой с данными контрольными точками... конечно надо самому смотреть. По поводу реализации кривых Безье третьего порядка: нужны идеи как делать контрольные точки. Посути необходимо строить результирующую кривую, составленную из кривых третьего порядка, но контрольные точки одной вершины должны лежать на одной линии, если получится реализовать такое, то обязательно выложу, только пока в планах этот момент стоит не на первом месте. Вобщем если сделаю, то обязательно выложу для сообщества. Тем более для второго проекта как раз будут нужны именно такие кривые Безье (составленные из кубических кривых и замкнутые).

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 26 дек 2009, 01:22
Neodrop
C помощью Curves быстро и без проблем нарисовал провода для сцены с железной дорогой.

Изображение

Изображение

Заодно, немного улучшил Curves Manager, добавив упрощённый способ создания Line Renderers
Скоро опубликую обновление.

Изображение

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 27 дек 2009, 01:31
warr11r
Процесс рисования непрямых подобен графическому редактору?

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 27 дек 2009, 01:50
Neodrop
Всё делается мышью. Редакторов много, мышь одна на всех. :D
Не совсем как в рисовалках. Мои кривые менее управляемые к сожалению. Я не нашел подходящего алгоритма.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 30 дек 2009, 11:23
Mr_Anderson
Отличная работа, Нео! (3A4OT)
Сразу небольшие замечания: при восстановлении связи с шаблоном (ассетом или префабом) происходит сброс всех полей объекта и его чайлдов.
Надеюсь, в ближайшем будущем будет время заняться Вашим браузером и расширить функционал.
Пока только озвучу, что хотелось бы сделать из того, что приходит в голову :))) :
- реализовать возможность сохранения (сериализации)/загрузки (десериализации) всех компонентов объекта и его чайлдов в XML. Чтобы обеспечить возможность полного или частичного восстановления компонентов, например после реструктуризации или после серьезного изменения исходного ассета.
- показать/редактировать центр масс Rigidbody и его локальные координаты, также и диагональный тензор инерции (вектор);
- показать anchor у Configurable Joint (странно, что его до сих пор не сделали, хотя у Hinge Joint он показан).

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 11:26
PAX
На днях доведу до ума и выложу свои кривые Безье :)

CubicBezierCurve.png


CubicBezierCurve.png


CubicBezierCurve.png


Не смотря на то что приводимые мной на скриншотах кривые состоят из трех сегментов, самих сегментов может быть много :)

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 15:32
Neodrop
Предлагаю интегрировать в мою оболочку.
Можно добавить кнопу "Donation" в интерфейс ваших кривых.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 17:58
PAX
Я не против, только доделать надо... видел раньше пример по плавному перемещению (не с постоянной скоростью) по сегментированной кривой, и забыл на каком ресурсе видел... найти не могу. Перемещение с примерно постоянной скоростью я сделал путем разбиения кривой и интерполяцией по сегментам, конечно с погрешностью, но лучше чем ничего... как найду тот ресурс, то тоже сделаю и для не константного перемещения.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 18:45
Neodrop
Я просто двигаю объект от точки к точке кривой и, когда дистанция меньше минимальной, задаю объекту следующую точку. Элементарно и совершенно гладко. Независимо от того, сколько точек в кривой и от разности дистанций между ними.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 19:03
PAX
Такой способ является не точным, в моем случае координаты считаются по параметру на кривой.

Re: Antares Project Browser (OpenSources)

СообщениеДобавлено: 01 янв 2010, 19:14
Neodrop
Да ладно тебе. Отступ от кривой мизерный. Для игровых целей - выше крыши.