Pythonの内包表現

from pymel.core import *

[x.normalCamera.inputs()[0].inputs()[0].outColor >> x.color
for x in ls( mat=1)
if x not in ["lambert1","particleCloud1","shaderGlow1"]
if x.normalCamera.inputs()]

Pythonの内包表現という物が以前から気にはなっていたのですが、改めて調べてみて使って見ました。
以前公開したノーマルマップの確認用のPymelですが、内包表現で書きなおしたものです。

 

一行で書けるものですが、読みにくいので改行しました。
Pythonは改行やインデントに対して、基本的には厳しいのですが、括弧内に関しては
そういった事は無視されるようで、この場合は問題なく動作します。
なんだか奇っ怪な言語です。面白いです。

 

そして、modoのスクリプトなどもつくってみたのですが、
作り比べてみるとツールの違いが良く分かります。
Mayaはそもそもがスクリプトを使うことが前提になっているので、とてもスクリプトが作りやすい構造になっています。
全てがノードベースになっているので、色々な方法でノードを辿ることが出来る上、当たり前の話ですが同じパラメータに関しては、
同じ様にアクセスできる。

 

それに対してmodoは同じ種類パラメータでもアクセスの方法が違ったりします。
うーん、ややこしい、、
確かに自己発光は他の物とは違うかと思いますが、ちょっとスクリプトが作りにくい、、
もうちょっと良いアクセスの方法があるのかも知れません。
うーん、勉強が足りない。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です