Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
概要何故 なのか?
の での使用との比較について
UI拡張機能拡張Q&A
本日のアジェンダ
概要
としてのに の標準ディストリビューションが と
して存在
スクリプトの実行にて 及び
から スクリプトを実行
新規拡張モジュール により を に開放
が をサポートすると言う事とは
より機能開放
• からファイルを実行
• からコードを実行
• コマンドラインからファイルを実行
実行方法は
• 組み込みの標準 CPython 2.7.3 64ビット
標準のPythonにてコンパイルされたモジュールとはバイナリー互換
CPythonバイナリーは 3ds Max にても動作
例: http://www.lfd.uci.edu/~gohlke/pythonlibs/
• APIによる3ds Maxの操作
• MAXScriptとの連携
の機能
• エディター デバッガー コンソール マクロレコーダー
• 制限がある
• マルチスレッド
• 標準の ディストリビューション以外のモジュール(PySideとのリリースを検討中)
の機能
何故 なのか
既に多くのライブラリが存在 想像を超えた多さ
多くのユーザー数とナレッジ には の質問と回答
再利用し易いスクリプト 拡張し易い
その他
学習し易い その他・・・
が選ばれる幾つかの理由
により・・・ パイプラインの ツール・ライブラリの機能向上が容易
スイート製品間のツール開発を容易
ツール開発者やテクニカルディレクターの方々へ は に取って代わるものではない が より優れている
との作業
又は による洗練された
や によるハイパフォーマンスな計算処理
インターネット接続 アップロード ダウンロード
その他・・・
提供しない機能
の での使用
から を実行 引数を渡せない
実行結果を返せない
から を実行 引数を渡せない
実行結果の取得が可能
が実行されると、 セッションが開始される
の再起動迄、セッションは継続される:再開する方法は無い
モジュールがロードされると、削除は出来ない( の仕様)
はメインスレッドにて実行
にて はどの様に動作のするか
グローバルな名前空間を汚染しない 例モジュールを全てインポートしない
を使用 全てのファイルがライブラリーになる可能性が有り
設定を強く推奨 幾つかのモジュールはこの方法に依存 例 等
はスレッドセーフではない
又は を適切に利用
での の作法
と の比較
による の作成
による の作成
によるライトとカメラの取得
によるライトとカメラの取得
について
は、 のハイレベルオブジェクトでのラッパー
を使用しモジュールとして に公開
のオブジェクトは、 へのポインタや参照を保持するラッパークラスから派生
のオブジェクトモデル
MaxPlus. INode
_MaxPlus. Swig_PyObject
Autodesk::Max:: INode
Autodesk::Max:: Animatable
Autodesk::Max:: Wrapper
::INode
::Animatable object PyObject
::MaxHeapOperators
動作(is a) 保持(has a)
モジュール による共通機能へのアクセス シーングラフの走査
オブジェクトの作成
ファイルのオープン クローズ
メッシュの操作
パラメータの取得 設定
簡単なレンダリング
から を操作
• オブジェクトの中身を確認
例)
• のクラスを抽出
例)
と
• アクセス方法は2つ プロパティ名
メソッド
リードオンリー
例
例)
プロパティのアクセス
• 作成
例)
オブジェクトの操作
• 変更 パラメータブロック
モディファイヤー
メッシュ
キャスト
例)
オブジェクトの操作
• 作成
例
を にキャスト
例)
マテリアルの操作
• アサイン 例
• マテリアルエディタ オープン
例
スロットへの設定(2方法)
例
例
アクティブスロット
例
例)
マテリアルの操作
• 作成
例
作成
例
にて取得
等
ピクセル領域の確保
例)
ビットマップの操作
ピクセル設定
例
設定
例)
ビットマップの操作
•
例
• 範囲設定 インターバル設定
各フレーム
例
例)
ボタンの操作
• 各種設定 ボタン
ボタン
ボタン
再生スピード
例)
ボタンの操作
• 作成例
• 取得 アットマネージャより
例
例)
アセットの操作
•
にプラグインのリスト
例
例)
プラグインファイルの情報
• 必要な情報
例)
シーングラフの走査
• セレクションの情報
セレクションリストのイテレータ
直接アクセス出来ない
例
コレクションを作成
例
シーングラフの走査
•
オープン
セーブ
ファイルパスの取得
例
シーンファイルの操作
• にて 取得
等
設定
等
ファイルパスの取得
例
システムパスの操作
• アクション 作成
実行
例
例)
アクションとメニューの操作
• メニュー メニュービルダー作成
アイテム セパレータ登録
作成
例
例)
アクションとメニューの操作
• 実行
•
出力設定
イメージの幅・高さ設定
等
その他(グローバルオプション設定)
例)
レンダリング
•
アクティブビュー
走査
は使用不可
例
ビューポート
UI拡張
による 作成
標準であるが、時代遅れ
サポートされない
とは 有名な
とのバインディングは2つ
パーティーによる拡張
では のラッパー
は を使用
は が存在
と
による のラッパー
にて が で動作するバイナリバージョンを公開
1月 日まで
がシャットダウン
が使用
のブログよりバイナリがダウンロード可能
多くのお客様よりサポート要請
と類似 ライセンスの違いだけ
ガーベージコレクションからウィジェットを保護 を使用
ファイルのインポート前にインスタンスを取得
親ウインドウに 又は の子ウインドウに
を呼び出さない ウィジェットを表示するのみ
ウィンドウのフォーカスを取得するにはアクセラレータを無効に
における
を使用 ウインドウを親ウインドウに
の標準ではない
互換のモジュールが より公開
ドッキングには にて を作成し、 により を実行
のブログにて公開予定
を の親ウインドウに
機能拡張
拡張方法は幾つか存在 拡張モジュール
を介して手法
その他
モジュール
モジュール パーティ
パーティ
における の拡張
による の作成
DLLは3ds Maxルートフォルダに配置
からカスタム の呼び出し