Всем разработчикам использующим Maya, посящается скрипт
- Автор темы Slavenin
- Дата создания
сделаем , ток вот добровольных тестеров, кроме тебя, нету нифига...
попробуй этой командой polyGeoSampler -dg -ids -fs -sf $mas_sf -su -cdo; просто построить поверхность по карте высот, может касяк в самой команде, кстати. у тебя какая версия Майки? Просто 2008 или 2008 Extension 2? Просто я тестировал на Extension 2.
как вариант попробуй сделать прелайт из менб и сравнить команду с той которая у меня написана.
да и еще что за полискульпт? о_О, чот я с тауким не сталкивался ни разу...
попробуй этой командой polyGeoSampler -dg -ids -fs -sf $mas_sf -su -cdo; просто построить поверхность по карте высот, может касяк в самой команде, кстати. у тебя какая версия Майки? Просто 2008 или 2008 Extension 2? Просто я тестировал на Extension 2.
как вариант попробуй сделать прелайт из менб и сравнить команду с той которая у меня написана.
да и еще что за полискульпт? о_О, чот я с тауким не сталкивался ни разу...
Всем привет и доброгов ремени суток!
Свершилось...
Я дописал скрипт до логического завершения первой версии, а именно прикрутил интерфейс. Все работает, проверял в Maya 2009 и Maya 2008 Extension 2.
Теперь небольшое описание.
Что из себя представляет карта высот, думаю зает каждый. В скрипте помимо нее используется карта разбиения. Это карта, нарисованная на основе карты высот, но содержащая только черный и белый цвет, белый соответствует местам, где необходимо получить подробное разбиение, как видите ничего сложного . В планах сделать, чтобы она генерировалась самостоятельно.
Далее, пока есть только два способа построения поверхности, прелайт и мой, если нужно можно добавить конвертирование дисплэйса в геометрию или еще какой, если есть предложения говорите. (2Skif, просьба, поподробнее про полискульпт)
Также пресутствует возможность сделать планр мэпинг, (если вы разбиваете простую ровную поверхность, то соверую сделать планар), не нужен он только если разбивается сложный объект с собственной разверткой. !!!Если у вас стоит Пунто свитчер - внимательно наблюдайте за введенной осью планара! Если ввести "z" и нажать Enter, то на выходе получим "я", что приведет к ошибке!!!
Вроде все объяснил, если что не понятно, почитайте посты выше, там многое обговорено, в том числе есть пример карты высот и карты разбиения, если все-равно не понятно или возникают ошибки в работе скрипта, просьба писать приводя полностью текст ошибки.
скачть можно здесь http://up.li.ru/?id=464996;%CC%E5%E3%E0%F1%EA%F0%E8%EF%F2_%CF%EE%EB%ED%EE%F1%F2%FC%FE.rar
PS АГРОМЕННАЯ ПРОСЬБА: люди проявите активность, а то я не могу понять нужно это кому али нет!?!?!?
Свершилось...
Я дописал скрипт до логического завершения первой версии, а именно прикрутил интерфейс. Все работает, проверял в Maya 2009 и Maya 2008 Extension 2.
Теперь небольшое описание.
Что из себя представляет карта высот, думаю зает каждый. В скрипте помимо нее используется карта разбиения. Это карта, нарисованная на основе карты высот, но содержащая только черный и белый цвет, белый соответствует местам, где необходимо получить подробное разбиение, как видите ничего сложного . В планах сделать, чтобы она генерировалась самостоятельно.
Далее, пока есть только два способа построения поверхности, прелайт и мой, если нужно можно добавить конвертирование дисплэйса в геометрию или еще какой, если есть предложения говорите. (2Skif, просьба, поподробнее про полискульпт)
Также пресутствует возможность сделать планр мэпинг, (если вы разбиваете простую ровную поверхность, то соверую сделать планар), не нужен он только если разбивается сложный объект с собственной разверткой. !!!Если у вас стоит Пунто свитчер - внимательно наблюдайте за введенной осью планара! Если ввести "z" и нажать Enter, то на выходе получим "я", что приведет к ошибке!!!
Вроде все объяснил, если что не понятно, почитайте посты выше, там многое обговорено, в том числе есть пример карты высот и карты разбиения, если все-равно не понятно или возникают ошибки в работе скрипта, просьба писать приводя полностью текст ошибки.
скачть можно здесь http://up.li.ru/?id=464996;%CC%E5%E3%E0%F1%EA%F0%E8%EF%F2_%CF%EE%EB%ED%EE%F1%F2%FC%FE.rar
PS АГРОМЕННАЯ ПРОСЬБА: люди проявите активность, а то я не могу понять нужно это кому али нет!?!?!?
Почти написал автоматическую генерацию карты разбиения (принцип прост, создается копия исходного фэйса на который наложена карта высоты, затем он разбивается на очень мелкую сетку, происходит анализ точек на нечерность и затем перекрашивание фэйса, соответствующего точке в белый цвет ч помощью 3dPaintTool), но возникла проблема следующего содержания: когда активируется 3dPaintTool Flood установлен как All Faces, и я никак не могу выцепить нужные параметры чтобы это изменить. Для автоматической генерации карты, нужно чтобы параметр был установлен как SelectedFaces. Поковырялся в менюшках нашел меню 3dPaintTool, только вот не могу разобраться, каким образом действует кнопка если для нее не задан флаг -command, и точно также не могу найти место в котором при нажатии на кнопку Flood запрашивалось бы значение Flood( All Faces или SelectedFaces). Если кто разбирается хэлп!
файл находится в папке Maya2009\scripts\others\art3dPaintProperties.mel
часть кода менюшки:
<...>
proc art3dCreateFloodFrame(
string $parent
)
//
// Description:
// Create a 3d paint Flood options UI.
//
{
setUITemplate -pushTemplate OptionsTemplate;
setParent $parent;
columnLayout;
// Flood Color.
colorSliderGrp -label (uiRes("m_art3dPaintProperties.kFloodColor"))
-annotation (uiRes("m_art3dPaintProperties.kFloodColorAnnot"))
art3dFloodColorSlider;
floatSliderGrp -field true -label (uiRes("m_art3dPaintProperties.kFloodOpacity"))
-annotation (uiRes("m_art3dPaintProperties.kFloodOpacityAnnot"))
-precision 4
-min 0.0 -max 1.0
-step 0.05
art3dFloodOpacitySlider;
separator -h 15 -style "none";
// Flood Buttons.
rowColumnLayout -nc 2
-cs 1 45
-cw 1 120 -cs 2 40
-cw 2 120;
button -label (uiRes("m_art3dPaintProperties.kFloodPaint"))
-width 120
-annotation (uiRes("m_art3dPaintProperties.kFloodPaintAnnot"))
art3dFloodPaintButton; // Flood Paint
button -label (uiRes("m_art3dPaintProperties.kFloodErase"))
-width 120
-annotation (uiRes("m_art3dPaintProperties.kFloodEraseAnnot"))
art3dFloodEraseButton; // Flood Erase
setParent ..;
separator -h 5 -style "none";
// Flood Option.
radioButtonGrp -nrb 2 -sl 1
-label (uiRes("m_art3dPaintProperties.kFlood"))
-label1 (uiRes("m_art3dPaintProperties.kAll"))
-label2 (uiRes("m_art3dPaintProperties.kSelectedFaces"))
-annotation (uiRes("m_art3dPaintProperties.kFloodingOptionAnnot"))
art3dFloodOption;
setParent ..;
setUITemplate -popTemplate;
}
<...>
// =======================================================
// Main Procedure.
// =======================================================
global proc art3dPaintProperties()
{
source "art3dPaintCallback.mel";
source "art3dPaintValues.mel";
setUITemplate -pushTemplate DefaultTemplate;
string $parent = `toolPropertyWindow -q -location`;
setParent $parent;
columnLayout -adj true art3dPaint;
// Brush options.
frameLayout -label (uiRes("m_art3dPaintProperties.kBrush"))
-collapsable true -collapse false
art3dBrushFrame;
// Create brush option menu.
art3dCreateBrushFrame("art3dBrushFrame");
setParent ..;
// Color options.
frameLayout -label (uiRes("m_art3dPaintProperties.kColorOptions"))
-collapsable true -collapse false
art3dColorFrame;
// Create the color options.
art3dCreateColorFrame( "art3dColorFrame" );
setParent ..;
// Flood options.
frameLayout -label (uiRes("m_art3dPaintProperties.kFloodOptions"))
-collapsable true -collapse false
art3dFloodFrame;
// Create the Flood options.
art3dCreateFloodFrame( "art3dFloodFrame" );
setParent ..;
<...>
файл находится в папке Maya2009\scripts\others\art3dPaintProperties.mel
часть кода менюшки:
<...>
proc art3dCreateFloodFrame(
string $parent
)
//
// Description:
// Create a 3d paint Flood options UI.
//
{
setUITemplate -pushTemplate OptionsTemplate;
setParent $parent;
columnLayout;
// Flood Color.
colorSliderGrp -label (uiRes("m_art3dPaintProperties.kFloodColor"))
-annotation (uiRes("m_art3dPaintProperties.kFloodColorAnnot"))
art3dFloodColorSlider;
floatSliderGrp -field true -label (uiRes("m_art3dPaintProperties.kFloodOpacity"))
-annotation (uiRes("m_art3dPaintProperties.kFloodOpacityAnnot"))
-precision 4
-min 0.0 -max 1.0
-step 0.05
art3dFloodOpacitySlider;
separator -h 15 -style "none";
// Flood Buttons.
rowColumnLayout -nc 2
-cs 1 45
-cw 1 120 -cs 2 40
-cw 2 120;
button -label (uiRes("m_art3dPaintProperties.kFloodPaint"))
-width 120
-annotation (uiRes("m_art3dPaintProperties.kFloodPaintAnnot"))
art3dFloodPaintButton; // Flood Paint
button -label (uiRes("m_art3dPaintProperties.kFloodErase"))
-width 120
-annotation (uiRes("m_art3dPaintProperties.kFloodEraseAnnot"))
art3dFloodEraseButton; // Flood Erase
setParent ..;
separator -h 5 -style "none";
// Flood Option.
radioButtonGrp -nrb 2 -sl 1
-label (uiRes("m_art3dPaintProperties.kFlood"))
-label1 (uiRes("m_art3dPaintProperties.kAll"))
-label2 (uiRes("m_art3dPaintProperties.kSelectedFaces"))
-annotation (uiRes("m_art3dPaintProperties.kFloodingOptionAnnot"))
art3dFloodOption;
setParent ..;
setUITemplate -popTemplate;
}
<...>
// =======================================================
// Main Procedure.
// =======================================================
global proc art3dPaintProperties()
{
source "art3dPaintCallback.mel";
source "art3dPaintValues.mel";
setUITemplate -pushTemplate DefaultTemplate;
string $parent = `toolPropertyWindow -q -location`;
setParent $parent;
columnLayout -adj true art3dPaint;
// Brush options.
frameLayout -label (uiRes("m_art3dPaintProperties.kBrush"))
-collapsable true -collapse false
art3dBrushFrame;
// Create brush option menu.
art3dCreateBrushFrame("art3dBrushFrame");
setParent ..;
// Color options.
frameLayout -label (uiRes("m_art3dPaintProperties.kColorOptions"))
-collapsable true -collapse false
art3dColorFrame;
// Create the color options.
art3dCreateColorFrame( "art3dColorFrame" );
setParent ..;
// Flood options.
frameLayout -label (uiRes("m_art3dPaintProperties.kFloodOptions"))
-collapsable true -collapse false
art3dFloodFrame;
// Create the Flood options.
art3dCreateFloodFrame( "art3dFloodFrame" );
setParent ..;
<...>
Ну вот я и победил автоматическую генерацию карты разбиения )) (какой я модожец! ))) Инструкция по пользованию встроена в скрипт в двух вариантах: на транслите и на русском. Все просто читаем и пользуемся, не забываем комментировать, если что не работает Проверял в Maya 2009 и Maya 2008 Extension 2, ошибок не было. Удобно пользоваться поместив скрипт на полку.
скачать можно здесь http://up.li.ru/?id=466344;Megascript.rar
скачать можно здесь http://up.li.ru/?id=466344;Megascript.rar
Исправлена недоработка с генерацией карты разбиения http://up.li.ru/?id=466556;Megascript.rar
поправил касяк с назначением текстуры http://depositfiles.com/files/volnz018f
исправил еще ошибку http://depositfiles.com/files/qozlgv3r2