Render.ru

Разрушение стены по методу Steven Knipping не работает. Как исправить?

Рейтинг
24
#1
И так, новая проблема - новый вопрос.
Тема, скорее всего, адресована тем, кто выполнял туториал от Steven Knipping, Applied Houdini - Rigids 2. Хочу сделать разрушение стены по тому же принципу.
Он разбивает стену на группы (кластеры) из нескольких отдельных кусков полученых с помошью voronoifracture констрейны которх имеют высокие значения strength, что позволяет им держаться вместе при разрушении и вести себя как один большой кусок. А промежутки между этими кластерами имеют констрейны с более низким значением strengrh, таким образом создавая возможность большим кускам свободно отколосться.
В его примере видно, что после взрыва, часть констрейнов была разрушена (@group_broken = 1) и, далее, разрушение распространияется по всем слабым констрейнам не затрагивая более сильные констрейны.
Вот пример из его туториала: https://streamable.com/gxefk

Я делал все то же самое что и он, но почему-то у меня не происходит такого же свободного распространения разрушения вдоль констрейна даже с strength=0 при относительно высоких значениях strength у кластеров. Зато, если я убераю кластеры, то все работает как надо. Но это же не правильно!
Вот мой результат: https://streamable.com/9xhb7 Констрейны сломаны а распространения разнушения нет.
У меня такой же результат был когда я выполнят туториал, но тогда я не обратил внимание на это. Может кто-то сталкивался с таким же результатом? Как вы исправляли?
 
Рейтинг
24
#3
Ты смотришь не внимательно, он удаляет констрейны между кластерами.
Нет, констрейны между кластерами удаляются сами после взрыва в вилу того, что ихний strength имеет вполне малое значение чтоб запустилась цепная реакция и пошло распространение разрушения по всему объекту. Вот что получилось удалив лишь Glue constraint для кластеров и оставив "трещены" https://streamable.com/u6kxf. Все работает как надо!
А кластеры имеют гораздо большие значения strength, что и сдерживает цепную реакцию. Но когда они включены в симуляцию, они, почему-то сами сдерживают распространение разрушения "трещин". А у Стива все работает как надо даже с активными кластерами.
 
Рейтинг
33
#4
Если ты будешь продолжать не читать что тебе пишут рассказывать что все вокруг не правы, то больше советов не увидишь.
Еще раз пересмотри и послушай что он говорит и разберись как glue constraint работает, а потом рассказывай что glue ломается от взрыва.
Удачи!

Там прям в соп солвере высчитывается атрибут для удаления констрейнов...
 
Последнее редактирование:
Рейтинг
24
#5
Если ты будешь продолжать не читать что тебе пишут рассказывать что все вокруг не правы, то больше советов не увидишь.
Еще раз пересмотри и послушай что он говорит и разберись как glue constraint работает, а потом рассказывай что glue ломается от взрыва.
Удачи!

Там прям в соп солвере высчитывается атрибут для удаления констрейнов...
Я десятки раз пересматривал и переповторял все его шаги. Думаю, ладно, может и в правду что-то упустил. Сделал все с чистого листа, опять прошелся по тем же шагам и получил все тот же, старый результат! Пересмотрел еще раз! Все сделано точь в точь как у него но результат отличается.
Он ни где конкретно не указывает, что удаляет констрейны именно между кластерами. Он, в sop solver, груперует и удаляет констрейны (да, через атрибут @group_broken =1) которые попали во внутрь периметра metaball. А в него попадают как констрейны самого кластера так и те, что между ними.
Вот мой файл с тестовым разрушением где можно посмотреть как все сделано (версия 16.0.504) https://ufile.io/8et37
Что я там упустил???
 

maiden666

Мастер
Рейтинг
112
#6
я кстати, тоже заметил год назад в этом уроке некий косяк с кластерами (сейчас не помню точно, что именно, надо пересмотреть), при том что по формальной логике всё было правильно, но реально работало не так, у меня было подозрение на баг самой программы (я тогда юзал 15-ю), или мою собственную тупость, тогда отложил решение проблемы, думая набраться знаний, но раз с этим столкнулся кто-то ещё...
Тут между прочим начал проделывать следющие упражнения из этой серии, и также встретил проблемы - там, где разрушение земли, у меня часть обломков взрывается к чёртовой матери, вместо того, чтобы мирно падать вниз, а с вертолётом, просто заколебали видеоглюки, когда не отображается сетка, пропадают цвета, иногда исчезают целые части...
 
Рейтинг
24
#7
я кстати, тоже заметил год назад в этом уроке некий косяк с кластерами (сейчас не помню точно, что именно, надо пересмотреть), при том что по формальной логике всё было правильно, но реально работало не так, у меня было подозрение на баг самой программы (я тогда юзал 15-ю), или мою собственную тупость, тогда отложил решение проблемы, думая набраться знаний, но раз с этим столкнулся кто-то ещё...
Тут между прочим начал проделывать следющие упражнения из этой серии, и также встретил проблемы - там, где разрушение земли, у меня часть обломков взрывается к чёртовой матери, вместо того, чтобы мирно падать вниз, а с вертолётом, просто заколебали видеоглюки, когда не отображается сетка, пропадают цвета, иногда исчезают целые части...
Оооооо! Оказывается, я тут не один такой! И за одно подтверждение того, что я не сумашедший или "криворукий"!)))) Хотя, в данном случае, не стыдно даже "криворуким" быть когда есть желание вникнуть в причину и понять, как же работают вещи в Гудини)).
Касаемо разрушения земли, тут все индивидуально - смотря как карта ляжет. Он говорил в уроке, что такое происходит. Даже в его случае он исправлял косяк, но у него он был один. Насколько я понимаю, причина разлета геометрии во все стороны в том, что некоторые куски, видимо, стремятся персечщя друг с другом в результате этого Гудини лажает с просчетом правельного поведения кусков. У меня такое случилось после того, как я делал уже свою версию разрушения.
Попробуй, для теста, не приминять рельефность (mountain) для подземной части геометрии, чтоб она выглядила по проще. Может немного поможет.
 

maiden666

Мастер
Рейтинг
112
#8
Оооооо! Оказывается, я тут не один такой! И за одно подтверждение того, что я не сумашедший или "криворукий"!)))) Хотя, в данном случае, не стыдно даже "криворуким" быть когда есть желание вникнуть в причину и понять, как же работают вещи в Гудини)).
Касаемо разрушения земли, тут все индивидуально - смотря как карта ляжет. Он говорил в уроке, что такое происходит. Даже в его случае он исправлял косяк, но у него он был один. Насколько я понимаю, причина разлета геометрии во все стороны в том, что некоторые куски, видимо, стремятся персечщя друг с другом в результате этого Гудини лажает с просчетом правельного поведения кусков. У меня такое случилось после того, как я делал уже свою версию разрушения.
Попробуй, для теста, не приминять рельефность (mountain) для подземной части геометрии, чтоб она выглядила по проще. Может немного поможет.
я и так упростил геометрию донельзя, потому что не очень мощный ноутбук, о том, что РБД имееет склонность взрываться при пересечении кусков, я разумеется, знаю, просто считалось, что эту проблему какбы устранили, и мне было странно столкнуться с ней в 17-й версии (видимо, придётся там слегка уменьшать размеры физических тел)
 

maiden666

Мастер
Рейтинг
112
#9
ЗЫ: я тут кстати вспомнил приблизительно, какя проблема с кластерами у меня тут прикличюлась в этом уроке - там было 2 вида Глю-констрейнтов, "сильные" и "слабые", я их, как автор, мёрджил, но в результате работали только одни из них, присоединённые первыми
 
Рейтинг
24
#10
ЗЫ: я тут кстати вспомнил приблизительно, какя проблема с кластерами у меня тут прикличюлась в этом уроке - там было 2 вида Глю-констрейнтов, "сильные" и "слабые", я их, как автор, мёрджил, но в результате работали только одни из них, присоединённые первыми
Перепробывал разные варианты. К сожелению, не работает. Видимо, тут нужен совсем другой подход о котором я не знаю.
 

Warslav

Знаток
Рейтинг
39
#11
Просто предположение, может автор урока какой-то хоткей использовал или shift+ или ctrl+, когда выполнял эти операции, а на видео этот момент прошел незамеченным.
 

maiden666

Мастер
Рейтинг
112
#12
Просто предположение, может автор урока какой-то хоткей использовал или shift+ или ctrl+, когда выполнял эти операции, а на видео этот момент прошел незамеченным.
Просто предположение, может автор урока какой-то хоткей использовал или shift+ или ctrl+, когда выполнял эти операции, а на видео этот момент прошел незамеченным.
к счастью, в Гудини, в отличии от других программ, ты всегда видишь последовательность действий, в виде нодового графа, ну и если я вижу, как соединены ноды, и соединяю так-же, то ожидаю аналогичного результата, так что вряд ли тут вопрос в хоткеях, другое дело, какой-нибудь параметр, который автор подвернул, но забыл об этом рассказать, я даже уважаемых людей, вроде Рохана или Энтагмы, иногда ловил на таких моментах, просто они всегда, в отличии от Книппинга, выкладывают файлы сцен, и можно разобраться самостоятельно
 
Рейтинг
33
#13
Для такогоже результата нужно использовать идентичную версию гудини. Когда вы используете отличную настройки могут сильно различаться.
У меня все его туторы работают без нареканий, учитывая что делал я эти сцены когда учил гудини. Вот открыл ригидс 2 и все ломается. Играйте с параметрами, разбирайтесь в сути, чтоб не зависеть от настроек автора.
 
Рейтинг
24
#14
Получилось сделать! Для этого пришлось ломать голову и в ручную писать алгоритм в sop solver. https://streamable.com/ydl4y
Я не думаю, что это единственное правильное решение учитывая что Стисин смог добиться такого же резкльтата совсем не через написание алгоритма. Может в Н16 и Н17 это как-то по другому реализуется, но мне пришлось идти альтернативным путем.
 
Рейтинг
24
#16
Идея в том, чтоб разрушить все те констрейны между теми кластерами на которые влияет @impact>0 даже если у часли этих констрейнов @impact=0. Т.е. к примеру, если N-ое количество кластеров удерживаются констрейнами и только часть из этих констрейнов получают @impact>0, то найти все остальные констрейны которые относятся к данным кластерам и разрушить их. Таким образом, вокруг этих кластеров образуются "дыры" позволяя им спокойно разваливаться без разрушения констрейнов самих кластеров.
Констрейны кластеров имеют имя, к примеру, Glue_Inside.
Констрейны между кластерами - Glue_Outside.
В primitive wrangler указываем, что будем работоть только с группой @constraint_name=Glue_Outside.
if(@impact>0), тогда находим кластеры которые удержимаются этим констрейном. Каждая точка такого констрейна содержит в себе ID кластеров которые он удерживает (в моем случае это атрибут cluster который получен методом Стива).
Вписывем все эти констрейны в массив. Таким образом получем информауию о том, вокруг каких кластеров нужно разрушить констрейны.
Далее, if(@impact=0) то сравниваем каждый такой констрейн с теми констрейнами, что находятся в массиве. Если сравнимаемый констрейн относится к одному из кластенов к которому относится хоть один их констрейнов из массива, то он разывается (@group_broken=1). В результате разрываются все констрейны которые хронят в себе такую же информацию о кластерах к которым они относятся как и констрейны в массиве.
Вот и все.

Но я не уверен, что этот метод всегда корректно работает. К примеру, если используется нода popmetaballforce в качестве разрушителя констрейнов (опять же, по методу Стива), то не всегда происходит полное разрушение констрейнов вокгуг кластеров на которые влияет метабол. А иногда все эти констрейны разнушаются за 2-3 кадра со большой скоростью. Тут приходится крутить strength или задавать, в качестве условия, @impact больше какого либо значения отличающегося от нуля (к примеру if (@impact>100)).

В случае с динамическрм объектом, который разрушает констрейны (к примеру снаряд), ситуация более предсказуемя, но и тут тоже нужно крутить значения strength и условие.
 
Рейтинг
24
#17
А теперь другая проблема возникла - у кусков стены наступают конвульсии после разрушения https://streamable.com/ak476
Я примерно понимаю из за чего это: кластеры имеют зубчетую формую. Эти зубья цепляюьтся друг за друга при разрушении, сила трения между ними не позволяет им расцепиться в то время как влияния дургих сил ни кто не отменял. В результатае компенсации одних сил другими и получается такие во подергивания. Если убрать силу стрения почти в поль, то все работает как надо, за исключением того, что обломки начинают скользить по полу как по льду. А это уже не приемлимо.
Ну и как теперь заставить эти обломки перестать дергаться?
Или я опять, спустя неколько недель, сам найду решение? )))))
 

maiden666

Мастер
Рейтинг
112
#18
сегодня с утра пересмотрел сцену, и понял точно, с какой проблемой именно я столкнулся год назад (возможно, у тебя была другая) - в моём случае ВСЕ констрейнты, попадающие внутрь метаболла, разрушались, и сильные, и слабые, и кластеры соответственно, тоже распадались, эту проблему я решил просто в СОП-Сольвере добавив условие

if(s@constraint_name == 'Glue_Outside')
@group_broken = 1;

я уж не знаю, сам ли я это пропустил в первый раз, или автор
После этого всё стало работать как надо
По поводу твоей новой проблемы - bounceness в ноль выставил?
 
Рейтинг
24
#19
сегодня с утра пересмотрел сцену, и понял точно, с какой проблемой именно я столкнулся год назад (возможно, у тебя была другая) - в моём случае ВСЕ констрейнты, попадающие внутрь метаболла, разрушались, и сильные, и слабые, и кластеры соответственно, тоже распадались, эту проблему я решил просто в СОП-Сольвере добавив условие

if(s@constraint_name == 'Glue_Outside')
@group_broken = 1;

я уж не знаю, сам ли я это пропустил в первый раз, или автор
После этого всё стало работать как надо
По поводу твоей новой проблемы - bounceness в ноль выставил?
У меня так же стена внутри метабола разлетаеться на мелкие куски. Я это решил исключив Glue_Inside из группы activate.
Сейчас попробывал сделать как у тебя. Да, работает, но распространения разрушения все равно не происходит ). Буду пользоваться своим методом пока не узнаю более легкий способ.
Касаемо bounceness, он выставлен в ноль. Так что дело не в нем.
 

maiden666

Мастер
Рейтинг
112
#20
по мне так "распространение" происходит естественным образом, когда части стены сдвигаются, деформируются, тогда слабые констрейнты рвутся, у тебя шар пробивает стену слишком быстро, чтобы это успело случиться
В Вагнеровском вебинаре рассматривался не совсем такой, но аналогичный случай, он там решал проблему, увеличивая сабстепы, причём не в Сольвере, а в самом ДОПе
 
Сверху