Новости Форум Каталог файлов Каталог статей Вики Активность пользователей Каталог моделей
Добро пожаловать на сайт посвященной игр серии В тылу врага! Здесь Вы сможете найти самые свежие файлы и интересные новости, завести себе новых друзей, общаясь на форуме портала, а также можете помочь нам в развитии сайта.
Discord
Discord Mow-Portal
EnglishRussianUkrainianBelarusianChinese (Traditional)FrenchGermanItalianJapanesePolishSpanishTurkish
Категории Статей
3ds Max [14]
Модостроение/моддинг и редактор [40]
Разное [14]
Ошибки игры, модов и редактора [3]
Прохождение и советы [0]
Игры [3]
Другие игры [0]
Дополнительные ссылки
Что добавить, изменить на сайте? Заказать мод из Steam Сменить ник на сайте Бан-лист Правила сайта Связь с администрацией
Мини-чат
Последние комментарии
(24.04.2024, 16:57) UZSTALKER написал в:
Cold War 1.6.2.2
(24.04.2024, 13:13) temniymaster190701 написал в:
Cold War 1.6.2.2
(19.04.2024, 19:43) Addd написал в:
JoJo Bizzare Adventure
(05.04.2024, 22:58) UZSTALKER написал в:
S.T.A.L.K.E.R — The Zone
(05.04.2024, 22:49) UZSTALKER написал в:
Cold War 1.7.4
(04.04.2024, 21:50) a6325943 написал в:
Cold War 1.7.4
(24.03.2024, 20:19) Igorkoffmen написал в:
Map Omaha + Mission
Группы Вконтакте
Группа ВКонтакте Mow-Portal Men of War Editor | Редактор карт Men of War | Call to Arms Men of War Editor | 3D Max
Полезные ссылки
[Здесь может быть ваш проект]
Youtube каналы:
некит Навсегда Д.Р.У.И.Д. СТАРЛЕЙ PLAY Sherman By
Группы ВКонтакте:
Kane's War ModMen Civil Car Русификаторы от Д.Р.У.И.Д. Lost Eagles By Anamath! FMR mod Chistilishe / Чистилище Gazmatera Trilogy+Zero by LVL90DRU1D MOWAS2HUB (discord) Moldova into the fire Wind Rose Творческая страничка Virpil и Alfa Мод Спецназ TANKS ONLY by SMF Cold War "ЗабытыЕ" Men of War: рип моделей, моды Born in the Fire: America Моды для игры ВТВ 2: Штурм 1-2 Фан сообщество "Cold War" Cold War Persia Way to the Freedom Nobody Except Us Dark Sintera
Моды:
Сингл миссии от InkvizitoR'a Cold War 1.6.2.2 (для ЛП и Штурм) — скачать Cold War 1.6.9 (для AS2) — скачать Cold War 1.7.1 (для AS2) — скачать Cold War 1.7.2 (для AS2) — скачать Cold War 1.7.3 (для AS2) — скачать Cold War 1.7.4 (для AS2) — скачать Cold War 1.6.5 (для CtA) — скачать
Программы:
4GB Patch Архиваторы
Статистика
CF-TEAM.ru Synthira - Интересные и загадочные новости ModeLand - Моды для Mount&Blade II: Bannerlord, Kenshi, S.T.A.L.K.E.R. 2, Call of Chernobyl, TES VI, свежие гайды на новые игры
Обмен баннерами
Онлайн всего: 38
Гостей: 38
Пользователей: 0

Пользователи, посетившие сайт за текущий день:
ganslxvs, TonaTor, Dasterian, talanovigorek, Spec1510, demon19745, sanchello13pv, valera04270, Ppchakwal, Peregryn

Подшивка мэшей к костям через SOEdit

Нажмите чтобы увеличить изображение Категория: Модостроение/моддинг и редактор
Опубликовал материал:
Просмотров: Комментариев:
 2180  0
Рейтинг: +6
И так...
Краткое знакомство с устройством скелета.

Любая модель состоит из множества объектов прикрепляемых к скелету.
Сам скелет - это иерархическая структура, как на этой картинке:
Чтобы было понятнее, что такое кость-родитель в иерархии костей приведу в качестве примера танк. У танка костью-родителем для кости башни является корпус танка. Кость башни является костью-потомком корпуса. В свою очередь, башня танка является костью-родителем люка на башне и т.д.

Кость обладает рядом характеристик, основными из которых являются:
  1. Координаты;
  2. Ориентация;
  3. Кинематика;
  4. Строка параметров;
  5. Файл мэша.
Для указания положения и ориентации кости, используются такие команды как: "Position", "Orientation" и "Matrix34".
Position - отвечает только за позицию;
Orientation - отвечает только за ориентацию;
Matrix34 - отвечает и за позицию, и за ориентацию.

1,2) Координаты и ориентация.
Положение каждой кости задается с помощью указания координат (x, y, z) центра этой кости (пивота) и ориентации ортогональных осей X1, Y1 и Z1 (векторов единичной длины) этой части. Центр осей X1, Y1 и Z1 расположен в центре (пивоте) кости юнита.
Координаты центра кости-потомка отсчитываются от центра кости-родителя (родителя в иерархии костей юнита).
Ориентация осей X1, Y1 и Z1 кости-потомка также указывается относительно осей X, Y и Z кости-родителя.

Для описания позиционирования удобнее всего рассматривать и приводить в пример Matrix34.
Поэтому при рассмотрении позиционирования - будет рассматривать именно он.

Matrix34 представляет собой матрицу из цифр, расположенных в виде трех колонок и четырех строк. Данная матрица может выглядеть в простейшем случае следующим образом:
{Matrix34
    1    0    0
    0    1    0
    0    0    1
    0    0    0
}

Первая строка матрицы определяет положение оси Х1. Вторая строка — положение оси Y1. Третья строка — положение оси Z1.
Оси всех костей расположены друг относительно друга в соответствии с «правилом правой руки». Если выставить указательный палец правой руки вперед и принять его за ось X, то большой палец, поднятый вверх — будет соответствовать направлению оси Z, а средний палец, согнутый к ладони — направлению оси Y.

https://i.ibb.co/Mfv2y3L/1.jpg
Нижняя, четвертая строка матрицы - это координаты центра кости относительно центра кости-родителя в координатной системе из осей X, Y и Z кости-родителя.
Для описания ориентации кости-потомка по отношению к осям X, Y и Z кости-родителя используются значения величин проекций трех единичных векторов (векторов с длиной, равной единице), выходящих из центра кости-потомка вдоль осей X1, Y1 и Z1 в направлениях этих осей.
На рисунке эти единичные векторы обозначены как «i», «j» и «k».

Три цифры в каждой из трех верхних строк Matrix34 «кости» — это величины проекций векторов единичной длины, выходящих из центра «кости» вдоль соответствующей оси «кости», на оси X, Y и Z «кости»-родителя. А именно:
  1. Первая цифра в первой строке сверху — длина проекции единичного вектора «i» на ось X, вторая цифра — длина проекции единичного вектора «i» на ось Y, а третья цифра — длина проекции единичного вектора «i» на ось Z.
  2.  Первая цифра во второй строке сверху — длина проекции единичного вектора «j» на ось X, вторая цифра — длина проекции единичного вектора «j» на ось Y, а третья цифра — длина проекции единичного вектора «j» на ось Z.
  3. Первая цифра в третьей строке сверху — длина проекции единичного вектора «k» на ось X, вторая цифра — длина проекции единичного вектора «k» на ось Y, а третья цифра — длина проекции единичного вектора «k» на ось Z.
Если направление единичного вектора при повороте кости-потомка будет противоположным направлению какой-либо оси кости-родителя,
то перед значением величины проекции единичного вектора на эту ось в Матрих34 ставится знак минус.

В примере Matrix34 выше по тексту и на рисунке выше приведены значения величин этих проекций в том случае, если оси кости расположены параллельно осям кости-родителя, т.е. выходят в том же направлении.

Если кость, например, будет повернута на 15 град. по часовой стрелке вокруг воображаемой оси, проходящей через центр кости и параллельной оси Y кости-родителя и совпадающей с ней по направлению, а направление оси Y1 кости после поворота будет совпадать с направлением оси Y кости-родителя - три верхние строки матрицы повернутой кости, будут выглядеть следующим образом:

{Matrix34
    0.9659    0    0.2588
    0        1    0
    -0.2588    0    0.9659
    ...        ...    ...
}

То есть,

{Matrix34
    1*cos15°    0    1*sin15°
    0        1    0
    -1*sin15°    0    1*cos15°
    ...        ...    ...
}

https://i.ibb.co/4YxYZph/2.jpg


Для масштабирования кости в направлении какой-либо оси, значения всех трех цифр строки Matrix34, соответствующей данной оси должны быть уменьшены или увеличены с соответственным коэффициентом, то есть, умножены на величину коэффициента масштабирования. Если кость увеличивается или уменьшается пропорционально по всем трем осям (по длине, ширине и высоте) - все цифры во всех трех первых строках матрицы должны быть увеличены или уменьшены одинаково.

Например, если кость пропорционально увеличивается в два раза - коэффициент масштабирования должен быть равен 2, а если уменьшается в два раза, то коэффициент масштабирования должен быть равен 0,5.

В случае поворота кости на 15 град по часовой стрелке относительно оси, проходящей через центр кости в направлении оси Y и параллельной оси Y кости-родителя, и одновременного увеличения кости в два раза, Matrix34 повернутой и увеличенной кости будет выглядеть следующим образом:
{Matrix34
    1.9318    0    0.5176
    0        2    0
    -0.5176    0    1.9318
    ...        ...    ...
}

То есть,
{Matrix34
    2*1*cos15°    0    2*1*sin15°
    0        2*1    0
    -2*1*sin15°    0    2*1*cos15°
    ...        ...    ...
}
Здесь 2 - коэффициент масштабирования.

3) Кинематика.
В случае, если предполагается подвижность кости,
то к ней применяются следующие модификаторы: "Revolute", "Socket", "Prizmatic".
  • В случае, если предполагается вращательная привязка кости, то применяется модификатор "Revolute".
    Вращение происходит вокруг оси Z.
  • В случае, если предполагается призматическая привязка (перемещение вдоль оси Z), то применяется модификатор "Prizmatic".
  • Ну а если предполагается шаровой тип вращения (Оси X и Y подвижны, а ось Z - заблокирована), то применяется модификатор "Socket".
За максимальную скорость вращения/перемещения осей - отвечает параметр "Speed".
Он задаётся в радианах в секунду. (Этот параметр не применяется к каткам/колёсам напрямую).

Примечание:
Для призматической привязки (1 скоростная единица = 1/20 = 0,05 метра) (Для Speed2 = метры/сек.).
Для вращательной привязки (1 скоростная единица = 1 радиан). (Для Speed2 = градусы/сек.).
Для сокетной привязки (1 скоростная единица = 1 радиан). (Для Speed2 = градусы/сек.).
*1 лимитная единица относительно базового положения.

Лимиты кинематики.
Для лимитирования движения костей применяется параметр "Limits".
Лимиты бывают 3 типов "Limits", "Limits N" и "Limits N N".
Но т.к. Limits равен Limits 0 -0, то его рассматривать не буду.

Для лимитирования модификаторов "Revolute" и "Prizmatic" применяется "Limits N N".
Для лимитирования модификатора "Socket" применяется "Limits N".

4) Строка параметров.
Все параметры перечисляются через точку с запятой.
Вот некоторые из них:
  • ID - обозначает принадлежность к компоненту. Кости с неиксовой на иксовые и наоборот, заменяются согласно этому ID. Вот его типичный пример id=turret;
  • CommonMesh - применяется для анимации вершин. (существует 2 вида анимации: скелетная и мэшевая (исходя их данных вертексов)).
  • Wheelradius - определяет радиус для всех катков.
  • Radius - определяет радиус (и соответственно скорость) вращаемого катка.
  • Support - этой костью модель будет опираться на грунт (актуально для колёс).
  • SteerMax - максимальный угол поворота руля.
  • Vis - обозначает принадлежность кости к визерам.
  • Group - вносит кость в какую либо группу.
  • Basis - определяет кость как базовую.
  • LastPose - [нет точной информации].
5) Файл мэша.
Файл мэша крепится к центру кости и является необязательным.
Для крепления мэша к кости используется команда
VolumeView.

Это далеко не все параметры кости. Но для начала - достаточно.

SOEdit

Общий вид программы и некоторые её функции.

На переднем плане как раз таки изображено окно ручной настройки костей.

На этом изображении помечены те аспекты программы, с которыми вам придётся столкнуться для настройки самых простейших моделей:
1,2) Загрузка и сохранение скелетного файла;
3) Выбор и открытие по двойному клику, окна настройки кости;
4) Сворачивание и разворачивание ветвей модели через иконку с плюсом или минусом слева от названия кости;
5) Выбор файла мэша.

Несколько примечаний для настройки моделей первого уровня сложности:
http://mow-portal.ru/load/raznoe/pak_ljogkikh_amerikanskikh_sau_t3_hmc_uchebnye_modeli/10-1-0-4038
http://mow-portal.ru/load/raznoe/ljogkij_sovetskij_tank_bt_sv_uchebnaja_model/10-1-0-4037

1.
Все кости, к которым надо подшить PLY-файлы, на конце помечены суффиксом с названием модели:
turret_btsv, wheell4_btsv, trackr_btsv и т.д...
Т.ж, могут встречаться индексы после названия модели: wheelr1_t3_hmc0, wheelr1_t3_hmc1, wheelr1_t3_hmc2...
У названий моделей тоже могут быть индексы: t3_hmc_2, t3_hmc_3. Но индексы костей редко связываются с индексами моделей.

2.
Обращайте внимание на название и полярность компонентов.
Ходовая часть делится на левую и правую части.

3.
Не забывайте про настройку X и XX моделей.

Послесловие.
Да, я знаю. SOEdit - это крайне забагованная программа. Она такая уже больше 16 лет.
Полностью эту программу починить невозможно. Мне едва удаётся чинить некоторые её базовые функции (базовые - не значит простые).
Но иной программы, которая могла бы открыть -> изменить -> сохранить игровую модель - не существует.
(И не надо мне рассказывать про методы, которые недоступны массовой аудитории. Хотя и на этот счёт у меня есть планы (но нет времени)).

В этой статье очень многое упускается.
В частности, в ней не были затронуты темы коллизий и анимаций.
Но это статья создана лишь для беглого знакомства со скелетом.

Больше информации есть здесь:
http://wiki.bestway.com.ua/index.php/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Или здесь:
https://docs.google.com/document/d/e/2PACX-1vQnzU21Xl5fGHhIAVcA5J4Tht-H5XAXncA7juH6jCyp3vNI6aHi8MQ5jRgD6SPtVHdltoClY7SHdkxa/pub

И здесь:
https://disk.yandex.ru/d/wJgRTYT_vyCDJA

Ссылка на SOEdit:
http://mow-portal.ru/load/raznoe/soedit_version_next_v0_5m2/10-1-0-4011

Ссылка на следующую статью серии:
http://mow-portal.ru/publ/modostroenie_modding_and_editor/pozicionirovanie_v_soedit_v0_5m7_i_vyshe/15-1-0-75

В статье использовались материалы от BestWay и John Doe.
Комментариев нет, но Вы можете стать первым, оставив свой комментарий!

Индекс цитирования