MAXscriptでマテリアル調整

大量のマテリアルのパラメーターを調整しなければいけなかったので、書いてみたが全然思ったようにかけない。
本当はmapもインスタンスにしたいんだけどな。
最終的には汎用性をつけてインターフェース付けたい。

 

for o in selection do –触ったオブジェクトを順番にループ
(

mt = o.material –そのオブジェクトについてるマテリアルをmtに入れる
mynoise= o.name + “noise” –この後作るノイズマップの名前のために文字列生成
mt.material1.specularLevel = 40 –mtに入ったマテリアルのスペキュラーレベル調整
mt.material1.glossiness = 50 –mtに入ったマテリアルのグロッシネス調整
mt.material1.specularLevelMap = Noise () –スペキュラレベスマップにノイズを新規作成
mt.material1.specularLevelMap.name = mynoise –さっき作った名前のmynoiseをつける
mt.material1.specularLevelMap.thresholdHigh = 0.7 –noiseの中のパラメーター調整
mt.material1.specularLevelMap.thresholdLow = 0.4 –noiseの中のパラメーター調整
mt.material1.specularLevelMap.size = 0.2 –noiseの中のパラメーター調整
mt.material1.specularLevelMapAmount = 30 –スペキュラレベスマップのパーセント調整
gc() –なんか凄くフリーズしたので神頼みで書いてみた
)

ちなみにmt.material1っていうのはサブマテリアルのスロット1ってことなんでこのスクリプトはサブマテリアルをコントロールする用です。

サブマテリアルを使わない場合は material1をはずせばいい。

マテリアルの各パラメーターに関してはこちらを参照

スタンダードマテリアルのマニュアル 

Windows Live Writerとscreenpressoで簡単にCG系ブログを投稿

thinkingParticlesの記事とかを書こうと思ったら結構画像の埋め込みとかが面倒なんですよね。
そこでevernoteの共有機能を使ったり色々試してみたんですが、これが一番いいように思いました。

Windows Live Writer
http://windows.microsoft.com/en-US/windows-live/essentials-home
image
ローカルで書き込める。何がいいかって画像をコピペで張れるので、あのブログのうざったいアップロードを使わなくて良くなる。
画像が多いとその労力もバカにならないですし。

ただ画面キャプチャの機能は無いのでほかにキャプチャーソフトを導入しないといけないんですが、
http://ja.screenpresso.com/
これがいい気がしてきたのでテスト中です。
image
コメントも矢印も書きやすい気がする。

作りたいスクリプトができたんだがまた忘れている

また作りたいスクリプトが出来てヘルプみながら調べなおしてるんだけど、全然maxscriptの書き方を忘れてしまって最初から学びなおし。
何回やってるんだか。

今度は再度学習したシンプルなソースにコメント書きまくって
プリントアウトして壁に貼ろうかなと思っている。

メタセコイアの作者が開発に専念

http://metaseq.sblo.jp/article/55591418.html#more

僕は十数年前メタセコイアが発表されてすぐに飛びついたんですが
当時あったモデリングソフトのなかでメタセコイアはダントツのスピード感と操作性でした。そして安い。
スピード感で対抗できたのはLWくらいだったんじゃないでしょうか。
僕の古い仲間でモデリングが得意な人はみんなLWかメタセコ使いが多いです。

ただ時代がたつにつれて複数のソフトをまたぐのは面倒ということで
MAX,XSI、MAYAどれかに専念する人は増えていきました。
各ソフトのモデリングが進化したり優秀なプラグインが出てきたことも大きかったと思います。

そこでメタセコに欲しい機能リスト
・主要ソフトとのシームレス連携。bodypaintやzbrushのようなボタンワンタッチで。

・ローカル座標が欲しい。
これも主要ソフトとの連携で欲しくなります。主要ソフトでオブジェクトの位置を動かしていた場合にメタセコに戻れない。戻るとセンターがグローバルになってしまうので、作業がある段階まで行ってしまうと以降はメタセコに頼らないワークフローになってしまう。そんな面倒な事なら最初から使わないわとなって場合が多い気がする。

・多様な面の張り方。ラインの入れ方。
メタセコも当初凄かったんですけど、他の主要ソフトの機能が格段に上がって、色々な方法で面や線の操作ができるようになりました。追いついて欲しいです。

まあメタセコの作者がどういう方針でやるのかわかりませんが、こういうマジな3DCG屋向けじゃなくニコニコなどのライト層を狙ってるのかもしれないし。
もしそうだとしたらこの記事見なかったことに。

ICE習得中、その後。石の飛び散り改善

まあ習得はあまり進んでないんですが

石の飛び散りをダイナミクスに切り替えました。

地面に落ちてからの挙動とか正確になったと思います。

[youtube http://www.youtube.com/watch?v=RSXx8I_oUdg&hl=en&fs=1]

http://dl.dropbox.com/u/263031/rock_splash_Dynamics.zip

上のムービーのXSIプロジェクトです。

ほんとこんな何でもないものの流用のおかげでものすごく助かった。

ICE習得中

仕事でやっと使うことになったのでICEを習得してる。

まずは簡単で効果的な瓦礫の飛び散りを作ってみた。

[youtube http://www.youtube.com/watch?v=qV9g2sdFjOI]
D

SIシーン。

http://dl.dropbox.com/u/263031/rocksplash.zip

どのノードがどういう役割を果たしているのか分からなかったんで時間がかかったけど仕組みはとても分かりやすい。

いろんなパラメータにランダムノードを接続出来たり、オブジェクトの指定方法(set data)でグループが選べたりするのはとてもいいですね。ちょっと凄いと思ったのはデータの値などを取得する「get data」はエクスプローラーで色んなパラメーターをクリックで選べるのでわかりやすい。

でもキャッシュがよくわからない。

キャッシュ無しではstart capture出来ないのでCache On fileを使ってキャッシュを貯めるんだけど一向にうまくいかない。

どうやらファイルは書き出されているんだけど読み込みに失敗しているようだ。

IFでCache On fileを使うようにしてread cacheでデータ読んでいるんだけどまったく読んでくれない。

f:id:velvetface:20110203021558j:image

こうやっても動かない。

ICE上でCache On fileを使って読むのを諦めてcache managerで読み込むとうまくいくんだけど、

そうするとICEでやってたものは全部どこかへ消え去ってMIXERだけになるし、それを回避するために

pointcloudをもう一個出さなきゃいけないしなんだか面倒だなあ。

誰かこのCache On fileの謎解ける人いませんでしょうか。

———————-

追記

twitterで@huutakunさんがキャッシュについて親切に教えてくれました。

・Cache On fileでキャッシュをとる場合ははシュミレートのノードの隣に繋いで両方有効な状態で再生すればキャッシュはたまる。

・IFで切り替えるのは以下のような場合に有効。

 1、IFでチェックを入れシュミレーションのノードに切り替える

 2、キャッシュマネージャーで「キャッシュを書き込み」ボタンを

   使いキャッシュを書き込む。

 3、IFのチェックを外しシュミレートをオフ。

逆にCache On fileのノードが有効になる。

 4、Cache On fileをread cacheにして先ほどのキャッシュを読み込む。

 5、スライダーを動かすとキャッシュが読み込めている。

 

注意点:レガシーパーティクルのキャッシュは再生スライダーを逆にしても確認できたのに対してこのキャッシュは逆再生できないみたい。なので一瞬キャッシュじゃないのかも!と勘違いしてしまうけどスピードも全然違うので心の眼で見極めよと思う。あとこれでやっとstart captureで表示されるようになる。