Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[6939] Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
[Question] Response
X<0の頂点(面)を削除するというスクリプトを書いているのですが、選択された頂点の内側(囲まれている)面を選択するにはどうすればよいのでしょうか?

http://imgur.com/a/9v8di
vert.facesで頂点から面のリストを取得すると、外側の面まで選択されています。

http://imgur.com/a/pOFmL
このように、X=0の頂点を選択した状態から頂点に囲まれた部分の面だけを選択したいです。
(画像は、プラグインで頂点の内側の面を選択してます、これと同じことをスクリプトで行いたいです)


doc = MQSystem.getDocument()                    #ドキュメント取得

obj = doc.object                                    #選択しているオブジェクト取得
for o in (range(len(obj))):
    if obj[o] != None:
        if obj[o].select == 1:

            for vi in range(0, obj[o].numVertex):         #選択したオブジェクトの、頂点数分繰り返す
                vert = obj[o].vertex[vi]                #vertで頂点リストを参照
                

Show more...
2017-03-21 03:10
[6940] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
ちなみに、これで半分削除した後にミラー設定してフリーズするというスクリプトも作りたいと思っているのですが、見たところミラーは設定できるようですがフリーズ処理に関する関数が見当たりません。

プラグインのSDKには、Freezeという関数があるようですがこちらはPythonスクリプトでは利用できないのでしょうか?

もし無いとしたら、頂点を反転した位置に新規作成したりという処理を全部自前で書かないといけないのでアーティストからするととても大変です…。

Pythonスクリプトで、Freeze含め標準機能へのアクセスができるようになってほしいです。

http://graphics.hatenablog.com/entry/2013/05/28/000229
あと、MayaのMELとかはツール上の操作がスクリプトエディターのログに全部出てくるのでそのログをベースにスクリプトを組むことができるので比較的作りやすいです。
メタセコでも同様の機能が欲しいです。

実際、メタセコのPython作ってみてあまりにも情報が無さ過ぎて初心者には厳しい所を感じました。
もうちょっとユーザーフレンドリーな設計になっていただければと思います…。

2017-03-21 03:23
[6941] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
また、オブジェクトを複製して法線方向に押し出して面を反転してアウトラインを作成するスクリプトを作成したいのですが、Pythonスクリプトで頂点を法線方向に移動するという処理はどのように行えばよいでしょうか?
2017-03-21 03:36
[6943] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
面の選択に関しては解決しました。

その他要望は引き続き対応お願いしたいです。
2017-03-21 18:48
[6944] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
スクリプトが出来たのでこちらに公開してみました。
64bit環境で、X<0の頂点削除プラグインが使えなくお困りの方にお使いいただければと思います。

http://imgur.com/a/azWT6

X<0の頂点削除(ミラー) - BowlRoll
https://bowlroll.net/file/131657
2017-03-22 02:55
[7025] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / Administrator
>ちなみに、これで半分削除した後にミラー設定してフリーズするというスクリプトも作りたいと思っているのですが、見たところミラーは設定できるようですがフリーズ処理に関する関数が見当たりません。
>
>プラグインのSDKには、Freezeという関数があるようですがこちらはPythonスクリプトでは利用できないのでしょうか?

FreezeやCompactなどプラグインSDKにあってPythonで実装漏れになっている機能がいくつかあったのでVer4.5.9で追加しています。
常駐型を作成できないスクリプトからは利用価値の乏しい機能などもあるため、完全にプラグインSDKと等価というわけではありませんが、呼び出したら処理が行われて完了するようなものについてはほぼ同様に利用できると思います。
2017-05-18 11:46
[7028] Re: Pythonスクリプトで選択している頂点の内側の面の選択 / まじかる☆しげぽん
ありがとうございます!
簡単な処理で作りたいのは色々あるのでとても助かります!!
2017-05-18 18:12