Создание скульптовой лестницы в Jass 2.3.5

Печать

Текст написан на базе статьи "Making a Ladder": http://blog.machinimatrix.org/2010/08/31/making-a-ladder/

Данное руководство предназначено для работы с версией программы Блендер Jass-Pro 2.3.5. Стоит она около 2000 линден долларов, что в переводе на рубли будет около 200-300 рублей по курсу декабря 2010 года (это как повезет обменять). Еще не решили нужна ли она Вам? Не беда. Рядом можно "за бесплатно" купить свободно распространяемую предыдущую версию этой программы, отличающуюся только тем, что в ней не убраны некоторые ошибки. Зато, за каких-то 2000 линденов Вы будете иметь в течение года техническую поддержку со стороны команды разработчиков и обновление программы, что, на мой взгляд, очень удобно. А заодно не упустите шанс поддержать проект материально. =)
С недавних пор распространение программы через Веб Сайт прекращено, и обзавестись программой можно только посетив это славное место в Second Life: http://slurl.com/secondlife/Jass/145/193/25
Итак, Вы гордые обладатели Jass 2.3? Пока, не важно Pro или свободно распространяемой Pub версии. Лично я пока ограничился версией Pub… ибо в свете грядущего в Секонд Лайф введения поддержки загрузки низкополигональных мешей еще не определился нужен ли мне вообще будет Блендер в будущем или удобнее будет использовать альтернативную программу.

Приступим:
Вот небольшое руководство о том, как сделать лестницу из одного скульпта в Блендере такую же, как на этом рисунке.


Примерно так выглядит эта лестница в Секонда Лайф, хотя, если постараться можно и поровнее сделать.

Перед началом моделирования Вы должны решить хотите ли Вы, чтобы Ваша лестница хорошо работала с LOD (Level of Detail – уровень детализации) или нет:
- Если Вы хотите стабильного поведения Вы можете сделать 6 шагов максимум + 2 стороны лестницы
- Если Вы хотите хорошего поведения, вы можете увеличить размер до 14 шагов + 2 стороны.
- Если Вы не заботитесь о LOD, Вы можете добавить шагов даже больше. Я не знаю точно, каких цифр Вы можете достичь теоретически…

Шаг 1: Исходный скульпт (The initial sculptie)
Давайте придерживаться умеренных вещей и попробуем следующие опции. В этом случае Вы захотите создать скульпт следующим образом. Идем: Add > Mesh > Sculpt Mesh
• Тип: цилиндр (type: cylinder)
• 4 X-поверхности (4 x-faces)
• 64 Y-поверхности (64 y-faces)
• no subdivision levels).


Вот что должно получиться:


Далее авторы оригинального текста предлагают нам повернуть скульптовый мешь на 45 градусов по оси Z. Вот так выглядит скульптовый мешь после этого поворота


Этого явно недостаточно, и я повернул меш еще на 90 градусов по оси Х (клавиши R, X, 90), чтобы соответствовать картинкам описывающим последующую работу на оригинальном сайте
Также не мешает несколько отмасштабировать меш. Жмем S и двигаем мышкой до тех пор пока не получим нужный размер. Далее сразу жмем Tab и переходим в режим редактирования Edit mode.

Теперь Вы будете создавать «части» лестницы работая с горизонтальными ребрами выделенными на следующей картинке (точнее на картинке выделено верхнее и нижнее ребро, далее два через два, и по центру выделено три ребра).



Далее авторы сайта демонстрируют нам еще одну картинку и кратко сообщают: Вот что у Вас должно получиться. Выглядит она примерно так.


Картинка эта, конечно, очень помогает нам понять последовательность действий и что должно получаться в промежутках между ними, поэтому мы тоже вставили похожую, но…
Здесь есть еще одна тонкость. Авторы оригинального сайта скромно умолчали о том, что для дальнейшей процедуры они использовали скрипт, который искать надо и под рукой нет (во всяком случае я так понял). Мне же посоветовали обратиться на сайт Блендера и найти нужный скрипт, либо написать этот создающий лестницы скрипт самостоятельно, либо создать шаблон лестницы и добавить его в base shape lib. Для этого надо найти папку со скриптами. Её расположение дается на консоли во время запуска. Далее спуститесь к Primstar/Library. Перетащите туда скульпткарту какую хотите и она будет в списке основных форм, когда вы добавляете новый меш
Gaia Clary: there is a script available for such an operation, it is an add on for math operations i believe, but i do not remember where it is, lookup in the blender add on directory ?

Gaia Clary: if you wanted to make "stair shaped objects" frequently you could either add a stair template to the bas shape lib.
Gaia Clary: or create a stair maker script.
Gaia Clary: maybe there is something on the blender site. they have realy a lot of add ons.
Gaia Clary: but honestly i would rather start with making a template and add it to the base shape lib.
Denis Gradenko: making a template and add it to the base shape lib ...? How to do it?
Gaia Clary: you have to locate the scripts folder for this. the location of the scripts folder is given on the console during startup.
Gaia Clary: then navigate down to primstar/library
Gaia Clary: there drop any sculptmap you like.
Gaia Clary: it will appear in the list of the base shapes when you add a new sculpt mesh


Если кому-то эти советы помогли уже, то я рад за этих счастливчиков, в круг которых я, увы, не вошел. Поэтому пока я предлагаю не стремиться получить картинку как на рисунке выше, а последовательно масштабировать ребра и подравнивать блоки, иначе… ну иначе Вы сами увидите, что у Вас получится. Итак, или откатываем, что получилось обратно. Или создаем новый меш и далее выделяем интересующие нас ребра (Alt+правый клик мыши), затем S 0 (как писалось выше) Enter, а затем жмем клавиши G Y и равняем поверхность так, чтобы желтая точка выделенной вершины попала на ребро, относительно которого мы выравниваем её и снова жмем Enter. (Господи!!! Как это нудно!!! - примечание автора)

Здесь, кстати, есть еще одна тонкость, если вы делаете лестницу без скрипта и т.д. и что-то скривили и потом откатили через Alt+U, то дальнейшие действия могут оказаться бессмысленны, так что делаем всё без откатов. )))) Скажем еще раз спасибо авторам за этот замечательный тутор и пока еще раз воздержимся от покупки у них замечательной платной версии программы Jass Pro 2.3.5 до тех пор пока они не потрудятся научить нас как решить эту проблему более технологично.
Вот что должно примерно получиться: http://blog.machinimatrix.org/wp-content/uploads/2010/08/ladder-002.png.

У Вас так получилось? У меня тоже не очень. Поэтому вот что получается на самом деле, если следовать тексту:



Шаг 2: Сейчас давайте на миг обратимся к UV-редактору (UV editor). Когда Вы откроете View -> Image properties (свойства изображения) то Вы увидите что UV map, связанная с этим скульптом, имеет сейчас размер 8х128 пикселей.



Сейчас мы изменим это до 8х256 пикселей. (Пожалуйста, измените это до 16х256, если вы работаете в Phoenix или Emerald. Известно, что эти вьюверы имеют проблемы с картами 8х256. И еще один бесплатный совет: не работайте в Эмиральде пока, за него снова банят почему-то. Проверяйте на официальной сайте разрешенные Линден Лабом вьюверы для Секонд Лайф). Это можно сделать прямо во всплывающем окне свойств. Вы закончите так:


Теперь только повторно запеките свои скульпткарты, используя Render -> bake sculpt meshes. Запекание заполнит Вашу скульпткарту соответствующим образом.


Почему мы сделали эти изменения в UV-карте? У этого есть несколько причин. Запекание даст скульпт с 4 поверхностями по оси x и 128 поверхностями по оси y (8x, 128y, если Вы используете 16*256 размер карты как упоминалось выше). Но давайте сначало реимпортируем запеченный скульпт, чтобы увидеть эффект:
• идем в Object mode
• отложим пока свой начальный скульпт в сторону
• теперь в UV-image editor: image -> import as sculptie.


Это, фактически, возьмет Вашу свежеиспеченную скульпткарту, и создаст новый объект Блендера из неё. Результат должен быть похожим на это (обращу внимание что я брал размерность рекомендованную для работы с Phoenix, поэтому полученная мною картинка отличается от картинки на оригинальном сайте)



Вы видите, что сейчас тонкая вертикальная линия соединяющая блоки получила промежуточные вершины (intermediate vertices). Также блоки приобрели больше поверхностей. Как это поможет нам? Эти дополнительный вершины помогут нам сохранить весь объект в хорошем балансе с LOD (с хорошим уровнем детализации). Помните что LOD это не что иное как:
С удалением камеры от объекта число визуализируемых вершин (rendered vertices) сокращается больше и больше. Другими словами: Вам нужны вершины для «кормления» демона LOD, чтобы сохранить вашу лестницу от деформации в процессе сокращения при удалении камеры.
Таким образом, эти вершины вдоль вертикальной линии съедятся первыми. При том способе, каким построен объект на данный момент это первое потребление вершин не нанесет вреда, так как мы не видим тонкую линию в Second Life. Конечно, мы могли бы начать со скульпта такой размерности. Но это вынудило бы нас иметь дело с большим количеством вершин в шаге 1…
Шаг 3: Теперь мы можем пойти еще на один шаг дальше. Благодаря свойствам запекателя Primstar (baker Primstar) нам дозволено удалять (!) вершины в особых случаях. Главным образом мы можем удалить изолированные вершины, которые можем найти в вертикальной линии. Итак, давайте сделаем это и закончим так:



Сверху мы видим какие вершины я выбрал для удаления. Пониже мы видим объект уже после удаления.


Здесь, правда, можно столкнуться еще с одним ньюансом при нажатии на del Вы получите следующее сообщение

в этом случае необходимо отключить этот самый multires. На рисунке он уже отключен.

Шаг 4: Теперь мы имеем 16 визуально полностью разделенных блоков вершин. И мы сейчас можем перемещать эти блоки как нам нравится. Итак, давайте сделаем лестницу сейчас:



Я беру только верхний и нижний блок, поворачиваю их на 90 гдадусов и масштабирую (растягиваю) их вдоль оси Z.
Опять же автор пишет немножеко сокращенно. Я взял это следующим образом нажал "B" обвел сначало верхний блок, потом еще раз нажал "B" и удерживая Shift обвел нижний блок. После чего: R Z 90 и масштабировал (S) по осям X и Y дабы соединить боковые стороны с блоками лестницы и сделать их соразмерными по длине.

Хм… еще об одном автор умолчал то, что там получается больше похоже на этажерку поэтому поворачиваем всю конструкцию еще раз по оси Х на 90 и масштабируем по ширине так, чтобы получить блоки похожие на лестничные. Возвращаемся в исходное положение, еще раз поворачиваясь на 90 градусов по оси Х. То, что у меня получилось можно видеть на финальном снимке справа:

Шаг 5:
Сейчас в последнем шаге мы запечем скульпт снова. Затем реимпортируем запеченный скульпт для проверки:



Здесь справа вы видите «оригинальный» скульпт с удаленными вершинами. И запеченный реимпортированный скульпт слева. Зигзагообразная линия по середине лестницы была внесена инструментом запекания. Но не зацикливайтесь на ней, это снова небольшая, но невидимая струна, которая соединяет части скульпта вместе.
Если Вы используете Emerald или Phoenix тогда удостоверьтесь, что Вы используете карту размером: 16х256 пикселей. В противном случае упомянутые вьюверы показывают массивные искажения.
Это известное сообщение об ошибке:

http://phoenixviewer.com:8080/browse/PHOE-324
Данное учебное пособие было быстрым черновиком и оно многого не объяняет (ну это предложение было актуально в оригинальном тексте, я же разобрал всю процедуру по полочкам. Куда уж подробнее?). Но, если Вы, работая с ним будете внимательно изучать свой объект на каждом этапе процесса, то в конечном итоге поймете как «запекатель» работает и что Вы сможете достичь с помощью этой техники относительно «сложных составных объектов из одного скульпта». И знайте, что текстурирование этих скульптов может быть хорошим, но не всегда тривиальным.

P.S. Ну что ж, друзья мои, когда я впервые увидел статью о том как сделать лестницу из одного прима мне она показалась простенькой и короткой, прочитал и перевел я её быстро, но вот, если бы не друзья активно помогавшие мне всё это время этот текст так бы и остался бесполезным текстом, не имеющим практического применения. И свою первую скульптовую лестницу я бы по ней, увы, не сделал. В ходе работы пришлось даже несколько раз исправить исходный английский текст на сайте http://blog.machinimatrix.org/. В связи с чем я выражаю огромную признательность за активное сотрудничество, терпение и доброжелательное отношение со стороны команды сайта machinimatrix.org и персонально Gaia Clary, лично помогавшей мне в подготовке этой статьи. А также огромное спасибо девушке с весьма лирическим никнеймом Menya Yebut, которая довольно подробно пояснила мне некоторые непонятные моменты этой статьи, сократив количество нубовских вопросов к авторам оригинального текста до более или менее разумного. Еще раз напомню Вам, что я не профессиональный переводчик, и Блендер я осваиваю по ходу работы над данными статьями. Поэтому, если Вы нашли в тексте неточности или просто имеете что-то дополнить по тексту, то, пожалуйста, пишите мне в IM Second Life, присылайте нотисы, чтобы сделать эти статьи лучше и понятнее для нас всех.

С Вами был Денис Граденко (Denis Gradenko).

Для тех кто пользуется Маркетплейсом. - на правах рекламы =))