ПрограммированиеФорумФизика

Физика в Wipeout. Возможность эффективно воссоздать игру средствами Unity.

#0
22:49, 25 июля 2011

Взялся изучить Wipeout Pulse на предмет возможности ее пересоздания в Unity и столкнулся с дилеммой :( Обратите внимание на следующий участок трека:

Изображение

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

Собственно, вопрос: возможно ли эффективно расчитать движение 16 машин на уровне скриптов Unity без тормозов? Или лучше сразу искать другой инструмент?

#1
23:14, 25 июля 2011

отключить встроенную гравитацию,  добавить приложение силы, вычисляя вектор в зависимости от позиции (или зоны) - главное - - написать то, что будет эффективно и быстро по трем координатам выдавать вектор гравитации

#2
23:35, 25 июля 2011

NIXIUS
> добавить приложение силы
Собственно, уже думал над этим, но остается неясным, как это лучше сделать. Если я установлю Rigidbody.AddForce() по нормали к поверхности на одном участке, а на следующем нормаль уже будет другая и глайдер потащит в сторону. Повторный вызов AddForce() по новой нормали ситуацию только усугубит.

#3
23:43, 25 июля 2011

Не надо использовать привязку к нормали. Используйте точечные зоны ("объемный" граф) - интерполируя вектора - тогда все гладенько будет

#4
23:44, 25 июля 2011

Ну или уж если так хотите - используйте сглаживающий фильтр вектора гравитации - тогда вычисляйте его как хотите

#5
23:47, 25 июля 2011

Кажется придумал :) На каждом обновлении можно вычитать предыдущее значение силы и выставлять новое. Теперь остается вопрос что будет быстрее: raycast или сенсоры? буду экспериментировать :)

#6
23:53, 25 июля 2011

NIXIUS
> Используйте точечные зоны ("объемный" граф) - интерполируя вектора - тогда все
> гладенько будет
А объемный граф как делать? Сенсоры по всему треку расставить? Или полностью на скриптах (подозреваю, что второе будет медленно). Что касается интерполяции, то, как мне кажется, после смены вектора силы PhysX сам все пересчитает довольно гладко.

#7
1:06, 26 июля 2011

Barabus
> после смены вектора силы PhysX сам все пересчитает довольно гладко.
Это только если включен режим адаптивных сил

Barabus
> А объемный граф как делать?
Разбить сцену на кубическую матрицу, для каждой ячейки просчитать каким либо образом (заранее!!!, т.е. на этапе дизайна) вектор гравитации. Ну а дальше все понятно
ЗЫ - как грубый вариант

#8
7:04, 26 июля 2011

NIXIUS
> Разбить сцену на кубическую матрицу, для каждой ячейки просчитать каким либо
> образом
Ясно. Надо будет тоже испытать.

ПрограммированиеФорумФизика

Тема в архиве.