Importing Clifford attractor to max9

昨日のGoogle Analytics統計を受けて、今日はクリフォード・アトラクタを3dsmax内で再現してみるの巻。

max内で計算させずに以前Proce55ingで作ったものを改良をしてポイントデータを出力するようにし、maxscriptを使ってメッシュデータとして読み込みました。といってもポリゴン情報の無い頂点オンリーのメッシュデータですが。

cliffordattractor.jpg
Proce55ingでの描画

左右反転してますがmax9に読み込んだ結果です。

さて、ここからBlobMesh合成オブジェクトを使って感じの壁紙でも作りますかぁ。とテンションあがったのですが、BlobMeshが重すぎて話しになりません。やや物足りない20,000点のポイントデータなのですが残念ながらこの方法は断念。

商用ですがPWrapperと言うパーティクルをメッシュ化するプラグインがあるみたいです。速いのかどうかは分からないですが、次回はパーティクルとして読み込んで再チャレンジです。いつになるか分かりませんが、、、

以下参考までにポイントデータと読込み用maxscriptです。
続きを読む “Importing Clifford attractor to max9”


平面にテクスチャをダッ〜っと貼る

昨年末はコレを人にやってもらったのですが、スクリプトがあっけなく出来ちゃったので、楽できます。

automap.jpg

GUIつけるのメンドくさいので、相変わらず決め打ちです。getFiles()のところで適当なテクスチャへのパスを書いて下さい。見つかった分だけ貼っ付けます。平面は先に用意しておいてください。配列コピーなり、群衆スキャッタなりで。あとは平面を複数選択して実行。

-- autoMaptex.ms by hTaka
numOfObj = selection.count;
files = getFiles "F:¥¥YOUR_TEXTURE_PATH¥¥sceneassets¥¥images¥¥*.jpg";
numOfBitmaptex = files.count;
matArray =#();
for i = 1 to numOfBitmaptex do
(
	matArray[i] = standard diffuseMap:(bitmaptexture filename:files[i]) showInViewport:true;
)
j = 1;
for i = 1 to numOfObj do
(
	selection[i].material = matArray[j];
	j = j + 1;
	if j > numOfBitmaptex do j = 1;
)

ランダムに貼付けるなら、

selection[i].material = matArray[(random 1 numOfBitmaptex)];

です。後はマテリアルの作成部分を書き換えるなりご自由に。


もどかしい谷間

キービジュアルを提出したら、次は返事待ち。この時間がたまりません。いい気分じゃないです。「いーの?悪いの?、、、どないですのん!」って感じの。

さて、待ち時間は壊れたサーバを修理しつつ、またまた壁紙。今日は20/100点ぐらい、、、そんなに毎日気に入ったのものが出来るわけぢゃないです。

プロなのに、、、

陶芸家ならここで自分の作品を割ってる所ですが、デジタルデータはカケラも残らないのが情緒がなくてつまりません。

twisted-small.jpg

でかサイズ→twisted.jpg
いまいちなときはタイトルも思い浮かばないんですよねぇ。

「Net」て文字が中央に来てるのは偶然です。

側面ばかり&ボケてるので見えないですが、テキストをいっぱい配置しているのは以下のスクリプト。ホントは2000ワードぐらいあったのですが、VRayが落ちました。密度も考えて300ワードにしてます。
続きを読む “もどかしい谷間”


3dsmaxから○○へ

昨日は財布に600円と、大人としてどーやねんって生活を送ってしまいました。忙しすぎて銀行いくのすら怠っていただけですが、、、
深夜コーヒー買うために小銭入れから10円かき集めてる時はさすがにダークな気分になりました。こういう時のためにEdyカードがあるのか?
近くに利用可能なATMが無いのも不便です。

さて先日、MAX2AEのように3dsmaxからAfterEffectsへオブジェクト情報をもってけないかって質問を受けました。

ソフトによって定義が異なるプロパティは書き出す際にスクリプトで吸収する必要はありますが、大雑把に書くとMax内でのオブジェクトアニメを書き出す核の部分は以下のような感じになります。

if selection.count > 0 then(
  myObj = selection
  for t = animationrange.start to animationrange.end do(
    at time t pos = myObj.center
    format "x:%\t y:%\t z:%\n" pos[1] pos[2] pos[3]
  )
)

オブジェクトを一つ選び、実行するとMaxScriptリスナーに位置情報が書き出されます。AfterEffectsへ持っていくには、AfterEffectsのクリップボード形式に沿うようにformat文を調整する必要があります。あと、Max特有のZ-upな座標系もね。
結果をクリップボードへ納める事ができればいいのですが、調べた範囲では見つかりませんでした。filestreamを作ってやってテキストファイルへ書き出して必要があるのかな。

それにしてもmaxscriptは扱いにくい。


そこ押しにくい

アクティブビューの切り替えでむかつきながら押していた左上の微妙な部分、ボタンをおいてくれりゃ押しやすいのにね。
そこは絶対おしにくい(スクリーンショット画像)
kaiji君いわく「安全フレームを表示すると、画面は小さくなりますが安全にクリッ
クしやすくなります。」「あと、僕は、中マウスを押しながらクリックして(アクティブ化し)、画面が動けば「sht + Z」で動く前の状態に戻してます。」らしい。うん、2番目のやつは俺もわかってんねん。

っと返事が返ってくる前に解決したわ。そもそもマウスを動かす事自体めんどいですねん。徹夜仕事したあとなんて、粘っこいマウスには出来るだけさわりたくないねん。今日が徹夜ってワケじゃないけど。

ダウンロード→htCycleActiveView.zip

実行するたびにアクティブビューを循環させるマクロスクリプト。たった3行で完成。

適当なキーボードショートカットを割り当てておくと押すたびに切り替わっていくので便利じゃないかと。3dsmax8 sp2で動作は確認済み。7とかでも動くと思う。誰かレポートちょーだい。

インストールの仕方は以下。
続きを読む “そこ押しにくい”