Python
かなり今更な感じですけど…。 アセンブラの勉強してたら、ビット演算面白いなーと思いまして。 今までは余りで判定してたんですけど、 最下位ビットでの判定はなんかお洒落! と思っただけです。(笑) num = 13 # 余り if num % 2 == 1: print "uneven number…
こんな感じ? import maya.cmds as cmds class Node(object): def __init__(self,node): self.node = node def __getattr__(self,attrname): return Node('%s.%s' %(self.node,attrname)) def __repr__(self): return 'Node("%s")' %(self.node) def __rshif…
Mayaで*、?等の記号はよく使いますでしょうか? これらはノードの検索とかで非常によく使えます。 命名規則をしっかりしていればこれだけでなんとかなるものもたくさんあります。これらは任意の文字列で検索したい時に使います。 正規表現のライト版?みた…
リグのコントローラを選択しやすくする為に、 ピッカーというのを容易することがあります。要はコントローラを選択しやすくする為のGUIです。 1.命名規則を作ります。 ・選択されるオブジェクトが pSphere1 とします。 ・pSphere1を選択するピッカーの名前を…
まずは例を、 ''' 例1 ''' # for等を関数の中に入れる(全部入り) def selectionLockTranslate(): sl = cmds.ls(sl=True,type='transform') for node in sl: cmds.setAttr('%s.translate' %node,l=True) allTranslateLock() ''' 例2 ''' def lockTranslate(no…
こんな感じはどうでしょう… というだけ。(笑) import maya.cmds as cmds # 元オブジェクトとターゲットオブジェクトを指定 src = 'pCube1' dst = 'pCube2' # コネクション for compound in 'trs': for leaf in 'xyz': cmds.connectAttr('%s.%s%s' %(src,comp…
compoundアトリビュートのsetAttrって地味に面倒くさいですよね。 何故ならlistでそのままsetできない!要するに、 translate = (1,2,3) cmds.setAttr('pSphere1.translate',translate) ができないってことです。これをやるには、 tx,ty,tz = (1,2,3) cmds.s…
自分の考え方としては、 ありとあらゆるものを想定した結果、大丈夫だったら開発を進める…という考え方。 なのでテクニカル&ロジカルになると思うのですが…。アート的、かつエモーショナルな動きをしたいとも 思いつつなかなか価値観を変えるのは難しい。Py…
今日、飲み会でふと聞かれたことなので、 自分なりのスキルアップ方法をまとめてみます。 あくまで自分なりのです。僕の場合は、 ・よく使うコマンドを同じように使わない、フラグの意味は全て理解する ・別の方法で同じことができないかどうかを考えてみる …
スクリプトを配布する場合を考えてみます。 スクリプトを配布というのはいろいろなパターンがあります。 ・個人で配布する ・会社で配布するなどなど。 もちろん共有した方が効率的に作業が可能になるとは思いますが…。 独自に時間をかけて開発したものを渡…
最近はブログの題名に迷います。 fileノードってお題にして、いきなりMayaの話か~! ってわかる人もそんないないのかなぁ…と思ったり。理由としてはPythonってお題となると様々な業種の方がいるんですよね。 むしろMaya限定でPythonを使う方が少ないと思い…
前回に引き続き、パフォーマンステストブームなので…。 今回は3000個のpolySphereの法線をチェックする場合の時間を計ってみました。 結果 ライブラリ 時間(秒) maya.cmds 14.5990002155 pymel.core 47.5500001907 Python API 1.0 0.258000135422 Python API…
ものすごーくマニアックです。 パフォーマンスを調べるのが最近のブームなので…笑 計測お題 polygonSphereを3000作成し、 ・translateX ・translateY ・translateZ ・rotateX ・rotateX ・rotateX ・scaleX ・scaleY ・scaleZ ・visibility を取得する場合に…
家のメインのMayaを2015にしたので、 せっかくだからPySideを使ってWebブラウザを作ってみました。というよりはブラウザ以外はPySideで作りたいものがないという現実もあるのですが…。 理由としてはMayaのウインドウって割と優秀なんですよね。相当複雑なこ…
リガーやコード書きにとって、 いかにワークフローをかっこつけられるか!も大事です。 むしろ僕はこれしか頑張ってません。無駄に頑張ってます。無駄に。 例:joint_driver で joint_driven をdriveしたい。 1. 使うフラグをまとめたcsvファイルを用意しま…
自分がゲーム業界にいた頃にプログラマに「ラジアン単位で…」とか言われて、 「は?んだそれ?」となったのを今でも覚えています。さて、Mayaと何が関係あるか…ということから。 まずMayaのデフォルトは度数法(degrees)です。 もう一つ弧度法(radians)があり…
Maya Python API 2.0、凄く便利ではまってます。Maya Python API 1.0だと、MScriptUtilェ…な問題が発生してたのですが…。 お手軽にmatrix計算ができるので勉強になります。例えば、 import maya.cmds as cmds import maya.api.OpenMaya as om2 """ # DAG pSp…
最近よく考えるのがこれ。手紙があり、メールがあり、LINEがあり…。 LINEがなくなると手紙に戻ることは難しいわけです。 世の中は一方通行で、常に人はより便利なものを求める。 その結果、学力、技術低下を招くのでは…そんなことを考える面倒くさい男です。…
overrideEnabledやoverrideDisplayType… これらは現場で働く人なら必ずしもよく触れると思います。私の場合はsetsを作りそこにoverrideEnabled等を追加して、 TransformノードやShapeにコネクトしていました。 CompoundではなくLeafでコネクトしてたというこ…
いやー、ありがたいことです。 更新をかなり怠った時期も多々ありますがそれでも来てくれる方がいると励みになります。なので今年はブログをもっと更新する!というのも頑張り…たいなー。そういえば今日は仕事をしてて思ったのですが、 Python for Mayaを視…
去年の半ばくらいからはほぼ使わなくなりました。使わなくなったといっても即時実行系ではたまに使います。 VectorやMatrix計算では便利なのでそういう点では利用します。 ただもともとメインをPyMELにしてたのをmaya.cmdsに変えただけですね。理由としては……
pythonコードを配布する場合、 「使うのはいいけど見せるのはちょっと…」っていうものがある。その理由のほとんどはコメントも書いてないし汚いから!であり、 究極的に素晴らしい天才的なコードの為見せられない!というわけではない。そんな時に使うのがpy…
・できた方がいい ・できない方がいいこの二択だったら当然できた方がいい。3DのMayaを例にして書いてくことにしよう。 MayaではMELやPython、C++と選択肢がある。私はこれらの言語を使って効率化することはできた方がいい…とは思わない。 いや、もちろんで…
例えば、「右ひじのDrivenKeyFrameを左ひじのDrivenKeyFrameの数値と同じにする。」 といったスクリプトを作ってみた。条件としては、 既に右ひじと左ひじにはDrivenKeyFrameが設定してあるということ。 要するにanimCurveUAが繋がっている状態である。とい…
仕事になるとどうしても出てくるのがノード名をどう管理するか? という問題。リガーとなるとここは徹底して管理したいと思っている。そもそもノードに名前をつける理由を知ることが重要。 ノードに名前をつけるというのはファイルに名前をつけるということ…
jointの上にOffset用のjointと何かに操作されるJoint... DrivenJointと言えばいいんでしょうかね。 これらを指定数作ります。Mayaはワールド座標から継承しまくって最終的な座標出されます。 全てワールド座標だと重たいですしね。Offset用jointを作るのは、…
Wrapを自動化とかしたいんだけどうまくいかない… 自動化している人はどうやっているんでしょうか? ちょっと気になる…。例えばだけどこんな感じでしかできないのかなー。 っていうので簡単に作ってみると… import pymel.core as pm def createWrapReturn(): …
買っちゃいました自転車。 カラミータのDUEってバイクです。ロードレーサー…というか自転車は素人なので、 見た目重視で買ったらギアの構造がWレバー方式っていうやつでした。あれギア変えられないなぁ…。 「ツークリックや!!」と弱虫ペダルばりにやろうと…
ふと考えたんです。 3Dでモデルの仕様書を作るときにどうやるのが楽ちんかなーって。 私の場合はリグに関するのを作るのが多いかも…ということでこんなのを作ってみました。rootノードを選んで実行するとrootからAnnotationを作っていきます。 要するにroot…
さすがにこれは無駄に長いので書きはしないけど… 本当、OpenGLの勉強すればいろいろできそうですね! これはキューブなんだけど…これだけでも結構感動しました。なのでちょっとOpenGLの勉強しようかなーという気持ちになれてます(^^)