59
© 2011 Autodesk デモンストレーション

デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

© 2011 Autodesk

デモンストレーション

Page 2: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

概要何故 なのか?

の での使用との比較について

UI拡張機能拡張Q&A

本日のアジェンダ

Page 3: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

概要

Page 4: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

としてのに の標準ディストリビューションが と

して存在

スクリプトの実行にて 及び

から スクリプトを実行

新規拡張モジュール により を に開放

が をサポートすると言う事とは

Page 5: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

より機能開放

Page 6: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• からファイルを実行

• からコードを実行

• コマンドラインからファイルを実行

実行方法は

Page 7: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 組み込みの標準 CPython 2.7.3 64ビット

標準のPythonにてコンパイルされたモジュールとはバイナリー互換

CPythonバイナリーは 3ds Max にても動作

例: http://www.lfd.uci.edu/~gohlke/pythonlibs/

• APIによる3ds Maxの操作

• MAXScriptとの連携

の機能

Page 8: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• エディター デバッガー コンソール マクロレコーダー

• 制限がある

• マルチスレッド

• 標準の ディストリビューション以外のモジュール(PySideとのリリースを検討中)

の機能

Page 9: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

何故 なのか

Page 10: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

既に多くのライブラリが存在 想像を超えた多さ

多くのユーザー数とナレッジ には の質問と回答

再利用し易いスクリプト 拡張し易い

その他

学習し易い その他・・・

が選ばれる幾つかの理由

Page 11: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

により・・・ パイプラインの ツール・ライブラリの機能向上が容易

スイート製品間のツール開発を容易

ツール開発者やテクニカルディレクターの方々へ は に取って代わるものではない が より優れている

との作業

又は による洗練された

や によるハイパフォーマンスな計算処理

インターネット接続 アップロード ダウンロード

その他・・・

提供しない機能

Page 12: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

の での使用

Page 13: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易
Page 14: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

から を実行 引数を渡せない

実行結果を返せない

から を実行 引数を渡せない

実行結果の取得が可能

Page 15: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

が実行されると、 セッションが開始される

の再起動迄、セッションは継続される:再開する方法は無い

モジュールがロードされると、削除は出来ない( の仕様)

はメインスレッドにて実行

にて はどの様に動作のするか

Page 16: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

グローバルな名前空間を汚染しない 例モジュールを全てインポートしない

を使用 全てのファイルがライブラリーになる可能性が有り

設定を強く推奨 幾つかのモジュールはこの方法に依存 例 等

はスレッドセーフではない

又は を適切に利用

での の作法

Page 17: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

と の比較

Page 18: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

による の作成

Page 19: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

による の作成

Page 20: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

によるライトとカメラの取得

Page 21: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

によるライトとカメラの取得

Page 22: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

について

Page 23: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

は、 のハイレベルオブジェクトでのラッパー

を使用しモジュールとして に公開

のオブジェクトは、 へのポインタや参照を保持するラッパークラスから派生

Page 24: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

のオブジェクトモデル

MaxPlus. INode

_MaxPlus. Swig_PyObject

Autodesk::Max:: INode

Autodesk::Max:: Animatable

Autodesk::Max:: Wrapper

::INode

::Animatable object PyObject

::MaxHeapOperators

動作(is a) 保持(has a)

Page 25: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

モジュール による共通機能へのアクセス シーングラフの走査

オブジェクトの作成

ファイルのオープン クローズ

メッシュの操作

パラメータの取得 設定

簡単なレンダリング

から を操作

Page 26: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• オブジェクトの中身を確認

例)

Page 27: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• のクラスを抽出

例)

Page 28: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• アクセス方法は2つ プロパティ名

メソッド

リードオンリー

例)

プロパティのアクセス

Page 29: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 作成

例)

オブジェクトの操作

Page 30: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 変更 パラメータブロック

モディファイヤー

メッシュ

キャスト

例)

オブジェクトの操作

Page 31: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 作成

を にキャスト

例)

マテリアルの操作

Page 32: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• アサイン 例

• マテリアルエディタ オープン

スロットへの設定(2方法)

アクティブスロット

例)

マテリアルの操作

Page 33: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 作成

作成

にて取得

ピクセル領域の確保

例)

ビットマップの操作

Page 34: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

ピクセル設定

設定

例)

ビットマップの操作

Page 35: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 範囲設定 インターバル設定

各フレーム

例)

ボタンの操作

Page 36: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 各種設定 ボタン

ボタン

ボタン

再生スピード

例)

ボタンの操作

Page 37: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 作成例

• 取得 アットマネージャより

例)

アセットの操作

Page 38: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

にプラグインのリスト

例)

プラグインファイルの情報

Page 39: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 必要な情報

例)

シーングラフの走査

Page 40: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• セレクションの情報

セレクションリストのイテレータ

直接アクセス出来ない

コレクションを作成

シーングラフの走査

Page 41: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

オープン

セーブ

ファイルパスの取得

シーンファイルの操作

Page 42: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• にて 取得

設定

ファイルパスの取得

システムパスの操作

Page 43: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• アクション 作成

実行

例)

アクションとメニューの操作

Page 44: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• メニュー メニュービルダー作成

アイテム セパレータ登録

作成

例)

アクションとメニューの操作

Page 45: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

• 実行

出力設定

イメージの幅・高さ設定

その他(グローバルオプション設定)

例)

レンダリング

Page 46: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

アクティブビュー

走査

は使用不可

ビューポート

Page 47: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

UI拡張

Page 48: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

による 作成

標準であるが、時代遅れ

サポートされない

Page 49: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

とは 有名な

とのバインディングは2つ

パーティーによる拡張

では のラッパー

は を使用

は が存在

Page 50: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

による のラッパー

にて が で動作するバイナリバージョンを公開

1月 日まで

がシャットダウン

Page 51: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

が使用

のブログよりバイナリがダウンロード可能

多くのお客様よりサポート要請

と類似 ライセンスの違いだけ

Page 52: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

ガーベージコレクションからウィジェットを保護 を使用

ファイルのインポート前にインスタンスを取得

親ウインドウに 又は の子ウインドウに

を呼び出さない ウィジェットを表示するのみ

ウィンドウのフォーカスを取得するにはアクセラレータを無効に

における

Page 53: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

を使用 ウインドウを親ウインドウに

の標準ではない

互換のモジュールが より公開

ドッキングには にて を作成し、 により を実行

のブログにて公開予定

を の親ウインドウに

Page 54: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

機能拡張

Page 55: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

拡張方法は幾つか存在 拡張モジュール

を介して手法

その他

モジュール

モジュール パーティ

パーティ

における の拡張

Page 56: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

による の作成

DLLは3ds Maxルートフォルダに配置

Page 57: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

からカスタム の呼び出し

Page 58: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易

御質問は御座いますか?

にお気軽にお問い合わせ下さい

Page 59: デモンストレーション - AEC DevBlog...により・・・ パイプラインの ツール・ライブラリの機能向上が容易 スイート製品間のツール開発を容易