最初はよく使うMayaノードのTipsでもと思っていたのですが、気分でこっちにしました。
理路整然には程遠い!
唐突にもほどがある!
が、そのままいきます。
さて「if in文」ですが、pythonの基本構文のひとつです。
実は私これ最近知りました。(-∀-`; )
最近、pymelでスクリプトを書く機会が多くて、その際よく使用した構文のひとつですね。
MELでもできるのかどうかは、試していないので不明です。JavaScriptでは使えたはず。
この「if in 文」で何ができるかというと、文字列の検索が簡単にできます。
スクリプトを書くとき、名前で検索してオブジェクトを取得ってよく使う方法だと思います。それをこの「if in 文」で行うことができるのです。使い方は以下に↓。ちなみにpymelです。
if 「検索する文字列」 in 「検索される文字列」: 「検索ヒット時に実行される処理」
実際に動くスクリプトを書くとこんな感じ。
下のスクリプトは、選択したノードの名前に”nurbs”があれば、そのノード名を表示するというもの。
import pymel.core as pm #選択からリストを作成 list = pm.selected() for i in list: #選択したオブジェクト名に"nurbs"が入っていればその名前を表示 if "nurbs" in i.name(): print i
↑だけだとたいして役に立ちそうにないですが、これをチョイと書き換えてあげると、名前検索のリネームとか、特定の名前のノードと別の名前のノードをコネクトしたりとか、多様な場面で活躍します。
他のソフトと比べても、何かと名前縛りの多いMayaではよく使う構文のひとつだと思います。
例ではさらりと「for in文」とか使ってますが、その辺はさらりとスルーして今回はひとまずこれで。
それにしても、ブログはなかなか難しいです。
思ったとおりのレイアウトにならない。
特にプログラムのコード部分とか。
他の人のブログでは、そこだけテキストフィールドみたいなのになってたりとかするんだけど、あれってどうやるんだろう?
コメント