[3dsmax][script]Python+MaxScriptのツール開発入門 その10

前回まででツールの根幹は実装できました。実行上の問題はほとんどありませんが、改善できるポイントはまだまだありそうです。今回はその修正作業、いわゆるリファクタリングを行いながら、さらにアップグレードできそうな部分を見つけていきたいと思います。

まずはコードを眺め、改善できるところを探しましょう。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その10” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その9

前回はツールクラスを呼び出すmain()の準備をし、ファイルが直接実行された場合にmain()が呼び出される仕組みを作りました。

今回はこのmain()を完成させます。

ツール本体のクラスを作る 3

ツールクラスの呼び出し関数を完成させる

ではツール本体を呼び出すmain()関数を整えていきましょう。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その9” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その8

前回はツール本体のクラスについて、コンストラクタの実装を行いました。今回はそのシグナルの接続先として指定した実行メソッドを書いていきましょう。

ツール本体のクラスを作る 2

実行メソッドを仮実装する

コンストラクタのコネクトのところで書いた内容と整合が取れるような名前でメソッドを実装します。もちろん、先にメソッドを書いてから、最後にコンストラクタ内のコネクト処理を追記するという順序で作業しても何ら問題ありません。

まずは仮の内容で実装しましょう。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その8” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その7

前回、ツール本体になるPythonファイル先頭のインポート部分までを書きました。今回はツール本体のクラス、およびそのクラスを呼び出す実行部分を実装していきます。

ツール本体のクラスを作る 1

ツール本体のクラスは、QtDesignerで作ったUIをpy化してできたクラスと、そのUIを作るときに元にしたウィジェットのクラスの二つを継承して定義します。この、「元にしたウィジェットのクラス」も継承するというところがポイントです。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その7” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その6

前回までに、MaxScriptを使用した実行部分と、PySideを使用したUI部分ができました。これらを使ってPySideのUIからMaxScriptの実行関数に情報を渡して動作させるツールを作成しましょう。

ツール本体のクラスを作成する 前編

uiファイルをコンバートしてできたpyファイルはPythonのファイルなので、この中に実行ロジックを書き足して動作させることも一応可能です。が、このpyファイルはuiを更新するたびにコンバートを実行し、その都度上書きされてしまうものです。そのためここに実行ロジックを書くのは現実的ではありません。

そこで、UIのクラスを継承した新たなクラスを作成し、そこに実行ロジックを書くという方法を使います。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その6” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その5

PySideでUIを作成する

QtDesignerを起動する

PySideのUIを作成するQtDesignerというツールが以下の場所にあります。

(pythonインストールフォルダ)\Lib\site-packages\PySide

このフォルダにあるdesigner.exeがQtDesignerの実行ファイルです。

これをショートカットとしてデスクトップに置くなり、タスクバーにピンニングしておくと便利です。

早速起動してみましょう。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その5” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その4

前回で実行部分のMaxScriptが仕上がったので、いよいよPythonでUIを作成します。

が。3dsmaxに搭載されているPython環境にはUIを作成するためのツールが含まれていません。そのため、別途それを用意する必要があります。MaxのPython環境に追加する方法と、Maxとは別にPython環境を用意してそこにインストールする方法があります。ここでは後者の方法を採用します。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その4” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その2

関数の中身を実装する

オブジェクトのコピーを実行する

グリッドコピーということでグリッド状にオブジェクトのコピーを配置することを考えますが、ひとまずグリッド状というのは置いておいて、選択したオブジェクトをコピーする動作を実装してみましょう。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その2” の続きを読む

[3dsmax][script]Python+MaxScriptのツール開発入門 その1

仕様の検討

動作の検討

下の画像のような、選択したオブジェクトをX軸、Y軸、Z軸それぞれ等間隔にコピー配置する、というツールを考えます。そんなものをいつ使うんだという話はありますが、ここでは単純にツールに落とし込む練習としてこれを題材に取り上げる、というだけです。

“[3dsmax][script]Python+MaxScriptのツール開発入門 その1” の続きを読む