Python (Maya Python API) のライブラリ セットがあり、C# でいくつかのラッパーを使用したいと考えています。現在、文字列を作成して Python エンジンに送信することで Python コードを呼び出す機能がありますが、C# でインテリセンス/適切な Python 関数シグネチャを使用することをお勧めします。そのようなツールは存在しますか?または、Python を C# ワークフローに統合するためのより良い方法はありますか?
1 に答える
dotnet API は、実際には C++ API と同じモデルに基づいて設計されています。つまり、実行中の Maya を操作するコードを記述し、ユーザーが直接、またはツールやメニューを使用して呼び出すことができる Mel コマンドの形式でシン ラッパーを提供します。残念ながら、プラグイン内からスクリプトを呼び出すには、スクリプト層を往復する必要があり、それに伴う変換コストがかかります。さらに、コマンドの結果を python または mel で解析するために C# を記述し、どのように反応するかを決定する必要があります。
C# コードを小さく設計する方がよいでしょう。スクリプトから制御されることを期待する自己完結型の部分 (mel または Python のいずれかである可能性があります。プラグインがコマンドを公開するときに「無料」で取得できます)。
Python Tools for Visual Studioは、Visual Studio 内の Python コードに対してある程度のオートコンプリートを提供しますが、.CS ファイルでは機能しないと思います。本当に大量のスクリプトを提供する必要がある場合 (私がまだ優れていると考えるミニマリスト デザインに固執するのではなく)、別の PTVS プロジェクトを維持して、python インフラストラクチャをサブプロジェクトとして作成し、そのファイルをパッケージ化することができます。 C# プラグインでリソースとして作成します。ただし、回避できないもの (ブー! ヒス!) AETemplates などを除けば、適切な戦略は、プラグインを、スクリプトから呼び出される高性能関数のプロバイダーとして扱うことです。その逆ではありません。