forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Имитация веревки (http://forum.boolean.name/showthread.php?t=17819)

Racot 31.01.2013 21:03

Имитация веревки
 
Помогите пожалуйста, уже не знаю что делать :dontknow: Нужно имитировать резинку как в Contre Jour.
немного получается в джоинтами но объекты между собой разбросаны да и текстуру нужно прилепить сплошную.

pepel 01.02.2013 01:04

Ответ: Имитация веревки
 
хм. чет никто не отвечает.

я както делал прототип такой резинки на блитце . если надо могу описать как делал

джоинтами можно сделать только простую веревку которая не тянется.

если надо сплошную текстуру то берется плейн разделенный на несколько частей по одной оси и прикрепляется к костям, и этими костями управляешь

pax 01.02.2013 01:56

Ответ: Имитация веревки
 
Рисовать можно с помощью LineRenderer, вот с растягиванием помочь не могу. С физикой мало работал.

Racot 01.02.2013 14:18

Ответ: Имитация веревки
 
Цитата:

Сообщение от pepel (Сообщение 251312)
я как-то делал прототип такой резинки на блитце . если надо могу описать как делал

было бы очень круто, если не трудно опиши пожалуйста

Цитата:

Сообщение от pax (Сообщение 251318)
Рисовать можно с помощью LineRenderer, вот с растягиванием помочь не могу. С физикой мало работал.

Игрался с этим LineRenderer, да чего-то не дошло как мне кусочки рендерить так чтобы скосов не было.

Дошел до математики, то что мне нужно это закон Гука но как его запрограммировать под юньку :SOS:

RegIon 01.02.2013 14:31

Ответ: Имитация веревки
 
Тебе нужен комплексный Joint, который совмещает как шарнир, так и Spring(пружину), тебе тогда лучше юзать http://docs.unity3d.com/Documentatio...ableJoint.html

Racot 01.02.2013 14:39

Ответ: Имитация веревки
 
Цитата:

Сообщение от Костян (Сообщение 251341)
Тебе нужен комплексный Joint, который совмещает как шарнир, так и Spring(пружину), тебе тогда лучше юзать http://docs.unity3d.com/Documentatio...ableJoint.html

Юзал:
1. Не могу найти оптимальных параметров
2. При пересечениях артефакты
3. Это получается с кусочков, если прилепить текстуру на каждый, будет криво(с моими да умениями)
Люди говорят с физикой будет очень геморно, мат решение искать нужно.
----------
Устраивает результат с тканью но она сгибается и поворачивается, а проект то в 2д пространстве. Уже неделю сижу и штаны протираю над этой проблемой :''((

RegIon 01.02.2013 15:02

Ответ: Имитация веревки
 
ТЫ поставь ограничение))
2 плейна с колайдером перед и после "веревки" и поправь жесткость ткани

Racot 01.02.2013 15:26

Ответ: Имитация веревки
 
Цитата:

Сообщение от Костян (Сообщение 251345)
ТЫ поставь ограничение))
2 плейна с колайдером перед и после "веревки" и поправь жесткость ткани

Ткань по максимуму стоит + выставлял freezeRotation по всех осях
а с плейнамы не понял по какой оси?

Накинул картинку как делал



стремлюсь к реализации "слизи" http://www.youtube.com/watch?feature...TI_8_Q#t=51 s (привязка по времени)

RegIon 01.02.2013 15:54

Ответ: Имитация веревки
 
Там матан)

Racot 01.02.2013 16:34

Ответ: Имитация веревки
 
Цитата:

Сообщение от Костян (Сообщение 251348)
Там матан)

:4to: :)

pepel 01.02.2013 16:58

Ответ: Имитация веревки
 
Вложений: 1
вобщем метод такой: берутся две точки которые имеют силу тяжести и инерцию(я например брал готовый двиг физикс т.к. писать самому коллизии лень). затем узнаем расстояние и градус

sx#=x1-x2
sy#=y1-y2
dist#=Sqr(sx^2+sy^2)
rad#=ATan2(sy,sx)


затем прикладываем импульс(не силу а ипульс- импульс, имеет единицу измерения масса*дистанция/время)
к обоим телам , берется некое расстояние(set_dist) которое изначально указываешь, к которому должны стремится точки





force_x1#=Cos(rad)*(set_dist-dist)
force_y1#=Sin(rad)*(set_dist-dist)

получаем импульс отталкивания и притягивания для обоих точек

затем применяем импульс для обоих тел с разным знаком

pxBodyAddForce body1,force_x1,force_y1,0,1
pxBodyAddForce body2,-force_x1,-force_y1,0,1

обычно тела по сумасшедшему себя ведут и приходится применять дампинг pxBodySetLinearDamping

прикрепил ехе-шник с исходником как это будет выглядеть
(мышкой можно тянуть веревку, колесиком мыши увеличивать\уменьшать set_dist)

Racot 01.02.2013 17:07

Ответ: Имитация веревки
 
pepel, спасибо, буду разбирать и подстраивать в Unity
С меня печеньки ))

pepel 01.02.2013 17:30

Ответ: Имитация веревки
 
незачто. насчет единой текстуры я имел ввиду такой способ



если в блитце можно так сделать, то в юнити подавно.
насчет других методов, про которые говорил pax не знаю..

Racot 01.02.2013 17:54

Ответ: Имитация веревки
 
Спасибо, буду дерзать. Может pax что-то еще подскажет с лайн рендером. Потом отпишусь что выйдет ))

RegIon 01.02.2013 18:10

Ответ: Имитация веревки
 
Да что с ним не то?
Делаешь обьект, ставишь на него лайнрендер, парентишь к нему столько Empty чаилдов, сколько нужно звеньев. Чаилды соедини всякими Joint-ами. на обьект с лайнрендером вещаешь такой скрипт:
Сними галку useWorldSpace
PHP код:

public Transform[] p;//это наши Empty
void FixedUpdate(){

for(
int i=0;i<p.Lenght;i++)
lineRenderer.SetPosition(ip[i].position);


Должно быть как у пипла


Часовой пояс GMT +4, время: 14:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot