Перейти к контенту

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


  

95 голосов

  1. 1. Нужна ли отдельная тема "Анимирование в Maya"?

    • Да
      74
    • Нет
      10
    • Затрудняюсь ответить
      11


Рекомендуемые сообщения

Всё что связано с Autodesk Maya обсуждаем здесь

========================================================

RWNjiOt.png

 

(составлено 

break):

В: Где скачать обновления Майи?
О: На оф. сайте Autodesk: http://usa.autodesk.com/adsk/servlet/ps/dl/index?siteID=123112&id=2334435&linkID=9242259
----
В: Где взять плагины для работы со Сталкер-форматами?
О: Официальные для ТЧ - здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=437
Официальные для ЧН/ЗП - здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=436
Плагин bardak'а здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=454
Обновляемые плагины для последних версий Maya лежат (2014) здесь.
----
В: Как установить плагины?
О: Официальные:
1) Скопировать xrayMaya_export.dll и xrayMaya_material.dll в $MAYA/bin/plug-ins
2) Скопировать BugTrap.dll и xray_path.ltx в $MAYA/bin
Бардаковские:
0) Смотри readme
----
В: Чем отличаются "официальные" плагины от плагина бардака?
О: Официальные плагины разработаны GSC. Могут экспортировать геометрию, скелетную анимацию (.skl) и
анимацию камеры (.anm). Импортера нет. Есть сборки до Maya 2010 включительно, но только под win32.
В комплекте с ними идет набор MEL-скриптов:
1) AEXRayMtlTemplate.mel создает дополнительные контролы для ноды XRayMtl в редакторе атрибутов.
Без него вы не увидите свитка hardware texturing и назначенная в color текстура останется "размытой".
2) exportXRayCameramоtionAdvance.mel - множественный экспорт анимации камеры (.anm)
3) exportXRayObjectAdvance.mel - множественный экспорт статических объектов (.object)
4) exportXRaySkinMotionAdvance.mel - массовый экспорт скелетной анимации (.skl)
5) exportXRaySkinObjectAdvance.mel - массовый экспорт скелетных объектов (.object)
6) XRayShaders.mel - менюшка для назначения engine/compiler shader'ов и game material'ов.
Часть этих скриптов вызывает функции пысовского экспортера и бесполезна для бардаковского плага.
 
Плагин бардака поддерживает импорт .ogf, .dm, .object, .omf, .skl, .skls и экспорт .object, .skl.
Экспортера .anm нет. Сборки под Maya 8.5-2014, включая x64 версии. Совместим с официальными плагинами
и XRay-материалом. Исходный код полностью открыт: https://bitbucket.org/stalker/xray_re-tools/src
(Квалифицированные кодеры - давайте конпелировать в месте!)
При всех достоинствах бардаковского плагина, имеются и недоработки:
1) нерешенная проблема со сглаживанием .object'ов формата ЗП
2) отсутствие экспорта анимации камеры в формат .anm
3) невозможно экспортировать клипы из TraX Editor'а
----
В: Я максист, хде xform в Майе?
О: Modify->freeze transforms, reset transforms

xr_startup_scene_init.mel
Устанавливает рабочие единицы и плоскости отсечки под Сталкера.

global proc xr_startup_scene_init() {
///
// Установка рабочих единиц
//
currentUnit -linear "meter" -time "ntsc";
///
// Установка плоскостей отсечки
//
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 perspShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 topShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 frontShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 sideShape;print "XRay settings: initialized\n";xr_startup_plugin_loader();
}
 

xr_startup_plugin_loader.mel
Загружает и добавляет в автозагрузку xrayMayaTools.mll. Если версия Maya <= 2010, то дополнительно
пытается загрузить и убрать из автозагрузки xrayMaya_export.mll, а также выгрузить и убрать из
автозагрузки xrayMaya_material.mll (как рекомендовал bardak).


global proc xr_startup_plugin_loader() {
string $xray_maya_tools_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMayaTools.mll";
string $xray_maya_material_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMaya_material.mll";
string $xray_maya_export_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMaya_export.mll";
///
// XRay Maya tools
//
if (!(`filetest -s $xray_maya_tools_path`)) {
  print "xrayMayaTools: plug-in not found\n";
} else if (`pluginInfo -q -loaded xrayMayaTools`) {
  print "xrayMayaTools: already loaded\n";
} else {
  loadPlugin xrayMayaTools;
  pluginInfo -e -autoload true xrayMayaTools;
  print ((`pluginInfo -q -loaded xrayMayaTools`)
    ? "xrayMayaTools: loaded\n"
    : "xrayMayaTools: not loaded\n");
}
///
// Официальные плагины
//
if (`about -apiVersion` <= 201000) {
  ///
  // Принудительная выгрузка material-плагина во избежание конфликта с xrayMayaTools
  //
  if (!(`filetest -s $xray_maya_material_path`)) {
   print "xrayMaya_material: plug-in not found, it's OK\n";
  } else if (`pluginInfo -q -loaded xrayMaya_material`) {
   unloadPlugin -force xrayMaya_material;
   pluginInfo -e -autoload false xrayMaya_material;
   print "xrayMaya_material: successfully unloaded\n";
  }
  ///
  // Загрузка экспортера
  //
  if (!(`filetest -s $xray_maya_export_path`)) {
   print "xrayMaya_export: plug-in not found\n";
  } else if (`pluginInfo -q -loaded xrayMaya_export`) {
   print "xrayMaya_export: already loaded\n";
  } else {
   loadPlugin xrayMaya_export;
   // убираем из автозагрузки во избежание конфликта
   pluginInfo -e -autoload false xrayMaya_export;
   print ((`pluginInfo -q -loaded xrayMaya_export`)
     ? "xrayMaya_export: loaded\n"
     : "xrayMaya_export: not loaded\n");
  }
}
print "XRay plug-ins: successfully loaded\n";
}
 

xr_object_export.mel
Переписанный ПЫСовский скрипт для множественного экспорта объектов. Для 2012 и выше.

global proc xr_object_export() {
if (size(`ls -sl`) == 0) {
  confirmDialog -title "Error"
     -message "Nothing selected!"
     -button "OK" -defaultButton "OK"
     -icon "warning";
  error "Nothing selected";
}
$response = `confirmDialog -title "Confirm action"
       -message "Are you sure to export all selected objects?"
       -button "Yes" -button "No" -defaultButton "Yes"
       -cancelButton "No" -dismissString "No"
       -icon "question"`;
if ($response == "Yes") {
  string $exported_objects[] = `ls -sl`;
  print ("Selected: \n");
  print $exported_objects;
  print "\n";
  print ("Export:\n");
  int $i = 0;
  string $export_dir[] = `fileDialog2 -caption "Export selection"
           -fileMode 3
           -okCaption "OK"
           -cancelCaption "Cancel"`;
  if ($export_dir[0] == "") {
   error "Export canceled\n";
  } else if ($export_dir[0] != "Cancel") {
   for ($i; $i < size($exported_objects); $i++) {
    select $exported_objects[$i];
    //polyTriangulate -name $exported_objects;
    string $name = $export_dir[0] + "/" + $exported_objects[$i];
    file -exportSelected -type "X-Ray object" $name;
    print ($name + ".object\n");
   }
  }
  print ("Summary: " + size($exported_objects) + " file(s) exported" + "\n");
  // FIXME: undo
} else if ($response == "No") {
  error "Export canceled\n";
}
}

AEXRayMtlTemplate.mel
О нем вы читали выше.


//AEXRayMtlTemplate.melglobal proc AEXRayMtlTemplate( string $nodeName ) {
AEswatchDisplay $nodeName;
editorTemplate -beginScrollLayout;editorTemplate -beginLayout "Common Material Attributes" -cl off;
  editorTemplate -addControl "color";
  editorTemplate -addControl "transparency";
  editorTemplate -addControl "incandescence";
editorTemplate -endLayout;editorTemplate -beginLayout "Hardware Texturing" -cl off;
AEhardwareTextureTemplate $nodeName
  ("color transparency incandescence");
editorTemplate -endLayout;editorTemplate -beginLayout "X-Ray Material Attributes" -cl off;
  editorTemplate -addControl "xrayDoubleSide";
  editorTemplate -addControl "xrayEngineShader";
  editorTemplate -addControl "xrayCompilerShader";
  editorTemplate -addControl "xrayGameMaterial";
editorTemplate -endLayout;editorTemplate -addExtraControls;
editorTemplate -endScrollLayout;
}
 

Поправленный скрипт Страховида - boolean и деформер полигональной поверхности (http://www.amk-team.ru/forum/index.php?showtopic=5422&p=734386)

global proc strah_deform_n_cut() {string $dfc_window = `window -title "Strahovid" -menuBar true`;menu -label "Edit";
  menuItem -label "Undo" -command "Undo";
  menuItem -label "Redo" -command "Redo";
columnLayout;menu -label "Help" -helpMenu true;
  menuItem -label "Discussion"
    -command "showHelp -absolute \"http:\/\/www.amk-team.ru\/forum\/index.php?showtopic=5422\""
    ;
columnLayout;scrollLayout scrollLayout;
  columnLayout -adjustableColumn true;
   frameLayout -label "Deform & cut tool" -borderStyle "in";
    columnLayout -adjustableColumn true;
     floatSliderGrp -label "Vertex offset X: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 X;
     floatSliderGrp -label "Vertex offset Y: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 Y;
     floatSliderGrp -label "Vertex offset Z: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 Z;
    setParent ..;    columnLayout -adjustableColumn true;
     button -w 174 -h 26 -label "Deform" -command "dfc_deform";
     button -w 174 -h 26 -label "Cut" -command "dfc_cut";
     button -w 174 -h 26 -label "Close" -command ("deleteUI -window " + $dfc_window);
    setParent ..;showWindow $dfc_window;
}//////////////////////////////////////////////////////////////////////////
proc dfc_deform() {
string $list[] = `ls -sl -fl`;
string $item;
float $mX = `floatSliderGrp -q -v X`;
float $mY = `floatSliderGrp -q -v Y`;
float $mZ = `floatSliderGrp -q -v Z`;
for($item in $list) {
  move -r (rand(-$mX,$mX)) (rand(-$mY,$mY)) (rand(-$mZ,$mZ)) $item;
}
}//////////////////////////////////////////////////////////////////////////
proc dfc_cut() {
string $o1[] = `ls -sl`;
string $ob1 = $o1[0];
string $ob2 = $o1[1];
string $o2[] = `duplicate $o1`;
string $o5[] = `duplicate $ob1`;
string $ob3 = $o2[0];
string $ob4 = $o2[1];
polyNormal $ob3;
string $rez1[] = `polyBoolOp -op 3 $ob1 $ob2`;
string $rez2[] = `polyBoolOp -op 3 $ob3 $ob4`;
xform -cp $rez1 $rez2 $o5;
select $o5;
}
 

xr_tools.mel
Меню для вызова вышеуказанных скриптов.



global proc xr_tools() {global string $gMainWindow;
setParent $gMainWindow;menu -l "X-Ray Tools" -p MayaWindow -tearOff true xr_tools;menuItem -label "Apply XRay settings"
   -annotation "Apply XRay settings"
   -command "xr_startup_scene_init"
   xr_startup_scene_init;menuItem -divider true;menuItem -label "Multiple export"
   -subMenu true
   -tearOff true
   ;menuItem -label "Export objects"
   -annotation "Export selected objects"
   -command "xr_object_export"
   xr_object_export;setParent -m ..;//////////////////////////////////////////////////////////////////////////
menuItem -label "XRay material..."
   -subMenu true
   -tearOff true
   ;
menuItem -divider true;////
// Удаление неиспользуемых Shading nodes. Сюда вынесено лишь для удобства.
//
menuItem -label "Delete unused shading nodes"
   -command "MLdeleteUnused"
   MLdeleteUnused;setParent -m ..;///////////////////////////////////////////////////////
menuItem -divider true;menuItem -label "About..."
   -subMenu true
   ;menuItem -label "Discussion"
   -command "showHelp -absolute \"http:\/\/www.amk-team.ru\/forum\/index.php?showtopic=5422\""
   ;   setParent -m ..;
}
 

userSetup.mel
Пользовательские установки. Здесь - подгрузка скриптов.



///
// Инициализация UI
//
evalDeferred -lowestPriority xr_tools;
///
// xr_startup_scene_init.mel выполняется каждый раз при создании новой сцены,
// в т.ч. сразу после загрузки Maya. Раскомментируйте, если нужно.
//
//scriptJob -event NewSceneOpened xr_startup_scene_init;
 

 

http://rusfolder.com/37228626

 

Ссылка на актуальную версию скрипта XrayToolMaya

 

В: Как правильно сообщать об ошибках?
О: 1) Сообщите версию Майи и  используемых плагинов.
2) Подробно опишите свои действия и цель этих действий.
3) Приведите лог из окна вывода (output window) и редактора скриптов (script editor).
4) В тяжелых случаях не помещает выложить сцену.
----
В: Пытаюсь экспортировать скелетную анимацию пысовским плагом, но он выдает ошибку:
XR-Error: Can't export animation with FPS!=30.f
XR-Error: Export failed.
О: В XRay принята частота 30 кадров в секунду. Измените настройки: http://images.gameru.net/image/direct/401a3efaa2.png

 

Изменено пользователем vadyan
  • Нравится 1
  • Полезно 1

Захоти тихо, проси мало, уходи быстро.

 

Заходи не бойся - уходя не плачь

Ссылка на комментарий

На майу 8.5 какие нить плагины надо ставить?

Ато я конвертнул ПМ в .skls бардаком, импортирую в майу, а он пишет, что неверное расширение..

Ссылка на комментарий
Как в майе или максе ( есть и то и то ) сделать террейн? Как сделать для террейна текстуру?

 

Пользуйся гуглом товарищ. ТУт за тебя никто не будет искать.

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий
На майу 8.5 какие нить плагины надо ставить?

Ато я конвертнул ПМ в .skls бардаком, импортирую в майу, а он пишет, что неверное расширение..

почитай тут

Invalid face found. Removed.

Ссылка на комментарий

Подскажите, пожалуйста, как моделировать дорогу в 3Д редакторе?

Мне нужно сделать тропинки на уровне. Они не должны быть прямыми. Что для этого надо сделать?

Я попробовал делать инструментом split poligons. Разделил полигоны предполагаемой линией дороги. Но появился вопрос. Как сделать ширину дороги? Чтобы ширина выдерживалась на всей дороге и была такой, какой надо?

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий
Подскажите, пожалуйста, как моделировать дорогу в 3Д редакторе?

Мне нужно сделать тропинки на уровне. Они не должны быть прямыми. Что для этого надо сделать?

Я попробовал делать инструментом split poligons. Разделил полигоны предполагаемой линией дороги. Но появился вопрос. Как сделать ширину дороги? Чтобы ширина выдерживалась на всей дороге и была такой, какой надо?

В каком именно 3д-редакторе? Какую конкретно дорогу? Ты бы хоть скринов показал, что-ли, чтобы понятно было что ты там задумал...

Invalid face found. Removed.

Ссылка на комментарий
В каком именно 3д-редакторе? Какую конкретно дорогу? Ты бы хоть скринов показал, что-ли, чтобы понятно было что ты там задумал...

Если есть возможность, то лучше объяснить, как это делается в Майе. Если это поможет в помощи, то вот скрин одной из локаций, которую я делаю. На ней просто необходимо сделать тропинки. Большие дороги не нужны. А вот тропинки по типу, как в Рыжем Лесу в ЧН, были бы очень кстати. Они нужны и в долине и на горах.

 

http://i081.radikal.ru/0901/57/6b96a36771b8.jpg

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий
Если есть возможность, то лучше объяснить, как это делается в Майе. Если это поможет в помощи, то вот скрин одной из локаций, которую я делаю. На ней просто необходимо сделать тропинки. Большие дороги не нужны. А вот тропинки по типу, как в Рыжем Лесу в ЧН, были бы очень кстати. Они нужны и в долине и на горах.

 

http://i081.radikal.ru/0901/57/6b96a36771b8.jpg

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

Урок из вики

Invalid face found. Removed.

Ссылка на комментарий

tambovski привет ;)

Kostya V ты по-видимому, под "не прямой дорогой" имел ввиду профиль дороги?

Сделай Extrude поликов вдоль кривой, получится немного косячно - это тебе не Рино, после подправишь ручками.

 

или

 

используй деформатор Wire Tool

Изменено пользователем zdfnuk
Ссылка на комментарий
используй деформатор Wire Tool

А где этот инструмент располагается в Майе?

 

Урок из вики

В начале этого урока говорится:

Итак: Допустим у нас имеется готовый террейн. На нём смоделена дорога

 

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

Изменено пользователем Kostya V

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

 

А в Майе экструда нету? Нужные полигоны выделяешь и экструдируешь.

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий

2 Kostya V

Почитай какой-нибудь урок по лоуполи моделлингу для Майи. Лично я ей не пользуюсь и ничего, соответственно, по ней подсказать не могу. Но, думаю, инструмент для того, чтобы полигоны резать там есть.

Изменено пользователем tambovski

Invalid face found. Removed.

Ссылка на комментарий
А где этот инструмент располагается в Майе?

 

Animation -> Create Deformers -> Wire Tool (И не забудь про Dropoff locator, рядышком)

 

Результат: кривая контролирует поверхность

 

NgRbCrN3JJ.gif

 

PS На торрентсру книг по Майке полно

Изменено пользователем zdfnuk
Ссылка на комментарий
Animation -> Create Deformers -> Wire Tool (И не забудь про Dropoff locator, рядышком)

Результат: кривая контролирует поверхность

PS На торрентсру книг по Майке полно

 

На сколько я понял, он хочет сделать что-то вроде этого:

6fc0df7cd553t.jpg

:)

В максе я это сделал за 1 минуту с помощью Cut и Chamfer :)

Изменено пользователем tambovski

Invalid face found. Removed.

Ссылка на комментарий
На сколько я понял, он хочет сделать что-то вроде этого:

Да, я хочу сделать именно это. В Майе я пробовал пользоваться инструментом split. Он тоже разрезает полигоны. Но я не понял, как выдержать ширину дороги.

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

А инструмент Chamfer что делает?

Может расскажешь, как сделать это в Максе? Я по аналогии попробую сделать в Майе.

 

Вобщем, я понял, как можно сделать тропинку шириной 1м. Немного приходится поизвращаться, зато результат тот, который надо. Я делаю вот так:

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

 

http://s44.radikal.ru/i106/0901/a7/ce202c132dcf.jpg

 

Способ, конечно, извращенный. Но как сделать по-другому я не знаю.

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

Изменено пользователем Kostya V

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

Offset Edge Loop Tool -> Split Type = Absolute, если тропинка одна непрерывная линия

или

1 сегментый Bevel, если тропинка с X- или T- образным перекрёстком, как на картинке tambovski

gIVfvTwX6R.gif

 

Я читал, что полигоны должны быть всегда четырехугольными.

Имеет значение для сабдивов. В игре всё равно, всё будет треугольниками... хотя триангуляцию лучше сделать вручную.

 

PS И всё же, если тропинка плоская, зачем делать её геометрией?

 

PPS Желание почитать книжки ещё не возникло?

 

PPPS Как советовал tambovski почитай книжки по lowpoly моделированию - для Maya например "Modeling, UV Mapping, and Texturing 3D Game Weapons"

Изменено пользователем zdfnuk
Ссылка на комментарий
PS И всё же, если тропинка плоская, зачем делать её геометрией?

 

PPS Желание почитать книжки ещё не возникло?

 

PPPS Как советовал tambovski почитай книжки по lowpoly моделированию - для Maya например "Modeling, UV Mapping, and Texturing 3D Game Weapons"

Потому что прочитал, что так надо. Можешь рассказать, как сделать дорогу с помощью текстур в Майе?

Я завис с этим вопросом уже конкретно. Вся работа встала. Плохо у меня с текстурами выходит. Книги читаю, которые нахожу. Спасибо за еще одну ссылку. Обязательно прочту.

Изменено пользователем Kostya V

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий
как сделать дорогу с помощью текстур в Майе?

Рисовать в Maya можно (Rendering->Texturing->3D Paint Tool), но не нужно :)

 

Для рисования прямо на объекте лучше подходят: Zbrush, Modo или BodyPaint 3D (есть слои как в Photoshop'е)

Для создания UV-разверток: Unfold 3D или UVLayout

Для создания карт нормалей, бампа, параллакса: xNormal (бесплатен).

 

Все вышеназванные программы, за исключением последней, есть на уже указанном выше торрент-трекере.

Изменено пользователем zdfnuk
Ссылка на комментарий

Чтобы сделать дорогу текстурой воспользуйся методом Render-2-Texture из модели с вырезанной тропинкой (думаю в Майе есть аналог такой замечательной штуки). Полученную текстуру можешь наложить на упрощенную модель без вырезанной тропинки. ССылку на урок создания такой текстуры см. выше.

з.ы. а экспортер майевский вроде только треугольники понимает, другие полигоны он не "кушает"

Изменено пользователем tambovski

Invalid face found. Removed.

Ссылка на комментарий
з.ы. а экспортер майевский вроде только треугольники понимает, другие полигоны он не "кушает"

Я может до конца не понимаю о чем речь. Но уже сделал две локации. И на них полигоны на террейне были четырехугольными. Специально я не переводил их в треугольники. Речь об этом?

Изменено пользователем Kostya V

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...