myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | Material ・ ImageClips 取得メモ

ShockerNYさんの記事から始まって、Materialの話になってるからマテリアルを取得しようとした時に上手く行かなかったことを思い出しました。


Material

マテリアルはオブジェクトから取得する時に selection(0).material じゃん?
そして、Material Library は ActiveProject.ActiveScene.MaterialLibraries でしょう?
なので、Materialは ActiveProject.ActiveScene.MaterialLibraries(0).Material と思うじゃない?
え?思わないんですか?

まぁ、とにかく正解は:

var oMat = ActiveProject.ActiveScene.MaterialLibraries(i).items

items かよ!

マニュアルを読め!ってことだけど、items かよ。

※ ActiveProject.ActiveScene.MaterialLibraries はコレクションなので、コレクションアイテムのindex数字を入れる必要があります。


Object から Material 取得

Junkiさんがコメントして下さったので追記します。

オブジェクト名.Materialで取得する時にPass とか Group に支配されているときはそっちの Material が取得されます。

それはそれで便利な時もありますが、自分自身の Material だけが欲しいときは、LocalProperties をループして type が Material のものが見つかればそれは自分自身のマテリアルである。

例:

//JScript
var oObj=selection(0)
for (var i=0; i<oObj.localproperties.count ; i++){
   if (oObj.localproperties(i).type=="Material"){
       logmessage(oObj.properties(i))
   }
}


注意:
localpropertiesループでクラスタからマテリアル取得する時にオブジェクトとの共有マテリアルが取得出来ません。


Image Clip


これも普通にマニュアルを読めばすぐ分かるんですけど、ログに騙されちゃうんですね。

あるClipを選択する時に

SelectObj("Clips.image_psd")

みたいなログが出るから

なんとなくActiveProject.ActiveScene.Clips なんじゃない?かと思っちゃうんだよな~。
そうでしょ。

でも全然違いますね。

正解は:

var oClips = ActiveProject.ActiveScene.ImageClips

これはイメージクリップのコレクションなので、イメージクリップ1個ずつはoClips(#) か oClips.item(#) になります。


何回も失敗したからもう覚えたけど、一応メモっておく。誰かに役に立つかもしれないし。

Comments

var oMat = ActiveProject.ActiveScene.MaterialLibraries(i).items ですが、

返って来るものはコレクションなので、変数名は複数形にして oMats にしようぜという宗教の代表をやっている俺が通ります。

あ、Clip の方はちゃんと oClips になってる。

どうでもいいか。
すいません。
淋しいだけです。



あ、xxx.Material で取得すると、Pass とか Group に支配されているときはそっちの Material が取得されますね。 自分自身の Material だけが欲しいときは、LocalProperties をループして type が Material のものが見つかればそれは自分自身のマテリアルである、ということのように見えるんですが、今度実験して、正しいかどうか教えて下さい。


  • 2012/01/31(火) 23:24:44 |
  • URL |
  • 潤樹 #W4WqU6sQ
  • [ Edit ]

Re: No title

自分もだいたい複数形にしてますw なぜか今回はoMatになっちゃった。

Materialは今試してみたら、確かにその通りですね。
クラスタがオブジェクトと共有マテリアルの場合はLocalPropertiesで何も返ってこないことも場合によって嫌ですけど。

  • 2012/01/31(火) 23:50:42 |
  • URL |
  • myara #-
  • [ Edit ]

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/57-28ffa425
Use trackback on this entry.