Уфф!
Написал-таки я, как конвертировать шлем. Очень подробно и из-за этого довольно длинно.
Сам я мало разбираюсь и в моделировании, и в Фотошопе, так что будет очень круто, если кто-то опытный прочитает мой флуд и укажет на возможные ошибки.
Если у кого-то все-таки дойдут руки помочь хотя бы одной-двумя модельками, отписывайтесь, пожалуйста, тут, чтобы не заниматься одним и тем же.
Итак, что нам нужно. Я использую 3ds Max, Adobe Photoshop CS, OpenBrf (есть на этом сайте) и NifSkope для просмотра морровских моделей. Разумеется, также нужен сам Морр и распаковщик для .bsa архивов.
NifSkope -
http://sourceforge.net/projects/niftools/files/nifskope/1.0.22/nifskope-1.0.22.8329d39-windows.exe/downloadOpenBrf -
http://rusmnb.ru/download.php?view.150Плагин NVidia для Adobe Photoshop (позволяет создавать и открывать .dds файлы) -
http://developer.nvidia.com/object/photoshop_dds_plugins.htmlПлагин для 3ds Max (позволяет работать с .nif файлами) -
http://sourceforge.net/projects/niftools/files/max_plugins/3.4/niftools-max-plugins-3.4.2.4632.7z/download(Распаковать архив, найти папку для своей версии Макса, потом содержимое папки «plugcfg» кинуть в папку «plugcfg» вашего Макса, у меня это «C:\3dsmax7\plugcfg». Аналогично поступить с папкой «plugins»)
Еще потребуется плагин для экспорта/импорта .smd файлов, ссылка на него есть в первом посте этой темы под первым спойлером:
http://rusmnb.ru/forum/index.php?topic=3492.0(Так как у меня довольно старая версия Макса, мне пришлось скачивать откуда-то из другого места)
Для распаковки морровских архивов я использую QuickMorrowindBSA, есть тут
http://fullrest.ru/files/morrowind/programms/qbsa (справа вверху кнопочка «скачать плагин»)
Файлик «QuickMorrowindBSA.exe» надо закинуть в одну папку с Morrowind.bsa (…/Morrowind/ DataFiles /) и создать там текстовый файл со следующим содержимым:
QuickMorrowindBSA.exe Morrowind.bsa
PauseПотом этому файлу поменять разрешение с .txt на .bat и запустить его как обычную программу. (Если возникнут проблемы с созданием файлика, то можно скачать его отсюда:
http://rghost.ru/4775131)
Откроется консольное окошко, там нажимаем любую букву. Осторожно, при распаковке архивы займут около 300-400 Мбайт. Начинается распаковка архивов, после ее окончания жмем любую клавишу для выхода.
Теперь можем зайти в папку «…/Morrowind/DataFiles/meshes/a» и посмотреть файлы игры через NifSkope. Чтобы при просмотре на моделях отображались текстуры, нужно зайти в «Render->Settings», нажать «Add new folder», кликнуть по кнопке «folder» и выбрать там папку «…/Morrowind/ DataFiles /Textures». (Подробнее и с картинками можно посмотреть тут
http://wiki.rumor.ru/index.php?title=NifSkope:_Setting_the_Texture_Search_Path)
Все, плагины и нужные программы поставили, теперь можно приступать к главному =)
Разберемся как перегнать в МиБ шлем.
Для начала выберем, что мы будем перегонять. Заходим в папку «…/Morrowind/ DataFiles /meshes/a» и начинаем разглядывать разные модельки через NifSkope. Откроем «a_glass_helmet.nif», это стеклянный шлем. Если щелкнуть по самому шлему, то можем увидеть, что он состоит из 8-ми частей, каждой из которых соответствует одно поле NiTriShape в списке. Нажмем на плюсик напротив одной из строчек NiTriShape. (рис28) Откроется небольшой списочек, один из пунктов будет NiTexturingProperty. Раскроем плюсик напротив него и увидим поле NiSourseTexture. (рис29) Там будет указано название текстуры, которая наложена на выбранный кусок шлема. Если посмотреть текстуры для остальных частей шлема, то увидим, что практически у всех они разные. А в МиБе вся модель должна состоять из одного куска. Если мы просто соединим в Максе все части шлема в единое целое, то придется использовать и одну текстуру. Поэтому наша задача собрать все текстуры в одну общую.
Если щелкнуть по самой модели или по полю NiTriShape правой клавишей мыши и выбрать Texture->EditUV (рис30), то увидим развертку текстуры для выбранного куска шлема. (рис31) Если подвигать точки в этом окошке, то будет меняться положение текстуры на модели. (Главное потом не сохранить файл, чтобы не осталось изменений) Чтобы можно было использовать одну текстуру на все, придется собрать воедино все используемые текстуры и сдвинуть развертки отдельных кусков шлема, чтобы каждая лежала на своей текстуре.
С задачей мы определились, можно закрывать NifSkope.
Чтобы в МиБе шлем правильно отображался, нужно будет примерять его на МиБовскую голову. Заходим в папку «…/Mount&Blade/CommonRes», открываем «meshes_face_gen.brf», в появившемся окошке редактора OpenBRF выбираем строку «male_head», щелкаем по ней ПКМ (правой клавишей мыши), жмем «Export static mesh» (рис1) и сохраняем куда-нибудь в.obj файл. Закрываем OpenBRF.
Запускаем 3ds Max, жмем «File->Import» и открываем наш .obj файл. (рис2) В появившемся окошке нажимаем Ок. (рис3) Выбираем нашу модель (рис4), заходим во вкладку «Modify» (рис5), открываем «Modifiers list» (рис6) и выбираем там «Symmetry» и переставляем галочки так, чтобы голова нормально отображалась. (рис7)
Чтобы случайно не сместить голову, щелкаем в окошке головой ПКМ и выбираем «Freeze selection». Теперь голова станет серой и ее нельзя будет выделить.
Самое время сохраниться.
Рис28

Рис29

Рис30

Рис31

***
Рис1

Рис2

Рис3

Рис4

Рис5

Рис6

Рис7

Кнопка «Arc Rotate SubObject» позволяет рассмотреть модель с разных сторон (рис8). Приближать и удалять изображение можно колесиком мыши. Зажав колесико, можно двигать камеру. Если камера убежит куда-то далеко, кнопка «Zoom Extents» вернет ее на место (рис9). Вращать камеру лучше, когда выбран какой-то объект, иначе она улетает в неведомые дали.
Теперь импортируем в Макс .nif морровского шлема, я возьму «a_glass_helmet.nif». Все морровские доспехи лежат в папке «…/Morrowind/ DataFiles /Meshes/a». (File->Import выбираем тип файлов .nif и открываем нужный шлем)
В NifSkope можем увидеть, что шлем состоит из 8-ми частей. Чтобы в Максе редактировать их как единое целое, нужно их сгруппировать: после импорта шлема, не снимая с него выделения, жмем Group->Group->Ok. (рис12)
Для выбора, перемещения, вращения и изменения размера объектов есть соответствующие кнопки вверху (рис10), но удобнее пользоваться горячими клавишами Q,W,E,R. (Q – выделять объекты, W -двигать , E - вращать, R – изменять размер) Практически любое действие можно отменить стрелочкой (рис11) или комбинацией клавиш ctrl+Z.
Морровский шлем намного крупнее МиБовской головы, его надо уменьшить с помощью этой кнопки (рис13) (горячая клавиша R). Важно, чтобы белый квадратик на кнопке был именно квадратным как на рисунке. Если у вас не так, нажмите несколько раз клавишу R.
Теперь нажимаем на желтый треугольничек (рис14) и уменьшаем наш шлем. Если нажимать не на треугольник, а на полосочки по бокам или линии “x,y,z”, то шлем будет уменьшаться не по всем направлениям. Неправильные действия отменяем комбинацией ctrl+Z.
В окошках проекций есть 4 вида: сверху, слева, спереди и трехмерный. Если щелкнуть по названию вида ПКМ, то выскочит списочек (рис15). Можно зайти в пункт Views и выбрать нужный вид. Например, если вы стали вращать камеру в виде сверху и хотите вернуть его назад, то щелкните ПКМ по названию вида и выберите Views->Top. Если в окошке трехмерного вида «Perspective» камера больше не приближается, чтобы нормально видеть уменьшенный шлем, то нужно нажать ПКМ по надписи «Perspective», выбрать Configure->RenderigMethod и задать в «Perspective User View» меньшее значение. (рис16)
Уменьшив шлем до нужного размера, нажмем клавишу W, чтобы его двигать. Обратим внимание, что двигать можно по отдельным координатам x,y,z или в плоскостях xy,xz,yx. Внизу есть окошки со значениями координат по x,y,z (рис17), где их можно задать с клавиатуры вручную. Координату по X лучше поставить в 0.
Теперь нажимаем клавишу E и начинаем вращать шлем, чтобы он был правильно повернут относительно головы. Вручную все равно получится немного криво, поэтому потом вбиваем внизу точные значения для углов поворота, чтобы они стали кратны 90. Например, у меня получилось X 74,872, Y 173,777, Z -5,425. Округляю: X 90, Y 180, Z 0.
Теперь передвигаем, вращаем и масштабируем шлем, чтобы он хорошо сидел на голове. Главное, чтобы куски головы не торчали из-под шлема.
Сохраняемся.
Рис8

Рис9

Рис10

Рис11

Рис12

Рис13

Рис14

Рис15

Рис16

Рис17

Теперь выделяем шлем (клавиша Q) и сверху нажимаем Group->Ungroup. Теперь он опять состоит из нескольких частей, двигать их больше не стоит. Если нажать клавишу H, то увидим список этих объектов и сможем выбирать их подряд по списку (рис18). Нажмем All, а затем Select. Все куски шлема выделились.
Сверху заходим в Rendering->MaterialEditor (рис19). Там из нескольких серых шариков сразу выбран первый. Шарики обозначают материалы, которые мы можем накладывать на модель для реалистичности. (Ее цвет, текстура, шершавость, блеск и т.п.)
Мы хотим, чтобы у кусков шлема отображались только ребра, поэтому ставим галочку в поле Wire и жмем по темно-серому прямоугольнику напротив надписи Diffuse. Откроется окошко выбора цвета, выбираем любой поярче. Теперь жмем по кнопке с клетчатым кубиком «Show Map in Viewport» (рис20), потом по кнопке «Assign material to selection» (рис21). Шлем стал прозрачным, видны только цветные ребра. Закрываем окно выбора материала.
Если выделение со шлема снялось, жмем ctrl+A. Эта команда выделяет все. Так как у нас загружен только шлем и голова, а голова заморожена, то выделятся все части шлема.
Теперь мы можем получить развертку текстур нашего шлема. Заходим в Rendering->RenderToTexture. Открывается окошко (рис22). Сверху в поле Path написано, куда сохранятся картинки с развертками наших текстур. В списке ObjectsToBake перечислены все части шлема, с которых мы хотим получить развертку.
Прокручиваем окошко вниз, доходим до таблицы Output (рис23). Нажимаем под ней кнопочку Add и в открывшемся окошке выбираем DiffuseMap двойным кликом.
Щелкаем ниже по кнопке 1024, чтобы выбрать размер получаемых разверток. Поле size должно поменяться на 1024.
Нажимаем внизу окошка кнопку Render, на сообщение о якобы ошибке жмем Continue.
Видим, как создаются развертки всех частей шлема. Закрываем окошко кнопкой Close.
По адресу, который был указан в поле Path, появились файлы с развертками в формате tga. Заходим в Photoshop, чтобы их проверить. Выглядеть будут примерно так: (рис24). Закрываем Фотошоп, возвращаемся в Макс.
Через кнопку H выделяем первый по списку кусок шлема. Заходим во вкладку Modify (рис5), в списке ModifierList выбираем UnwrapUVW. (рис25) Жмем кнопку Edit. (рис26) Откроется окно редактора развертки. Видим, что все разделено на квадратики, в середине есть рамка из квадратов 10*10, которая обозначена жирной темно-синей линией. (рис27) Эта рамка и есть размер текстуры. Нам нужно, чтобы все текстуры отдельных кусков шлема поместились в этой рамке.
Рисуем на бумаге (лучше в клеточку) квадратик 10*10. На глаз оцениваем размеры частей нашего шлема и пропорционально выделяем каждой части по квадратику в получившейся сетке. Я сделал так: (рис32), выделив по квадрату каждому куску шлема с 0-го по 7-й.
Теперь нужно развертки для всех частей шлема уместить в эти зоны. Применяем к ним UnwrapUVW, заходим в Edit, выделяем мышкой все точки, выбираем режим FreeformMode (рис33), а затем передвигаем и масштабируем развертку так, чтобы она поместилась в отведенные ей квадратики. Чтобы сжимать и растягивать равномерно, зажимаем ctrl.
(рис34, рис35)
Когда закончим со всеми кусками шлема, выделяем их все (ctrl+A), заходим в Tools->RenameObjects (рис36), снимаем галочку с BaseName, ставим галочку напротив Prefix и пишем в поле «new_» (рис37), жмем Rename один раз и закрываем окошко.
Теперь имена всех частей шлема начинаются с «new_», это можно посмотреть во вкладке Modify (рис38) или нажав клавишу H.
Теперь нужно получить изображения новых разверток. Так же, как мы уже делали:
Жмем ctrl+A. Заходим в Rendering->RenderToTexture. Открывается окошко (рис22). Теперь настройки у нас остались еще с прошлого раза.
Нажимаем внизу окошка кнопку Render, на сообщение о якобы ошибке жмем Continue.
Видим, как создаются развертки всех частей шлема. Закрываем окошко кнопкой Close.
Сохраняемся в Максе, закрываем его и идем в Фотошоп.
Рис18

Рис19

Рис20

Рис21

Рис22

Рис23

Рис24

Рис25

Рис26

Рис27

***
Рис32

Рис33

Рис34

Рис35

Рис36

Рис37

Рис38

Рис39

Открываем в Фотошопе все наши развертки, начинающиеся с «new_». Переключаемся на английскую раскладку клавиатуры. В первой попавшейся развертке жмем ctrl+A, затем ctrl+C и закрываем ее, потом переходим на другую и жмем ctrl+V, там появится новый слой со скопированный разверткой. Теперь на эту развертку так же копируем все остальные, пока не останется один файл со слоями всех разверток. (рис40) Сохраняем его под новым именем в формате psd.
Выбираем инструмент «волшебная палочка» (рис39), выделяем на верхнем слое все черное и жмем Del. Так же поступаем с остальными слоями, кроме последнего, пока не получим совмещенное изображение всех разверток. (рис41)
Теперь параллельно с Фотошопом открываем в NifSkope наш шлем, и смотрим там название текстуры для первого по списку куска шлема (рис42) и открываем ее в Фотошопе.
(Быстрее сделать так: Щелкаем дважды по названию текстуры, чтобы оно стало редактируемым, затем дважды по самому имени, чтобы оно выделилось без расширения файла. В Фотошопе жмем ctrl+O, заходим в папку «…/Morrowind/DataFiles/Textures», выбираем тип файла dds, вставляем в строку скопированное имя файла ctrl+V)
В появившемся окошке выбираем первый пункт (выбран по умолчанию) и жмем Ок. Открывается текстура. Открываем изначальную развертку для первого куска шлема. Копируем текстуру (ctrl+A, ctrl+C) и вставляем ее в развертку. Файл текстуры закрываем, переходим на изначальную развертку, куда вставили текстуру. Нажимаем ctrl+T, теперь мы можем изменять размер текстуры, нам нужно растянуть ее на все окно по размеру самой развертки. Когда это сделано, жмем Enter.
Теперь копируем верхний слой (текстура) и вставляем его в файл, где совмещены новые развертки. Делаем слой с текстурой верхним в списке. Так же поступаем и с изначальной разверткой. Закрываем файл с изначальной разверткой и текстурой, оставляем тот, где находятся совмещенные новые развертки, куда мы все скопировали. Привязываем к слою с изначальной разверткой слой с текстурой и делаем его невидимым. (рис43)
Задаем слою со старой разверткой прозрачность 50%. (рис44)
Жмем ctrl+T и совмещаем на рисунке старую развертку с новой. Для изменения размеров, тянем за квадратики по углам, зажав shift. Приближаем и удаляем изображение «сtrl +» и «сtrl -». Неправильные действия отменяем ctrl+Z, при необходимости совсем отменяем изменения через Esc. Чтобы двигать точно, используем стрелочки на клавиатуре.
(рис45) Когда изображения совпадут, жмем Enter.
Делаем слой со старой разверткой невидимым, а саму текстуру видимой. Она должна была встать на свое место. Если текстура залезает на развертки других частей, обрезаем ее.
Повторяем так со всеми частями шлема, пока не получим картинку с совмещенными текстурами всех частей. Потом сохраняем ее на всякий случай в psd, а затем нажимаем Файл->СохранитьКак и сохраняем ее в dds. В появившемся окошке ставим настройки как на рисунке (рис46) и жмем Save. (Не пугайтесь, сохранение займет некоторое время)
Все, текстура готова.
Снова открываем Макс, загружаем сохраненный файл. Выделяем все, заходим в Rendering->MaterialEditor (рис19). Выбираем второй шарик, заходим в раздел Maps (рис47), напротив надписи DiffuseColor жмем по кнопке None, затем выбираем Bitmap (рис48) и открываем dds файл с нашей текстурой. Жмем кнопку с черной стрелочкой GoToParent (рис49), применяем материал к шлему (рис50), закрываем окно выбора материалов и любуемся результатом.
Качество текстуры при просмотре будет хуже, чем на самом деле. Зато можно разглядеть, хорошо ли легла текстура, нету ли швов. Если находим изъяны, исправляем их в Фотошопе и загружаем текстуру заново. (Заходим в Rendering->MaterialEditor, заходим в раздел Maps (рис47), напротив надписи DiffuseColor жмем по кнопке с названием текстуры, жмем Reload (рис51) или выбираем текстуру с другим именем)
В окошке со шлемом щелкаем ПКМ и выбираем UfreezeAll. Голова снова станет активной, но теперь она нам больше не нужна, поэтому ее мы удаляем.
Теперь заходим в File->Export и сохраняем шлем в формате obj.
Все, осталось вставить шлем в игру.
Рис40

Рис41

Рис42

Рис43

Рис44

Рис45

Рис46

Рис47

Рис48

Рис49

Рис50

Рис51
