AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моделирование и конструирование

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2008, 20:58   #1
Jareny
Штурмовик-бомбардировщик
 
Аватар для Jareny
 
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 822
По умолчанию Формат MSH-файлов

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

Рассмотрение буду производить по выложенному в соседней ветке файлу cubic.msh, который я создал при помощи 3ds-max и довёл вручную.
При необходимости создам (если смогу) или просто выложу готовый файл какой-нибудь модели для примера, если в кубике не будет необходимых деталей...

Начнём понемногу.

раздел [LOD]
здесь в столбик записаны цыфры

40
80
130
350
900

Эти цыфры означают границу смену лодов.
На расстоянии 0-40 м мы видим главную модель
на расстоянии 40-80 мы видим первый лод
80-130 - второй лод
130-350 - третий лод
350-900 - четвёртый лод
На расстоянии свыше 900 м мы видим пятый лод.

Если пятого лода нет, то мы ничего не видим.

Как сделать, чтобы на определённом расстоянии было не видно некоторых деталей?
Создали такую деталь с двумя лодами. Хотим, чтобы она исчезала после второго лода. Пишем:
40
80
130

Это означает, что видим основную модель до сорока метров, первый лод в диапазоне 40-80 метров, второй - 80-130.
При отдалении на 130 м деталь исчезает.

Следующие два раздела между собой связаны.

раздел [Materials]
Здесь в столбик перечисляются использованные в файле материалы. Материалы все стандартные, чтобы его использовать достаточно только его имя. Другая информация о материалах в файле не содержится (разве что координаты точек на файле текстуры, но об этом дальше).
__________________
Если что-то очень хочется, то можно. Возможно по-другому
Если что-то не получается, то одно из трех:
1. Тебе это не нужно
2. Плохо стараешься
3. Делаешь это не так.

Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем...
Jareny вне форума   Ответить с цитированием
Старый 21.10.2008, 12:51   #2
Jareny
Штурмовик-бомбардировщик
 
Аватар для Jareny
 
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 822
По умолчанию FaceGroups

[FaceGroups]
Здесь описывается общая информация о модели
26 12 Это 26 вершин и 12 фейсов (треугольников), составленных из этих вершин
0 0 26 0 12 0 Здесь:
0 - номер материала в списке [Materials] (нумерация начинается с нуля)
0 26 - номер первого и количество точек, которые мапятся этим материалом
0 12 номер первого и количество фейсов, которые мапятся этим материалом.

Пример, если в разделе [Materials] имеем:
material1
material2
то в разделе [FaceGroups] можно записать:
26 12
0 0 13 0 6 0
1 14 26 7 12 0

А вот пример из Юнкерса 52:
[Materials]
Glass2
Gloss1D0o
Gloss2D0o
Matt1D0o
Matt2D0o
Overlay5

[FaceGroups]
1201 775
0 0 166 0 122 0
1 166 718 122 430 0
2 884 234 552 174 0
3 1118 55 726 33 0
4 1173 20 759 12 0
5 1193 8 771 4 0
__________________
Если что-то очень хочется, то можно. Возможно по-другому
Если что-то не получается, то одно из трех:
1. Тебе это не нужно
2. Плохо стараешься
3. Делаешь это не так.

Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем...

Последний раз редактировалось Jareny; 28.10.2008 в 21:18.
Jareny вне форума   Ответить с цитированием
Старый 25.10.2008, 19:33   #3
Jareny
Штурмовик-бомбардировщик
 
Аватар для Jareny
 
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 822
По умолчанию Вертексы, фейсы и мапинг

Итак, следующий раздел
[Vertices_Frame0]
он же [LOD1_Vertices_Frame0] и такие же для остальных лодов.
Здесь идёт в столбик перечисление точек
Каждая строчка описывает одну точку.
Запись состоит из трех координат x y z и ещё трех цыфр, одна из которой должна быть больше или меньше нуля (иначе игра эту модель не увидит.

Вот пример из кубика:

-2.499 -2.499 0.001 1 1 1
2.499 -2.499 0.001 1 1 1
-2.499 2.499 0.001 1 1 1
2.499 2.499 0.001 1 1 1

Здесь первая точка находится на расстоянии 2,5 м слева и столько же сзади от начала координат (если стоять по курсу самолёта). Три единички добавлены от балды, не знаю, на что они влияют, но и так работает.
Вторая, соответственно находится слева-спереди по 2,5 метров
третья и четвёртая, соответственно справа-сзади и справа-спереди на столько же метров от начала координат...
По поводу последних цыфр, я предполагал, что это вектора точек. Оказалось ошибочное мнение. Или они влияют на что-то другое

[MaterialMapping] и [LOD1_MaterialMapping] (и другие лоды также)


Здесь тоже перечисляются точки. Те же, что и в предыдущем разделе. В столбик. И строчек должно быть столько же, как и в предыдущем разделе. Причём каждая строчка этого раздела соответствует такой же по номеру строчке предыдущего раздела.
Это - координаты точки на файле текстуры. В процентах длины, делённых на сто. если там 0 0, значит эта точка мапится в текстуре левым верхним углом. 1 1 - правым нижним углом, 1 0 - правым верхним углом, 0 1 - левым нижним. Здесь числа в диапазоне от нуля до единицы. Могут быть и больше, но что означает этот вариант - я ещё не въехал. Может многослойный рисунок (по типу gif)?

[Faces] и [LOD1_Faces]
Здесь в столбик перечисляются фейсы
Каздая строчка - список через пробел строчек (нумеруются от нуля) в разделе [Vertices_Frame0] (или соответственно [LOD1_Vertices_Frame0])
Фейс состоит из трёх точек. Порядок их перечисления влияет на лицевую сторону, в зависимости от того, по часовой или против часовой стрелке их перечислять
__________________
Если что-то очень хочется, то можно. Возможно по-другому
Если что-то не получается, то одно из трех:
1. Тебе это не нужно
2. Плохо стараешься
3. Делаешь это не так.

Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем...

Последний раз редактировалось Jareny; 28.10.2008 в 21:19.
Jareny вне форума   Ответить с цитированием
Старый 28.10.2008, 21:16   #4
Jareny
Штурмовик-бомбардировщик
 
Аватар для Jareny
 
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 822
По умолчанию Хуки

Сегодня расскажу о хуках, или, как раньше они были мной обозваны, слотах.
Хуки в игре используются для взаимодействия модели с игрой. Как и коллизии. Если коллизии являются сигнализаторами столкновений моделей в игре, то хуки - активный элемент модели. Они показывают игре опорные точки модели. Клипы (предположительно точки приложения сил на самолёт), оружейные точки, показывающие места подвески оружия, точки эффектов, показывающие, откуда будет из самолёта вырываться пламя, вытекать бензин, масло, идти дым, где расположены огни навигации и посадочной фары, откуда выпрыгивает покидающий самолёт экипаж (для каждого члена экипажа свой хук. Не удивляйтесь, если вы видите только двух человечков в модели, а выпрыгивает их с десяток, значит они прятались под сиденьями и в бомболюках ).
Хуки располагаются в двух разделах, которые идут сразу после раздела [Materials]. Их имена должны быть уникальны для всей модели самолёта (и не только в самолётах они есть), содержаться должны только в неповреждённой версии меша.
Раздел [Hooks] содержит в столбик названия хуков, а раздел [HookLoc] содержит координаты соответствующих хуков в меше. Формат координат аналогичен формату координат в файле hier.him причём в тех же единицах. Чтобы найти место, где хотите сделать хук, вставьте в модель какой-нибудь произвольный меш, сделайте его дочерним от вашей модели и подбором строки аттачинг найдите нужные координаты. эти координаты можно смело вставлять в меш как координаты хука. Для этого удобно использовать какие-нибудь малокалиберные ракеты (например от истрибителя Me-262).

Вот пример из файла CF_D0 из Ju-52/3mg3e, скачать который можно в соседней ветке.

[Hooks]
_Clip05 <BASE>
_Clip06 <BASE>
_Clip07 <BASE>
_Clip19 <BASE>
_ExternalBail01 <BASE>
_ExternalBail02 <BASE>
_ExternalBail03 <BASE>
_ExternalBail04 <BASE>
_ExternalBail05 <BASE>
_BombSpawn01 <BASE>
_BombSpawn02 <BASE>
_BombSpawn03 <BASE>
_BombSpawn04 <BASE>
_BombSpawn05 <BASE>
_BombSpawn06 <BASE>
_BombSpawn07 <BASE>

[HookLoc]
1 0 0 0 1 0 0 0 1 -0.34878 -5.92075 1.27904
1 0 0 0 1 0 0 0 1 -0.35691 0.42588 -1.35164
1 0 0 0 1 0 0 0 1 0.32583 -5.29475 -1.41001
1 0 0 0 1 0 0 0 1 0.44558 -0.8685 1.40019
0.939692 0.342021 0 -0.342021 0.939692 0 0 0 1 1.15525 0.54403 -0.10978
0.939692 0.342021 0 -0.342021 0.939692 0 0 0 1 1.20843 0.60399 -0.10978
0.939692 0.342021 0 -0.342021 0.939692 0 0 0 1 1.16462 0.67878 -0.10978
0.939692 0.342021 0 -0.342021 0.939692 0 0 0 1 1.22525 0.76839 -0.10978
0.939692 0.342021 0 -0.342021 0.939692 0 0 0 1 1.17397 0.38064 -0.10978
0 1 0 -1 0 0 0 0 1 1.17397 0.38064 -0.10978
0 0 1 0 1 0 -1 0 0 0 -4.8 0
0 0 1 0 1 0 -1 0 0 0 0 0
0 0 1 0 1 0 -1 0 0 -0.4 -4.8 0
0 0 1 0 1 0 -1 0 0 0 -0.5 0
0 0 1 0 1 0 -1 0 0 -0.4 -4.3 0
0 0 1 0 1 0 -1 0 0 0 -4.3 0
__________________
Если что-то очень хочется, то можно. Возможно по-другому
Если что-то не получается, то одно из трех:
1. Тебе это не нужно
2. Плохо стараешься
3. Делаешь это не так.

Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем...
Jareny вне форума   Ответить с цитированием
Старый 23.06.2009, 02:40   #5
cvin
Новичок
 
Регистрация: 18.06.2009
Сообщений: 14
По умолчанию про точки

я не совсем понял,как движок игры определяет фейс к котораму крепить текстуру, по координатам его точек?не по названию?в макс на пример все имеет название:точка,линия,полигон.
cvin вне форума   Ответить с цитированием
Старый 02.07.2009, 22:21   #6
Jareny
Штурмовик-бомбардировщик
 
Аватар для Jareny
 
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 822
По умолчанию

Отвечаю. Есть три точки. Они имеют на текстуре координаты. Текстура растягивается по фейсу между этими точками. Именно по координатам. А на какой именно текстуре сказано в разделе [FaceGroups]. Там диапазоны точек распределены по текстурам. По номерам точек.
__________________
Если что-то очень хочется, то можно. Возможно по-другому
Если что-то не получается, то одно из трех:
1. Тебе это не нужно
2. Плохо стараешься
3. Делаешь это не так.

Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем...
Jareny вне форума   Ответить с цитированием
Старый 05.07.2009, 12:50   #7
cvin
Новичок
 
Регистрация: 18.06.2009
Сообщений: 14
По умолчанию

можно пример ?где пишется порядковый номер точки?
cvin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:17. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru