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

Моделирование в 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

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

 

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

Ссылка на комментарий
Поделиться на других сайтах

Рекомендую использовать конвертер г-на Бардака, там с размерами костей, привязкой меша и прочим все в порядке

 

Конвертер от бардака делает .objekt файлы, а для макса нужно .SMD поэтому для ogf2smd тут альтернативы нету.

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

Теперь другая проблема, у меня почемуто после импорта в макс модели, только 32 кости персонажа имеют UV координаты соответственно только они и экспортируются что делать с остальными кто то может подсказать? Прошу прощения если нубские вопросы задаю 3D редакторами занялся совсем недавно.

Ссылка на комментарий
Поделиться на других сайтах

Конвертер от бардака делает .objekt файлы, а для макса нужно .SMD поэтому для ogf2smd тут альтернативы нету.

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

Теперь другая проблема, у меня почемуто после импорта в макс модели, только 32 кости персонажа имеют UV координаты соответственно только они и экспортируются что делать с остальными кто то может подсказать? Прошу прощения если нубские вопросы задаю 3D редакторами занялся совсем недавно.

*.object файл ты можешь открыть в СДК и сохранить в формат OBJ который воспринимется максом. Либо второй вариант: установить Maya и конвертировать в макс из нее (есть хороший плагин Okino Polytrans для макса и майки для создания пайплайна между ними)

Масштабировать кости полученные ogf2smd нельзя, используй методику описанную Майком.

По твоей новой проблеме: огф2смд некоторые кости действительно не привязаны (не имеют ни одного вертекса), а так же имеют привязку модификатором Skin (в то время как плагин экспорта в СДК воспринимает только Physique). Есть, конечно, выход - воспользоваться плагином для макс Skin2Physique, но возникает проблема в привязке (Rigid вместо требуемой Doformable) и тэ дэ и тэ пэ :) Вобщем, в любом случае, скелет после огф2смд будет кривой и стандартные анимки на нем проигрываться будут некорректно. Если очень нужно, могу поискать дома в недрах моего жесткого диска лежал доработанный xStream' ом ogf2smd, который конвертирует скелет как надо.

Вобщем, самый оптимальны путь: установить майку и пользоваться утилитами Бардака.

 

......

 

и раз уж тут собрались моделлеры, знакомые с утилитами Бардака, спрошу:

 

Каким образом можно импортировать *.skl анимацию в Maya? Пробовал и выделять скелет, меш персонажа, меш+скелет и через импорт - не работает. Пробовал и через Trax Editor - безрезультатно. WTF, кто знает? :)

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо за советы. По поводу "Если очень нужно, могу поискать дома в недрах моего жесткого диска лежал доработанный xStream' ом ogf2smd, который конвертирует скелет как надо". Поройся если не трудно :) Майку поставил, и я от нее в шоке, даже букварь по ней достал он уже запылился у меня, радует что с 4-й версии мало что изменилось в интерфейсе. Интерсно что после экспорта из майки не сохраняются настройки костей приходится в актор едиторе потом настривать массу костей и т.д

 

По поводу твоего вопроса, я так далеко еще не лазил и с анимацией пока вообще не занимался так что в этом не помогу, опыта маловато :unsure:

Изменено пользователем PseudoStalker
Оверквотинг
Ссылка на комментарий
Поделиться на других сайтах

Вот, вроде, нашел доработанный Стримом ogf2smd ТЫНЦ!

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

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

to tambovski

 

Скачал, теперь обясните пожалуйста как оно работает, стандартный метод не работает переименовать в "hud" и нажать батник.

Ссылка на комментарий
Поделиться на других сайтах

to tambovski

 

Скачал, теперь обясните пожалуйста как оно работает, стандартный метод не работает переименовать в "hud" и нажать батник.

В батнике меняешь название файла и запускаешь. Либо через командную строку: ogf2smd.exe название_конвертируемого_файла

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

В батнике меняешь название файла и запускаешь. Либо через командную строку: ogf2smd.exe название_конвертируемого_файла

 

 

Спасибо заработало :)

Версия похожа на ogf2smd3 разница только в ориентации модели она действительно правильная. Кости большие и привязка к сожалению также не у всех имеется :( Буду копать через майку и утилиты от бардака.

Ссылка на комментарий
Поделиться на других сайтах

Конвертер от бардака делает .objekt файлы, а для макса нужно .SMD поэтому для ogf2smd тут альтернативы нету.
у него есть плагин для майки 8.5 или 2008, открывает прямо ogf (оружие во всяком случае) в макс перекидывается через FBX формат, последнюю версию у автодеска скачать тока, благо теперь хозяин у всех программ один :) и перекидывать данные между ними стало проще http://usa.autodesk.com/adsk/servlet/index...amp;id=10775855

 

только 32 кости персонажа имеют UV координаты соответственно только они и экспортируются что делать с остальными кто то может подсказать?
честно говоря меня ставит эта фраза в полный тупик, кости, то бишь скелет персонажа это абстракция, то что в максе отображается как кость, это хелп-объект, на подобии point или dumme. а UV-координаты это атрибут геометрического меша, описывающие как каждый треугольник сетки расположен на текстуре

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

чем ближе к эпицентру - тем полезнее для здоровья
Ссылка на комментарий
Поделиться на других сайтах

у него есть плагин для майки 8.5 или 2008, открывает прямо ogf (оружие во всяком случае) в макс перекидывается через FBX формат, последнюю версию у автодеска скачать тока, благо теперь хозяин у всех программ один :) и перекидывать данные между ними стало проще http://usa.autodesk.com/adsk/servlet/index...amp;id=10775855

 

Подробнее можно про прямое открывание огф майкой?

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий
Поделиться на других сайтах

с плагином для майки от бардака, Майка импортирует любые .ogf и .object

СВОБОДА - АНАРХИЯ

Ссылка на комментарий
Поделиться на других сайтах

с плагином для майки от бардака, Майка импортирует любые .ogf и .object

 

Хм. А где его взять? В комплекте converter_25aug2008 написано в ридми что плагин включён а самого плагина нету. Если у тебя есть не зальёшь?

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий
Поделиться на других сайтах

плагин находится в финальной версии утилит от бардака за октябрь.

вот ссылка http://stalkerin.gameru.net/modules.php?na...ned&lid=288

СВОБОДА - АНАРХИЯ

Ссылка на комментарий
Поделиться на других сайтах

Плагин для майки идет в комплекте с конвертером. Там же написано что он способен и анимацию импортировать. Кто знает КАК ее импортировать-то? Неужели не пробовал никто?

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

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

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

 

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

 

to tambovski

 

Я пробовал но у меня ничего не получилось, вылазит ошибка, мне кажется что проблема в колличестве памяти, у бардака сказано что для импорта анимации требуется больше 2Gb оперативной памяти.

Ссылка на комментарий
Поделиться на других сайтах

Я пробовал но у меня ничего не получилось, вылазит ошибка, мне кажется что проблема в колличестве памяти, у бардака сказано что для импорта анимации требуется больше 2Gb оперативной памяти.

Да не, память тут не при чем. Я пытаюсь отдельную skl анимацию импортировать, длиной она кадров двести. Зачем тут много памяти? Тем более у меня 3GB DDR-800... :)

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

плагин находится в финальной версии утилит от бардака за октябрь.

вот ссылка http://stalkerin.gameru.net/modules.php?na...ned&lid=288

 

Блин. Там на 2008 и на 8.5 А на 8.0 нету. Жалко.

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий
Поделиться на других сайтах

Там ниже ссылка на архив в нем есть версия 11.2 также есть стэнд э лон версия конвертора работает просто как программа, лежит там же.

 

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

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

Ссылка на комментарий
Поделиться на других сайтах

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

 

Сори непонял о чем речь. Да, от бардака нету перелазь на новую версию.

Ссылка на комментарий
Поделиться на других сайтах

Кто-нибудь, дайте ссылку на майю 8.5 и кряк!

торрентс.ру

Invalid face found. Removed.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

×
×
  • Создать...