3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

PyMel

パフォーマンステストからわかるPyMELの重さ

前回に引き続き、パフォーマンステストブームなので…。 今回は3000個のpolySphereの法線をチェックする場合の時間を計ってみました。 結果 ライブラリ 時間(秒) maya.cmds 14.5990002155 pymel.core 47.5500001907 Python API 1.0 0.258000135422 Python API…

スクリプトが苦手な方にオススメ!PyMEL講座3(フィニッシュスクリプト編)

スクリプトが苦手な方にオススメ!PyMEL講座1(リネームから始めよう編) - 3DCGbook スクリプトが苦手な方にオススメ!PyMEL講座2(値の取得と設定編) - 3DCGbookさて、早くも最終回な感じです。 今回はフィニッシュスクリプトというのを考えてみましょう。…

スクリプトが苦手な方にオススメ!PyMEL講座2(値の取得と設定編)

スクリプトが苦手な方にオススメ!PyMEL講座1(リネームから始めよう編) - 3DCGbook前回の続き… 今回は値の取得と設定を主にやっていきます。かなり雑ですが全てコードにまとめてみました。 """ 1. PyMELを使えるようにするコードは以下 """ import pymel.co…

スクリプトが苦手な方にオススメ!PyMEL講座1(リネームから始めよう編)

前回、このような記事を書きました。PyMEL使うの(ほぼ)やめました。 - 3DCGbookそれで何が言いたいかと…。 スクリプトが苦手な方にとってはPyMELは一つの強力なツールになるということです。これをどうしても伝えたい! どうしよう! じゃあ自分のブログで勝…

PyMEL使うの(ほぼ)やめました。

去年の半ばくらいからはほぼ使わなくなりました。使わなくなったといっても即時実行系ではたまに使います。 VectorやMatrix計算では便利なのでそういう点では利用します。 ただもともとメインをPyMELにしてたのをmaya.cmdsに変えただけですね。理由としては……

Wrap…

Wrapを自動化とかしたいんだけどうまくいかない… 自動化している人はどうやっているんでしょうか? ちょっと気になる…。例えばだけどこんな感じでしかできないのかなー。 っていうので簡単に作ってみると… import pymel.core as pm def createWrapReturn(): …

工業製品こそスクリプトでモデリング!

買っちゃいました自転車。 カラミータのDUEってバイクです。ロードレーサー…というか自転車は素人なので、 見た目重視で買ったらギアの構造がWレバー方式っていうやつでした。あれギア変えられないなぁ…。 「ツークリックや!!」と弱虫ペダルばりにやろうと…

create annotation along root hierarchy.

ふと考えたんです。 3Dでモデルの仕様書を作るときにどうやるのが楽ちんかなーって。 私の場合はリグに関するのを作るのが多いかも…ということでこんなのを作ってみました。rootノードを選んで実行するとrootからAnnotationを作っていきます。 要するにroot…

MELからPythonへ簡単に書き換える方法

こちらはPyMel限定になります。早速ですがやってみましょう。 import pymel.core as pm import pymel.tools.mel2py as mel2py melCmd = """ polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1; hilite pCube1 ; select -r pCube1.vtx[5] ; …

メモ:Display表示したVertexやNormalがToggleにより消えない時

このようにToggleしあって、NormalやVertex表示が消えない時。 そもそもDisplay→Polygons→VerticesにはToggleVertices;というMELコマンドを行っています。 Toggleなので片方の表示がイカれた時点でおかしくなります。ので、Toggleじゃなくて完全にオフにする…

2頂点をくっつけてキーフレームを打つ

1.くっつけたいとこのvertexを選ぶ 2.くっつけるvertexを追加で選ぶ 3.引数のところにどこからどこまでキーを打つか値を入れる 4.スクリプトの実行 これはシミュレーション用といってもいいでしょう。 シミュレーションはよく暴走するので…くっつけときたい…

Nurbsカーブの座標値を保存して適用

前回ののNurbsCurveバージョン。 いやー、迷った。 NURBSは上手く数値が入ってくれなかったので古典的な方法でSetしてる。 何がしたいかっていうと、 ・キャッシュの数値を保存(ワールド座標) ・キャッシュをなしのものに適用する。 但しこの数値をcvにその…

頂点情報のコピーとペースト

メモレベルのスクリプトなので汚い…。 ただ長いフレームを取得するとやばいかも。 全部をdataに突っ込んでるので(^^; import pymel.core as pm inFrame = 61 outFrame = 137 def getVertexPosition(inFrame,outFrame): global getMesh global data data = []…

再帰:ポーズのコピーとペースト

いろいろ資料を参考にして、 ポーズのコピーとペーストを作ってみた。 正直、再帰って難しいです。 ここで使うんだ!というのが僕には上手く理解できません…(^^; 木になっているものはガンガン再帰使った方がいいのかなぁ。 と、ちょっとスクリプトを書く際…

PyMelでFaceをランダムに押し出し!

特に意味はないのですがやってみたかったので(^^; 例えば遠景からのビルや建物の生成って、 一枚大きなプレーンを作って、割りを増やして、 Face一枚一枚にExtrudeでそれなりに見えるんじゃない?とふと思ったりで… import pymel.core as pm import random g…

PyMelのススメ

maya.cmds派とpymel.core派の二派閥(?)があるとは思いますが、 あなたはどっち派ですか? 僕はpymel.core派です。 理由はmaya.cmdsはMELをPython化したようにしか感じなかったからです。 もっと他にも理由があるとは思いますが素人な僕は なんとなく新しくて…

ベクトル演算周りちょっとメモ

ベクトル強さを取得するのやっぱあった… ついでにちょっとベクトルについてまとめておこう。 ↓なんかはてなキーワードが入るよう…うう。 import pymel.core as pm import math #取得 selLoc = pm.selected() #point1,point2の位置を取得 point1 = selLoc[0].…