Автор Тема: Разбивающиеся объекты-стекла  (Прочитано 3893 раз)

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 593
  • Репутация: +90/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Разбивающиеся объекты-стекла
« : Январь 03, 2016, 04:09:14 pm »
Кто-нибудь знает, как они сделаны? Что-то вообще ничего не могу найти по этому вопросу.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #1 : Январь 03, 2016, 06:27:44 pm »
В смысле - как их сделать самому? Или ты про внутриигровое устройство?

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 593
  • Репутация: +90/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #2 : Январь 03, 2016, 08:10:06 pm »
Про само разбивание, звук и осколки. Как задать своему окну такие свойства.

Оффлайн Tommi4kaVar4etti

  • Прохожий
  • *
  • Сообщений: 55
  • Репутация: +0/-0
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #3 : Январь 03, 2016, 11:36:55 pm »
Хмм, скорее всего это что-то связано с коллизией.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #4 : Январь 04, 2016, 01:43:34 am »
Нужен в ide флаг 1028 и, прописывая в object.dat, указать параметр J(Special Collision Response Cases) равным 4(fencepart).
« Последнее редактирование: Январь 04, 2016, 01:46:12 am от Shaggy »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 593
  • Репутация: +90/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #5 : Январь 04, 2016, 10:21:00 am »
Что-то не помогло, единственно объект стал исчезать от взрыва, осколков и звука нет.
Вообще стандартные стекла себя странно ведут, если отодвинуть например стекло 1808, bikeshop_glass2 подальше от своего первоначального места, то c определенного расстояния оно теряет коллизию и перестает разбиваться


Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #6 : Январь 05, 2016, 12:21:52 am »
Хз, у меня всё работает. Попробуй просто скопировать для своего объекта в object.dat строчку wglasssmash(т.е. все параметры от него), так 100% должно работать(при условии флага 1028 в ide, ессно)

P.S. Ох, блин, забыл: я не делал бъющиеся стекла с кол-вом полигонов, больше 1, поэтому за прочие объекты не отвечаю.

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 593
  • Репутация: +90/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #7 : Январь 05, 2016, 11:13:45 am »
Спасибо, последние замечание дало положительный результат, надо было сразу начинать со стекла из generic, и скорее всего действительно дело в простоте кола (сама модель у меня многополигональная). А вот загадка на скрине остается загадкой, почему-то стекло из байкшопа теряет физические свойства при отдалении от места на большое расстояние, ну да не важно.

P.S. Когда-то давно я построил стеклянную многоэтажку, используя модель wglasssmash, думал получу град осколков, однако эффект от разбивания был всего на паре первых разбиваемых окон, остальные просто исчезали, очередной лимит на этот раз на осколки.
« Последнее редактирование: Январь 05, 2016, 11:19:35 am от xanser »

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #8 : Январь 05, 2016, 07:47:24 pm »
По большому счету, такие фишки можно делать системой частиц, которые имеют коллизию. Ну например вроде бы мы разбили объект, сам объект исчез, затем проигрывается звук на координатах, дальше частички стекл падают вниз и при столкновении с землей, еще проигрывается звук будто бы осколки упали. Тут есть разные варианты в реализации.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #9 : Январь 06, 2016, 02:47:30 am »
Спасибо, последние замечание дало положительный результат, надо было сразу начинать со стекла из generic, и скорее всего действительно дело в простоте кола (сама модель у меня многополигональная).
Я и кол и модель не делал больше 1 полика. Можешь когда-нить заскринить/заснять, как многополигональная модель разбивается(всегда интересно было)?

А вот загадка на скрине остается загадкой, почему-то стекло из байкшопа теряет физические свойства при отдалении от места на большое расстояние, ну да не важно.
В вайсе иногда такие хреновины встречаются, что я диву даюсь: вот, вроде бы - все очевидно, ан нет: работает через жопу!

P.S. Когда-то давно я построил стеклянную многоэтажку, используя модель wglasssmash, думал получу град осколков, однако эффект от разбивания был всего на паре первых разбиваемых окон, остальные просто исчезали, очередной лимит на этот раз на осколки.
Лимиты на партиклы меня часто просто вымораживают. Много идей похерилось из-за этого.

Цитировать
По большому счету, такие фишки можно делать системой частиц, которые имеют коллизию. Ну например вроде бы мы разбили объект, сам объект исчез, затем проигрывается звук на координатах, дальше частички стекл падают вниз и при столкновении с землей, еще проигрывается звук будто бы осколки упали. Тут есть разные варианты в реализации.
Тут, опять - та же проблема: лимиты партиклов - только немного другие. Пример: по-дефолту, при взрыве башки педа, создается дофигища капель крови, а при создании вручную(скриптом например) кучи капель - отображается лишь пара. При создании цикла генерации капель, где каждое мгновение создается капля - отображается лишь 1-2 капли одновременно, и новые создаются лишь когда исчезают старые.
« Последнее редактирование: Январь 06, 2016, 02:50:02 am от Shaggy »

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 593
  • Репутация: +90/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Разбивающиеся объекты-стекла
« Ответ #10 : Январь 06, 2016, 10:37:24 am »
Я и кол и модель не делал больше 1 полика. Можешь когда-нить заскринить/заснять, как многополигональная модель разбивается(всегда интересно было)?

Разбивается точно также. Я разбивал даже не окно, а тестировал на воротах, dff сложный, col простой.




Лимиты на партиклы меня часто просто вымораживают. Много идей похерилось из-за этого.

Думаю это дело поправимое.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #11 : Январь 06, 2016, 01:43:52 pm »
Разбивается точно также. Я разбивал даже не окно, а тестировал на воротах, dff сложный, col простой.
Ого - значит, судя по скрину, как бы "разбивается" кол, а не dff!?

Думаю это дело поправимое.
8)

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 696
  • Репутация: +23/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Разбивающиеся объекты-стекла
« Ответ #12 : Сентябрь 21, 2016, 04:52:38 pm »
Какой функцией можно "разбить" объект вроде стекла(или "сломать" любой другой разрушающийся объект) в Вайсе?
Т.е., чтобы объект рассыпался на осколки, будто в него попала пуля.

UPD:
Разбить стекло(на НЕстекле не проверял) можно функцией 0x553C10:
Код: C++
  1. CGlass::WindowRespondsToCollision(CEntity *, float, CVector, CVector, bool)
CEntity * - поинтер структуры объекта(в CLEO object struct);
float - сила разбивания(норм от 1000.0 до 10000.0);
первый CVector - хз что;
второй CVector - вроде направление движения осколков, но не уверен;
bool - хз что, 0 - норма.

Итого, задом-наперед в CLEO выглядит так:
0A98: 0@ = object $bikeshop_glass struct
0AA5: call 0x553C10 num_params 9 pop 9 0 0.0 0.0 0.0 0.0 0.0 0.0 10000.0 0@

P.S.
Еще попутно нашел способ взорвать взрывающиеся объекты(не проверял, так что не уверен) функция 0x5C8AE0:
Код: C++
  1. CWeapon::BlowUpExplosiveThings(CEntity *)
тут нужно отправить лишь поинтер структуры объекта.
« Последнее редактирование: Сентябрь 21, 2016, 07:50:28 pm от Shagg_E »