MotionBuilder:Pythonコマンド
最近MotionBuilderのスクリプトを書くのですが、日本語の資料も少なく調べるのに手間取ったので、備忘録もかねてメモの一部公開します。 確認環境はMotionBuilder2013です。 MotionBuilderでPythonを書き […]
Pythonには”リスト内包表記”なるものがあるそうな。初めて目にした時は、「なんじゃこのケッタイな書き方は!」と思ったものです。リスト内包表記をザックリ説明すると、『for分とかif分とか使って複数行必要だった処理が一行ですむよ。しかも処理が早いよ。でもちょっと読みづらいよ』っていう書き方でしょうか。ものの本によると、”リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです”、だそうです。ちょっとMayaのpyemlで普通の書き方と、それを内包表記で書いた例を作ってみました。選択したオブジェクトのうち、Meshのみをリストで返[...]
続きを読む
意表を突いて、Photoshopネタです。今回はハーフトーンの作り方を!こいうの!Step:01まず、Gray平面を用意します。Step:02Step:03カラーハーフトーンの設定は次の通り。ハーフトーンスクリーンの角度をすべて同じにします。Step:04黒いハーフトーンができます。Step:05好きな色に変えて出来上がり。以上!では、また次回![...]
続きを読む
今回は、マテリアルの基本「環境マップの張り方」です。サンプルとして、以前mia_materialのところで使ったシーンを使いました。まずMentalrayで環境マップを使用する時は、環境マップをShadingEngineのEnvironmentShaderに繋ぐ、↓のようなコネクトになります。時々、マテリアルのReflectionカラーに環境マップを繋いであるデータを見かけたりしますが、ShadingEngineのEnvironmenShaderに繋ぐのが正解。ShadingEngineについてはAREA Japanの説明が分かりやすいのでここでは割愛し[...]
続きを読む
Houdiniノード勉強回。今回はVOPのif block。"Block Begin If"と"Block End"ノードで構成される条件分岐のためのノード。「なんじゃこりゃ」、「どうやって使うんじゃ」と思って調べたやつ。・・・VimeoのMaster Class見ながら勉強したんですけどねw作り方はVOPネットワーク内でtabメニューから"if block"使い方。こんな感じ"Block Begin if"に条件の判定結果とFlaseの時の値、"Block End"に条件がTureの時の値を繋いで使う。"Block Be[...]
続きを読む
最近MotionBuilderのスクリプトを書くのですが、日本語の資料も少なく調べるのに手間取ったので、備忘録もかねてメモの一部公開します。確認環境はMotionBuilder2013です。MotionBuilderでPythonを書き始める際のとっかかりになれば幸いです。名前からオブジェクトを取得for i in FBSystem().Scene.Components: oObj = FBFindModelByName("Cube") print oObj.Name選択をクリア[...]
続きを読む
Houdini Tips回。煙作成時「Gas Resize Fluid Dynamic(DOP)」を使用した際、シミュレーション開始時に計算領域と発生源が重なっていないと上手くシミュレーション出来ない場合があります。今回はその回避法です。何を解決したいのか次のようなシミュレーションがあるとします。(gifアニメの枚数節約のため、ここではFPSを10で作ってます)シェルフで作った普通の煙ですが、発生源は原点より上の方(離れた場所)にあります。この発生源を、最初消しておいて何フレームか経ってから出現させるとこうなります。煙が一切発生し[...]
続きを読む
Houdini回。今回はこういうヤツ。パーティクルに板を貼り付けたもので、マテリアルとテクスチャ連番画像は共通。テクスチャのシーケンス番号に対する値をパーティクルごと個別に設定しています。簡単にできるとおもってたら思いの外手間取ってしまって。いくつか試して、最終的にinline Code(VOP)を使う方法に落ち着きました。inline Code(VEX)はVOP内でVEXが書けるノードです。このノードの詳しい解説はまたの機会に回すとして、やってる事はシェーダー側でのテクスチャパスの作成です。シェーダー側で使うテクスチャのフレーム番号は、事前にPri[...]
続きを読む
Houdiniノード勉強回。今回はVOPのfor Loop系。vopでのfor loop処理がHoudini15から新しくなって、分からなくて困ったのです。「なんじゃこりゃ」、「どうやって使うんじゃ」と思って調べたやつ。・・・・・・前回同様、VimeoのMaster Class見ながら勉強したんですけどねwVOP内でLoop処理は、Block Begin系ノードとBlock End系ノードをペアで使用することで実現するようです。Loopの種類に応じて、使用するノードや組み合わせが微妙に違います。VOP Network内でtabメニュー[...]
続きを読むtoxikノード解説回です。今回はToxikでのトラッキングの仕方をざっくり解説です。ではさっそく。①"Tracker"ノードを作ります。②トラッキングしたい素材を"Tracker"ノードのinputにコネクトしておきます。③"Tracler"ノードを選択。トラッキング範囲を指定します。このトラッキング範囲、実線はトラッキングするターゲットの検出範囲。点線の方はターゲットの移動する範囲。前後のフレームでのターゲットの移動範囲がこの枠内に収まるようにします。この範囲が狭すぎるとうまくトラッキングできず、また広すぎると計算に時間がかかりま[...]
続きを読む
Houdini回。Wrangle(SOP)のVEX例文。メモより抜粋、その2。その1はこちら!入力を取得@OpInput1 //1番目の入力@OpInput2 //2番目の入力@OpInput3 //3番目の入力@OpInput4 //4番目の入力アトリビュートを取得とか#1番目の入力のdensityを取得density = findattribval( @OpInput1, "primitive", "name", "density");[...]
続きを読む最近MotionBuilderのスクリプトを書くのですが、日本語の資料も少なく調べるのに手間取ったので、備忘録もかねてメモの一部公開します。 確認環境はMotionBuilder2013です。 MotionBuilderでPythonを書き […]