KF SDK: Static Meshes

Тема в разделе "Маппинг", создана пользователем K-2, 12 окт 2011.

  1. K-2

    K-2 Главный маппер форума

    В этой статье:
    - Обзор Static Mesh браузера.
    - Импорт мешей.
    - Конвертирование статичных моделей из других игр.
    - Свойства.


    Static meshes – это полигональные меши, которые составляют большую часть архитектуры на многих игровых движках включая Unreal Engine. Слово static означает, что у таких объектов не может быть анимации, но их можно передвигать и менять им размеры в реальном времени без дополнительных компиляций. Они могут быть любых форм и размеров, как плоские, так и трёхмерные.
    Статики намного удобнее для создания сложных форм, чем BSP геометрия и более “гибкие”. Одна модель может состоять из сотен треугольников и движку проще обработать статик, чем BSP такой же формы.

    Примеры статиков в Killing Floor.

    [​IMG]

    Static Mesh Browser

    В редакторе для статиков существует свой браузер, он открывается во вкладке View либо специальной кнопкой [​IMG].

    [​IMG]

    Он очень похож на браузер текстур, здесь можно выбрать, рассмотреть объект и наложить на него текстуру. Обзор в экране браузера осуществляется так же, как и в редакторе. Данный браузер работает с пакетами usx.
    Текстуры накладываются во вкладке Materials. Модель может состоять из нескольких частей, каждая со своей текстурой. Каждая часть имеет вкладку со своим номером, начиная с 0. Чтобы наложить текстуру, нужно сперва выбрать её в браузере текстур, затем во вкладке с номером части щелкнуть по полю Material и нажать Use.
    Добавить модель на карту можно щелкнув ПКМ (в месте, куда вы хотите её добавить) и выбрав Add Static Mesh: ‘название’, либо нажав в браузере кнопку Insert Static Mesh into Level [​IMG] (модель добавится на месте камеры в активном 3D экране).
    Кнопкой Frame Current [​IMG] можно выровнять вид в экране браузера, учитывая поворот камеры.

    Импорт

    Чтобы импортировать статический меш в редактор достаточно нажать File > Import.
    Поддерживаемые форматы: ase и lwo, но восновном используется ase.
    При импорте появляется следующее окно, в котором задается пакет, группа и название.

    [​IMG]

    Модель импортируется без текстуры (получит NULL material), если таковая не была импортирована заранее (с исходным названием), в таком случая придется наложить текстуру повторно во вкладке Materials.

    Конвертирование моделей из других игр

    Существует немало программ для работы с 3D моделями, лично я использую MilkShape 3D, поскольку это довольно простая и удобная программа, которая подходит для несложных операций.
    Скачать MilkShape 3D и плагин для экспорта в ase можно здесь.
    Для начала необходимо импортировать модель в программу (File > Import), выбрав формат.

    [​IMG]

    Затем можно экспортировать модель в другом формате (File > Export)

    [​IMG]

    Конвертирование статиков в браш и наоборот

    Solid браш можно конвертировать в статический меш, щелкнув ПКМ по его контуру и нажав Convert > To Static Mesh, при этом появится окно аналогичное окну импорта.

    [​IMG]

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

    Также статики могут быть конвертированы в браш – builder. Для этого следует выбрать Convert > To Brush.

    [​IMG]

    Свойства

    Для начала рассмотрим основные свойства уже добавленного на карту объекта, вкладка Display.
    На скриншоте показаны стандартные значения. Если в чем-то неуверенны, то лучше это не меняйте.

    [​IMG]

    AmbientGlow: Статическое свечение, с помощью этого параметра можно сделать объект светлым без сторонних источников освещения.
    bAcceptsProjectors: Будут ли оставтся на объекте следы крови и т. п.
    bAlwaysFaceCamera: Только для плоских объектов. Если True, то лицевая сторона будет всегда повернута к камере игрока (иногда используется для листвы деревьев).
    bShadowCast: Будет ли модель отбрасывать тени. Довольно важный параметр.
    bUnlit: Если установить True, то модель будет полностью освещена независимо от сторонних источников света.
    CullDistance: Дальность прорисовки в UU, если камера игрока находится дальше заданного расстояния, то объект будет скрыт. 0 – неограниченная дальность.
    DrawScale: Здесь можно изменить размер модели сохраняя пропорции.
    DrawScale3D: Свободное изменение размеров по осям X, Y, и Z (относительно текущего DrawScale). Если вводить отрицательные значения, то получится зеркальное отражение. Также можно быстро масштабировать объекты с помощью DrawScale3D на нижней панели инструментов. [​IMG]
    ForcedVisibilityZoneTag: Тэг зоны, в которой объект будет видимым принудительно. В других зонах он будет скрыт.
    Skins: Здесь можно добавить текстуру-скин, которая заменит текстуру заданную ранее, без изменений в браузере мешей. (также используется для добавления короны к источникам света)
    StaticMesh: Текущий статик меш и его расположение (пакет, группа, название).

    Параметры коллюжена (осязаемости).

    [​IMG]


    bAutoAlignToTerrain: Привязка расположения к ландшафту, очень удобная функция.
    bBlockActors и bBlockKarma особого смысла не несут, за осязаемость отвечают 2 других параметра.
    bBlockNonZeroExtentTraces: Блокировать ли не нулевые трейсеры (игроков, зомби, брошенные предметы).
    bBlockZeroExtentTraces: Блокировать ли нулевые трейсеры (пули, гранаты и пр.).
    bCollideActors: Взаимодействует ли объект с окружением ( если False, то и все bBlock будут не актуальны).
    bPathColliding: Блокирует ли объект построение AI путей при компиляции.
    bUseCylinderCollision: Использовать ли цилиндрический коллюжен (лучше оставить False).
    CollisionHeight&Radius: Высота и радиус цилиндрического коллюжена.
    SurfaceType: Тип поверхности. Не имеет значения, задается наложенной текстурой.
     
    HATAXA, venom123, UltraKill и 15 другим нравится это.
  2. GreeN

    GreeN После Юзера

    Конечно , поставил бы плюс, но с телефона это сложно))
    плиз сделай урок с дверьми(движущиеся обьекты сложные, но двери нужны везде))а еще очень хочется узнать про телепорты(когда в сдк лазил, ставил вроде бы тп, но у них меш была стандартная, а ты на своей карте сделал тп не только со своей мешью, но и который работает только в закупочное время и тпшит не к определенной точке , а к рабочему магазу=))
     
  3. K-2

    K-2 Главный маппер форума

    Обязательно.

    Меш к телепортам отношения не имеет, телепорты это навигационные точки, которые в свою очередь перемещают к другому телепорту.
    На моей карте телепорты работают не только в закупочное время, такой функции нет. Там просто система дверей торговца, открывающая двери к нужному телепорту, с заранее заданной точкой выхода. Меши - это только декорации. Ну а спецэффект телепора это уже Emmiter.
     
    Папка01 нравится это.
  4. DpaKc

    DpaKc Юзер

    Кстати вышла 2 бета версия программы "MilkShape 1.8.5 beta 2"

    http://www.mediafire.com/?sa7l9uji1x2d727 (кряк от этой версии подходит так что запаковал ключ)
     
  5. Bill Murray

    Bill Murray Новенький

    А как импортировать модель из 3D Max в SDK ?
     
  6. Lezvie

    Lezvie Новенький

    Когда импортирую модельку из варкрафта в milkshape 3d, то выдаётся одна или несколько ошибок:
    Error opening following textures:
    здесь указаны имена одной или нескольких текстур.

    В итоге моделька в правой нижней части получается полностью белая. Никто не знает, в чём причина? И как исправить.
     
  7. K-2

    K-2 Главный маппер форума

    Моделька в Milkshape не обязательно должна быть с текстурами. Главное - экспортировать модель в ASE, затем в редактор, и уже там наложить текстуры.
     
  8. PaslavSKY

    PaslavSKY Не новенький

    дайте линк на норм пак мешей для редактора, мне просто нужно что-то другое
     
  9. UltraKill

    UltraKill Мододел "UM"

    КОПИРОВАНИЕ / ДОБАВЛЕНИЕ ОБЪЕКТОВ НА КАРТУ.

    СПОСОБ № 1.

    1. Открываем желаемую карту в редакторе.
    2. Выбираем нужный нам объект.
    3. Жмем ПКМ на него, далее Convert > To Static Mesh
    [​IMG]
    4. Пишем желаемое имя пакета объектов, название Группы (необязательно) и имя объекта.
    [​IMG]
    5. Открываем браузер статиков
    [​IMG]
    6. Выбираем созданный пакет, для проверки и сохранения.
    [​IMG]
    7. После визуальной проверки, можно перейти к сохранению.
    [​IMG]
    8. Название пакета остается то-же что ставили ранее (шаг 4).
    [​IMG]
    9. Открываем свою карту, добираемся до нужного места, куда хотите поставить объект, жмем ПКМ на поверхность, при этом нужно заранее выбрать нужный нам объект в браузере (см шаг 5)
    и жмем Add Static mesh (имя пакета .имя группы .имя объекта)
    [​IMG]



    СПОСОБ №2.

    1. Открываем желаемую карту.
    2. Открываем браузер объектов.
    [​IMG]
    3. Выбираем нужный пакет, и нужный нам объект.
    (например: KillingFloorLabStatics)
    Выбираем вкладку Edit > Rename...
    [​IMG]
    4. В появившемся окошке вписываем название пакета MyLevel*, остальное можно назвать как угодно.
    [​IMG]
    5. В браузере выбираем пакет MyLevel, чтобы проверить, все ли объекты скопированы. (Если нет, то возвращаемся к шагу 3)
    [​IMG]
    6. Закрываем браузер, и сохраняем проект (сохраняем карту)
    [​IMG]
    7. Далее, перезапускаем редактор, открываем карту которую только что сохранили,
    выбираем нужный нам объект, нажимаем CTRL+C (если несколько то зажав CTRL выбираем несколько), открываем наш проект (карту, на которую хотите поставить скопированные объекты) и в любом месте жмете CTRL+V, далее располагаете вставленные объекты как вам угодно.


    ПРИМЕЧАНИЕ:
    Второй метод не всегда уместен, иногда не самый лучший вариант сохранять карту, если вы на ней будете играть, потомучто Вам придется скачивать ее по новой с сервера при подключении.

    По этому первый вариант самый лучший, но при этом, нужно будет вставлять и используемые пакеты текстур / статиков в архив с картой, например если вы используете объекты из пакета Example, то в конце, нужно будет создать папку Static Meshes, скопировать туда этот пакет.
    ---
    При создании пакетов с объектами, необходимы пакеты с текстурами.
    он этом чуть позже.
    ---
    На многих кастомных картах, объекты уже вставлены в пакет MyLevel (его не нужно вставлять в архив с картой, это пакет вшитый в карту) остается лишь скопировать их и сохранить карту.

    Решил поделится простым способом.

    Ссылка на оригинал

    by UltraKill*
     
    ЛОХМАТЫЙ, Flame и BAHO нравится это.
  10. BAHO

    BAHO Fresh Meat

    :plus: Вот только не понравилось то что на инглише некоторые веще написаны на скринах, но это мелочи т.к. те кто воспользуются этой инфой должны 100% понять что написано. Но все это мелочь конечно
     
  11. UltraKill

    UltraKill Мододел "UM"

    ну, поскольку стандарт Killing Floor SDK на инглише, решил и скрины с ингл. надписями делать.
    буду рад если комуто поможет.
     
  12. UltraKill

    UltraKill Мододел "UM"

    СОЗДАНИЕ МОДЕЛЕЙ / ТЕКСТУР ДЛЯ KILLING FLOOR SDK.

    Нам понадобится софт. позволяющий экспортировать изменять и импортировать 3д модели разных форматов.
    пример: 3DS MAX, Cinema 4D, MilkShape 3D.


    1. Скачиваем / создаем нужную нам модель.
    В данном уроке, будет модель танка.
    [​IMG]
    2. Експортируем выбранную модель в формат (.ASE)
    [​IMG]
    3. Открываем браузер статиков.
    [​IMG]
    4. Далее, идем ко вкладке File > Import...
    [​IMG]
    5. Заполняем поля, название пакета, группа объектов (необязательно) и название объекта - обязательно.
    на рисунке я поставил Tank_sm (Tank_StaticMesh), для более удобной навигации и управления файлами, можно добавлять в конце названия пакетов аббревиатуры, например: Static Mesh - sm, Texture - Tex / T, Sounds - S / Snd, Animations - Anims / A.
    [​IMG]
    6. Открываем браузер Текстур.
    [​IMG]
    7. Также как и статик, текстуры нужно импортировать в редактор, они должны быть в формате (.TGA / .DDS)
    с четным расширением (1*1, 2*2, 4*4, 256*256, 512*512, 512*256, 1024*1024, 2048*2024, 512*1024, 1024*2048)
    [​IMG]
    8. Название пакета, так-же, как и со статиками, как Вам удобне - так и называйте. но без пробелов и только латинскими буквами.
    [​IMG]
    9. В браузере текстур, открываем наш пакет (Tank_T) и проводим компрессию текстур.
    ПКМ > Compress > DXT3,
    DXT5 запоминает два значения для квада 4х4, а остальные значения получает через интерполяцию этих двух
    DXT3 запоминает альфу для каждого пикселя по 4 бита на пиксель. самый оптимальный вариант.
    при этом если у вас будет пакет с текстурами, где их количество будет около 10 и размер от 1024*1024 и выше, то Ваш пакет с текстурами будет весить около 100 мб. (редко кто дождется такой долгой загрузки с сервера)
    [​IMG]
    10. Проверяем, если ничего не пропустили, и приступаем к сохранению.
    После компрессия текстуры, рядом с ее именем появляется слово в скобках [DXT3] если оно есть, компрессия прошла успешно.
    [​IMG]
    11. Далее, открываем браузер статиков (шаг 3)
    Внизу, есть вкладка Materials, нажимаем на нее, и появляются еше вкладки, далее, там нужно будет вставить текстуру на танк, это делается нажав на текстуру в браузере текстур (шаг 6), нажимаем на одну из текстур, и в вкладке Material 0, жмем на Use (справа, в том же ряду)
    и так все материалы нужно заполнить, сначала на угад, но когда разберетесь какая текстура, куда идет, быстро привыкните.
    Не все объекты имеют такую возможность, если объекты, у которых одна текстура, а есть у которых 15 текстур.
    [​IMG]
    12. Далее, сохраняем наш пакет с моделью танка, после текстурирования.
    [​IMG]
    13. Сохраняем пакет Текстур.
    [​IMG]

    Теперь, можно будет пользоваться моделью танка на Любой карте, и менять ему текстуры, цвета и форму.


    Вот что у меня получилось с этим малышом сделать.
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]


    Скачать карту с Танком и посмотреть как его можно "оформить" можно пройдя по этой ссылке.
    http://ultramodding....c_mesh/1-1-0-13

    Кстати, нужно бы написать гайд по эмиттерам..
     
    Flame нравится это.
  13. kok-s

    kok-s Консильери

    Вопрос: если при создании карты использовать статики от стандартных карт не вшивая их в пакет майлевел, нужно ли потом создавать доп. папку с статиками или всё и так будет отображаться (вить эти статики есть в игре)?
     
  14. Gaiver5

    Gaiver5 После Юзера

    должно работать ... но могут быть нестыковки .. слет текстуры ... у меня было такое
     
  15. Leenosteal

    Leenosteal Не новенький

    Подскажите, где сейчас можно раздобыть этот ASE плагин для MilkShape 3D ?
     
  16. w.a.l

    w.a.l Консильери

    Человек и Leenosteal нравится это.
  17. Leenosteal

    Leenosteal Не новенький

    Да, это оно, но ссылка устарела..недоступна страница. :confused:

    Хотя на EPIC Games Community есть прикрепленная ссыль, придётся зарегистрироваться и скачать. Так что спасибо за наводку W.A.L :thanks:
    И снова тупик... у моего аккаунта недостаточно привилегий...вопрос где скачать этот плагин, снова актуален.
     
  18. w.a.l

    w.a.l Консильери

    Везде пишут что ASE это текстовый файл содержащий инфу о 2D или 3D объектах, который можно легко открый любым блокнотом. ХЗ важно тебе или нет.

    Вот чо есть, правда меня напрягает какой то там Modo..... Засирать здесь форум не буду вот тебе ссыль http://dnk-ut3.clan.su/index/0-38

    Посмотреть вложение ASEExport_FOR_Unrea.zip

    https://yadi.sk/d/BmoSoZmVfpXXC
     
    ЛОХМАТЫЙ, Leenosteal и Человек нравится это.
  19. Leenosteal

    Leenosteal Не новенький

    Спасибо за помощь,W.A.L. :thumbsup:
    Кстати проблему с плагином решает установка MilkShape 3D версии 1.8.5 Beta , в нём уже присутствует встроенный ASE для экспорта.
    (P.S. сегодня потестил)
     
  20. Stein

    Stein После Юзера

    расскажите про создание почти всего уровня из SM или может есть ссылка, (ресурсы импорт-экспорт это мне понятно) самое главное освещение тени и прочие нюансы