Как объединить скелет в blender
Перейти к содержимому

Как объединить скелет в blender

  • автор:

Прикрепить две кости друг к другу

Как прикрепить кости 1 и 2 в точке 3? Через Ctrl-P в Edit Mode они почему-то накладываются друг на друга.

20.09.2017 в 14:38 #15822

Выглядит немного странно. Попробуй присоединять кости с помощью ctrl-j, потом в edit mode на вкладке в окне properties > bone > relations на вкладке parent установить взаимоотношения между костями.

20.09.2017 в 17:47 #15823
В том-то и дело, что они по Ctrl-j не соединяются. А свойство parent у костей 1 и 2 уже заполнены.
15.04.2018 в 16:15 #17150
задай основную кость и к ней крепи Оо
Просмотр 4 сообщений — с 1 по 4 (из 4 всего)

  • Форум «Анимация и ригинг» закрыт для новых тем и ответов.

Авторизация

blender course

Рубрики

  • Анимация и риггинг
  • Загрузки
  • Материалы и текстуры
  • Моделирование и скульптинг
  • Новости и обзоры
  • Основы Blender
  • Рендеринг и освещение
  • Симуляция и частицы
  • Скриптинг на Python
  • Создание игр в Blender

Метки

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

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

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.

Серия уроков по риггингу в Blender. Урок 1: арматура, кости, иерархия

В 3д графике анимация выполняется при помощи установки ключевых кадров (ключей) — главных поз объекта на определенных кадрах, а все положения в промежуточных кадрах между ключами программа достраивает сама (это называется интерполяцией, пришло из математики)

Определенно легко выставлять эти позы, когда объект монолитен, и ничего внутри него ничего не должно двигаться. Но вот стоит взять что-то комплексное (например, робота), или еще хуже — живое существо, где довольно сложные деформации, то жизнь превратится в ад. Работать с кучей вершин будет очень сложно: придется постоянно все перевыделять, двигать, вращать, сначала выставив пивот (т.е. точка, от которой будут идти трансформации), а в случае с живыми существами вообще будет очень легко сломать их форму

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

Смысл риггинга — как раз воплотить всю эту идею в жизнь, сделать скелет, которым аниматор сможет удобно манипулировать объектом, а после этого поддерживать этот скелет, улучшать его

Это определенно не легко — ведь надо сделать не только удобный и простой для аниматора сетап, но и хорошо работающий под капотом, чтобы он лишне не нагружал комп (а нагружать систему риги очень хорошо умеют), и в нем было легко разобраться другим риггерам. Я уж молчу, когда персонажей много, да и обычным багам риг вполне подвержен, очень легко может оказаться так, что из-за реализации риг ведет себя в некоторых ситуациях не совсем правильно

Как уже стало понятнее, анимация и риггинг живут бок-о бок с друг-с другом. Риггер не только делает сами риги, но и например пишет различные скрипты-инструменты для аниматора. У любой анимационной студии просто несмертное количество таких скриптов. Поэтому стоит иногда брать фидбек у аниматоров по поводу своего сетапа

Иерархия

Весь риг построен на принципе иерархии ака связях родитель-потомки между костями. Названа связь по примеру из генетики, где подобно тому, как дети наследуют черты от родителей, кости-дети наследуют трансформации кости-родителя, т.е. к их собственным трансформациям поверх добавляются трансформации родителя. Далеко не просто так потомки упоминаются во множественном числе, а родитель в одном: кость может иметь всего лишь одного родителя (на самом деле функция под названием switch Parent иметь их хоть тысячу, но обычно только один родитель активен, так как воздействие сразу нескольких родителей не особо имеет смысл в большинстве случаев), но ее потомков может быть сколько угодно, хоть 2, хоть 20

Давайте перейдем к блендеру, где это и наглядно увидим

Отчищаем сцену, если у вас не изменен стартап файл, и ищем в меню Add в заголовке вьюпорта Armature->Single Bone

Мы создали объект-арматуру с одной-единственной костью. В блендере скелет обзван Арматурой, так как разрабы любят показать всем, что блендер не такой как остальной софт 🙂

Переходим в режим редактирования арматуры. В нем мы устанавливаем костям позицию, которая будет для них нулевой, дефолтной (выставляем так называемую рест позу, Rest Pose) и строим саму иерархию (т.е. определяем, кто кому будет родителем, а кто потомком)

Rest Pose — это тоже очень важное понятие, но мы разберем его вместе с тем, что такое системы координат кости

Кости в блендере состоят из трех частей — хвоста, тела и головы

  • Голова — это основа кости. Так например если перейти в режим позы ака Pose Mode (режим, в котором арматура анимируется, и ставятся ключи), то вращение и масштабирование будут идти именно от головы
  • Тело позволяет быстро выделить и голову, и хвост
  • Хвост — конец кости. От хвоста будут идти потомки кости в режиме connected, но об этом далее

Мы можем отдельно манипулировать хвостом и головой в режиме редактирования, но не в режиме позы

Связь родитель-потомки

Выделяем хвост нашей кости, и жмякаем английскую Е, ведем мышкой куда-нибудь, и жмем ЛКМ, чтобы подтвердить операцию. У нас появилась еще одна кость

Мы применили операцию под названием экструдирование. Наверняка вы ее знаете по моделированию. Как и в моделинге, в редактировании арматуры она создает новую кость из выделения, сохраняя связь с ним. Собственно, тут и есть пример отношения родитель-потомок. Если выделить нашу новорожденную кость, и посмотреть в редактор свойств->вкладочка Relations, то в в поле Parent будет указано имя кости, из которой мы ее сделали. Она и будет родителем для нашей кости

Кстати да, у костей есть имена. Сохранять их в порядке очень важно, а иначе станет неудобно ориентироваться в риге: довольно часто придется указывать имена костей, и вряд ли это будет удобно с Bone.001, Bone.002. Переименовать кости можно либо в редакторе свойств, либо через хоткей F2. Мы назовем нашу кость-родитель как «Parent», а потомка как «Child». Будем так сказать сразу приучатся держать риг в чистоте, а заодно мне будет легче вам рассказывать. На скрине я показал, что как переименовать

Название выделенной кости можно посмотреть либо в редакторе свойств, либо в левом верхнем углу вьюпорта

Собственно, что нам дает то, что Child — это потомок Parent? Очень хорошо это видно в режиме позы: стоит подвигать Parent, как Child тут же последует за ним

При вращении Child видно влияние опции Connected. Она велит кости, что ее голова должна быть намертво приварена к хвосту родителя. Разорвать это никак не получится, даже в режиме редактирования: хвост Parent и голова Child будут единым целым

В режиме позы кость-потомок с Connected в принципе нельзя будет двигать — только вращать и масштабировать (при использовании хоткея G вместо оператора перемещения будет запускаться оператор вращения). Опция Connected является обязательной для такой штуки как инверсная кинематика (IK), но и бывает полезной, когда например кость должна только вращаться (те же кости рук), и не двигаться

Если убрать эту галочку, то Child станет жить отдельно от Parent, но все равно будет двигаться вместе с ним в режиме позы

Блендер оставляет визуальный отклик о том, что между этими костями есть связь — пунктирной линией. На самом деле это не всегда удобно, например, когда много потомков, поэтому ее можно отключить в оверлеях галочкой Relationship Lines

У отношений между костями есть куча дополнительных опций: например галочка Inherit Rotation позволяет отключить наследование вращения. Мы разберем их, если они понадобятся, прямо на месте

Для того, чтобы назначать связи, вовсе не надо постоянно экструдировать. Это можно делать, например выбирая имя кости в поле Parent во вкладке Relations, но еще лучше — использовать хоткей Ctrl + P. Он позволяет установить связь родитель-потомок, припарентить одну кость к другой. Хоткей работает по следующей схеме: Последняя выбранная кость станет родителем для всех ранее выделенных костей. Опции Connected и keep offset позволяют устанавливать значение галочки Connected. Поэкспериментируйте: продублируйте кости через Shift + D, переназначайте родителей с Connected и keep offset, покрутите в режиме позы

Существует противоположный Ctrl + P хоткей — Alt + P — он либо убирает галочку Connected (Disconnect Bone), либо в принципе убирает родителя (Clear Parent)

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

Итог

  • Весь риг строится на иерархии костей
  • Родитель-потомок — связь между костями, когда кость-потомок добавляет к своим трансформациям трансформации кости-родителя
  • Арматура — тоже самое, что и скелет
  • У арматуры есть режим редактирования, где мы устанавливаем костям дефолтное положение (рест позу) + настраиваем иерархию, и режим позы — где мы анимируем сами кости
  • Хоткеи Ctrl + P и Alt + P — ваши лучшие друзья

Это все, что я хотел сказать в этом уроке. Иерархия — это база, это то, без чего риг не смог бы существовать в принципе. Жизненно важно понять ее, к тому же это не сложное понятие. Если вы все поняли — то значит жду вас в следующем уроке, который выйдет в скором времени. Желаю всем выдержки на этом сложном пути, всем удачи, всем пока!

Риггинг низкополигонального персонажа в Blender

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

Для выполнения данного урока вам понадобится персонаж. Можете использовать того, что прилагается к уроку или воспользоваться собственным (так даже лучше будет).

Финальный результат

character-rig
Импортируйте персонажа в новую сцену (File → Append). Также расположите 3D-курсор в центре оси координат.
character-rig-1
Добавьте в сцену арматуру.
character-rig-2
character-rig-3
Чтобы видеть кости внутри персонажа без перехода в режим Wireframe отметьте опцию X-Ray в меню Display на вкладке Object Data.
character-rig-4
Перейдите на вид сбоку, в режим редактирования арматуры и отодвиньте кость в сторону по оси Y.
character-rig-5
Поверните кость на 90° и расположите ее в районе талии, как на изображении ниже.
character-rig-6
Выделите верхушку кости и проэкструдируйте из нее новую (E).
character-rig-7
Продолжаем экструдировать еще две кости (грудная клетка и шея).
character-rig-8
Создаем еще одну кость для головы. На виде сбоку мы пытаемся повторить форму скелета человека, но на виде спереди должна сохраняться прямая линия.
character-rig-9
Теперь снова выделите верхушку первой кости и начните экструдировать из нее кости в обратном направлении.
character-rig-10
Дайте осмысленные имена всем созданным костям. Основную назовите Base (остальные pelvis, stomach, chest, neck и head).
character-rig-11
Чтобы видеть имена костей в окне 3D-вида отметьте опцию Names в меню Display.
character-rig-12
Разместите 3D-курсор в том месте, где должна начинаться бедренная кость и нажмите Shift + A. В режиме редактирования данное сочетание клавиш создаст новую кость.
character-rig-13
Расположите ее соответствующим образом.
character-rig-14
Продолжаем экструдировать кости ног.
character-rig-15
Еще две кости для ступни и пальцев.
character-rig-16
Дайте осмысленные имена костям ног (thigh.l, lowerleg.l, foot.l, toe.l). При создании имен используйте суффикс .l или .L. Благодаря этому Blender будет знать, что данные кости относятся к левой части персонажа, что упростит задачу при создании костей и их имен для правой части.
character-rig-17
character-rig-18
Выделите кость thigh.l и привяжите ее к кости pelvis. Также, убедитесь, чтобы опция Connected была отключена.
character-rig-19
Расположите 3D-курсор в районе ключицы и создайте новую кость (Shift + A).
character-rig-20
character-rig-21
Расположите ее должным образом.
character-rig-22
Начините экструдировать из нее кость руки и предплечья.
character-rig-23
character-rig-24
На виде сверху должна сохраняться прямая линия.
character-rig-25
Дайте костям осмысленные имена (collar.l, upperarm.l и lowerarm.l).
character-rig-26
Выделите кость collar.l и привяжите ее к кости chest. Также, убедитесь, чтобы опция Connected была отключена.
character-rig-27
Проэкструдируйте кость для кисти.
character-rig-28
Создайте три кости для среднего пальца.
character-rig-29
Выделите все три кости пальца, продублируйте их и расположите в соответствии с остальными.
character-rig-30
Пунктирные линии указывают но то, что между вновь созданными костями и костью кисти существует связь родитель-потомок.
character-rig-31
Дайте костям осмысленные имена (palm.l, f1a.l, f1b.l, f1c.l…).
character-rig-32
Создайте кости для большого пальца и также дайте им имена (ta.l, tb.l, tc.l).
character-rig-33
На данный момент мы закончили создавать деформирующие кости для левой части персонажа. Вернитесь в объектный режим и расположите 3D-курсор в центре оси координат (и в центре арматуры соответственно).
character-rig-34
Снова перейдите в режим редактирования и выделите все кости имеющие суффикс l.
character-rig-35
Продублируйте данные кости и оставьте их в том же положении (Shift + D).
character-rig-36
Измените точку вращения на 3D-курсор.
character-rig-37
В меню Armature выберите опцию X Local.
character-rig-38
После того, как продублированные кости отразятся по оси X, к их суффиксам добавятся надписи .l.001. Нажмите W и выберите опцию Flip Names. Данная опция изменит все надписи .l.001 на .r.
character-rig-39
Теперь все деформирующие кости созданы.
character-rig-40
В режиме позирования (Pose Mode) можно увидеть текущий результат работы созданного вами скелета. После манипуляций с костями верните их в исходное состояние (Alt + G и Alt + R).
character-rig-41
Теперь создадим инверсную кинематику (IK) для ног. Перейдите в режим редактирования арматуры и отметьте опцию X-Axis Mirror на вкладке Options.
character-rig-42
Проэкструдируйте новую кость.
character-rig-43
Назовите новые кости ik-leg.l и ik-leg.r. Также разорвите связь с родительской костью и снимите галочку с пункта Connected. Благодаря этому наша кость будет перемещаться независимо от остальных.
character-rig-44
Из кости foot продублируйте новую и расположите ее перед коленом персонажа (верните точку вращения на median point для удобства работы). Назовите две новые кости knee.l и knee.r и укажите в качестве родителей для них кости ik-leg.l и ik-leg.r соответственно.
character-rig-45
character-rig-46
Перейдите в режим позирования и выделите кость lower-leg.l.
character-rig-47
Назначьте для нее ограничитель Inverse Kinematics.
character-rig-48
Установите для ограничителя следующие параметры.
character-rig-49
После этого кости с большой вероятностью повернуться в сторону. Вернуть их в исходное положение можно с помощью параметра Pole Angle.
character-rig-50
character-rig-51
Теперь проделайте аналогичные операции для другой ноги.
character-rig-52
В режиме позирования проверьте результат работы (после верните кости в исходное состояние).
character-rig-53
Перейдите в режим редактирования арматуры и расположите 3D-курсор между ног персонажа.
character-rig-54
Создайте новую кость и назовите ее root. Это будет основная кость всего ригга и перемещая ее мы будем перемещать персонажа по сцене.
character-rig-55
Расположите ее горизонтально.
character-rig-56
Привяжите кости инверсной кинематики и кость base к кости root.
character-rig-57
character-rig-58
character-rig-59
Снова можете проверит результат работы ригга в режиме позирования. После всех манипуляций верните все в исходное состояние (Alt + G, Alt + R).
character-rig-60
character-rig-61
В режиме редактирования арматуры поочередно выделите все не деформирующие кости (ik-leg.l, ik-leg.r, knee.l, knee.r, base и root) и отключите для них опцию Deform. Данные кости помогают управлять риггом и никак не будут деформировать сам меш.
character-rig-62
character-rig-63
Вернитесь в объектный режим.
character-rig-64
Выделите модель персонажа, затем с зажатой клавишей Shift арматуру, нажмите Ctrl + P и выберите пункт With Automatic Weights. Blender автоматически создать столько групп вершин, сколько деформирующих костей содержит указанная арматура и назначит для них веса оптимальным образом (с его точки зрения 🙂 ).
character-rig-65
Теперь в режиме позирования при вращении костей происходит и деформация меша.
character-rig-66
Помимо всего вышесказанного, опция With Automatic Weights создает модификатор Armature для меша.
character-rig-67
На вкладке Object Data вы можете найти все группы вершин. Их имена соответствуют именам костей.
character-rig-68
При деформации персонажа можно заметить, что он деформируется не наилучшим образом. Исправить это можно в режиме Weight Painting изменив значения весов для нескольких групп вершин.
character-rig-69
Измените способ отображения костей.
character-rig-70
Выделите меш и включите для него отображение сетки (wire).
character-rig-71
Выделите арматуру и перейдите в режим позирования. С зажатой клавишей Shift выделите меш и перейдите в режим Weight Paint.
character-rig-72
На панели инструментов укажите назначаемый кистью вес (Weight), силу воздействия (Strength) и активируйте зеркальность работы кисти по оси X (X-Mirror).
character-rig-73
Выделив любую из костей вы увидите текущие веса ее группы вершин.

  • Синий — нет воздействия (0)
  • Зеленый — 50% воздействия (0.5)
  • Красный — 100% воздействия (1)

Если вы хотите увеличить воздействие на некоторые вершины, то рисуйте по ним кистью с высокими значениями. Во время этого процесса вы всегда можете повернуть кость и увидеть текущий результат работы.
character-rig-74
Если же нужно убрать воздействие с вершины или ослабить его, уменьшите вес на кисти и проведите ею по нужным вершинам.
character-rig-75
character-rig-76
Проверяйте работу всех прилегающих костей на предмет корректной деформации меша.
character-rig-77
В местах изгибов две кости могут воздействовать на одни и те же вершины. Старайтесь равномерно распределять между ними веса, чтобы сумма всех весов была равна 1. Например, 0.5 для одной кости и 0.5 для другой. Это даст наилучшие результаты.
character-rig-78
character-rig-79
Вы также можете редактировать сам меш в режиме редактирования для достижения лучших результатов деформации.
character-rig-80
character-rig-81
Проверьте работу всех костей и настройте веса для достижения наилучшего результата. В этом вся суть ригга (или лучше скиннига). Чем лучше распределены веса, тем качественнее и правильнее деформации персонажа.
character-rig-82
character-rig-83
character-rig-84
character-rig-85
Вот собственно и все! Персонаж готов к анимации 🙂
character-rig-86

Как объединить скелет в blender

Посетите сайт BlenderУкраина (русскоязычный ресурс о Blender) в интернете по адресу blender3d.org.ua — Плагины, Модели, Туториалы, Форум — Все о Blender3d по русски.

Глава 16: Арматуры (кости и скелет)

Использование арматуры для деформирования меш-объекта

Инструменты деформирования Blender прекрасно подойдут для анимирования большинства объектов, кроме тех случаев, когда вам необходимо сделать анимацию, например бегущего человека или сгибающегося от ветра дерева. Для такого рода деформирования объектов обычные модификаторы Blender не подходят. Нам необходимо использовать более сложные инструменты деформирования. В Blender’е есть два варианта сложной деформации объекта: деформирование объекта с помощью скелета(арматуры), а также с помощью Относительных ключей вершин (передвигая вершины меш-объекта в режиме редактирования).

В этой главе мы будем изучать первый способ сложной деформации, то есть деформацию с применением арматуры. Мы рассмотрим только основные принципы работы арматурными объектами. Более подробную информацию о использовании арматуры ищите на сайтах www.blender.org и www.elysiun.com.

Рассмотрим работу арматуры на примере. Создайте цилиндр (Add >> Mesh >> Cylinder), и установите значение для Verties 32. Затем, выделите верхний ряд вершин, с помощью бокс-выделения (клавиша B) и экструдируйте(клавиша Е) их вверх. Немного увеличьте масштаб вершин. Снова экструдируйте вершины и немного уменьшите их масштаб. Продолжайте экструдировать и масштабировать вершины, пока у вас не получится форма как на рисунке ниже:

Установите 3D курсор внизу цилиндра. Нажмите Space >> Add >> Armature. Как Вы можете заметить в том месте, где находился 3D курсор появилось новое звено арматуры (кость). Нажмите клавишу «G» для того, чтобы удлинить звено арматуры. Направьте курсор вверх и кликните левой клавишей мышки в той позиции, где должна заканчиваться кость. Теперь необходимо создать вторую кость, для этого выделите верхушку первой и нажмите кнопку «E«, после этого из верхушки должна появиться вторая кость. Вы можете прекратить немедленное передвижение кости нажав кнопку «Esc«. Чтобы изменить положение кости, кликните по маленькому шарику в верху(или внизу) кости и нажмите клавишу «G«, переместите кость в нужную позицию. Вы сейчас находитесь в Режиме Редактирования арматуры, нажмите «Tab» для того, чтобы перейти к Объектному Режиму.

Далее нам необходимо связать арматуру и меш-объект способом Родитель-Потомок, где меш-объект будет выступать в роли Потомка, а арматура будет Родительским объектом. Удерживая кнопку «shift» выберите первым меш-объект, а затем арматуру. Нажмите «Ctrl P» для создания связи. В появившемся меню выберите опцию «Use Armature«.

Затем вам предложиться несколько вариантов, каким образом будут двигаться вершины привязанные к костям арматуры. Выберите «Create From Closest Bone» , каждой кости будут присвоены вершины, находящиеся рядом с ними. Иногда этот способ создания группы вершин не очень хорошо работает, если группы вершин находятся слишком близко друг к другу, как например вершины пальцев руки. Вершины одного пальца могут присвоиться к арматуре другого пальца, в этом случае Вы не получите желаемого эффекта.

О том как решить эту проблему, мы поговорим позже. А сейчас пришло время испытать нашу модель!

При использовании скелетов или другие комплексных арматурных структур, Вам необходимо сделать следующее:

Объединить все части модели в один меш-объект. Это можно сделать, используя булевы операции (кнопка «W«) или выделить объекты и нажать кнопку «J«, для простого объединения. Перед объединением убедитесь, что для каждой части модели добавлен материал и текстура(если она подразумевается).

Анимирование модели с помощью арматуры (скелета):

Настало время анимировать нашу модель. Нам необходимо перейти в Режим Позы (Pose Mode). В меню режимов, выберите режим Pose Mode (см. рисунок). Это можно так же сделать с помощью «горячих клавиш» — «Ctrl Tab«.

Кликните Правой клавишей мышки по одной из костей. Нажмите кнопку «R» для того, что бы вращать ее. Если в предыдущих шагах все было сделано верно, то меш будет вращаться вместе с костью. Устанавливайте ключевые кадры, для создания анимации.

Автоматическое добавление ключевого кадра для Арматурных объектов

Добавление ключевых кадров анимации для сложных арматурных объектов может оказаться весьма сложным занятием, если Вам необходимо в добавлять ключевые кадры поворотов для 20 костей арматуры. Поэтому очень удобно пользоваться опцией автоматического добавления ключевого кадра. Эту опцию можно активировать в окне Пользовательских Настроек. Наведите курсор мышки на верхнюю горизонтальную линию, разделяющую 3D окно и меню. Затем нажмите левую клавишу мышки и оттяните эту линию вниз. Выберите «Edit Methods» и нажмите кнопку «Action and Object» в пункте Auto Keyframing. После этого ключевые кадры буду добавляться после каждого изменения положения костей арматуры. Не забудьте отключить эту опцию после того, как вы закончите работу с анимацией арматурного объекта, иначе могут возникнуть некоторые проблемы.

Вверх страницы
© 2007 Юлия Корбут некоторые права соблюдены. По любым вопросам о материалах сайта, а также по вопросам о правах на материалы обращайтесь:
© 2007 Julia Korbut some rights reserved. With any legal questions feel free to contact me:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *