Зачем?
Чтобы можно было "безболезненно" удалить его. При возникновении некоторых ситуаций с настройками интерфейса, работы инструментов и программы вцелом, бывает необходимо восстановить "рабочее" состояние функционала, и если нет сил/времени/желания/возможности сделать это стандартными путями, поможет удаление фала конфигурации, в котором записываются все модификации интерфейса, инструментов, горячих клавиш, и т.д.
Сразу замечу, что переустановка modo смысла не имеет, т.к. ресурсы в процессе работы не изменяются, а накопленные изменения всегда можно "зачистить".
Свои настройки Вы сможете хранить в отдельных файлах, это также облегчит "перенос" своих меню и горячих клавиш на новую версию программы.
Для начала немного общей информации
Файл конфигурации находится в User Folder (нажать в modo System > Open User Folder) и называется modo601.CFG (Для версии 601, разумеется ;) ).
Большинство начальных настроек хранится в папке с ресурсами программы (команда для открытия file.open "resource:").
Файл конфигурации создаётся или обновляется во время закрытия modo. Поэтому удалять его следует после этого.
При открытии modo загружает дополнительные файлы конфигурации из следующих мест (порядок соблюдён) - resource:, module:Scripts, user:Configs, user:Scripts, content:Kits. При загрузке данных с одинаковыми "ключами", "старые" заменяются "новыми".
Импортированные формы нельзя удалить, если потребуеся, из Form Editor, их надо удалять из файла конфигурации, редактируя его в блокноте. Если это вызовет трудности, то перед экспортом надо сохранить необходимые формы в отдельные файлы.
Приступим
Зачистка начинается с экспорта конфигурации (File > Config Export), но предварительно лучше сохранить конфиг в отдельной папке, на всякий случай. Экспортировать лучше в папку Configs.
Можно экспортировать сразу все фрагменты или по частям.
После экспорта закрываем modo и удаляем файл конфигурации, после чего запускаем modo и проверяем все ли нужные настройки загрузились из внешнего файла.
Если всё присутствует, то переходим к более детальному разбору, если есть желание, или же празднуем успех операции.)
Разбор
Для удобства манипуляций разными настройками, их лучше разнести по разным файлам.
Общие настройки
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<atom type="AppGlobal">
<atom type="LassoStyle">rectangle</atom>
<atom type="SelectionSize">4.5</atom>
<atom type="SnapState">0</atom>
</atom>
<atom type="Preferences">
<atom type="remapping.absInput">tablet</atom>
<atom type="remapping.enterAsTab">1</atom>
<atom type="remapping.doubleSided">1</atom>
<atom type="handles.toolHandleSel">advanced</atom>
<atom type="handles.toolHandleUnsel">advanced</atom>
<atom type="application.imageFormatName">PNG16</atom>
<atom type="application.defaultSubdivs">face</atom>
<atom type="remapping.openDialogsUnderMouse">1</atom>
</atom>
</configuration>
Горячие клавиши
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<atom type="InputRemapping">
<hash type="Region" key="view3DSelect+(contextless)/(stateless)+edge@s">@C:\Users\Oleg\AppData\Roaming\Luxology\Scripts\dj_LoopSlicePick.py</hash>
<hash type="Region" key="view3DSelect+(contextless)/(stateless)+edge@ctrl-alt-s">@C:\Users\Oleg\AppData\Roaming\Luxology\Scripts\dj_LoopSlicePick.py 0</hash>
<hash type="Region" key="view3DSelect+(contextless)/(stateless)+edge@alt-shift-s">@C:\Users\Oleg\AppData\Roaming\Luxology\Scripts\dj_LoopSlicePick.py 2</hash>
<hash type="Region" key=".global+(contextless)/(stateless)+.anywhere@shift-backspace">@edgeRemoveTrue.pl</hash>
<hash type="Region" key=".global+(contextless)/(stateless)+.anywhere@q">@makeCap.LXM</hash>
<hash type="Region" key="view3DOverlay3D+(contextless)/(stateless)+.anywhere@ctrl-shift-v">@pasteandselect.pl</hash>
<hash type="Region" key="view3DSelect+(contextless)/(stateless)+polygon@s">@sectionToPolys.py selMouse selAdd selKeep</hash>
<hash type="Region" key=".global+(contextless)/(stateless)+.anywhere@alt-backspace">edge.remove true</hash>
<hash type="Region" key=".global+(contextless)/(stateless)+.anywhere@q">@C:\Users\Oleg\AppData\Roaming\Luxology\Scripts\test.pl</hash>
<hash type="Region" key="shaderTree+(contextless)/(stateless)+.anywhere@e">@maskToggleVisibility.py</hash>
<hash type="Region" key=".global+(contextless)/(stateless)+.anywhere@n">@LayerNEW_groupIt.pl</hash>
</atom>
</configuration>
Формы
<?xml version="1.0"?>
<configuration>
<atom type="Attributes">
<hash type="Sheet" key="63329076329:sheet">
<atom type="Label">orient_UV_shel</atom>
<atom type="Style">inline</atom>
<hash type="InCategory" key="42919327293:sheet#tail">
<atom type="Ordinal">49.50.55</atom>
</hash>
<list type="Control" val="cmd @orient_UV_shell.py">
<atom type="Label">orient_UV_shell</atom>
<atom type="StartCollapsed">0</atom>
<atom type="Hash">11459076337:control</atom>
</list>
</hash>
</atom>
</configuration>
Остались вопросы? Спрашивайте, дополню тему.
Вторая часть - Укрощение форм. Работа с Form Editor, Forms в cfg, структура и построение интерфейса из Form и Layout.
26 Комментариев
Спасибо, отлично изложено. Я
Спасибо, отлично изложено. Я бы добавил для макострадальцев, что файл MODOXXX лежит по адресу:
~/Library/Preferences
и называется com.luxology.modo601 В Finder-e делаем Shift+Cmd+G, пишем путь ~/Library/Preferences, находим com.luxology.modo601 и бросаем его в помойку.
Плюс, есть хороший скрипт для раздельного сохранения конфигов и их последующего анализа:
# python
import sys
import lx
#get folder path
lx.command("dialog.setup", style="dir")
lx.command("dialog.title", title="Select Folder to Export Fragments")
lx.command("dialog.fileType", type="config")
lx.command("dialog.open")
#Save and remove layouts from Modo config
outputFile = lx.eval("dialog.result ?") + "/Layouts.cfg"
LXCMD ="config.export ["+outputFile+"] frame [0] [0]"
lx.eval(LXCMD)
#Save and remove Forms from Modo config
outputFile = lx.eval("dialog.result ?") + "/Forms.cfg"
LXCMD ="config.export ["+outputFile+"] attrs [0] [0]"
lx.eval(LXCMD)
#Save and remove Keys from Modo config
outputFile = lx.eval("dialog.result ?") + "/Keys.cfg"
LXCMD ="config.export ["+outputFile+"] keys [0] [0]"
lx.eval(LXCMD)
#Save and remove Preferences from Modo config
outputFile = lx.eval("dialog.result ?") + "/Prefs.cfg"
LXCMD ="config.export ["+outputFile+"] prefs [0] [0]"
lx.eval(LXCMD)
#Save and remove TOOL Presets from Modo config
outputFile = lx.eval("dialog.result ?") + "/Tool_Presets.cfg"
LXCMD ="config.export ["+outputFile+"] tools [0] [0]"
lx.eval(LXCMD)
#Save and remove Input mapping from Modo config
outputFile = lx.eval("dialog.result ?") + "/InputMapping.cfg"
LXCMD ="config.export ["+outputFile+"] inputs [0] [0]"
lx.eval(LXCMD)
#Save and remove Macros from Modo config
outputFile = lx.eval("dialog.result ?") + "/Macros.cfg"
LXCMD ="config.export ["+outputFile+"] macros [0] [0]"
lx.eval(LXCMD)
Я по запаре забыл, откуда его взял :( У автора и видео записано, как и чего - найду через какое-то время и добавлю.
Спасибо, отличное дополнение.
Спасибо, отличное дополнение. И отдельное спасибо, что выложил скрипт.
Как он называется?
Плохо, что автор не оставил описание, ссылку на видео и контактную информацию внутри скрипта. )
т.е. когда экспортишь он
т.е. когда экспортишь он потом из разных файлов подтягивает или как?
я вот почему так не делаю,
я вот почему так не делаю, потому что когда я сохранил так конфиг и удалил старый, у меня слетели все настройки форм: добавленные, измененные, короче все обнулилось, и поновой распихивать все как было желания нету.
Да, все оно есть в конфигах, никуда не делось, вот только подгрузиться как было изначально не захотело.
Sample wrote: т.е. когда
Да. Подтягивает все конфиги из указанных папок:
<import>resource:</import>
<import>module:Scripts</import>
<import>user:Configs</import>
<import>user:Scripts</import>
<import>content:Kits</import>
APEC wrote: я вот почему так
С формами есть особенности, о них ещё будет рассказано подробнее.
Тринадцатый Гость
С превеликим удовольствием :)))
Таки нашел, откуда спёр, лежало под носом: http://content.luxology.com/community/user_tutorials/timvazquez/modoconf..., архив 125 MiB
А изначально все обнаружилось тут: http://hellomodo.com/2012/12/essentials-config-files/ В самом посте у чувака там еще несколько ссылок на Люксовский форум, где обсуждались непонятки с модовским стилем конфигурирования. В принципе, все понятно, если разобраться - при запуске модо конкатенирует конфигурацию сессии из разных мест, какие найдет, и каковые можно самому добавлять директивой <import>путь к добру</import> Примерно как в нюке, гудини или еще где. Подвох кроется в том, что после закрытия, модо сбрасывает все, что насосало, или что юзер накрутил в процессе работы, в этот вот пресловутый файл MODO.xxx и при последующих запусках он становится основным конфигом, эталоном. Поэтому у людей и появляются пустые файлы конфигов после операции Save Config - нечего сохранять-то, изменения в основной файл.ххх модо уже внесла! сама! когда закрылась! :))) Люксам бы лучше было бы передусмотреть вариант в преференсах где-нибудь: сохраняться автоматически (для нормальных людей) или сохраняться принудительно (для шаловливых ручек). Но и так в принципе жить можно - хоть и не интуитивно, но в любой пайплайн мода встраивается без проблем. Уф-ф-ф :)))
В общий конфиг записываются
В общий конфиг записываются изменения и принудительный импорт. Импорт автоматический, при запуске модо, в общий конфиг не добавляется.
modoXXX.CFG не эталон, а текущее состояние, которое сравнивается с эталоном в ядре движка (и с внешними конфигами) при экспорте, и разница сохраняется.
Config Save сохраняет текущие изменения в modoXXX.CFG и они становятся приоритетными, так как записаны после команд импорта внешних конфигов.
У меня программка стоит - Process Killer, в любой момент можно снять модо, и конфиг не испортится, бывает полезно.
Тринадцатый Гость wrote: В
Спасибо, так гораздо понятнее.
Но я запутался - почему ж автоматический импорт не добавляется-то? Я проверял, что прописано во внешнем файле, потом становится частью modoXXX.CFG. Или мы про разное говорим? Лично мне показалось, что лучше вообще "File/Save (Import, Export) Config" избегать, а действовать примерно так, показано в видео. И изучать потихоньку пресловутый "эталон" - кучу *.cfg файлов, которые лежат в папке с программой, в Виндовс это кажется /Program Files/modo/Resources, в Макос - modo.app/Contents/Resources
Мучает один вопрос - откуда ты про все это узнал? :))) В смысле, это опыт или где-то это все официально задокументировано? Или я может Scripting_and_Commands.pdf не весь прочитал :)
Про автоимпорт. У меня Mario
Про автоимпорт. У меня Mario Beta Case во внешнем конфиге, в общем его нет. Если я изменю в его формах что-нибудь, то соответствующая форма в измененном виде будет в общем конфиге.
Импорт конфига лучше избегать, согласен. Лучше положить этот конфиг папку с конфигами и модо его подключит, без загрязнения общего конфига. Экспорт всё же нужен.
В ресурсах стоит покопаться, но сначала лучше покопаться в общем конфиге и понять логигу построения, архитектуру "формовой" системы. Вроде бы ничего сложного, но есть ньюансы, на которых можно впадать в ступор.
Хэлп по командам не весь прочитал, там больше пользы когда знаешь, что хочешь. Всё-таки не учебник, а скорее справочник.
Разбирался сам, по форм эдитору, по чужим скриптам, конфигам, китам. Конструировал своё из других частей, не во все вникая досканально. От общего к частному. Анализ и синтез, разбор и переосмысление.
Если есть желание разобраться, то надо следить за веткой скриптинга на офсайте, там живые примеры, с разбором, историей, а главное не большие.
Исчерпывающе :) Только ты уж
Исчерпывающе :) Только ты уж не забудь, ладно?
С формами есть особенности, о них ещё будет рассказано подробнее.
:)
Сделаю. Думаю, в таком же
Сделаю. Думаю, в таком же формате будет: Основы + разбор по вопросам.
701 както по странному
701 както по странному подхватывает конфиги...
Формы появились, а вот клавиши переназначенные не переназначились..., сделал импорт конфига клавиш, появились. Потом убираю папку с конфигами 601, т.к. не нужны и после этого пропадают переназначенные клавиши. Так и должно быть? Если да, то как импортнуть конфиг с клавишами чтоб потом его удалить можно было?
Конфиги в папке для конфигов
Конфиги в папке для конфигов лежали, когда импортил?
Конфиг сэйв после импорта делал?
1. когда импортил да, после
1. когда импортил да, после импорта убрал.
2. нет, но клавиши после импорта сразу переназначились даже без конфиг сейва. Потом закрыл/открыл и они все еще были. Потому конфиг сейв и не наживал, думал уже встроились. Потом перенес папку с конфигами 601 и клавиши ресетнулись на 701 дефолт.
Щас попробую импортнуть и конфиг сейвнуть.
Апдейт: попробовал, не помогло, сбрасываются назначенные клавиши. Импортнул конфиг клавиш - сонфиг сейв - вышел из программы - перенес папку в другое место - включаю прогу - клавиши дефолтные 701.
Вернул папку на место, все обратно появилось..., нужно както зашить переназначенные клавиши в сам конфиг модо 701... а хотя пусть так будет, меньшен мусора в конфиге.
Пробуй так: Папку из модо
Пробуй так:
Папку из модо убери, запусти модо, импортни что надо, закрой модо, открой и проверь.
кхм, так сработало,
кхм, так сработало, НО...
кинул папку в корень С: , зашел в модо, экспортнул файл конфига кнопок, заработало, сейвнул конфиг, вышел. Открываю все работает :) НО , переместил папку из С: в другое место и снова все пропало =)
Короче намудрили чтото непонятное покачто с модо, оставлю пока в стандартном месте все и пусть живет там.
заремапь хот, сохрани, открой
заремапь хот, сохрани, открой большой конфиг блокнотом и вставь в раздел Input Remapings свои строки. Тогда можно будет спокойно удалить внешние конфиги. Но зачем так делать, не пойму. Удобно же когда всё отдельно.
Оставлю как есть,
Оставлю как есть, действительно так удобнее.
В общем.. что-то не то у меня
В общем.. что-то не то у меня с лыжами. ))
Сношу общий конфиг. Перестают работать мои шоткаты. Логично.
Возвращаю его - все работает как и должно. Шоткаты на месте. Открываю конфиг в текстредакторе - нету моих шоткатов в нем. Сношу - не работают шоткаты. Опять возвращаю - все ок. Но в самом конфиге раздел InputRemapping не содерижт моих шоткатов. И экспорт тоже их не экспортит. А они есть. )) Может в большом конфиге есть перенаправление на другой какой то конфиг? Ну просто других идей у меня уже нету.
Экспорт надо делать или all
Экспорт надо делать или all или key mapings, я одно время путал с input mapings, потому что в конфиге на выходе раздел называется InputRemapping
Если снос конфига даёт разницу, то дело в нем. Пути импорта прописаны в первых строках большого конфига, и они не меняются ни чем, если только сам не добавлял строки.
Если не разберешься, то кидай мне свой конфиг - гляну. Можно здесь или в скайп.
Попробуй ещё искать по самому
Попробуй ещё искать по самому хоткею, текст в файлах. Например .anywhere@r
Напиши какой-нибудь хоткей свой, подскажу как он заисывается в конфиге, чтобы знать что искать. Где то он точно есть, "в уме" модо точно не держит)
Тринадцатый Гость
Вот где оказалось собака побрилась. )))
обнаружил в путях в самом начале конфига такую вот строку
В этом вот конфиге все шоткаты мои и лежали. А в основном их не было. По самому хоткею искал конечно прям с самого начала. Спасибо огромное!
АРЕС, твоя кстати проблемка очень похожа на что-то вот такое же.
Это видимо такая строчка
Это видимо такая строчка добавляется, когда импорт нажимаешь в модо. А я каппу не жал эту, я просто конфиги размещал в стандартных папках, потому и сбоей небыло при сносе конфига.
пс: а где-то я кажется писал, что импорт не нажимать.
Самое отвратительное что есть
Самое отвратительное что есть в модо, так это вот эта система сохранения настроек. Всего то надо автосохранение, чтобы допустим поставил чекбокс на настройке и она в тот же момент записывала это в файл настройки preferences.cfg, назначил горячую клавишу также автоматом сохраняется в keymaps.cfg и т.д. Элементарно же. Может кто предложит разработчикам у кого english грамотный
сделать такую нужную вещь?
Приходится всё сохранять в
Приходится всё сохранять в одном файле MODOXXX.CFG и бэкапить его, потому что при изменении чего нибудь и повторном экспорте всё в файле исчезает, а при нажатом append (при экспорте) всё дублируется. Жаль сколько времени из за каких-то настроек потерял.