Визуальное повреждение обьектов

Программирование на Юнити.

Визуальное повреждение обьектов

Сообщение pestantium 23 сен 2010, 19:50

Здравствуйте, уважаемые эксперты.
Подскажите пожалуйста как правильно устроено визуальное повреждение объектов.
Есть танк, есть здание. Танк стреляет в здание...
Вариации которые приходят на ум:
1 Меш здания построен из частей, которые исчезают (Destroy, renderer.active = false) по мере повреждения.
2 Подменяется меш, текстуры.
3 Деформируются вершины.
4 ... другое

На данный момент я реализовал первую вариацию которая выглядит некрасиво, не плавно. Я в поиске легкой, правильной реализации, подскажите пожалуйста.
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение Ert Donuell 23 сен 2010, 20:17

В Antares DEFORMATOR работает с деформацией мешей ;)
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение pestantium 24 сен 2010, 10:00

Может есть вариации как делать это стандартными методами?
Думаю строить анимацию деформации не подойдет потому что на здании например могут быть движущиеся части - пушка например.
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение Ert Donuell 24 сен 2010, 10:35

пушку можно использовать как объект отдельный от здания)
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение pestantium 24 сен 2010, 12:06

Думаю все таки делать подмену мешей по примеру: http://game.reneos.com/blog/archives/84
(c#)
Код: Выделить всё
using UnityEngine;

public class GUIScript : MonoBehaviour {

   public GUISkin myskin;
   public Mesh cubeMesh;
   public Mesh teapotMesh;
   public Transform target;

   void OnGUI() {
      if (myskin)
         GUI.skin = myskin;
      if(GUI.Button(new Rect(Screen.width*0.5f-100,10,75,25),"Куб")){
         target.GetComponent<MeshFilter>().mesh= cubeMesh;
      }
      if (GUI.Button(new Rect(Screen.width * 0.5f + 25, 10, 75, 25), "Чайник"))
      {
         target.GetComponent<MeshFilter>().mesh= teapotMesh;
      }
   }

   void Update()
   {
      target.Rotate(new Vector3(0, 0, +1));
   }
}
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение eric 24 сен 2010, 15:04

Для достаточной гибкости и расширяемости все же лучше использовать деформатор, наверное.
Иначе вам необходимо будет постоянно использовать/подгружать несколько вариантов вашего здания, это лишит вашу игру гибкости.
eric
UNец
 
Сообщения: 38
Зарегистрирован: 12 июн 2010, 12:35

Re: Визуальное повреждение обьектов

Сообщение pestantium 24 сен 2010, 15:31

А если использовать анимацию где каждый кадр хранит все большую разрушаемость.
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение Ert Donuell 25 сен 2010, 21:44

Все варианты не переберёте. Копайте деформатор.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Визуальное повреждение обьектов

Сообщение pestantium 05 окт 2010, 15:01

Вот как я сделал:
Необходимые мне мэшы объекты разбиваю на несколько частей (в редакторе моделей 3дмакс, ...).
Присваиваю моделе скрипт, где:
- есть список необходимых Transform
- после какой Health выбрасывать/уничтожать Transform
http://imglink.ru/show-image.php?id=3e32fd827134ab701220ad9e120a6ab8
http://imglink.ru/show-image.php?id=faf748b74c69d24fdfdea2d084055716

Далее можно импровизировать, например я сделал так:
После освобождения объекта он принимает BoCollider, RigidBody и ApplyForce по нормали от точки взрыва, применяет полупрозрачный дифузный материал. Еще дымит некоторое время и Destroy.
Естественно не обязательно использовать все детали, просто некоторые для эффекта.
Созданные игры: MemoUp, Stop Robots, Hippo Gum, Rainbow Team
Аватара пользователя
pestantium
UNITрон
 
Сообщения: 269
Зарегистрирован: 23 сен 2010, 19:30
Откуда: Украина, Кировоград
  • ICQ


Вернуться в Скрипты

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

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