By October 7, 2015 1 Comments

VEX Editor v1.0. Quick Demo

Первое превью нового дополнения для Houdini для работы с VEX кодом. Все вы знаете на сколько неудобен стандартный редактор в интерфейсе нод Wrangle или Expression Editor. Первой моей попыткой исправить это был Multi Script Editor, предназначеный для работы с Python. Он прекрасно заменил стандартный Source Editor и Python Shell. А так же смог встроиться в другие пакеты и работать как стендалон.

На этот раз скрипт весьма похож, но предназначен только для работы с VEX. Houdini так же не балует нас средствами разработки для этого языка. Потому я решил сделать инструмент, который поможет редактировать VEX код более удобно.

Основные возможности:

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

Подсветка синтаксиса

Редактор имеет настраиваемую подсветку синтаксиса с поддержкой тем. По умолчанию есть три темы для всех стандартных цветовых схем Hoduini. (Редактор тем в разработке)

Автокомплиты

Редактор поддерживает автокомплиты для:

  • стандартных VEX функций
  • функций и переменных в вашем текущем скрипте, учитывая области видимости
  • функции и переменные из файлов, подключенных директивой #include
  • стандартных атрибуты контекстов а так же имеющиеся атрибуты текущей ноды Wrangle
  • других небольших вариантов автокомплита, зависящих от контекста кода

Редактирование кода

При открытии вкладки редактор запоминает откуда этот код и привязывается к источнику. Для сохранения кода в исходное место достаточно нажать стандартное для Houdini сочетание клавиш — Ctrl+Enter.
Привязка кода может быть:

  • к любому текстовому параметру любой ноды. По умолчанию фильтруются имена параметров для кода, такие как snippet в нодах Wrangle.
  • к секциям операторов. По умолчанию в списке видна только секция VflCode, предназначенная для хранения исходного кода VEX оператора
  • заголовочные файлы. Это файлы с расширением *.h
  • так же можно сделать пустую вкладку и привязать источник позже.

Сохранение вкладок

Вы можете включить сохранение открытых вкладок. Тогда в сцене будет записано состояние редактора. При открытии сцены повторно вы можете восстановить все ранее открытые вкладки, привязанные к нодам и файлам текущего hip-файла.

Контекстная справка

Чтобы быстро открыть справку по какой-либо функции VEX, просто поставьте на неё курсор и нажмите Shift+F1. Откроется стандартный HelpBrowser Hodini с документацией к этой функции. Либо, если это не функция, иная контекстная справка или просто поиск по справке.

Live Templates

Встроен функционал создания Live Templates. Быстрые куски кода, вставляющиеся после определенных символов и нажатия кнопки Tab. Например, по умолчанию встроено несколько темплейтов. Если набрать слово “for” и нажать Tab, то появится стандартная запись цикла for.

Обновление параметров ноды

Не так давно в Houdini появилась кнопка на нодах Wrangle, которая создает параметры, запрашиваемые в коде с помощью функций ch, chv, chi и тд. Но эта функция только создает параметры. VEX Editor может создавать параметры из кода автоматически при сохранении, а так же обновлять тип параметра или удалять более не используемые. Удаляются только те, которые ранее были использованы в коде.

Известные проблемы

Первая проблема это конечно же скорость работы. VEX Editor это просто Python скрипт. Потому скорость работы может иногда не радовать. Например при работе с большим массивом кода. Проблема решается переписыванием всего на С++. Но у меня есть надежда что этим займутся разработчики Houdini.

Вторая проблема связана с VEX операторами. Для создания параметров на ноде кастомного оператора вам необходимо указать входящие аргументы основной функции. Например так:

sop myoperator(int value){
...
}

Как только вы добавите новые аргументы и нажмете Apply в окне Type Properties, Houdini пересоздаст параметры вашего оператора. К сожалению того же самого не происходит если заменить код оператора программно, и в текущей реализации HOM или в HScript мной пока не найдена возможность сделать это так же программно. Данный вопрос пока в разработке. Решение проблемы – открыть окно Type Properties и нажать Accept.

Когда релиз?

В настоящий момент идёт тестирование, допиливаются мелкие баги. Релиз намечен сразу после тестирования на Hoduini 15.

 

Posted in: Houdini, PyQt, Python Tools

1 Comment on "VEX Editor v1.0. Quick Demo"

Trackback | Comments RSS Feed

  1. Anonymous says:

    Awesome!! I am waiting for releasing! Because H15 Released!

Оставьте комментарий