АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Создание IVA

Читайте также:
  1. Creating a VHDL Source (создание файла, содержащего текст программы на языке VHDL).
  2. II. Создание многотабличной пользовательской формы.
  3. MS Excel. Типы диаграмм в Excel. Создание диаграмм в Excel.
  4. QNET комментирует создание платформы электронной коммерции Globby в Сингапуре
  5. Автоматическое создание тегов
  6. Б. Создание коллегий. Местные органы власти
  7. Б. Создание оптимальной водной среды
  8. БИЛЕТ. Создание и деятельность профсоюзов в Англии (19 начало 20 вв.)
  9. Будьте не такими, как все: создание социальной среды
  10. Быстрое создание отправного пункта
  11. В) создание схем из прототипов и их модификация
  12. Вопрос № 43 «Создание административно – командной системы управления в СССР в 1945-1977гг»

alexustas

 

Выдалась свободная "минутка" (т.е. часа полтора-два) и я решил опять написать тутор по созданию IVA
В качестве наглядного пособия я буду использовать свою капсулу A.L.C.O.R.

Итак,
Intra-Vehicular Activity
aka
Внутрикорабельная деятельность

В контексте игры, этот термин подразумевает пребывания игрока внутри командного (или просто, обитаемого) модуля, и, до недавнего времени, никакого толка от этого пребывания, по сути, не было. но мы сейчас не об этом...
КЭП всегда рад помочь, и подсказать, что для того, чтобы в чем-то где-то пребывать, нужно сначала "Это/где-то" создать. Вот об этом мы сейчас и поговорим.

Давай разберемся, "что" тут "где" и "когда".
В КСП, Обитаемый (а как правило он же и Командный, но это не обязательно) модуль состоит из ТРЕХ независимых компонентов:
1. Внешняя (external) модель - это то, что мы видим в ВАБе и с внешней камеры в процессе игры, существует и виден всегда
2. Внутренняя (internal) модель - это интерьер кабины, может жить в двух слоях "реальности", один из которых существует только когда мы находимся внутри кабины, второй существует всегда, как и External
3. Реквизит (Props) - отдельные элементы, созданные для наполнения Интерьера (приборы, индикаторы, кнопки и т.д.), прописываются и живут там же, где и Internal
Отсюда и первое наблюдение:
пункт №1 (External) может вполне себе существовать без пунктов 2 и 3, пункт №2 может существовать без №3, но №3 не может существовать без №2, а №2 не может существовать без №1.
Вот такая "Санта Барбара" получается.

А теперь, давайте выясним, что же такое интерьер (Internal) с точки зрения КСП и Юнити:
Модель Internal - это по сути, такой же Парт (Part) как и любой другой, но с некоторыми заморочками характерными отличиями:
Первое, что нужно понять - на интерьер мы смотрим находясь в нем, то бишь изнутри модели.
Юнити (Unity) все поверхности считает ОДНОСТОРОННИМИ, т.е. полигоны видны, если мы смотрим на них с "лицевой" стороны и НЕ видны, если мы смотрим на них с обратной стороны. А в случае с Интерьером, как я у же писал чуть выше, мы как раз таки его видим с обратной стороны. Что это значит? Правильно! Это значит, что:
Наблюдение второе
нормали полигонов модели Internal должны быть ИНВЕРТИРОВАНЫ!

Теперь время пояснить, что я имел ввиду под термином
"Слои реальности".
В КСП, различные элементы сцены живут в разных Слоях (Layer). игровой движок комбинирует эти слои в нужной для данной ситуации последовательности и, в итоге, формирует для игрока игровую сцену, т.е. то, что мы в итоге видим на экране.
Чтобы КСП правильно сформировала для нас эту сцену, нам надо правильно распределить элементы (на этапе подготовки моделей в Юнити) по Слоям (Layer).
Для Интерьера в КСП зарезервированы ДВА слоя (Layer):
1. Internal Space
2. Kerbals
Печалька в том, что (по умолчанию) этих слоев в Юнити нет. хорошая новость - мы их можем легко создать!


Для этого, тыкаем в меню " Layer " и в самом низу списка выбираем " Add Layer... "


В открывшемся окне в строке " User layer 16 " мы пишем " Kerbals ", в строке " User layer 21 " - " Interna Space "


Заодно, можете сразу создать и Part Triggers, прямо сейчас оно нам не надо. Но раз уж мы в этом меню, то пусть сразу уж будет. потом пригодится.

Наверняка, у вас уже возник логичный вопрос - "А нафига нам столько почему мы сделали ДВА слоя и в чем разница?".
А вот почему.
Помните, в игре, в правом нижнем углу, есть маленькие такие экранчики с мордами наши отважных Кербонавтов?


Чтобы нам их показать, игра создает специальные камеры напротив каждого кресла в кабине и картинка с этой камеры помещается в тот самый экранчик. Но, может получится так, что вы построите такой интерьер, что между Кербалом, сидящим в кресле, и камерой, которая его снимает, окажется какой-то предмет (или вообще стенка капсулы) и картинка получится "не айс" (с)... Чтобы уладить эту досадную неприятность мы и воспользуемся РАЗНЫМИ слоями (Layer). А именно:
- все, что должно быть на экранчике с мордой мы поместим, т.е. для выделенной детальки выберем из списка слоев, Слой (Layer) " Kerbals " (потому-то он так и называется)
- все, что должно быть в Интерьере, но НЕ должно отображаться на экранчиках, мы назначаем в Слой (Layer) " Internal Space "
Вот такое колдунство. Но это еще ерунда, ща будет еще веселее ибо...

"ОРИЕНТАЦИЯ"

Что можно о ней сказать? Она, как и практически все в КСП, не совсем традиционная. Сквад, в бесконечной своей мудрости, нагородил аццкий огород с координатными системами для разных элементов сцены и теперь нам с этим надо как-то жить.

Наблюдение третье:
Создатели КСП - весьма неординарные личности и простому обывателю никогда не понять всю глубину и масштаб....

В момент, когда мы решим заняться той самой "внутрикорабельной деятельностью", то бишь зайдем в I.V.A., мы со всего маху столкнемся лицом к лицу ажно с ТРЕМЯ РАЗНЫМИ системами координат:

1. Внешняя модель (External)
Ось Z - верх, ось Y - перед

2. Интерьер (Internal)
Ось Z - задЪ, ось Y - верх

3. Кербонавты (Kerbals)
Ось Z - перед, ось Y - верх

Круто, правда?
Как это выглядит на практике? Да ужасно это выглядит на практике, и очень неудобно это на практике и, на практике, это дико бесит. Но деваться некуда. я решил эту проблему следующим образом.
В "трехмерке" (я крутой работаю в Maya), я ничего никуда не разворачиваю и работаю с одной, общей ориентацией. ибо так гораздо удобнее


синий цвет - External | зеленый - Internal.
И прямо вот так же и экспортирую обе модели в Юнити
А дальше, у же в Юнити, я привязал все, что относится к Интерьеру, к GameObject 'у (не забудьте сначала обязательно обнулить его координаты) и уже его развернул по оси X на 90 градусов и по оси Y на 180. Получилось вот так:

 

черный - это Internal.

Чуть не забыл. чтобы была I.V.A. нужно же поселить в кабину Кербонавтов! Иначе же кто эту деятельность там будет разводить?!


Для этого надо создать, что бы вы думали? Пралльна! Наши любимые Gameobject 'ы, а куда ж без них-то в нашем деле.
Итак, делаем GameObject -> Create Empty. Называем его " Seat1 ", то бишь "кресло1". и размещаем его там, где у нас должен сидеть Кербал, не забывая о том, что у него верх - это Y, а смотрит он вдоль Z повторяем процедуру столько раз, сколько у нас по паспорту вмещает кабина. Имена соответственно будут " Seat2 ", " Seat3 " и т.д.

 

Теперь, как было описано выше, все, что у нас будет интерьером, раскладываем по слоям "Internal Space " и " Kerbals ". Создаем еще один GameObject (обнуляем его координаты!). Вешаем на него компонент PartTools и экспортируем обычным порядком, как любую другую деталь (Part)


настройки материалов и прочего я тут пропускаю, ибо ничего особенного в данном случае с ними делать не надо.
Структура файлов (в геймдате) для Командного модуля обычно выглядит так:
Gamedata / Ваше название компании или никнейм / название мода/ название детали/, а в ней:
-> Part - тут лежит External модель с текстурами и конфигом
-> Spaces - сюда мы экспортируем модель Интерьера (Internal) с текстурами и создаем ее конфиг
-> Props - это реквизит, созданный для нашего Интерьера. отдельная история, об этом в другой раз
-> Sounds (опционально) - это ваши кастомные звуки

И так. У нас есть mu-файл и текстуры, но это еще не Интерьер, чтоб эти груды байтов стали Интерьером, нам нужно прикрутить к ним конфиг
В самом простом случае, конфиг для интернала будет выглядеть так:

INTERNAL
{
name = ALCORInternals3
MODULE
{
name = InternalSeat
seatTransformName = Seat1
allowCrewHelmet = false
}
MODULE
{
name = InternalSeat
seatTransformName = Seat2
allowCrewHelmet = false
}
MODULE
{
name = InternalSeat
seatTransformName = Seat3
allowCrewHelmet = false
}
}

name = ALCORInternals3 - официальное название вашего Интерьера
name = InternalSeat - название модуля, добавляющего Кербала
seatTransformName = Seat1 - название Геймобжекта, указывающего где этот Кербал должен сидеть
allowCrewHelmet = false - указывает, в шлеме или без него должен сидеть кербал в этом кресле

Вот, собственно, и все с конфигом Интерьера.
Помните, я писал в самом начале, что Интереьер не может существовать БЕЗ Внешней модели? Молодцы!
А это значит, что нам надо связать наш новенький, уютненький, сверкающий свежей краской, Интерьерчик с внешней моделью Командного модуля.
Делается путем прописывания ссылки на модель Internal в кофиге Командного модуля (т.е Part 'а.).

Открываем конфиг капсулы и вписываем аккуратным, каллиграфическим почерком:

INTERNAL
{
name = ALCORInternals3
}

Все! теперь КСП, в момент воссоздания вашего корабля, дойдя до командного модуля, увидит, что с ним ассоциирован Интерьер (Internal) с именем " ALCORInternals3 " и, зайдя в I.V.A., вы окажетесь в том самом Интерьере, который только что построили.

You Win!


П.С.
И да! Не вздумайте на модель Internal вешать коллайдер, а то капецЪ

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)