問題タブ [maya]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 外部 GUI ライブラリを使用して Autodesk Maya でユーザ インタフェースを作成する
Autodesk Maya でツールを開発しています。私が構築するツールの多くには、アニメーターやモデラーが使用するためのシンプルなウィンドウ GUI があります。これらの GUI には、多くの場合、基本的なウィンドウで通常表示されると予想されるものが含まれています。ラベル、リスト、メニュー、ボタン、テキストフィールドなど。ただし、利用可能なツールで構築できる UI の複雑さには制限があり、特に利用可能なウィジェットの種類には制限があります。
ListView (グリッド)、ツリーなど、より高度な wxPython ウィジェットの使用に興味があります。これには、完全な wxFrame (ウィンドウ) を使用して UI 全体を表示することが含まれます。これは、基本的に、ウィンドウがもはや存在しないことを意味します。マヤと結ばれます。大した問題ではありませんが、Maya が最小化されている場合、ウィンドウがそれに追随しません。
テストとして tkinter を使用して以前にこのようなことを試したことがありますが、独自のスレッドで実行するには MainLoop が必要であることがわかりました。これは論理的ですが、私の場合、Maya 自体のスレッドと競合するため、基本的にウィンドウが閉じられるまで Maya がハングアップします。これは、MEL であれ Python であれ、Maya がすべてのスクリプトをメインの Maya GUI が共有する単一のスレッドで実行するためです。これは、別のスクリプトが同じオブジェクトに対して作業を行おうとしているときに、あるスクリプトがオブジェクトを削除することを防ぐためです。
wxPython には、これと同じ「メインループ」方法論があります。Maya 内で機能するように回避する方法があるかどうか疑問に思っていますか?
python - MEL または Python を使用して Maya の既存のパネルを変更する方法は?
私は、MEL と Python を使用して、Maya で何年もツールを作成してきました。Maya のカスタム ウィンドウ/GUI デザインの専門家であると自負していますが、1 つの分野を除きます。既存のパネルとエディターの変更。
通常、私は完全にカスタムの UI を必要とするツールを構築しているため、ゼロから構築するのが通例です。しかし、最近、Maya のレイヤ エディタに機能を追加したいと思うようになりました。これを行う方法を説明するチュートリアルを見てきましたが、やりたいと思ったので何も見つかりません。
チュートリアルへのリンクや簡単なコード スニペットがあれば、すぐに始められます。レイヤーエディター/パネルを見つけて、ボタンやテキストフィールドを追加する方法を知る必要があるだけです。
python - Autodesk Maya などの Python 環境内で Nose を使用して単体テストを実行していますか?
Maya スクリプトの単体テストの作成を開始したいと考えています。maya.cmds
これらのスクリプトは、Maya 環境内で実行し、モジュール ネームスペースに依存する必要があります。
Maya などの実行環境内から Nose テストを実行するにはどうすればよいですか?
python - 制約の種類を知らなくても、制約のターゲット リストをクエリする方法は?
Maya には、次のコードによって収集されたコンストレイントのリストがあります。制約を反復し、それぞれのターゲットをクエリしたい:
問題は、constraint
すべての制約を操作するための一般的なコマンドがないことです。代わりに、各コンストレインには独自の固有の MEL コマンドが関連付けられています。
各コンストレインをタイプ チェックし、それぞれの MEL コマンドを面倒に実行することなく、コンストレインのターゲットをクエリする方法はありますか?
python - Maya 2009 の TreeView コントロールでドラッグ時に構文エラーが発生するのはなぜですか?
Maya 2009 で TreeView コントロールを使用していますが、ドラッグ アンド ドロップで構文エラーが発生します。私のコードは次のとおりです(簡潔にするために簡略化しています):
要素をドラッグ アンド ドロップすると、次のコマンドがコンソールで実行されます。
次のエラーが表示されます。
編集:私が抱えていた問題は、treeView がまだほとんどのイベント コールバックで MEL 関数呼び出しを実装しているためであることがわかりました。上記のエラーは、コマンド名に引数を与えようとする MEL インタープリタによってスローされています。
user-interface - MEL UI を Maya の UV テクスチャ エディタにアタッチするにはどうすればよいですか?
MEL UI ウィンドウを作成してコンテンツを追加する方法は知っています。その UI を UV テクスチャ エディタなどの Maya ウィンドウに「固定」する方法がわかりません。理想的には、UV テクスチャ エディタのどちら側に UI を接続するかを制御し、UI をウィンドウとともに移動および最小化できるようにしたいと考えています。そのようなことは可能ですか?
import - Maya ASCII をゲームにインポートする
私は現在、Maya ASCII .ma をソース フォーマットとして使用し、物理およびグラフィックスの独自のフォーマットを出力として使用して、インディー ゲーム用のインポート ベースのパイプラインの作成に取り組んでいます。ヒンジ ジョイントなど、Maya 内の可動域アトリビュートのようなものを保持します。多くの微調整が必要な他のタイプのパラメーターは、別のソース ファイルになります (おそらく、質量、バネ定数、物理エンジンの強度などの .ini ファイル)。
したがって、入力は 1 つの .ma と 1 つの .ini であり、出力は特に 1 つの .physics ファイルと複数の .mesh ファイル (ジオメトリ/マテリアルごとに 1 つの .mesh ファイル) です。
また、おそらく Python 3.1 を使用してデータを再フォーマットする予定であり、基本的な Maya ASCII を読み取る LGPL 2.1 コードをすでに見つけています。おそらく、開発中にプラットフォームを起動するために Python も使用するでしょう。ゲームは C++ で開発されています。
このすべての中で、あなたが反対するようアドバイスするものはありますか? 欠陥がある可能性のあるものの簡単な要約:
- 輸入ベースのパイプライン (輸出ベースではない)?
- マヤ(3DSではない)?
- Maya ASCII .ma (.mb ではない)?
- .ini (.xml ではない)?
- Maya のモーション アトリビュートと .ini の「freak-tweak」アトリビュートの分離 (Maya のすべてではない)?
- データを構築するための Python 3.1 (埋め込み C++ ではない)?
編集: 物理/グラフィックスのインポート/エクスポート ツール チェーンを実装する方法についてより良い提案があれば、ご意見をいただければ幸いです。
import - Maya .ma マトリックス スケール変換
少し本題から外れているかもしれませんが、Maya は特定のスケールの平行移動行列の変換について深刻な悲しみをもたらしており、他に頼る場所がありません。
Maya が .spt アトリビュート (通常はsetAttr ".spt" -type "double3" 1 2 3 ;
) を追加することを決定するまで、Maya .ma (Maya ASCII) インポータですべて正常に動作します。このややあいまいなドキュメントから、3 つの .spt 値がスケール変換行列に入るという結論に達しました。
マトリックス変換で .spt を処理する方法について教えていただけると非常に助かります。
maya - Maya でオブジェクトのメモ フィールドにアクセスする方法
Maya スクリプト インターフェイスを介してオブジェクトの「メモ」フィールドにアクセスすることは可能ですか? 私はそれをPython内で動作させようとしていますが、APIで使用する必要があるクラス/関数の正しい方向へのポインターが役立つと思います.
maya - MEL:特定のIKハンドルのエンドエフェクタを選択するにはどうすればよいですか?
MELを介してMayaで新しいIKハンドルを作成するたびに、シーンの内容に応じて、「effector1」または「effector2」という名前のエンドエフェクタが作成されます。エンドエフェクタの自動名に頼りたくないので、次のいずれかの方法があるかどうか疑問に思っています。
a)IKハンドルの作成時にエフェクタに名前を付ける、または
b)MELの特定のIKハンドルのエフェクターを選択します。
どんな助けでも大歓迎です-ありがとう!