Аватары для миров можно создать многими спобами. Чтобы нарисовать с нуля человека в трёхмерной программе, требуется не только умение владеть техникой моделирования, но и иметь некоторые художественные навыки или природные таланты. И если первое путём изучения специальной литературы и применения изученного на практике, как правило, достижимо, то со вторым не всё так просто. Поэтому, что бы долго не мучится, возьмем героя из игры, которого создали профессионалы, и сделаем из него аватар, который будет иметь приличный вид, если его правильно обработать для миров. Нам потребуются специальные программы: 3ds Max и AccuTrans 3D. Если вы предпочитаете работать не в 3ds Max, а в других аналогичных программах, делайте всё в них, руководствуясь основными принципами, изложенными в статье. Без AccuTrans 3D обойтись нельзя, это окончательный конвертор для миров, его можно скачать с сайта www.micromouse.ca. Конкретной ссылки не указываю, потому что программа постояно обновляется, соответствено изменяется и ссылка, ищите версию Full Install. Там же есть программа-конвертор, читающая различные редкие форматы трёхмерных моделей. Для приведения текстур к нужному виду необходим Photoshop или аналогичная программа. Итак, у вас есть игра, разные конверторы, с помощью которых вы "достанете" персонаж из игры, то есть конвертируете в тот формат, который сможет открыть программа 3ds Max, или та программа, которой пользуетесь вы. Это всё индивидуально для каждой игры, поэтому тут вы действуете самостоятельно. Если вы не смогли подобрать конвертор для нужной игры, то попробуйте 3D Ripper DX, который можно скачать вот тут: http://www.deep-shadows.com/hax/3DRipperDX.htm Там же есть хелп по его использованию. Текстуры персонажа должны быть приведены к формату jpg. Здесь находится плагин для открывания *.dds формата в Фотошопе: dds.zip Если текстуры вашего аватара имеют формат dds, то скачайте архив, и находящийся в нём файл dds.8bi поместите в директорию Фотошопа. В той версии программы, которая установлена у меня, путь к этой директории выглядит так: F:\Adobe Photoshop CS2\Plug-Ins\File Formats Если открывшиеся текстуры имеют такой вид как на рисунке: |
то необходимо вырезать квадрат основной текстуры. |
Оптимальные размеры готовых текстур для миров - 512x512, или меньше. Когда работаете с текстурами, включите окно "Каналы" в фотошопе, и если в текстуре есть Альфа-канал |
то его отдельно надо сохранить, потому что это будет маска к данной текстуре. Эту маску вырезаем как квадрат и сохраняем отдельным файлом формата bmp. |
Текстуры в играх имеют стандартные размеры: 512, 1024, 256 и др. Поэтому, зная эти цифры, вырезаем квадраты установив постоянную величину ширины и высоты того инструмента, которым пользуетесь вы |
В процессе работы все ключевые изменения лучше сохранять как новые файлы. Конечно, можно настроить программу на то, что б она сама помнила 100 ваших действий и если надо, сделать откат. Но вдруг завтра вы заметите что-то, что сделали бы по-другому и опять будете импортировать файл из игры и начинать всё с начала? Пошагово сохраняйте все действия и, возможно, это сбережет вам время впоследствии. А настроить Макс так, что б он выполнял откат на большое количество действий можно, найдя через меню Customise - Preferences - General В Levels пишите такую цифру, которая будет удобна вам в работе. |
У меня указано 20, вы попробуйте 100, можете больше. Но подумайте, что каждый шаг программа будет держать в памяти, и, следовательно, займёт ресурсы компьютера. Если я порой могу открыть Макс, Фотошоп, Акутранс, AW, то начинаются тормоза. Потому у меня стоит 20, а вы выбирайте ту цифру, котороую позволяет вам ваш компьютер. Там же, в настройках, уберите флажок с Использовать большие кнопки: |
Нажмите ОК и перезапустите программу. Изображение на экране вашего монитора станет соответствовать иллюстрациям в статье :) Учить работать в программе 3ds Max в данной статье нет смысла, потому что, как говорится, нельзя объять необъятное. Кто интересуется, ищите книги в интернете или в книжных магазинах и изучайте. Но имейте ввиду, что в работе над моделями для миров используется лишь часть возможностей 3ds Max. Мы не настраиваем в Максе источники света, не используем эффекты текстур типа шероховатости или яркости, не делаем скелета в человеке и вообще ничего не анимируем. Мы только моделируем сетку и накладываем полностью готовые текстуры, или же создаём карту текстурых координат для того что бы из неё сделать текстуру. Поэтому изучайте работу в программе избирательно. Я лишь покажу, какими основными инструментами будем пользоваться мы: |
и далее в Blinn Basiс Parameters нажимаем квадрат, который на картинке обведён красным. |
Появится окно Material/Map Browser. Там нажимаем Bitmap и в папке с текстурами выбираем первую текстуру для нашей модели. |
Далее жмём Show Map in Viewport: |
Так как мы открыли текстуру тела, то нам одеть её надо на тело. Выделяем тело модели: |
и нажимаем в Material Editor кнопку Assign Material to Selection: |
и вообще выравниваем, если он, как в данном случае, развёрнут и стоит неровно. На рисунке обведена кнопка Algin: |
Если нажать на неё, а затем кликнуть по аватару, то, изменяя опции в выпавшем диалоговом окне, можно атоматически выровнять аватар по сетке, может кому-то проще будет сделать так, всё ещё зависит от модели. Выровняли, и сохранили как 2. Идём дальше. В свитке справа выбираем Modify: |
Нажимаем F3 для того, чтобы видеть сетку. И приступаем к работе над телом. Выберите Element: |
и попробуйте посмотреть, какие есть элементы у аватара. В дальнейшем наличие элементов в цельном, казалось бы, объекте тела, облегчит нам работу. Итак, мы нашли руки, ботинки, плечи, это уже хорошо. |
У только что скопированного тела нам надо отделить ботинок. Выделяем Элемент ботинка. |
Кликнем правой кнопкой мыши по нём и в выпавшем меню выбираем Detach. |
У нас получился новый элемент. |
Остальное тело удалим. Ботинку можно назначить свой цвет в Properties. |
Нажали F3 и увидели, что только что отделённый ботинок прозрачен изнутри и в месте отреза круглая дыра. Иначе быть и не могло. Поэтому приступим к заделыванию дыры. Есть несколько путей для реализации этой задачи. Сейчас воспользуемся одним из них. Выбираем в правом свитке Edge, и, удерживая ШИФТ, выделяем все отрезки по краю среза: |
|
Далее, удерживая ШИФТ, тянем выделенные отрезки вверх. |
Делаем ещё раз тоже самое. |
И ещё раз. |
Нажмите F3 и посмотрите что получилось. Если ничего страшного не видим, в образовавшемся сапоге дырок нигде нет, значит отрезки по краю выделили правильно, и работаем дальше. Выбираем Vertex, выделяем точки самого верхнего края ботинка. |
Ищем в правом свитке Collapse. |
Нажимаем Collapse. |
Нажав Collapse, мы соединили все выделенные точки в одну. Далее выделяем следующий, предпоследний ряд точек и только что образованный вертекс и уменьшаем. |
Пододвинули самую верхнюю точку немного вниз. |
Выделили уменьшенный ряд точек и тоже двинули вниз. |
Выделили теперь 2 ряда и тоже уменьшили их. |
Двинули вниз. |
Смотрим что получилось. Мы сделали закругление у ботинка, но оно немного забольшое и при ходьбе будет вылазить. Поэтому ещё немного все ряды закругления сдвигаем вниз. |
Сдвигаем ещё чуть-чуть по оси Y и ещё немного вниз. |
На этом подробном примере показано, как сделать закругление у отрезанной части тела способом номер 1. То, каким по виду вы сделаете это закругление, повлияет на качество аватара. Можно, конечно сделать просто Collapse одного ряда, именно так и сделаны руки-ноги у моделей мегопатча. Но с тех пор время ушло вперёд, мы привыкли к качественной графике в играх, и хочется, что бы аватары в мирах смотрелись натурально, без разрывов в конечностях во время движения. Поэтому 3 ряда в закруглении оптимальный вариант. Хотя, повторюсь, есть много моделей где такой ряд всего лишь один. Но нам это не подходит. Итак, посмотрели ещё раз на ботинок с текстурами. |
Убедились, что ничего страшного там нет, и двигаем ботинок к ноге, совмещая с тем ботинком, что есть неотделённый у тела. Выделяем тело. |
Затем элемент неотделенного ботинка. |
Удаляем его. Делаем колено. Выделяем тело с вновь сделанным ботинком и двигаем в сторону, удерживая Shift |
Изучив характер текстур на ноге, приходим к выводу, что для моделирования закруглений подойдёт способ номер 2. Суть его такова. Выделяем в теле полигоны примерно так: |
Удаляем их. Вот наша линия колена, по которой условно пройдёт разрез. |
Но удалять всё находящееся выше этой линии мы не будем, а просто сделаем закругление из тех рядов ноги, которые уже есть. Выделяем крайний ряд вертексов: |
Жмём Collapse, двигаем получившуюся точку немного вниз. |
Затем выделяем следующий ряд вертексов, уменьшаем их. |
Двигаем вниз и немного вперёд по оси Y. |
Уменьшаем теперь 2 ряда точек. |
Приводим точки к куполообразному виду, передвигая и уменьшая так, как вам подсказывает ваше чутьё. Смотрим, как это будет выглядеть с текстурами. |
Назначаем вновь образованной части тела другой цвет, и передвигаем к телу вместе с ботинком. |
Выделяем объект тела, удаляем ниже колена ненужные погоны. При это оставляем несколько рядов для того, что бы сделать закругление. |
Делаем закругление вышеописанным способом номер 2: Collapse крайнего ряда, уменьшением и подтягиванием последующих рядов. Мешающие работе полигоны другой ноги можно удалить. |
Итого у нас получилось колено, с двумя закруглениями. |
Смотрим, что верхний купол немного великоват и двигаем точки в нём немного ниже. |
Далее сносим половину таза. |
Получившуюся дыру: |
заделаем методом поочерёдного соединения вертексов. Можно в принципе снести всё лишнее и выстроить закругление на верхней части бедра способом номер 1. Но мы простых путей не ищем. Мы сделаем сложнее, так как часть тела подвижная и красивая, не хочется её портить, а в способе номер 1 есть такой недостаток, что выстроенный купол не совсем качественно затекстурен. Там, где это не видно и не бросается в глаза, никому этот недостаток не мешает. В данном случае лучше потрудиться и сделать без видимых недостатков. Выделяем 2 полигона. |
Жмём Collapse. Выделяем следующие 2 полигона и жмём Collapse, и т. д. Смотрим с текстурой, всё ли получилось хорошо: |
Так как дырок нет, приступаем к формированию закругления. Самый верхний ряд соединяем: |
Далее уменьшаем ряды, двигаем как ряды, так и отдельные точки, приводя всё примерно к такому виду: |
Здесь полагайтесь на своё чутьё и опыт. Чтобы облегчить задачу, задвинем полуготовую ногу на место. Сформируем таз. Соединим предпоследний ряд точек: |
И уменьшим следующий ряд. |
Выделенные точки приподнимем, сдвинем и получим что-то такое: |
Тоже самое проделываем с другой стороной. Получившийся таз должен быть симметричен. |
От того, какой ряд полигонов вы отнесёте к тазу, а какой к бедру зависит красота будущего аватара. Так что действуйте внимательно, полагайтесь на интуицию. Если вверху бедра купол слишком большой, уменьшите его. |
Далее копируем готовую ногу следующим способом. Выделите всю ногу и нажмите в меню на Mirror: |
В появивешмся окне выберите Copy, ось Х, и скопируйте ногу. |
Формируем кисть. Для начала удаляем всё ненужное. |
Верхний ряд точек соединяем Collapse, следующие ряды уменьшаем, двигаем вниз. Получаем кисть: |
В данном аватаре текстура руки над кистью такая же как на кисти, и проще было применить метод построения купола под номером 2. Бывает так, что выше кисти сразу начинается рукав одежды. В таком случае целесообразнее применить метод номер 1 - выделить отрезки по кругу запястья и формировать купол так, как мы это делали с ботинком. Готовую кисть придвигаем к телу. Так как центр кисти находится высоко и от этого передвигать не совсем удобно, я воспользовалась цифрами в панели координат. |
Копируем корпус с готовой кистью в сторону и формируем предплечье. Для формирования закругления в области запястья применим способ номер 1, то есть удалим всё ненужное: |
и нарастим купол из отрезков Edge. |
Локоть в предплечье мы сформируем способом номер 2, соединим ряд точек: |
и из следующих рядов сформируем купол: |
Придвигаем кисть и предплечье к телу, точно совмещая края. Сформируем закругление в локте верхней части руки способом номер 2. Оно в итоге будет выглядеть примерно так: |
и привели их к примерно такому виду: |
Совместили с плечом основной модели и смотрим, что получилось: |
Заделываем образовавшиеся дыры в плечах методом номер 1. Может быть, вам в вашей модели проще будет не удалять руки, а применить метод номер 2, это зависит от конкретной геометрии аватара и выбор за вами. В итоге получается примерно так: |
Проделываем тоже самое с другой стороной туловища. |
Копируем руку точно так же, как сделали это с ногой, и устанавливаем с противоположной стороны тела, стараясь сохранить симметрию. Смотрим на результат. В данном случае думаю, немного следует поправить руки. |
Результат устраивает: |
поэтому идём дальше. Поясница. Здесь двигать объекты не будем, сразу скопируем, выбрав в меню Edit - Clone: |
В выпавшем окне выберем Copy. |
Удаляем из скопированной части тела таз и методом номер 1 наращиваем закругление в талии: |
Может быть в другом аватаре вы сочтёте нужным использовать другой метод, выбирайте сами. А вот для того, что бы нарастить купол от таза вверх применим метод номер 2. |
Таким образом, у нас получился объект шеи: |
и, ненужный уже объект корпуса без шеи, который удаляем. Тоже самое проделываем с головой, копируем её, отделяем шею, остальное удаляем. |
У нас получилось 2 объекта шеи: то, что мы отделили от туловища и то, что отделили от головы. Эти 2 объекта соединяем в один следующим образом. Выделяем одну часть шеи, кликаем по ней правой кнопкой мыши и выпавшем меню выбираем Attach: |
Затем нажимаем на второй кусочек шеи, который хотим присоединить. |
В итоге появился цельный кусок шеи, отделённый от остального тела. Образовавшиеся у вершины и основания шеи дыры заделываем способом номер 1, наращивая полигоны из отрезков по краям Edge и затем уменьшая и передвигая точки. |
Тоже самое проделываем с верхней частью шеи. |
Осталось методом Collapse соединить точки части шеи и головы, что бы заделать отверстия в туловище. Выделяем: |
Соединяем в один: |
Выделяем ряд точек в голове: |
Соединяем: |
Поднимаем к голове: |
Вот и всё. Сохраняем работу как 7. Удаляем дублёра сверху. |
Сохраняем как 1 или любое другое название подходящее вам. |
В появившемся окне, наверное, ничего не следует трогать, жмём ок. Хотя буквально вчера я узнала, что параметр Digits of Precision отвечает за качество модели, и, возможно, имеет смысл сохранять не так, как указано по умолчанию 4, а с параметром 6. Пробуйте сами. |
Сразу уберём Ogl, чтобы видеть сетку. Находим схему человека с отделёнными частями тела: |
На этой схеме у каждой части тела есть своё название, и наша зада состоит в том, что бы привести название частей тела аватара в соответствие с названиями частей тела человека на схеме. У нас в аватаре выделен ботинок левой ноги, ищем на схеме соответствующую часть тела и нажимаем её: |
Ботинок переименовался в L_Foot. Нажимаем кнопку > и переходим к следующей части тела. |
Выделился правый ботинок. Находим соответствие у человека на схеме, и ботинок переименовывается в R_Foot: |
Поступаем так со всеми частями тела, имеющимися у аватара. Голова состоит из многих частей: лицо, и части волос. В этом случае мы всё равно называем волосы как голова, потому что как отдельная часть тела они нам не нужны. Если у вас есть уже объект Head и вы ещё один объект хотите отнести к голове, то появится такое окошко, где смело жмите ДА. |
Объект назовётся Head_1. Поступаем так же со всеми прядями волос, глазами, если они есть как объект, зубами, то есть присоединяем всё это к голове. Бывают такие аватары, когда в голове есть объект век. Если вы планируете настроить аватар так, что бы он моргал, то их не присоединяйте к голове, а жмите на глаза человека со схемы. Но на сегодняшний момент я никогда веки не отделяю отдельным элементом, потому что нет такой анимации, которая работала бы с веками, кроме как сека qblink из мегопатча, и то аватар при этом стоит как столб и только моргает. Можно по идее заставить и губы шевелиться, и уши, и волосы, теоретически это возможно. Но на практике это дело необозримого будущего, так как я не видела анимации, которая использовала бы эти элементы тела. У нас на данный момент голова представляет собой одно целое. Когда вы привели название всех частей тела в соответствие с названиями у человека со схемы, нажимайте кнопку Tags + Tree: |
В появившемся окне жмём ДА. |
Очень важно сделать этот шаг, потому что без него весь аватар не соберётся в единое целое, а будет рассыпаться при движении. Вот описание работы с аватаром с сайта производителя программы AccuTrans 3D www.micromouse.ca/avatars.html, так сказать из первоисточника. Переходим к закладе Joint. |
Джоинты - это те точки, которые скрепят части тела вашего аватара и одновременно послужат осями, вокруг которых будет происходить вращение при анимации. На рисунке показано движение кисти вокруг условной красной точки, которая имитирует джоинт: |
Далее имитировано движение руки в предплечье, опираясь на условный джоинт в локте: |
Такой же джоинт мы можем поставить в плече, и тогда вся рука сможет выполнять различные движения. Это принцип анимации в мирах. Во всех отделённых частях тела нам необходимо выставить джоинты так, что бы части тела двигались красиво и естественно. Работа эта тонкая и требует аккуратности. У нас первым объектом выделилась кисть. Нажимая кнопки < I > |
передвинем джоинт кисти примерно так: |
Тот же вид спереди: |
Можно воспользоваться цифрами в полях, соответствующих кнопкам < I >. Вводите цифру и нажимаете ENTER на клавиатуре. Иногда это бывает полезно, если вы уверены что аватар симметричен: если выстроите джоинты в одной половине тела и перепишите такие же параметры в другую (изменяя знак в графе Х на минус или наоборот, убрав его), то приведёте джоинты к точной симметрии. Бывает, что джоинты очень неудобно передвигать. Они двигаются или слишком медленно или, наоборот, слишком быстро, что приводит к затруднению при точном их выстраивании. Воспользуйтесь настройками 0,001; 0,01; 0,1 которые изменяют шаг движения джоинта при ручной доводке: |
Ещё один метод облегчения работы по выставлению джоинтов. Нажмите на кнопку, обведённую на рисунке: |
В итоге в каждой части тела джоинты автоматически встают примерно на свои места, останется немного их подкорректировать. Джоинт в локте выглядит примерно так: |
Плечо: |
Голова: |
В Head_1 и всех остальных подобъектах головы джоинты выстраивать не надо, они все будут прикреплены к основному объекту головы и будут двигаться вместе с ним. Колено: |
Бедро: |
Ботинок: |
Шея: |
Таз: |
Торс (этот джоинт чуть-чуть высоковато расположен, впоследствии пришлось поправить его, в идеале он должен находиться ровно на уровне пояса): |
Как только вы предварительно выставили джоинты, обязательно сохраните их: |
Там удобнее работать, включив Ogl. Мы уже настроили анимацию, теперь посмотрим, как же наш аватар будет выглядеть в движении. Все файлы анимации тех аватаров, которых вы когда-либо видели в мирах, находятся в кеше миров на вашем компьютере. Для нашей вселенной путь к кешу будет примерно такой:
Для какого мира вы делаете аватар? Дело в том, что в каждом мире имеется свой набор движений, и советую смотреть анимацию именно того мира, для которого делаете аватар вы. Вся анимация лежит в папках "seqs". Чтоб никто не догадался, для какого мира делаю аватар я, возьму анимацию нейтрального мира под названием aw, который, видимо, когда-то посетила, и путь к файлам анимации которого выглядит так:
|
Из самих названий уже становится ясно, что из себя будут представлять движения. Так,
qturn.seq скорее всего turn- поворот аватара qwave.seq это движение wave, когда аватар машет рукой |
Например, секвенцию qwave.seq из папки
В появившемся окне: |
выбираем ОК. Открыв таким образом файл анимации, приступим к его просмотру: |
Как видим, аватар начал махать рукой: |
И тут же замечаем, что при движении между рукой и телом образуется зазор. Останавливаем махание: |
И возвращяемся к джоинтам. Возможно, следует подвинуть джоинт в плече немного ближе к центру тела: |
|
Смотрим анимацию заново и видим, что зазор существенно уменьшился. |
Значит аналогично поправляем джоинт в правом плече и созраняем джоинты как файл 2. Очень рекомендую посмотреть, как аватар будет бежать. В этом движении чётко просматриваются соединения в коленях и локтях. Файл скорее всего будет называться qrun.seq или другая анимация, где есть в названии "run". Вот аватар побежал: |
Ясно видим, что в локте зазор слишком большой, а в колене наоборот, вываливается закругление. Поправляем джоинты, и, если это не поможет, идём в Макс и правим геометрию аватара. Перед тем как возвратиться в Макс, просмотрите ещё другие файлы анимации, и даже посмотрите аватар в локальном кеше (как это сделать написано ниже). Когда вы заметите ВСЕ недостатки, то разом поправите их в Максе. Пока же пробуем поправить только джоинты в локтях и коленях, в надежде что этим обойдётся. В принципе оказалось, что в одном локте при движении зазора никакого не образуется, всё очень хорошо. Так что переписываю цифры хорошо выстроенного джоинта в другую руку, а не двигаю джоинт наглазок. В итоге зазор в локте самоликвидировался: |
Та же картина наблюдается и в коленях. Стоило привести параметры джоинта одной ноги, где всё было хорошо, в другую, как картина существенно изменилась к лучшему: |
Посмотрите различные анимационные секвенции, обратите внимание на то, как аватар двигается. По сути в этом есть маленькое чудо, когда видишь, как неподвиждная доселе модель оживает. Я смотрю всегда, как аватар стоит, идёт, бежит, как танцует макарену и брейк, как делает поклон и машет правой рукой, левой рукой, как летает и плавает. Пусть может быть вы и не вернётесь в Макс, что бы править геометрию заново. Но вам станет понятно, где есть неточности в процессе формирования закруглений на конечностях, где они оказались немного великоваты, а где наоборот маленькие, где немного не так поделили ногу или не совсем симметрично приставили руку, и в следующий раз, когда будете делать аватар, все эти наблюдения учтёте и аватар выйдет более совершенным. И может быть однажды вы создадите идеальный аватар, про который можено будет сказать "и нет в тебе изъяна". Он будет настолько совершенным, что ему станет тесно в рамках мира, он как Нео вырвется из матрицы и войдёт в наш мир, как шагнула когда-то Галатея навстречу Пигмалиону. Почему бы истории не повториться? В этой же программе можно создавать и свои оригинальные движени для аватара. Но делать это умеют немногие. Я, к сожалению, не отношусь к их числу. Приближаемся к финишу. Убедившись, что аватар двигается более или менее прилично, завершаем работу над настройкой анимации, нажав ОК: |
В опциях Transfer Layers стрелками < и > ищем ту часть шеи, которую хотим присоединить. |
В опциях Target Layers выбираем ту часть шеи, к которой будем производить присоединение. |
Нажимаем её и попадаем в Layer Attributes. Здесь нас интересуют параметры Ambient, Diffuse, Opacity. |
Ambient и Diffuse определяют то, несколько светлым будет ваш аватар, и то, как он будет реагировать на свет. Opacity - прозрачность. Параметр Specular - блеск, на данный момент он в мирах не работает. Возможно, когда-нибудь его вернут, но пока он нас не интересует. Поставили точку в Ambient, в поле с цифрами ввели 0,9 или ту цифру, которую пожелаете вы, нажали Энтер, и нажали на значок справа, который автоматически назначит Ambient 0,9 всем частям вашего аватара: |
Перешли к Diffuse, там примеряли 0,75: |
Нет универсальных цифр в параметрах света, которые подошли бы абсолютно всем аватарам в мирах. Аватары мегопатча, например, все с настройками 1,0, и никому это не мешает, все ими пользуются. Ну а вы попробуйте всё-таки усовершенствовать свою модель, поищите оптимальный баланс между Ambient и Diffuse, ведь 0,9 и 0,75 приведены условно, как пример, их, конечно, можно брать за ориентир, но это не значит, что не надо пробовать их изменять и подстраивать под свой аватар. Так как Opacity нас не интересует, оставляем 1,0, то есть все части тела непрозрачны. Если у вас а аватаре есть, например, очки, то стёкла у них ставьте прозрачными, параметры подбирая в районе 0,5, то есть прозрачные наполовину. Крылья могут быть прозрачными, накидка в женском аватаре или другая часть одежды. У нас такого нет, поэтому идём дальше. В Light Sampling выбрали Vertex: |
и снова назначили этот параметр всем частям аватара: |
В большинстве случаев Double Sided оставляем как есть и не трогаем. Но в данном аватаре мне необходимо поставить на объекте волос Double Sided. Первоначально каждая прядь волос состояла из 2-х объектов: внешней, и внутренней стороны. Всю внутреннюю сторону я удалила ещё в Максе, не заостряя на этом ваше внимание. Именно с тем, что бы потом прописать Double Sided в Аку. В подавляющем большинстве случаев этот параметр трогать не надо, оставим по умолчанию. Но если вы видите, что какая-то делать модели отображается только с одной стороны, например юбка у аватаров мегопатча, то поправить это можно, активизировав параметр Double Sided только в юбке и не назначая всем частям тела. |
Осталось прописать маску. Находим закладку Mask: |
Выбираем ту часть тела, на котороую надо назначить маску. В данном аватаре это волосы, которые имеют название Head_1. Затем нажимаем на кнопку с видом папки и находим маску, которую ещё в начале работы сохранили как файл bmp из Альфа-канала текстуры волос. |
Что даст нам маска. Когда на волосах будет прописана и текстура волос, и маска, то всё поле чёрного цвета из маски сделает невидимым аналогичные части текстуры волос. То есть волосы станут реальными, будут видны отдельные пряди. Но здесь есть одна тонкость. Даже и не одна. Но мы пока остановимся на тех вопросах, которые могут пригодиться вам в данном аватаре, в котором волосы состоят из 2-х частей: часть, формирующая голову, и объёмные пряди волос. На обе эти части по идее прописана одинаковая текстура волос, НО если к одной из этих частей мы пропишем маску, то лучше сделать копию текстуры, переименовать её, затем назначить прядям волос и уже к ней прописать маску. Например, просто волосы называются dima-hair.jpg. Предлагаю ту же текстуру скопировать, назвать её dima-hair2.jpg и маска у неё пусть называется соответственно dima-hair2m.bmp. Если этого не сделать, то, по моим наблюдениям, текстуры не будут видны в мире. Когда всё готово, нажимаем ОК. |
Переходим к сохранению аватара. В меню выбираем File - Save With Options... |
В появившемся окне нас интересуют следующие параметры: формат RWX, галочки в опциях Avatar и UV, а так же внимательно изучаем то, что написано в графе Height: |
У нас в Height вышли цифры 1,891202. Это рост аватара. Для миров такие цифры совершенно не подходят. Параметры роста должны быть примерно такого вида:
или же 0,170 что будет равняться 170 см в мире. Для этого в графе OSF Set To вводим для начала 0,1 и нажимаем на саму кнопку OSF Set To: |
Параметр изменения размеров модели 0,1 появился по всем осям, что и требовалось. Смотрим на получившийся рост в графе Height: 0,18912 то есть человек будет 189 см. Уже приемлемо. Но мне хотелось бы уменьшить рост этого аватара примерно к 0,180. Опять возвращаюсь к графе OSF Set To и методом тыка подбираю цифру, обязательно нажимая каждый раз OSF Set To - получится 0,0955 и рост модели установится 0,18061, то есть в мирах у парня будет 180 см роста. То что надо! |
Нажимаем Save и называем аватар произвольным именем. |
Создайте ещё папку avatars. |
И теперь в папку avatars скопируйте тело аватара, то есть файл .rwx заархивированный в архив zip. В папку textures скопируйте все текстуры вашего аватара: и формата .jpg, и, если есть, маски, то есть файлы .bmp, предварительно заархивированные в архивы zip. И последнеее, что надо обязательно сделать - прописать в самом браузере путь к кешу. Для этого откройте браузер, найдите в меню Настройки-Установки. |
В появившемся окне выберите Расширенные установки, и там, где будет написано Путь к локальной базе, введите строку E:\Program Files\Russian Universe\cache\art |
Вместо E:\ пишите тот диск, на котором миры находятся у вас. Или может быть миры стоят у вас в другой папке, вводите путь к кешу такой, какой он есть на вашем компьютере вплоть до папки \art. Теперь браузер будет запрашивать файлы не только из интернета, но и с вашего компьютера, и вы сможете увидеть аватар. И информация на будущее. Когда ваш аватар уже будет благополучно находиться в мире на постоянной основе, то есть его добавят в базу мира, удалите из кеша то, что вы сейчас добавили в него. Их папки textures удалите текстуры и архив маски. Вы заметите, что ваши текстуры формата jpg а все остальные - ras. То, что jpg - удаляйте. И из папки avatars удалите аватар в зипе. Файл avatars.dat тоже можно будет смело сносить по окончании всех работ, пусть он загрузится из интернета. Путь создания локального кеша номер 2. Для продвинутых пользователей напишу просто. Итак, в каталоге Program Files\Russian Universe\cache создаём ещё одну папку произвольным названием, например cachetest. В этом каталоге создаём папку с названием кеша нужного вам мира. Если название папки с кешем мира выглядт так: objects.activeworlds.com-aw то мы создаём отдельно папку objects.activeworlds.com а в ней уже папку aw Название типа objects.activeworlds.com-aw означает, что на сервере мира есть каталог objects.activeworlds.com, и в нём, среди прочего, есть база мира aw. Поэтому аналогичную структуру мы воссоздаём на своём компьютере. Если же название папки с кешем мира выглядело бы просто objects.activeworlds.com то точно такую же папку мы создали бы в локальном кеше. Итого, появился каталог E:\Program Files\Russian Universe\cachetest\art\objects.activeworlds.com\aw В нём создаём папки avatars и textures. Если вы планируете ещё cоздавать модели для миров, создайте папку models, куда будете копировать впоследствии свои модели чтобы посмотреть их локально. Если хотите тестить анимацию, для неё создайте папку seqs. В этом случае путь к локалному кешу в браузере прописываем как E:\Program Files\Russian Universe\cachetest\art То есть, как кеш захватываем папку cachetest, но, конечно указываем тот диск, на котором миры стоят у вас. Если вы слабо что поняли с созданием локального кеша, или сделали, но не работает, попробуйте ещё почитать статью Хаоса: http://xaoc.org.ru/info/local Следующий шаг - заставить браузер включить ваш аватар в список аватаров мира. В папке с кешем мира найдите файл avatars.dat. Откройте его с помощью блокнота, кликнув по нему правой кнопкой мыши и в выпавшем меню выбрав Открыть с помощью. Вашему взору предстанет файл, формирующий список аватаров и тех движений, которые аватар способен выполнять в мире. Вот этих движений: |
В мире AW начало фалйла avatars.dat выглядит так: |
Я делала мужской аватар, поэтому обращаюсь к самому первому аватару в списке, MrTourist, то есть к аватару туриста. Всё, что относится к аватару Туриста, обведено красным квадратом. В строчке name=MrTourist можете написать то имя, которое почитаете нужным, или оставить её без изменений. Это название аватара, отображающиеся в списке. Можно написать name=Dima или name=Dimon или name=Dmitriy Обязательно латинскими буквами. Теперь вспомните, как называется файл .rwx вашего аватар? И в следующей строке geometry=male.rwx напишите название файла .rwx то, которое лежит у вас в папке avatars. Я называла аватар просто цифрой 2, поэтому так и написала geometry=2.rwx Если у вас файл аватара называется dima.rwx, то строка geometry должна выглядеть так: geometry=dima.rwx Если у вас женский аватар, то имеет смысл изменить данные аватара туристки, или же любого другого женского аватара в списке. По сути, не имеет значения, данные какого аватар изменяете вы. У меня когда-то был дежурный файл avatars.dat, где были изменены вообще все аватары по списку, и я заходила в мир и видела всех людей в одном и том же аватаре. Во-первых, удобно рассмотреть аватар, а во-вторых, так можно перебрать все движения всех аватаров, примеряя их к тому аватару, который сделали вы. Но это, конечно, излишество. Достаточно переименовать 1 аватар. Сохраняем изменения. Если вы хотите зайти в мир в обычном режиме, то следует изменить свойства только что переделанного файла avatars.dat. Вообще я сталкивалась с тем, что люди бояться править что-то в файле avatars.dat, и изменять его свойства, боясь испортить что-либо в работе браузера. Это беспочвенные опасения. Файл avatars.dat является частью кеша, который грузится из интернета, как только вы заходите в мир. Если у вас avatars.dat нет, он загрузиться по новой. И даже если avatars.dat у вас уже есть, то всё равно есть очень большая вероятность того, что при заходе в мир этот файл сам собой обновится. Вдруг пока вас не было, в мир добавили новый аватар? Чтобы он появился у вас в списке и вы его могли видеть, avatars.dat должен обновиться. То есть, даже если вы что-то испортите в avatars.dat, то сможете просто выкинуть его и он загрузится новый из интернета при первом же заходе в миры. Но ведь мы только что сознательно изменили его. Как же сделать так, что бы он не обновился? Кликаем по avatars.dat правой кнопкой мыши и в выпавшем меню выбираем строчку Свойства: |
В появившемся окне убираем галочку из пункта Архивный и активизируем Только чтение: |
Нажимаем Применить и Ок. Теперь заходим в миры. Зайти можно обычным способом, и минуя соединение с сервером мира, то есть локально, даже если не подключены к интернету. Если хотите зайти локально, то, как только начнёт раскрываться браузер и пойдёт соединение с сервером Вселенной, выберите кнопку "пропустить": |
Составьте их по своему вкусу, включите секи тех движений, которые хотелось бы видеть у своего аватара, и которые ему шли бы. Хранитель мира может и сам их составить, но он же не обязательно будет знать ваши вкусы и предпочтения. Сохраните код вашего аватара в блокнот начиная от строки avatar заканчивая endavatar и отправьте хранителю мира вместе с текстурами и моделью. В приложении можно прочитать о том, как соединить части элементов в аватаре, как создать новый полигон, и о работе с текстурами средствами модификатора UVW Map. Перейти к приложению >>> Текста получилось много. Мне так проще было: написать много, а не править каждый параграф десятки раз, приводя всё к оптимальному виду. И к тому же была просьба написать всё очень подробно со всеми тонкостями, что и сделала, почти со всеми тонкостями, о которых известно мне на данный момент. Практически всё, что выше описано, кто-то когда-то мне рассказал в мирах или я это где-то прочитала. Использованная литература: разговоры в чате с Лютикой, Флешем, Тенью, Стасом, Старцем, Смешинкой, статьи ЛО и Хаоса на их сайтах, и весьма полезная книга в реале, где доходчиво написано всё начиная с азов:
Спасибо Старцу за внесение существенных поправок и дополнений. Вся изложенная информация применима к жизни в мирах в версии 3.6. Если версия миров у вас другая, может быть придётся вносить в свою работу коррективы. Это тестовая версия статьи. Пожалуйста, присылайте ваши комментарии и вопросы мне лично в телеграммах или же, если выложена на форуме - в комментариях. Не претендую на истину в последней инстанции. Наверняка кто-то в работе нашел более оптимальные методы. Я изложила лишь свой взгляд на вещи. |