Процедурное создание костей

Физика в Unity

Процедурное создание костей

Сообщение nile 13 сен 2012, 14:20

Всем привет!
Вопрос к знатокам: возможно ли в Unity3d [unity 3D] процедурно создать кости на основе ребер меша?(Есть подозрение что только через с помощью сторонних dll) Имеется модель авто, имеется его упрощенная модель, которую я использую как коллайдер. Ради эксперимента хочется сделать так, чтобы при ударении проминался коллайдер (это сделано), а меш самой машины проминался в след за ним, как будто коллайдер - это аналогия костей какого-либо персонажа.

Если нет, то может быть кто-нибудь знает программы, где это можно сделать малой кровью? Всем заранее спасибо за ответы.

П.С.
На данным момент корпус и коллайдер проминаются независимо друг от друга. Пока что у меня есть идея сделать так, чтобы каждой вершине коллайдера были привязаны все те вершины автомобиля, которые находятся в радиусе R от нее (вершины коллайдера). И при смещении этой вершины, за ней двигались те, что к ней привязаны. + как дополнение, в дальнейшем есть идея реализовать что-то типо как soft sellection в 3dsmax (max_sm) , чтобы чем дальше вершина авто находится от вершины коллайдера - тем меньше ее смещение (но там свои тонкости). Вообще я стремлюсь получить результат, близкий к rig of rods (http://www.youtube.com/watch?v=yQZLvl0f7DE)


Для наглядности поста вот скрин с моделью и ее меш коллайдером.
Изображение
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17

Re: Процедурное создание костей

Сообщение IDoNotExist 13 сен 2012, 20:25

Кости привязать можно без сторонних dll, нужно добавлять в Mesh веса для каждой вершины boneWeights и bindposes для каждой кости, затем юзать SkinnedMeshRenderer, и добавлять сами кости в массив bones.

На мой взгляд гораздо проще для вас будет пересчитывать координаты вершин модели на основе расстояния которые прошли вершины коллайдера при столкновении.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Процедурное создание костей

Сообщение nile 13 сен 2012, 20:54

Спасибо за ответ, сделаю.
На счет пересчитывания координат: ну это сделать то проще. Но хочется создать ощущение, что машина сделана из железных рам и тд, а не из пластика или камня. например при лобовом столкновении чтобы она не просто смялась в гармошку, но и хотя бы немного прогибалась пополам.
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17

Re: Процедурное создание костей

Сообщение lol 15 сен 2012, 12:56

А риг оф родс - это игра или просто демка?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Процедурное создание костей

Сообщение nile 15 сен 2012, 14:03

Это игра. На сколько мне известно, она сделана на собственном энтузиазме кем-то. Идея заключалась в том, чтобы максимально проработать физику автомобиля.
Кстати говоря, вот результат переноса движка RoR в CryEngine 3 http://www.youtube.com/watch?v=KppTmsNFneg
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17

Re: Процедурное создание костей

Сообщение Syberex 15 сен 2012, 20:54

nile писал(а):... Ради эксперимента хочется сделать так, чтобы при ударении проминался коллайдер (это сделано)...

А как это сделано, можете рассказать? :)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Процедурное создание костей

Сообщение nile 16 сен 2012, 15:39

Вот тут вроде бы это уже реализованно
http://forum.unity3d.com/threads/52040- ... arly-stage)
Хотя я допиливал старый скрипт (или какой-то другой), в котором этого еще не было.

Принцип прост: меш коллайдер основан на обычном меше, вершины которого вы можете двигать с таким же успехом, что и визуального меша.
Чтобы сделать GO коллайдером, надо создать пустой объект, присвоить ему меш коллайдер и в компоненте коллайдера в пункте меш, выбрать из списка подходящий меш (обычно он повернут на 90 градусов вокруг оси Х) и поставить его на нужное место. Так же я ставлю галочку Convex для создания упрощенного коллайдера без внутренних полостей (не помню точно, но там в этом случае число вершин коллайдера не должно превышать 255).
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17

Re: Процедурное создание костей

Сообщение Syberex 16 сен 2012, 21:28

Не понимаю тогда, что вам мешат поступить также с мешем самой модели? (popcorn1)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Процедурное создание костей

Сообщение nile 17 сен 2012, 16:30

Вот
http://www.youtube.com/watch?v=t3lOR2KW ... age#t=117s
обратите внимание как прогибается машина, как сдвигаются ее колеса вокруг столба. Создается впечатление наличия метал конструкции. Вот именно такого эффекта я и хочу добиться. Пока что у меня авто просто нелепо сминается как пластилин.

П.С. в данном автосиммуляторе используются кости.
Аватара пользователя
nile
Старожил
 
Сообщения: 848
Зарегистрирован: 25 фев 2011, 17:17


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2