Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Анимации. Делаем Защитника со складывающимися крыльями | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Freelancer » МОДовый отсек: «Анимации. Делаем Защитника со складывающимися крыльями»
Jeider
 570 EGP


Рейтинг канала: 5(198)
Репутация: 49
Сообщения: 2802
Откуда: Пенза
Зарегистрирован: 17.08.2009
Надеюсь, многие помнят один из самых ярких моментов трейлера к Freelancer 2001 года, когда Защитник эпично «расправляет» свои крылья. И если у Валькирии эти анимации по крайней мере можно включить, то у Защитника с этим проблемы. Я думаю пора перестать жалеть о том, что все повырезали и какие бяки майкрософты. В этой обучалке мы создадим анимацию заново с нуля. При этом сама модель Защитника этого практически не заметит. Сегмантация, вайрфреймы (сетка для выбора элементов корабля) останутся неизменными. Ну что ж, приступим.

Вот видео с примером реализации того, что мы сейчас будем делать:
https://www.youtube.com/watch?v=syAlvaREZp0

Внесу сразу несколько уточнений:
1. В этой обучалке я не буду сохранять анимацию для Baydoor (стоворок трюма). Я пробовал и из-за косяков программы MilkShape намучался с ними чуть ли не больше, чем с самими крыльями. Поэтому сконцентрируемся исключительно на крыльях. Кому нужен трюм когда у нас есть крылья? Мало кому.
2. SUR-файлы останутся прежними, и поэтому даже сжатое крыло будет физически таким же уязвимым, как и расправленное. Так что говорю сразу – крыло будет иметь исключительно эстетическую ценность, а не боевую.
Итак, нам пригодятся следующие инструменты:
1. MilkShape 3D с плагинами импорта и экспорта CMP файлов Freelancer
2. UTF Editor последней версии (качаем с forge.the-starport.net)
Для запуска анимации нам потребуется пропатченный до версии 1.1 Freelancer и console.dll от Адоксы. Скачать её можно отсюда: http://adoxa.altervista.org/freelancer/plugins.html#console Консоль поможет нам тем, что она может запускать анимации простой командой anim название_анимации. Например, anim sc_open baydoor откроет створки трюма (на разных кораблях может называться по-разному). Без неё мы не сможем протестировать свою работу, поэтому ставим в обязательном порядке.

Начинаем. Открываем MilkShape и импортируем Защитника из SHIPS\LIBERTY\LI_ELITE\li_elite.cmp.

 Cкрытый текст   (кликните здесь для просмотра)

Нам нужно отделить крылья от центра корабля, поэтому двигаем все остальные элементы, кроме крыльев вверх на N-ную позицию вверх.
 Cкрытый текст   (кликните здесь для просмотра)

ВНИМАНИЕ! Используйте перемещение только по координатам! Ни в коем случае не перемещайте элементы мышью. Тогда вы не сможете вернуть их на место в той же позиции. Во Freelancer стоит отодвинуть элемент на нанометр влево, так сразу будет видно всяческие дыры и пустые места. Поэтому используем мышку только для выделения. ТОЛЬКО ДЛЯ ВЫДЕЛЕНИЯ.
 Cкрытый текст   (кликните здесь для просмотра)

Заодно опустим крылья вниз по иерархии. Нам это очень пригодится в будущем, чтобы лишний раз не перемещать новые модели вверх обратно.
Теперь в центре модели создает парочку маленьких объекта через инструмент Plane в самом центре модели. Эти объекты будут родителями наших крыльев (это обеспечит поворот под углом)
 Cкрытый текст   (кликните здесь для просмотра)

Именуем их по аналогии с крыльями чтобы не запутаться: Li_star_wing_poly и Li_port_wing_poly

Milkshape плохо экспортирует модели. Все связанные модели будут иметь центр от центра корабля. Поэтому сразу ставим модели так, как хотим их видеть в итоге, но не от позиции на корабле, а от позиции в центре корабля. В будущем мы выставим все детали вручную через UTF Editor
Выставим левое крыло так, чтобы его острый край был ровно в центре, а само крыло не имело наклона (лежало параллельно оси X)
 Cкрытый текст   (кликните здесь для просмотра)

Продублируем крыло 2 раза – так мы сделаем заготовки для будущих деталей крыла. Называть будем по аналогии: Li_star_wing2 и Li_star_wing3 - нужно сразу их отодвинуть в сторону для удобства редактирования. Я отодвинул их через Move по X ровно на 6 единиц влево. Ни в коем случае не двигайте крылья мышкой – тогда вы потеряете точные позиции и крыло начнет сквозить!
 Cкрытый текст   (кликните здесь для просмотра)

Теперь удалим лишние точки
 Cкрытый текст   (кликните здесь для просмотра)

Возвращаем элементы крыла на место (по X на -6 пока все не будут в центре)
 Cкрытый текст   (кликните здесь для просмотра)

Повторяем эти же операции на втором крыле
 Cкрытый текст   (кликните здесь для просмотра)

 Cкрытый текст   (кликните здесь для просмотра)

 Cкрытый текст   (кликните здесь для просмотра)

Готово. Теперь можно возвращать корабль на место и экспортировать модель.
 Cкрытый текст   (кликните здесь для просмотра)

Большинствено читателей сейчас сразу побежало экспортировать модель, но я повременю. Нам ведь нужен рабочий защитник, который будет играться не на каком-то моде с перелопаченными моделями, а в что ни на есть обычном фриле. Значит нам надо обязательно сохранить сегментацию в таком виде, в каком она есть в обычном фриле.
Чтобы это сделать, нам надо переставить все объекты в центр корабля. Выделяем нужные группы (все сразу у выбранного типа объекта) и с помощью инструмента Move. Выбираем тип позиционирования Absolute и перемещаем выбранную группу на нулевые координаты (0 0 0).
 Cкрытый текст   (кликните здесь для просмотра)

Выделяем модель, нажимает Vertex->Weld Together чтобы модель была более гладкой и увеличиваем в 92 раза из-за бага экспортера (ползунок в нём почему-то не работает)
 Cкрытый текст   (кликните здесь для просмотра)

Рассмотрим параметры, которые нам нужны:
Orientation: выбираем Back To Front – это позволит экспортировать модель в таком же положении, в каком мы ее видим в редакторе.
Model Type: выбираем Weapon – это даст всем элементам корабля тип Rev, что во фриле означает «поворачиваемый». Без этого мы не сможем вообще делать анимаций.
Scale Down: не работает, игнорируем
Level Of Detail: У нас самый качественный первый лод. Остальные делать для фрила уже не актуально. Он и без того уже оптимизирован до нельзя.
Number Of Groups: Самая муторная часть. Нам нужно вычислить, сколько у нас должно быть группа на выходе, и какие группы должны объединяться, чтобы потом стать одной. Например корпус состоит из 6 разных текстур с одним именем. Значит надо в первом пункте ставить цифру 6. И так далее по списку объектов из Milkshape мы должны занести информацию о наших объектах. Если вы правильно выполняли обучалку, то цифры ниже вполне подойдут.
 Cкрытый текст   (кликните здесь для просмотра)

В конечном итоге должно выйти 15 частей. На следующем экране показывается пример вида модели из UTF-editor. Никаких дублей нет. У вас должно быть так же.
 Cкрытый текст   (кликните здесь для просмотра)

Сверьте число деталей. По крайней мере должно быть такое количество крыльев и связанных с ними объектов

Мы сделали модель. Теперь нужно обработать её в UTF Editor.

Открываем экспортированную модель и оригинального защитика в одном окне UTF.
Начнем с переноса обычных деталей, которые мы разместили по центру. Это спойлер и два двигателя. Открываем Rev-данные нашего объекта (выбираем объект и нажимаем Edit Rev Data) и Fix-данные оригинального защитника (выбираем его и нажимаем Edit Fix Data).
Копипастой переносим значения координат X, Y и Z оригинального защитника в новый корабль. Я оригинала все же чуть иначе смещен нижний двигатель. Можно это подправить координатам. Новый UTF удобен тем, что вы можете смотреть изменения модели сразу, не закрывая и открывая её снова.

ВНИМАНИЕ! Не копируйте значения из Orientation. Они вычисляются автоматически. Если модель повёрнута, то копируйте значения поворота только из Rotation. После каждого ввода значения UTF сам рассчитает правильные значения Orientation. У стандартных моделей нет поворота, поэтому мы можем смело Orientation игнорировать.
 Cкрытый текст   (кликните здесь для просмотра)

Теперь приступим к настройке крыльев. Находим новые элементы защитника и выставляем ему зависимости. Они должны быть такими:
Li_star_wing_poly < Li_star_wing < Li_star_wing2 < Li_star_wing3
В UTF это делается так: в открытом окне с Rev-данными находим элемент (Child) и вручную выставляем ему Parent к объекту родителю как на примере ниже.

ВНИМАНИЕ! Постоянно сохраняйте корабль после каждого изменения в UTF. Нажатие Apply это не сохранение, поэтому не стесняемся нажимать на иконку дискеты. У UTF есть баг и если неправильно ввести зависимости, то произойдет ошибка и UTF попросту закроется без возможности восстановить несохраненные данные. Будьте внимательны!

Провести операцию нужно на обоих сторонах – и на star и на port.
 Cкрытый текст   (кликните здесь для просмотра)

Теперь настроим наш базовый полигон. Если все настроено правильно, то все элементы установлены на полигоне и любой его поворот приведет к повороту всех крыльев. Расставим координаты в соответствии со скриншотом, приведенным ниже.
 Cкрытый текст   (кликните здесь для просмотра)

Если настройки введены правильно, то корабль должен выглядеть как на скриншоте. Если у вас это не так, то проверьте правильность выполнения всех пунктов.
 Cкрытый текст   (кликните здесь для просмотра)

Теперь нужно сделать тоже самое для второго полигона, но с отрицательным значением по координате X и с другим поворотом. Сделайте это самостоятельно без примеров. В конечном итоге все должно выглядеть так:
 Cкрытый текст   (кликните здесь для просмотра)

Наша модель готова. Теперь надо выставить настройки анимации. Для star_wing ставим угол 20 и Axis Rotate -1 по Y.
 Cкрытый текст   (кликните здесь для просмотра)

И с другой стороны:
 Cкрытый текст   (кликните здесь для просмотра)

Теперь нужно подключить блок настройки анимации. Копируем блок из оригинального корабля и теперь нам нужно сделать для каждого объекта по анимации. В Parent и Child выставляем объекты так, как они у нас связаны в опциях деталей модели. Пример показан на скриншоте ниже. У нас всего 3 крыла, значит для каждого крыла должен быть свой Joint Map со своим указанием родителя и дочерней модели. В конечном итоге их должно быть 6 штук. Напомню – у нас 3 элемента крыла, каждое из которых является дочерним элементов предыдущего, а первое крыло установлено на специальном полигоне. В общем сверяйте с настройками крыла в Rev-данных и не ошибетесь.
 Cкрытый текст   (кликните здесь для просмотра)

Для каждого Joint Map выставляем в Channel значения из скриншота ниже. Должно быть 2 фрейма в поле сверху, а внутри указанные значения. Если UTF не даст их вводить, то сначала наберите их в блокноте, а потом скопируйте в окно Channel в UTF. У 0,5 обязательно должна быть запятая, не ошибитесь!
 Cкрытый текст   (кликните здесь для просмотра)

Вроде всё готово. Можно пробовать!
 Cкрытый текст   (кликните здесь для просмотра)

Получилось! Теперь выставим хардпоинты с оригинального Защитника на новом. Выставлять вручную это бесполезная и неточная работа. Просто скопируем их через UTF.
 Cкрытый текст   (кликните здесь для просмотра)

Упс, что-то нет то. Пушки на крыльях получили неправильные позиции.
 Cкрытый текст   (кликните здесь для просмотра)

 Cкрытый текст   (кликните здесь для просмотра)

Исправим вручную. Хардпоинты поменяем в HardCMP. Просто находим пушку, нажимаем Edit, зажимаем Control и выставляем мышкой её законное место. Нажимаем Validate и сохраняем

ВНИМАНИЕ! Лучше закрывать HardCMP, потому что при редактировании поворачиваемых хардпоинтов он иногда убивает их при повторном сохранении. Поэтому от греха подальше закроем, а открыть не такая тяжелая задача.
 Cкрытый текст   (кликните здесь для просмотра)

Нажимаем S и проверяем SUR-файл с физикой. Вроде все на месте!
 Cкрытый текст   (кликните здесь для просмотра)

Попробуем. Должно быть что-то вроде такого!
 Cкрытый текст   (кликните здесь для просмотра)

А теперь доделаем вайрфреймы, чтобы на интерфейсе вражеские защитники выглядели так же, как и всегда, а не как большинство кораблей из современных модов. То есть «никак». Перетаскиваем из оригинального защитника третий лод (lod2) и в соответствии с названиями объектов переносим блоки VMeshWire по аналогии со скриншотом ниже:
 Cкрытый текст   (кликните здесь для просмотра)

В конечном итоге выходит:
 Cкрытый текст   (кликните здесь для просмотра)

Наш защитник готов!
 Cкрытый текст   (кликните здесь для просмотра)

Запускать анимацию через команду anim неудобно, поэтому Whiskas T-Mech сделал специальный плагин на базе console.dll. Будьте внимательны, этот плагин требует console.dll именно версии 1.24. Ни больше ни меньше.
Как им пользоваться:
- подключаем плагин в dacom.ini в конце секции Libraries
- устанавливаем вторую кнопку для запуска круиза. Обязательно с Ctrl. Например, Ctrl+~
- теперь если у корабля есть анимация с названием sc_extend wing, то корабль запустит её по нажатию кнопки.

Плагин запуска анимации и готовую модель Защитника я приложил к посту. У моей версии могут быть недостатки. Но никто не мешает сделать её лучше!

ВНИМАНИЕ! Способ с запуском через console.dll предназначен для ОДИНОЧНОЙ ИГРЫ. Если хотите запустить анимацию в онлайне, то используйте плагины от Дискавери. Если в вашем моде корабли запускают анимацию на круизе, то Защитник тоже будет это делать.

li_elte_anim_files.zip
 Описание:
 Имя файла:  li_elte_anim_files.zip
 Размер файла:  120.01 KB
 Скачано:  476 раз(а)


Последний раз редактировалось: Jeider (00:30 22-05-2016), всего редактировалось 5 раз(а)
    Добавлено: 12:18 21-05-2016   
Канал Freelancer -> МОДовый отсек: «Анимации. Делаем Защитника со складывающимися крыльями»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Звездолет-прототип ELITE GAMES должен быть обязательно оснащен ECM и EGP системами. (nick)

  » Анимации. Делаем Защитника со складывающимися крыльями | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18