Форум 2D Аниматор


Вернуться   Форум 2D Аниматор > Moho (Anime Studio) > Общая Дискуссия > Скрипты

Важная информация

Скрипты Здесь все о скриптах Lua для программы Anime Studio Pro (Moho)

Ответ
 
Опции темы
Старый 11.10.2011, 13:10   #1
dimamult
Местный
 
Регистрация: 29.03.2010
Сообщений: 2,076
Сказал(а) спасибо: 1,892
Поблагодарили 2,557 раз(а) в 1,012 сообщениях
dimamult на пути к лучшему
По умолчанию Научите грамотно ставить скрипты на 8

По старинке привинтив скрипты получил немного неверное отображение инструментов.Т.е. в 8 появилось иное отображение инструментария -при выборе слоя отображаются только доступные для работы инструменты, но привинченые плагины висят всегда , к тому же не работают прописаные самостоятельно хоткеи
Хотелось бы узнать как идеально установить и настроить всё по новым принципам .
Заранее благодарю.
dimamult вне форума   Ответить с цитированием
Старый 12.10.2011, 04:42   #2
Stan
Администратор
 
Аватар для Stan
 
Регистрация: 29.12.2007
Адрес: MA
Сообщений: 1,720
Сказал(а) спасибо: 1,266
Поблагодарили 3,665 раз(а) в 839 сообщениях
Stan скоро придёт к известностиStan скоро придёт к известности
По умолчанию

Цитата:
Сообщение от dimamult Посмотреть сообщение
не работают прописаные самостоятельно хоткеи
Это отдельная тема. Проследи, чтобы файл _tool_list.txt был "чистеньким" - чтоб одни и те же инструменты не прописывались дважды, чтоб троеточие (вернее, три точки) было обязательно прописано инструментам, не имеющим хоткея. Чтоб кириллические буквы, похожие на латинские, не затесались (Т, Р, О и им подобные, а особенно C). Так же нужно следить, чтобы каждый инструмент был правильно прописан как "tool" или "button" - в зависимости от его функционала. И еще чтобы не было пробелов в конце строк. Вообще для работы с такими файлами нужно держать у себя на компе какой-нибудь "программистский" текстовый редактор (лично я люблю Notepad++).

Далее, по поводу "спрятывания" инструмента. Эта фишка находится в коде самого инструмента. Для ее поддержки старым скриптам нужно прописать довольно простенькую (как правило) функцию IsRelevant - которая выдает ответ на вопрос, нужен ли инструмент в данном контексте, или нет.

Рассмотрим на примере - сделаем чтобы красиво себя вел старый добрый инструмент lm_peak. Выглядеть это будет так:

В код инструмента добавляем новую функцию:

Код:
function LM_Peak:IsRelevant(moho)
    local mesh = moho:Mesh()
    if (mesh == nil) then
        return false
    end
    return true
end
Вот и всё! Пересохраним файл - и теперь этот инструмент будет красиво прятаться вместе с остальными инструментами рисования. Точно таким же образом можно поступить и с lm_smooth.

Для более сложных инструментов эту функцию бывает нужно делать чуток поумнее - подставлять дополнительные условия проверки релевантности. Но скрипты по сути своей - простой текст, и вы можете скопировать эту функцию из соседнего нового инструмента. Например, вот так она выглядит в новом lm_add_point.lua:

Код:
function LM_AddPoint:IsRelevant(moho)
    if (moho:DisableDrawingTools()) then
        return false
    end
    local mesh = moho:Mesh()
    if (mesh == nil) then
        return false
    end
    return true
end
Как видите, здесь еще добавлена дополнительная проверка - включена ли опция "Рисовать только в нулевом кадре". Если вы просто возьмете и скопируете эту функцию в другой инструмент, то он у вас после этого станет прятаться при тех же условиях, при которых прячется lm_add_point. (Не забывайте только при копировании подменять имя "родителя" функции - в данном случае это "LM_AddPoint", и это нужно подменить вашим ScriptName).

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

P.S. Для пущей надежности, к посту прикрепляю файл с доработанными lm_peak и lm_smooth. Напомню, что чтобы заставить их работать как раньше (на клавиши P и M), нужно в _tool_list.txt прописать следующие строки:

Код:
button    lm_peak                P
button    lm_smooth            M
Вложения
Тип файла: zip lm_peak_and_smooth_for_asp8.zip (1.3 Кб, 41 просмотров)
Stan вне форума   Ответить с цитированием
Эти 8 пользователя(ей) сказали cпасибо за это полезное сообщение:
AlphaManiac (03.12.2011), BarbedFrog (12.10.2011), dimamult (12.10.2011), Gray_Man (12.10.2011), Noor (13.10.2011), Redbrush (12.10.2011), toonfamily (05.12.2011), РОМА ТАЙГИНЕЦ (12.10.2011)
Старый 12.10.2011, 12:44   #3
dimamult
Местный
 
Регистрация: 29.03.2010
Сообщений: 2,076
Сказал(а) спасибо: 1,892
Поблагодарили 2,557 раз(а) в 1,012 сообщениях
dimamult на пути к лучшему
По умолчанию

Stan aka Vodka, ещё раз спасибо за оперативный ответ
dimamult вне форума   Ответить с цитированием
Старый 03.12.2011, 01:14   #4
dimamult
Местный
 
Регистрация: 29.03.2010
Сообщений: 2,076
Сказал(а) спасибо: 1,892
Поблагодарили 2,557 раз(а) в 1,012 сообщениях
dimamult на пути к лучшему
По умолчанию

Stan aka Vodka, выручите ,пожалуйста, ещё вот с этим Loop Switches, тупик поскольку передрать не с чего ? как бы так сделать что б он выскакивал только на выбраном свиче?
+ плагины для растра Open in grimp , Reload image и List Source image уместны когда есть таковой на выбраном слое
ЗАРАНЕЕ СПАСИБО!!!!

---------- Добавлено в 21:14 ---------- Предыдущее сообщение было написано в 21:11 ----------

+ как убрать ужасную кнопку Character Wizard и бесполезную library ? или это уже много хочу ?
dimamult вне форума   Ответить с цитированием
Старый 03.12.2011, 05:58   #5
Stan
Администратор
 
Аватар для Stan
 
Регистрация: 29.12.2007
Адрес: MA
Сообщений: 1,720
Сказал(а) спасибо: 1,266
Поблагодарили 3,665 раз(а) в 839 сообщениях
Stan скоро придёт к известностиStan скоро придёт к известности
По умолчанию

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

Цитата:
Сообщение от dimamult Посмотреть сообщение
вот с этим Loop Switches, тупик поскольку передрать не с чего ?
Почему же не с чего? Есть замечательный инструмент lm_switch_layer!

Функция (кстати, раз уж мы учимся, то вообще-то правильно нужно называть ее не "функция", а "метод" ) будет выглядеть так:

Код:
function DR_loopSwitch:IsRelevant(moho)
    local switchLayer = moho:LayerAsSwitch(moho.layer)
    if (switchLayer) then
        return true
    end
    return false
end
Предельно простая логика - если данный слой является переключателем, то инструмент нужен. Иначе - не нужен.

Цитата:
Сообщение от dimamult Посмотреть сообщение
Open in grimp , Reload image и List Source image
Для растровых слоев дерем этот метод из инструмента lm_image_masking.

Для nh_open_in_gimp получаем:
Код:
function nh_open_in_gimp:IsRelevant(moho)
    local imageLayer = moho:LayerAsImage(moho.layer)
    if (imageLayer) then
        if (imageLayer:IsMovieLayer()) then
            return false
        else
            return true
        end
    end
    return false
end
Здесь немного хитрости - если слой растровый, то включена дополнительная проверка, является ли этот растровый слой видео-слоем. Врядли мы захотим открывать видео фотошопом, поэтому копируем как есть. Для List и Reload, конечно же, можно (и нужно) эту дополнительную проверку убрать. Пример для DR_ListSourceImage:
Код:
function DR_ListSourceImage:IsRelevant(moho)
    local imageLayer = moho:LayerAsImage(moho.layer)
    if (imageLayer) then
        return true
    end
    return false
end
Надеюсь не нужно повторять этот метод для инструмента nh_reload_image?
Не забывайте прописывать все добавляемые инструменты в файле _tool_list.txt!

Итак, мы знаем, что делает метод IsRelevant - он выдает false в ситуации, когда инструмент должен быть спрятан.

Другой метод, IsEnabled - один-в-один похож на него. Разница лишь в том, что он не прячет инструмент, а делает его неактивным, "сереньким".

А теперь контрольное задание (для тех, кто хочет поставить самому себе высший балл ): Возьмите инструмент nh_open_in_gimp, и скопируйте ему методы IsEnabled и IsRelevant из инструмента lm_image_masking, а затем видоизмените эти методы так, чтобы, если растровый слой является видео, то инструмент бы не прятался совсем, а лишь становился неактивным.
Решение (не торопитесь открывать, попробуйте решить сами!)

Код:
function nh_open_in_gimp:IsEnabled(moho)
    local imageLayer = moho:LayerAsImage(moho.layer)
    if (imageLayer) then
        if (imageLayer:IsMovieLayer()) then
            return false
        else
            return true
        end
    end
    return false
end

function nh_open_in_gimp:IsRelevant(moho)
    local imageLayer = moho:LayerAsImage(moho.layer)
    if (imageLayer) then
        return true
    end
    return false
end


___________________________________
Теперь об этом:
Цитата:
Сообщение от dimamult Посмотреть сообщение
как убрать ужасную кнопку Character Wizard и бесполезную library ?
Убрать их нельзя - скрипты к ним доступа не имеют, эти кнопки прописаны в самой проге. Но можно их сделать меньше - например такими:



Для этого в файле Strings.EN.txt (в папке Resources/Strings) находим следующие строки:
Цитата:
/Windows/MainLayer/CharacterWizard=Character Wizard
и
/Windows/MainLayer/Library=Library
Меняем их (соответственно) на:
Цитата:
/Windows/MainLayer/CharacterWizard=CW
и
/Windows/MainLayer/Library=L
Как я уже неоднократно упоминал, осторожнее с этим файлом! В чем не уверен - лучше не трогай, иначе прога может завалиться.
Stan вне форума   Ответить с цитированием
Эти 7 пользователя(ей) сказали cпасибо за это полезное сообщение:
dimamult (03.12.2011), Gray_Man (03.12.2011), napor (03.12.2011), Noor (03.12.2011), oges (03.12.2011), olerid (05.07.2012), РОМА ТАЙГИНЕЦ (03.12.2011)
Старый 03.12.2011, 14:57   #6
dimamult
Местный
 
Регистрация: 29.03.2010
Сообщений: 2,076
Сказал(а) спасибо: 1,892
Поблагодарили 2,557 раз(а) в 1,012 сообщениях
dimamult на пути к лучшему
По умолчанию

Цитата:
Сообщение от Stan aka Vodka Посмотреть сообщение
Как я уже неоднократно упоминал, осторожнее с этим файлом! В чем не уверен - лучше не трогай, иначе прога может завалиться.
вот потому я и терзаю вас )))
Да протупил с донорами , но это к лучшему про растр ответ более развёрнутый дали.
про контрольную IsEnabled - инструмент активен при определённых условиях ,в противном случае виден но серый ,т.е. не работает (это я успел научным тыком вчера заметить)
и IsRelevant - скрывает полностью инструмент из панели инструмента если не соответствует заданым условиям.

кнопки - маленькие мозолят глаза меньше.
вот оно счастье ))))


Хихи выполнив задание до просмотра , стёр лишнюю строку return true , поскольку она ,как мне казалось , относится к условию проверки видео . Думаю без базовых знаний програмирования все способны только передирать . Так что спасибо что вы есть )))

Последний раз редактировалось dimamult; 03.12.2011 в 18:17.
dimamult вне форума   Ответить с цитированием
Старый 03.12.2011, 19:04   #7
dimamult
Местный
 
Регистрация: 29.03.2010
Сообщений: 2,076
Сказал(а) спасибо: 1,892
Поблагодарили 2,557 раз(а) в 1,012 сообщениях
dimamult на пути к лучшему
По умолчанию

странно у меня инглиша не оказалось [Только зарегистрированные пользователи могут видеть ссылки. Нажмите Здесь для Регистрации] хотя прога на нём ...куда могли перепрятать?

---------- Добавлено в 15:04 ---------- Предыдущее сообщение было написано в 14:51 ----------

вот собственно настроенные плагины [Только зарегистрированные пользователи могут видеть ссылки. Нажмите Здесь для Регистрации] благодаря Stan aka Vodka ведут себя как родные )))
+ удалил те которые мне казались не полезными (если сравнивать с пакетом ля 6,2 их стало меньше)
+ удалил совсем раздел "special" поскольку все инструменты этой панели дублировались
+ настроил хоткеи таким же образом как они были у меня на 7 (наведите на инструмент, оставьте курсов в покое ,выскочит название инструмента и хоткей)


и всё же как удачно сократилось CharacterWizard=CW , у себя я поменяю буквы местами ,так полностью отобразиться ценность новшества.

Последний раз редактировалось dimamult; 02.07.2012 в 12:51.
dimamult вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение:
alex2050 (13.07.2012), Predel (12.07.2012)
Старый 03.12.2011, 19:26   #8
Noor
Супер-модератор
 
Аватар для Noor
 
Регистрация: 18.04.2007
Адрес: Планета Земля
Сообщений: 1,622
Сказал(а) спасибо: 1,115
Поблагодарили 1,730 раз(а) в 684 сообщениях
Noor на пути к лучшему
По умолчанию

А я думал чего оно не запускается а надо писать не тул а кнопка.
__________________
[Только зарегистрированные пользователи могут видеть ссылки. Нажмите Здесь для Регистрации]
Noor вне форума   Ответить с цитированием
Старый 03.12.2011, 20:50   #9
Stan
Администратор
 
Аватар для Stan
 
Регистрация: 29.12.2007
Адрес: MA
Сообщений: 1,720
Сказал(а) спасибо: 1,266
Поблагодарили 3,665 раз(а) в 839 сообщениях
Stan скоро придёт к известностиStan скоро придёт к известности
По умолчанию

Попытаюсь объяснить по-простому, что делают методы IsEnabled и IsRelevant. Когда ты совершаешь какое-нибудь действие, например добавляешь точки, выделяешь точки, или переходишь на другой слой, программа опрашивает инструменты, как бы задавая им вопросы - "ответь, будешь ли ты показываться здесь?" (IsRelevant), или "ответь, будешь ты активен сейчас, или нет?" (IsEnabled). То есть программа обращается к методам инструмента, а методы принимают решения и выдают ей ответ. Ответ true означает - "да, буду", ответ false - "нет, не буду". Какой прога получит ответ - так она с инструментом и поступит. А если метод в инструменте отсутствует - то она его и не трогает вовсе.



Цитата:
Сообщение от dimamult Посмотреть сообщение
странно у меня инглиша не оказалось
В восьмерке его нет, в восемь точка один есть. Держи, распакуй и положи его в папку Resources/Strings, должно работать.
Вложения
Тип файла: zip Strings.EN.zip (23.1 Кб, 34 просмотров)
Stan вне форума   Ответить с цитированием
Эти 3 пользователя(ей) сказали cпасибо за это полезное сообщение:
daos (03.12.2011), dimamult (03.12.2011), Gray_Man (02.07.2012)
Старый 28.03.2013, 12:36   #10
zbot
Новичок
 
Регистрация: 25.03.2013
Сообщений: 2
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
zbot на пути к лучшему
По умолчанию

Ну и где же теперь их достать? на мейле ссылки нерабочие =(
zbot вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 23:41. Часовой пояс GMT +5.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.