[maya] python:キーワード

Python 言語におけるキーワード、予約語。
変数の名前などに使えない。

and                    as
assert                 break
class                  continue
def                    del
elif                   else
except                 exec
finally                for
from                   global
if                     import
in                     is
lambda                 not
or                     pass
print                  raise
return                 try
while                  with
yield

また下記でリストを確認することも可能

import keyword
for kw in keyword.kwlist:
print(kw)

[maya] python:ビルトイン関数

ビルトイン関数の一覧
Python 2.7ja1 documentation:2.組み込み関数

[maya] python:バージョンの確認

Mayaで使用されてるpythonのバージョンの調べ方。

import sys
print(sys.version)

[maya] mel:コマンドモード

編集モードを使用するには「-edit(-e)」
照会モードを使用するには「-query(-q)」

melにしてもpythonにしてもCreate(作成)、Edit(編集)、Query(照会)と
複数のモードで機能するフラグもあれば特定のモードでしか機能しないものもある。
オンラインヘルプの各コマンドのプロパティを見ることでそれが確認できる。

maya_mel_command_mode_1

C:作成モードで使用可
E:編集モードで使用可
Q:照会モードで使用可
M:複数回使用可

[maya] pythonコマンド:help

半年近く更新していなかった…ブログを毎日更新してる人はすごいですね。
ここ最近はHoudiniは全く触らずMayaで仕事することばかりでした。
とくに勉強することもなく毎日CM案件をこなす事に手一杯な日々を過ごしましたが、
少し時間が取れる案件に次はなりそうなのでまた更新していこうと思います。

新しいことにチャレンジしたいと思い昔ちょろっとかじったpythonを再び勉強しようかと思いました。
目から鱗というかこんなことも知らなかったのですがmelにもpythonにも「helpコマンド」ってあるんですねー。
オンラインヘルプみれば済む話なんでとくに必要でもないですが知りませんでした。

import maya.cmds;
print(maya.cmds.help('polyCube'))

するとフラグだったりが見れたりします。

あとコマンドをハイライトにしRMBをドラッグしたままにした常態で「Command documentation」を選択するとオンラインヘルプに飛ぶことができるみたいです。

maya_python_help_1

とくに書くネタもなかったのでどうでもいいことですが書いておきました!!!!

[houdini] 分散シミュレーション

今現在自分の中で熱いエントリー!

http://www.dfx.co.jp/dftalk/?p=11779#more

DF TALKは勉強になるので度々拝見させていただいてます。
有益な情報ありがとうございます!

現在仕事でFlipを使用しているのですが、このエントリーを見て目から鱗が落ちるとはまさにこれかと。。。
僕の中ではシミュレーションは分散できるものではないと勝手に思い込んでいました、どうやら違うみたいです。。。
なのでそんな手法があるのか調べもしていなかったのですが、Houdiniのシェルフにがっつりデフォルトで用意されているではないですか。
というか他のツールも分散できるのでしょうか?
RFとかFumeとかその他シミュレーションできるツールいっぱいありますけど。

ちょっとシンプルなシーンで実験です。
続きを読む

[houdini] VEXノード:modulo

moduloノード
2つの値から余りを計算するノードです。

mayaの演算子「%」と同じです。剰余ってことです。

剰余ってどういったときに使うのかと、melを勉強しはじめのときは良くわからず使用用途を調べたりしました。
例えば「$int % 2」は偶数、奇数かを判断するときなどに使用したりします。
$intが偶数であれば割り切れるので「0」、奇数であれば割り切れないので「1」という訳です。

modulo_1

Point Numberで偶数、奇数を判断してます。

[houdini] VEXノード:fit range

fit rangeノード
ヘルプによれば「ソース範囲をターゲット範囲に一致するようにシフト」です。

mayaでいうとカーブ関数「linstep」が近いですかね、たぶん。
source Min・MaxをDestinationMin・Maxに比例した値を返すってことです。

fit_range_1

z軸上にランプでグラデーションさせてます。
rampノードでは0~1までしか返せないようなので、fit rangeノードで-4~4の範囲をsourceに設定しています。
fit rangeとrampの組み合わせはよく使うと思います!

[houdini] VEXノード:length

lengthノード
ヘルプによれば「3D/4Dベクトルの長さを計算します」

mayaユーザーにとってはmelでいうところの、ベクトル関数「mag」にあたると理解すればいいと思います。
ベクトルを浮動小数点数に変換し、長さを求めます。
計算式は下記の通りです。
length_1
高校生でベクトル習ったときにみんな普通に勉強してるところですが、僕はちっとも覚えてません!
過去に戻れるならあの頃の馬鹿な自分を叱ってやりたい。。。

length_2

↑画像のようにポイントの速度で色変更したりなどなど、使用する機会は多いと思います。

[houdini] VEXノード:bind

bindノード
ヘルプによれば「VEXにバインドするアトリビュートを設定」とある。
え?って感じです。

houdiniの敷居が高く感じる理由はヘルプのわかりにくさもひとつの要因であると思います。
何事もそうだと思いますが物事をはじめるにあたり、分かりやすさ、やりやすさっていうのも重要なポイントじゃないですか。
もしそれがそうじゃない場合は自分の情熱や根性、たくさんの時間を費やしての努力でカバーするしかないわけで。
愚痴以外の何物でもないですが…日本語ヘルプもっと充実してくれないですかね、英語とかもう勉強する頭ないですw
今はhoudiniに対する情熱と根性で地道に行きましょう。

続きを読む