日々適当
hibitekitou

凸をもやっと

エッジに対して少し濃いもやっとしたものを入れたい時、あるいはそれをキーとしてエッジ部分に何か表現を加える時、Ambient Occlusionは活躍します。softimageの標準のそれは、凹面について、面と面が近い時に効果が現れてくれるのですが、これが凸面に対して出てくれないかって思ったわけです。

そうした時、過去、DirtmapやInvertSurfaceに標準AOを使う等やってきた事がありました。んが、なんかどちらも今の環境に上手くいれることが出来なかったのです。
ってことで、binary alchemyのShader Collection - Essentialを利用しようと思ったわけです。

BAのBA_raylengthシェーダの中にRaylength Typeというパラメータがあり、そこで、Inverted Normal (Edges) を適用することで望む効果が得られます。



行き詰まったのは、これをテクスチャとして焼き付けようとした時です。Rendermapかましてみたら真っ黒になってしまったのですよ。



上図はRendermapのデフォルト設定でテクスチャを書き出し、それをキューブに貼り付けてあります(テクスチャが貼られた状態が表示されています)。右側には焼き込みを行ったテクスチャが表示されています。
見ての通り、レンダリング画像とは似ても似つかぬグレーになってしまっております。

そこで現れた救世主@JunkiTheJunkie さま。検証し、解決法の指針を示してくださいました。

その結果、設定としては Disable Surface Properties で Refraction をオフにすることが必要そうってことが分かりました。



理屈までは分かっておりませんが、これで乗り切れそうです。
コメント ( 5 )|Trackback ( 0 )

子供のコレクション

Expand。 [ Junki The Junkie's Junkyard]

をPythonに置き換えた物のメモ。
oCol = XSIFactory.CreateObject( 'XSI.Collection' )
oCol.items = Application.Selection
oExpanded = oCol.expand( )
for i in range (0, oExpanded.count):
Application.Logmessage ( str(i + 1)  +  ' : ' + str(oExpanded(i).Name) )

ブランチ選択した物の子供達を得ることができる素敵なスクリプトなのだけど、いやホント、ありがたい情報です。
コメント ( 0 )|Trackback ( 0 )

XSIでのDOFの値の設定

久しぶりの他人のふんどし。
Stuido MOMOのXSIスレッドにおける「DOFの焦点」って質問のお返事が参考になりました。
や、普段DOF付でレンダリングすることなんてほぼ無いので、DOFのパラメータの入力方法なんて知らなかったわけで(今後も仕事で使うことは、当分無いだろうなぁ)



このうちの、Near Foucus in inchesとFar Foucus in inches。インチ、何て言われてもねぇ、って感じだよね。
そんなときは、Disctance to output cameraをアクティブにしておくといいのだそうです。



カメラから選択されたオブジェクトまでの距離が表示されます。



後はこの数値を参考に、Near と Furに数値を入れて、ボケ幅はCircle of Confusion in inchesをいじったる、ということっすな。
なるほどねぇ。



まぁ、なんのことはなく、ようはユニット単位でのカメラからの距離ということのようです。
やぁ、物理シミュレート系が(デフォルト値が)1ユニット10cmだったりするようだから、してみると、1ユニットを10/2.54インチとして考えるのか、とか思ったりもしたけど、紛らわしいもんですなぁ(苦笑)
コメント ( 0 )|Trackback ( 0 )

XSIのカメラデータをAEにもっていく:復活編

個人的に宿題みたいになっていたXSIからAEへのカメラデータの持込。
それをあらためて試します。

NetViewにあるAE Exportですけど、Runさせると、
//ERROR : ActiveX コンポーネントはオブジェクトを作成できません。: 'MSComDlg.CommonDialog' - [line 44]
とか出てきてしまって実行できません。そこで、momoの2006年12月1日(金)11時39分のsnowmanさんの書き込みを参考に、以下の設定を行います。

  • スクリプトの44から48行目をコメントアウトする
  • 51行目 fname = "D:filename" というように指定する。ここでは出力されるテキストファイルのファイル名とパスを指定してやる。拡張子はaecで。
  • 23行目でフレームレートが指定されているので、これを適切なものに変更する。
  • カメラにアニメーションがついている場合、それをグローバルな値のキーフレームを持ち、かつローテーションオーダーがzxyのカメラに変更してやる。具体的には、新規カメラを作成し、その要素Scene_Root直下に移動。ローテーションオーダーをzxyに変更した上で、オリジナルのカメラにPoseコンストレイントし、プロットする(Plot→Constraited Transformを使うと楽)
以上の設定を行った上で実行してやると、カメラの座標が記録されたテキストファイルが出来上がります。
なお、以前いただいたコメントによると、ライトのデータも書き出せるけど、その種類に制限があったり、フレームレートの指定は整数で行う必要がある等の注意が必要なようです。

さて、書き出されたら後はAEで読み込むだけです。
その前に、AE側でプラグインを一個追加しておく必要があります。

CINEMA 4Dプロジェクトファイル読み込みプラグイン

が必要なようです。MAXONのサイトからDL可能なものですね。
これを入れることで、AfterEffectsの「ファイル→読み込み」でaecファイルを選択可能になり、選択すると、カメラデータを含むコンポジションが作成される、というしだいです。

ためしに合成してみましたが、以前の方法よりもずっといい具合に追従してきます。
これは、使えそうですね。



追記
ちなみに書き出される範囲はレンダリングの設定に依存するようです。
レンダリングのスタートとエンドフレームを参照している感じっすね。
コメント ( 5 )|Trackback ( 0 )

XSIのカメラデータをAEにもっていく

MOMOにて12/1ごろに質問されていた内容から。

XSIがRLA/RPFファイルを吐き出せれば、そこからAfterEffectsにもってくことは可能みたいなんだけど、あいにくそうじゃない。
また、XSI Netで配布されているスクリプトもXSIのあたらしめのには対応していなかったりしています。

んが、mindthinkってところで配布されているAfterEffectsXSIってスクリプトでそれが可能、ってことみたいです。

これはXSIからxmlを吐き出すスクリプトと、そのxmlをAfterEffectsで読み込むスクリプトの2つで成り立っています。

やり方は簡単で、カメラデータを出力したいカメラを選んだ上でAE Exportを実行します。そうすると、xmlファイルをどこに書き出すか聞いてくるんで、場所を指定。xmlファイルが出力されてきます。

でもって、AEでカメラを作成するためのコンポジションを選択した後に ファイル→スクリプトを実行→ファイルを選択... を実行します。選ぶスクリプトはxsi2afterEffects.jsx。そうすっと、先に出力したxmlファイルの場所を聞いてくるんでそれを指定します。

注意すべき点として、XSIのフレームレートとAEのコンポジションのフレームレートが一致していないといけません。XSIのデフォルトだと29.97じゃなくて、もうちょっと細かい端数の入った29.97みたいなので、支障がないなら30とか60で作っておくのがいいでしょう。

読み込みが成功すると、コンポジションにCameraが作成されおります。

このスクリプトの設定だと、カメラのポジションがXSIのユニット数の10倍の値を持つようですね。どっかで設定をいじれるのかな?

あと、わたるのはあくまでもカメラのSRT情報のみで、Field Of ViewとかFormatの情報はだめみたいです。別個に設定してやる必要がありましょう(あるいはそれを前提としたカメラ設定をあらかじめXSI側でしておく、とか)。
xmlファイルを見ると、fovの情報は保持しているんだけど、それを、AEのフォーカス距離に割り当てている。AEのfovに設定するようスクリプトを書き換えてやればいいんでしょうけど.

でも微妙にあわないんだよねぇー。XSIで出力した画像とAEの3Dレイヤーの間に設置感がないものを作る場合なら問題にはならないけど、互いが設置しているとするなら、ちょっと問題がある…。どこをちょうせいすりゃいいのかなぁー?

追記
追加記事
コメント ( 2 )|Trackback ( 0 )

1本のエッジが3面に接する状態を作る

mixiのXSIコミュニティネタ。
素で知りませんでした(このネタの元の質問を見たとき、無理なんじゃん?、って思っていたしね)。



エッジを押し出したとき(=エッジを複製したとき)、Skirting Ratioを0にすると、見かけ上、1本のエッジを3つのポリゴンが共有している状態を作成することができるんですね。

出来上りは非連続なポリゴンなので、たとえばPolygon Islandでキューブ部分の一面を選択しても、飛び出した部分は選択されない状況なんだけど、こうやって簡単に作成できるってのを素で知りませんでした。

ってことで、メモ代わりにここに記しておきます。
コメント ( 0 )|Trackback ( 0 )

マテリアルを所有しているオブジェクトの選択

MOMOの2006年10月18日の質問に
1つのマテリアルを複数のオブジェクトで共有している場合に
マテリアルから遡ってそれらのオブジェクトを一度に選択する
方法はないでしょうか?
ってのがありました。

なんとなく暇なのでそれのスクリプトを考えてみたり…。
ってか、Materialのプロパティにまさにそれに該当するものがあるのね。
Ownersというのだそうです。

var selectedMat = selection(0);
if (selectedMat.type == "material"){
var selectedMatOwners = selectedMat.owners;
var j = 0;
for (i = 0; i<selectedMatOwners.count; i++){
if (selectedMatOwners(i).type == "polymsh" || selectedMatOwners(i).type == "surfmsh"){
if (j == 0){
selectObj(selectedMatOwners(i));
j = j + 1;
}else{
addToSelection(selectedMatOwners(i));
}
}
}
}


マテリアルを一個選んで実行すると、そのマテリアルが適用されたポリゴンメッシュとサーフェースメッシュが全部選択される、と思います(ちゃんと検証していないので、確信はもてないけど…(^^;)
コメント ( 0 )|Trackback ( 0 )

シャドウパス

久しぶりに、他人のふんどしでもってもぉ…。
や、更新ネタもないので…。

2006年10月12日のMOMOにて。
影を落とすパスを作りましょ、って話題。

質問を投げた人は、シャドウパス作ったはいいけど、なんか白いよ、ってお話のようです。

シーン構成


こんなグリッドと球と、それとスポットライトが一灯たかれたシーンに単純にシャドウパスを適用しますと、

シャドウパス


フィルもキーもこんな影部分が白の絵が出力されちゃうもので、これをそのままAfterEffectsなんかに読み込むと、そりゃ影も白くなります。
黒い影がほしいなら、AE上で加工してやってもいいけど、シャドウパスのオーバーライドをちょっと変更して、フィルを黒色で書き出してやればいいんじゃないですかね。

オーバーライド

シャドウノード


ShadowノードのRGBにチェックが入っているのがデフォルトの状態。このチェックをはずしてやれアルファのみ書き出されます(フィルは黒)。

というのは蛇足で、snowmanさんお答えの内容で気になった部分があったのを試してみたいってのが本題です。

物体Aの影は255.0.0の赤、Bの影は0.255.0の緑・・とか一度に作ってしまいたい場合もあるでしょう。


あーなるほど。そうだよなぁ。そうすりゃいいんだよなぁ。
で、どうやって実装しよう…?

影を落とす側に色の情報を乗せるとして、その色の情報をどうやって影が落とされる側にわたすか、ですなぁ。
影を落とす側からの指定をどうするか。とりあえず、Simple_Shadowノードをつかってみたりすると、色つきの影を落とせるけどね。
影を落とされる側は、ミキサーを使って、ベース部分は真っ黒に。Color1で影を表現するとして、ColorにFlat_lightノードを、weightにShadowノードを使ってやればうまくいくような気がしたんだけど、たとえば赤の影だと、(255,0,0)じゃなくて(128,0,0)になっちゃうんだよなぁ…。しかもエリアライトを使用している場合、ふちに白色が乗ってきちゃうし…(Flat_lightでDiffuseを白色にしているせい)。
ってことで、よくわからんので、ちょっと保留。
コメント ( 0 )|Trackback ( 0 )

素敵バンプマップノード

お手軽バンプマップシェーダーをXSI Baseを見ていて知った次第。

zbump

しかーし、複数の質感をミックスした形のバンプマップを適用したいよー、って欲求には応えてくれませんでした(inputがカラーだから入ると思ったのになー)。

んが、回避方もあるみたい。つまりはバンプのベクトルをここで配布されているMix8Vectorで合成してやる、ってことっす。

そうすっと手軽に素敵に合成できたですよ。

zbumpを合成した例
コメント ( 0 )|Trackback ( 0 )

頭がいいなと思う

世の中は感心することばかりです。
今更なリンクですけど、サッカーボールを簡単に作る方法(v2.0以上)
正20面体から作成していく手法ですけど、頭が良くてうらやましいなぁ、って思いますです、はい(下図左側のプリミティブから右側の形状を作成できる)。

サッカーボール
コメント ( 0 )|Trackback ( 0 )
« 前ページ・