Навигация
Категории
3D Max [72]
Уроки по работе с 3D Max
Maya [21]
Уроки по Maya 3D
Blender [20]
Статьи по работе с Blender
GIMP [53]
Уроки по работе с GIMP
PhotoShop [27]
Уроки по PhotoShop
Corel Draw [1]
Профиль
Статистика
Rambler's Top100

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Locations of visitors to this page
Главная » Статьи » Дизайн » 3D Max

Пропорциональность человеческой фигуры. Моделирование головы человека

Введение

Посвящается великому и ужасному.

Некоторые люди говорят, что моделировать человека проще, чем, допустим, Страшного Зубастого Орка или восставшего из ада Гнилого Зомби. Их доводы просты и логичны: Зомби должен быть не просто зомби, не такой, как у всех, а гораздо страшнее, гнилее и противнее, чтобы юзер просто под кровать прятался от одного его вида, а Орк, соответственно, должен быть гораздо зубастее, в руке у него должен быть не двухметровый меч, и даже не бензопила (слишком просто), а что-нибудь такое неописуемое, но большое и внушающее. Короче, мозги сильно напрягать приходится, чтобы и пооригинальнее, и запомнилось надолго. Не спорю. Но дело в том, что порой в играх попадаются такие существа, что вроде и люди, по крайней мере, их там так все называют, а вроде на людей-то и не похожи. Я понимаю, когда по улицам города сплошные дистрофики ходят: война, голод может у них, мало ли что. Качки там, жирдяи, тоже понятно. Это можно объяснить красивым сюжетным ходом, полным крутых поворотов, а можно и вообще не объяснять, что обычно и делают. Обидно, когда игра интересная, красивая, но там МУТАНТЫ! ИНОПЛАНЕТЯНЕ! Ну не похож вон тот крендель с большой головой и фигурой, как у Барби, на человека. Особенно с такими длинными и толстыми руками. Хоть бы в броню его снарядили для приличия. Я даже не про анимацию говорю. Анимация – дело тонкое, Motion Capture не у каждого дома есть. Просто порой создаётся такое чувство, что скетчеры уделяют всё своё время именно созданию всё новых монстров и считают, что моделлеры человека и сами склепать могут. В ответ на просьбу схематично нарисовать идеальную фигуру человека, или хотя бы рассказать принцип её построения можно услышать: «Посмотрись в зеркало, дружок!». Типа, это очевидно, и все это знают. И идут грустные моделлеры смотреться в зеркало. Что они там видят, я не знаю, но, наверное, именно после таких драматических эпизодов и вырождаются на свет корявые мутанты с человеческими лицами.

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

Объектом надругательства выберем некую привлекательную молодую особу неопределённого возраста, абсолютно без одежды. Почему? Просто когда я был молодым и зелёным, и из-под моей мышки выползали только кровавые выпердыши, которых я сразу же с отвращением бросал в мусорную корзину, я в тайне мечтал о создании Девушки моей Мечты, такой, чтобы при взгляде на неё всё внутри холодело, сердцебиение учащалось, и вообще. Теперь я подрос, и изредка, в перерывах между созданием 87-й рыбки для аквариума и 34-го вида кубика для арканоида, я нахожу немножко времени и для Неё. Короче говоря, просто я хочу совместить приятное с полезным. Тем более, некрасивый мужик – это ладно, но некрасивая девушка глаза очень режет. У нас некрасивых и на улице полно.

Для работы мы воспользуемся небезызвестной программой 3ds MAX версии 6.1. В принципе, это гораздо проще сделать в XSI или в Maya, но вроде бы, большинство новичков пользуется именно Максом, и мой ликбез должен быть им очень полезен. Всё равно, главное – методы, а не инструменты. Знаете, ведь, что плохим танцорам мешает.  Заранее оговорюсь: всё здесь написанное выражается коротким словом IMHO. Это всего лишь накопленный мною опыт. Если у вас есть более качественные или быстрые алгоритмы – я буду рад здоровой критике.

В основе каждой более-менее сложной 3D модели должен лежать скетч, или хотя бы какая-нибудь картинка. И гораздо лучше, если всё это будет находиться в окне проекции. Для построения человеческой фигуры достаточно двух схематичных проекций. Мышцы, сухожилия – это всё детали. Основное впечатление дают именно правильные пропорции. Где же нам их взять? А вот здесь!

Изображение

Удивлены, что ничего особенного? Посмотрите на самую красивую (читай: пропорциональную) женщину по официальной версии  – Венеру Милосскую, удивитесь ещё больше. На самом деле, не всё так страшно: ноги подлиннее и грудь побольше можно сделать, это позволительно. Ну как, всё просто? Ещё бы! Пропорции учатся за пару моделей, а забыть их просто невозможно. В крайнем случае, в Максе создаётся файл, в котором сплайнами схематично эти самые пропорции набросаны: в случае чего используется команда Merge (Присоединить из файла).

Далее у нас по плану идёт голова, ведь стройные сисястые и попастые, но крокодилы, нам тоже не нужны. С головой всё чуть-чуть сложнее: одно неверное движение мышкой, и на нас взирает уже не милая девушка, а пришелец из явно очень далёкой галактики. Притом, если вовремя это не заметить и не исправить, то, скорее всего, придётся всё начинать заново. Как сказал Мудрый: если создаёшь чьё-то лицо, и хочешь, чтобы оно получилось красивым, оно должно выглядеть красивым на КАЖДОМ этапе его проработки. Правда, это было сказано про рисование, но и к моделированию это относится вполне. Короче говоря, не спешите: подвинули вершинку, создали полигончик – посмотрите на то, что получилось со всех сторон. Понравилось – хорошо, не понравилось – смело жмите Undo. Не страшно, если вы несколько раз повторите одно и то же действие. В нашем нелёгком деле главное – опыт, а количественное рано или поздно перейдёт в качественное. Вот, кстати, то, что нам нужно:

Изображение

Всё ясно? Вы спрашиваете, все ли лица должны быть одинаковыми? Нет не все. Я вам даю это для того, чтобы было от чего отталкиваться. Смотрели Final Fantasy: Spirits Within? Вот там все лица персонажей были сделаны путём модифицирования одного идеального. Ну, как результат? По-моему тоже. Вообще, за что я люблю low-poly моделинг, так это за то, что обладаешь очень высокой степенью контроля над ситуацией. Чем меньше вершин – тем легче вносить изменения. Ладно, вернёмся к баранам. Очень полезен вид в три четверти: многие забывают, что на лице есть скулы, что хомячьи щёки растут у хомяков, а не у людей, да и надбровные дуги тоже имеют место быть. Особо хочу отметить ошибку многих моделлеров, потому что на рисунке это может быть плохо видно: губы у человека не плоские!

Изображение

Чувствуете разницу? Это касается и глаз, и всего лица в целом. Хочу ещё дать кое-какую информацию насчёт рук, а, точнее, пальцев на руках:

Изображение

Мелочь, а неприятно, когда видишь у персонажа паучьи пальцы одинаковой длины.  Уделяйте внимание мелочам. Они подкупают!

Изображение

Вот ещё пара картинок для размышления. При создании модели все эти примеры были для меня главным источником вдохновения, надеюсь, и вам помогут. Зачем я даю эти картинки? Просто в молодости я даже не подозревал, что подобные картинки настолько полезны, а когда мне их показывали, а бил себя в грудь и кричал: «Я САМ!». Ну так вот – не правильно это. Умных людей слушать надо. На то они и умные.

Практическая часть

На этом краткий теоретический курс хочу закончить и преступить, наконец, к практической части. С чего же начать? Это равносильно старому вопросу о яйце и курице: споры велись долго и безрезультатно. Я предпочитаю начинать с головы, хотя это и сложнее. Ну, как говорится, дружба начинается с улыбки, вербовка — со взгляда, а 3D модель – со сплайна. Но сначала положим нашу картинку на задний фон, перед этим вырезав из неё всё лишнее и разделив на две проекции с помощью Photoshop’a. Вырезали? Разделили? Хорошо. Также настоятельно рекомендуется Image-> Adjustments-> Brightness поставить на –150 (просто линии в Максе белые, а на белом фоне…) . Да, и не забудьте их подогнать и сделать одинакового разрешения.

Изображение

Пара слов о раскладке клавиатуры. Рекомендую функцию Zoom повешать на клавишу Z (по дефолту Alt+Z). Просто зуминг с помощью колёсика не очень удобен своей дискретностью (создатели Макса – странные люди: всё передрали у конкурирующих программ, а такую нужную вещь, как плавный зуминг, забыли). Клавиши 1-6 выбирают соответствующий подобъект. L, F, P, T – выбор нужного окна проекции. Q, W, E, R – выбор нужных манипуляторов. Alt+W – свернуть\развернуть окна проекций (у меня по привычке повешано на W). A, S – включение\выключение привязок. F5 – F8 выбирают плоскость, в которой действуют манипуляторы. Горячие клавиши – великое изобретение. Пользуйтесь ими, они ускоряют процесс разработки раза в полтора.

Пара слов о сохранениях. На более-менее сложных сценах Макс вылетает с завидным постоянством, так что возьмите себе за правило сохраняться после каждого этапного действия, желательно под разными именами – если что, придётся начинать не с начала, а с предыдущего этапа.

Пара слов о разрешении. У меня стоит 1280x960. На мониторе в 17 дюймов это в самый раз. У моего соседа на таком же мониторе стоит 1600x1200. Это – безумие, ровно как и 800x600. Думайте…

Открываем Макс, выделяем окно проекции Left. НЕ смещаем камеру. Выбираем Views-> Viewport Background… Там щёлкаем на Files… и выбираем нужный нам файл с боковой проекцией. В этом же окне щёлкаем на Match Bitmap, а потом на  Lock Zoom/Pan. Это для того, чтобы картинка не искажалась и не летала вслед за камерой (забудете нажать, поймёте про что я). Затем переходим в окно Front и (опять же НЕ смещая камеру) выполняем ту же последовательность действий, за исключением того, что выбираем изображение головы спереди. Если вы сместите камеру, то картинки встанут неправильно относительно друг друга. Рекомендую убрать сетку, она нам не понадобится.

Модель головы можно начинать создавать по-разному. Можно из кубика, можно из сферы, можно даже из цилиндра (знал я и таких извращенцев :)). Я же создаю её из одного полигона (Polygon. Не путать с Face – треугольником). Считаю, что при создании её (да и не только её) по шаблону, это – самый удобный способ. Так вот, жмём Create-> Shapes-> Line, и аккуратненько, по касательной, обводим нашу схему:

Изображение

Чем больше вершин сделаете у сплайна, тем больше полигонов будет у модели. Вообще, голова делится на две части по степени насыщенности полигонами: лицо и всё остальное. Старайтесь делать приблизительно равные отрезки между вершинами этих участков, это облегчит вам дальнейшую работу. Теперь жмите на правый клик ->Convert to->Editable Poly. (Картинка)

Изображение

Это и есть тот самый полигон. В подробности что это и зачем это, я сильно вдаваться не буду – это есть в любой книжке, а в данной статье я хочу рассказать о вещах, которые в книжках почему-то игнорируются.

Значит так, форму сбоку мы лицу придали, теперь поработаем в анфас. Выделите "голову” и нажмите циферку четыре: вы перейдёте на уровень редактирования подобъекта Polygon. Выделите единственный полигон, и с помощью инструмента Extrude (выдавить) выдавите его немного вбок (примерно до самого узкого места на переносице) и удалите.

Самое время настроить зеркальное отображение. Выделите получившуюся фигуру, и нажмите кнопку (картинка). В открывшемся окне щёлкните на Instance и выберите нужную вам ось. Должно получиться что-то вроде этого:

Изображение

Теперь, при изменении одной половины модели, другая будет изменяться симметрично, но только при выделенном подобъекте, или при применении каких-либо модификаторов. При перемещении, вращении и масштабировании целого объекта ничего происходить не будет. Вам придётся использовать клавишу 5 (Подобъект Element). То, что у вас объект отмиррорен с помощью Instance, можно узнать по стеку модификаторов: надписи в нём выделяются жирным шрифтом.
Поработаем с задней частью головы. Переместите имеющиеся вершины вбок и немного сдвиньте к центру модели. Постарайтесь придать нужную форму тому, что получилось, посмотрев на проекцию Front. Выделенные рёбра должны находиться в одной плоскости. Видите, как ровненько всё выглядит сбоку?

Изображение

Я ведь уже говорил, что модель должна быть красивой на всех стадиях исполнения. Далее построение модели будет происходить по методу «опоясывания полигонами» (с). Данное название очень точно характеризует дальнейшую последовательность действий. Для начала смоделируем боковую часть головы и затылок. Вообще, голова спереди напоминает по форме яйцо. Бывают, конечно, и квадратные головы, и круглые, но в первую очередь это именно яйцо. Многие про это забывают. Выделяем крайнее ребро в верхней части головы и «копируем» его немного вправо-вниз с помощью зажатой клавиши Shift.

Изображение

Такое копирование, по-моему, гораздо удобнее, чем операция Extrude, которая в Максе абсолютно неудобна и нефункциональна, в отличие от других программ 3D моделирования. Далее «опоясываем» полигонами голову сверху вниз до подбородка. Видите, что рёбра параллельны плоскости XY? Если у вас не так, то советую подвигать вершинки – очень облегчит работу. Нижнее же ребро разрезаем с помощью Cut по линии подбородка. 

Изображение

Тут важное пояснение: помните, я говорил, что надо делать приблизительно равные отрезки между вершинами? Эти полигоны тоже надо делать примерно равными. Система тут следующая: горизонтальных рёбер на «поясе» должно быть столько же, сколько и на затылке, и находиться они должны где-то на одном уровне. Это сильно облегчит горизонтальное опоясывание.

Действовать надо по принципу «срединного деления» (с): строим горизонтальный «пояс» посередине имеющейся дырки, а для соединения боковых рёбер пользуемся Target Weld.

Изображение

Почему–то Макс вылетел после нажатия в Фотошопе клавиши Ctrl+V. Странный он какой-то…

Дальше можно сделать так: берём средние рёбра, копируем их и сливаем соседние вершинки с помощью Collapse.

Изображение

Вообще, подключайте фантазию: методы я вам даю, а вот как и в какой ситуации ими пользоваться – ваша забота. Думать надо всегда. Даже будучи 3D моделлером.
Осталась заделать получившуюся дырень. Щёлкаем клавишу 3, чтобы перейти в подобъект Border (Граница). Это хитрый подобъект. Я его называю «дырка», потому что он работает именно с дырками на модели. Итак, выделяем нашу «дырку» и щёлкаем на кнопочку Cap (Заделать), или же вручную создаём там полигоны инструментом Create.Теперь берём в руки Cut и разбиваем на четырёхугольники и треугольник. Не забываем придать всему этому красивую форму.

Изображение

Изображение

Ещё раз повторяю: все грани должны максимально напоминать прямоугольники (а лучше – квадраты), как по количеству углов, так и по форме. Треугольных граней нам не избежать, но пятиугольных быть не должно. Почему? Во-первых, качественная сетка очень сильно упростит создание развёртки, во-вторых, при анимации будет меньше текстурных искажений, в-третьих, качественнее будут работать сглаживающие нормали. Да и при применении MeshSmooth форма будет передаваться гораздо точнее.

Я уверен, остальную часть затылка вы сможете доделать самостоятельно, алгоритмы я вам дал, там всё то же самое. Челюстную кость не трогайте. 

Изображение

Ну как вам шлемофон? Ничего, учиться надо на простых примерах. Если вы сделали эту часть работы, значит вы уже освоились с основными инструментами, и сможете сделать всё что угодно.

Моделирование лица

Перейдём к передней части головы. Сначала разрежем губки с помощью функции Chamfer, выделив ребро, находящееся посередине. Получившийся полигон можно удалить за ненадобностью.

«Скопируем» их вбок и придадим им нужную форму. Это удобнее сделать из проекции Back. Помните, что я говорил? Они не плоские! Не забывайте, что полигоны можно ещё и создавать командой Create (создать), а вершины сливать очень полезной кнопкой Collapse (свернуть в точку) Возможно, придётся менять триангуляцию кнопкой Edit triangulation подобъекта Polygon.

Изображение

Что, угловато? Будем бороться. Для этой цели подойдёт команда Chamfer, применённая к выпирающим рёбрам.

Изображение

Что-то нижняя губа у нас ни к чёрту, и с такой сеткой сделать с этим ничего не получается. Значит надо её заменить!. После небольшой правки получилось что-то вроде этого (Найдите 10 отличий :))

Изображение

Займёмся теперь носиком. Не надо делать его слишком широким или узким. Не забудьте про переносицу, она тоже должна быть человеческой формы. Почаще сверяйтесь с проекцией, там всё показано. Старайтесь избежать особо острых углов. Их можно убрать с помощью инструмента Chamfer, выделив нужное ребро, а ещё можно разрезать с помощью Cut и переместить нужные вершины. Не бойтесь добавлять полигоны для поиска нужной формы – после её нахождения их можно будет с лёгкостью убрать.

Изображение

Изображение

Нос пока оставим, всё равно он никуда не убежит. Сделаем лучше лоб.

Изображение

Изображение

Видите проблему? Для её решения разобьём ребро пополам командой Insert vertex.

Изображение

Сделаем теперь надбровные дуги. Если их сделать слишком большими, или слишком маленькими, то взгляд будет или как у Терминатора, или как у той девочки, которой сильно затянули косички.

Изображение

Теперь самое время  заняться подбородком. Периодически осматривайте модель под разными углами: если у вас чувство, что в модели что-то не так, порой в такие моменты осматривания приходит понимание, что надо изменить, и надо этим пользоваться! Ведь я уже говорил, что стоит проглядеть какую-либо мелочь, и найти её потом будет очень сложно, а глаза она будет резать. 

Изображение

Оформим щёки и скулы. Помните вид в три четверти в начале статьи? Смотрите на него, старайтесь достичь максимального сходства. Бэтмэн, блин. Заполним дыры полигонами.

Изображение

Изображение

Дальше идёт довольно неприятная работа по совмещению высокополигональной сетки и низкополигональной. Видите, как я её решаю? Это не страшно, главное, не забудьте перетриангулировать, если что. 

Изображение

Изображение

Поработаем немного над общей формой. Вообще, я рекомендую сразу же начинать вносить изменения в модель, если вы вдруг замечаете, что она сдвигается в мутантскую сторону. Я вот заметил :). 

Изображение

Займёмся глазами. Проще всего форму глаза определять самим глазом. Логично, правда? Создаём сферу и помещаем туда, где глаз. Мнда… Что-то у меня не подошло. Но ничего, всё поправимо.

Изображение

Да, я, наверное, не говорил, что с Shift’ом можно копировать не только с помощью перемещения, но и с помощью масштабирования, порой, это очень полезно:

Изображение

Изображение

Осталось сделать веки и ресницы. Ресницы очень очеловечивают. Единственная игра, где про них не забыли – Beyond Good and Evil. Очень советую посмотреть. Правда, там главная героиня не совсем человек, но даже по человеческим меркам она очень и очень привлекательна. Задумайтесь, почему в мультиках, если хотят изобразить милого персонажа, делают ему длинные, густые ресницы.

Изображение

Ушки! Вот делал я ушки, делал, и понял, что не в них родимых дело. Ну не люблю я их делать! Зачем нужна такая сложная форма для такого органа? Короче, я схалявил. А делать их очень просто, почти также как голову: обводим по периметру, выдавливаем, «копируем». Только времени много уходит.

Изображение

Изображение

Мой любимый серый цвет… Ещё в начале статьи хотел сказать, что гораздо удобнее моделить, применив на модель дефолтный Максовский материал (серый). Всё видно, и глаза не режет. Хотя, дело привычки.
А сейчас самое интересное: извечная борьба с Максовскими недоделками. Нажимаем циферку 4, а затем кнопочку Edit triangulation. Я был шокирован: это ж надо было так криво триангулировать! После XSI такое зрелище далось мне нелегко. Но ничего, пара кликов мышкой, и всё в порядке. 

Изображение

Ну, как вам получившееся чудо? Не спешите плеваться! Я уверен, все серые лысые девушки не очень привлекательны. Сейчас мы ей развёрточку сделаем, текстурку натянем, и всё будет хорошо.
Для этого сначала склеим модель в единое целое. Спросите, что тут сложного? Просто тут есть хитрость: надо удалить одну половину, затем отмиррорить другую, но уже не как Instance, а как Copy. Далее выделяем любую половинку и делаем Attach. И, главное, делаем Weld. Он сливает вершины, расстояние между которыми меньше определённого значения. Просто выделяем все вершины и щёлкаем.

Изображение

Развёртка текстуры

Теперь переходим к самому главному: к развёртке. Лично я всё предпочитаю делать вручную. Не доверяю я всяким Flatten’ам или как их там. Мой способ прост как два пальца. Но сначала полезная информация опять же про оптимизацию работы на Максе.

После перехода на шестой Макс, я долго горевал по замечательной панельке, на которой были все полезные ссылки. Я думал, как так?! Это же вообще! Но оказалось, что панелька абсолютно не нужна. Объясняю. Знаете, как достичь Unwrap UVW одним кликом мышки? Щёлкаете на Modifiers List панели Modify, потом нажимаем клавишу U, а потом Enter. При должной сноровке операция занимает меньше секунды. Для доступа к UVW Map просто нажмите U два раза. Для доступа к Mesh Select нажмите M. Гениально? Меня это просто поразило. Только не надо говорить, что они так специально задумали. Короче говоря, вызвать три главных модификатора по созданию развёрток – проще простого.

Так вот, мой способ прост: выделяем сначала Mesh Select’ом лицевые полигоны и применяем к ним планарный UVW Map.

Изображение

Хитрость: устанавливайте вручную (с помощью Copy\Paste) одинаковые значения Length и Width, и развёртка не будет растянутой или сжатой, если у вас квадратная текстура.

Теперь выделите все остальные полигоны (проще всего это сделать так: примените ещё один Mesh Select, нажмите 4, а затем Ctrl+I) и снова примените UVW Map, но только уже Shrink Wrap. Расположите гизму приблизительно вот так:

Изображение

Два риторических вопроса. А вы знаете, что если сделать Convert to Editable Poly, то текстурные координаты сохраняются? А вы знаете, что зелёная линия на гизме показывает, где будет разрыв текстурных координат? Просто некоторые не знают.

Убрав сетку и кликнув на Select Element, разводим всё по сторонам.

Вот, что мы получаем:

Изображение

А теперь начинаем сводить, медленно и аккуратно. Target weld есть и тут, так что очень рекомендую именно с его помощью совмещать эти два куска. И про Freeform не забывайте. А вы знаете, как на него влияют клавиши Ctrl, Alt и Shift?

Изображение

Короче говоря, всё как всегда оказалось проще простого. Да, кстати, вот, что у нас получилось: 

Изображение

Изображение Изображение Изображение Изображение

К сожалению, текстурку показать не могу, так как основа для неё подло мною спёрта из одной известной программы, а там Копирайт и бла бла бла. Так что извиняйте. Ну, как вам деваха? Мне лично нравится. Носик бы подправить... Если бы я её делал не три часа, а часов так пять, то было бы ещё лучше. К недостаткам стоит отнести несоответствие с задуманными формами :) и неправильный подход к созданию модели, связанный с катострофической ограниченностью по времени. Если кто заметил, то у этой модели отсутствуют ноздри и веки (и всё тело :)), а уши свободно висят в пространстве. Но это не главное.

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



Источник: http://www.gamedev.ru/art/articles/?id=4297&page=4
Категория: 3D Max | Добавил: gforcer (24.01.2010) | Автор: Админ
Просмотров: 17386 | Комментарии: 3 | Теги: создание, Голова, моделирование, развертка, персонажа, игрового, головы, рисование, игры, для | Рейтинг: 3.0/3
Всего комментариев: 3
3 Hairu  
0
а где находится Weld? такие прям точные намеки. нашел только weldet,но это вообще фигня..

2 Hairu  
0
эх.. у меня макс не реагирует на Viewport Background..
не могу загрузить картинку туда,что бы она была РОВНОЙ... Т.Т

1 Mihail Korolev  
0
Молодец :) у мя тоже бывало такое...как придет в голову какая идея и не можешь оторваться от ее воплощения )))

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
Демотиваторы
Copyright Зямаев Денис © 2024