Как правильно интегрировать api Maya C# с существующими скриптами?

У меня есть набор библиотек в Python (Maya Python API), которые я хотел бы иметь некоторые оболочки в C#. В настоящее время есть возможность вызывать код Python, создавая строки и отправляя их в механизм Python, но предпочел бы иметь целые / правильные сигнатуры функций Python в C#. Существует ли такой инструмент? Или есть лучший способ интегрировать Python в рабочий процесс C#?

1 ответ

API-интерфейс dotnet действительно разработан на основе той же модели, что и API-интерфейс C++: вы должны написать код для управления запущенным Maya, а затем предоставить тонкую оболочку в виде команд Mel, которую пользователь может вызывать напрямую или с помощью инструментов и меню. К сожалению, это означает, что для вызова сценариев изнутри плагина требуется двусторонний переход через слой сценариев с сопутствующими расходами на конвертацию. Кроме того, вам придется написать C#, чтобы проанализировать результаты команды в python или mel и решить, как реагировать, что будет кошмаром, даже если это сработает.

Вероятно, лучше проектировать код C# как меньший. автономный кусок, который предполагается контролировать из скриптов (который может быть либо mel, либо Python - вы получаете это бесплатно, когда ваш плагин предоставляет комнады).

Инструменты Python для Visual Studio действительно дают некоторую степень автозаполнения кода Python внутри Visual Studio, но я не думаю, что он будет работать в файле.CS. Если вам действительно необходимо предоставить значительное количество сценариев (в отличие от минималистского дизайна, который я все еще считаю превосходным), вы можете сохранить отдельный проект PTVS, чтобы создать инфраструктуру Python в качестве подпроекта, а затем упаковать файлы в него. создает как ресурсы в вашем плагине C#. Однако, кроме вещей, которые вы не можете избежать - например, (шик! Шипение!) AETemplates - разумная стратегия состоит в том, чтобы рассматривать плагин как поставщика высокопроизводительных функций, вызываемых из скрипта, а не наоборот.

Другие вопросы по тегам