myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | Copy & Paste Point Weights

ポイントを選んでコピー(ウェイト情報をとっておく)

複数のポイントを選んでペースト(ウェイト情報を写す)

という単純なスクリプトを書いてみました。

XSIEnvelope (公式サイトがなくなったようですが、rray でダウンロードが出来ます) というプラグインを使っていましたが、デフォーマーの数とポイント数が多いと物凄く遅かった為VBS版を書くことにしました。

結果的に結構速くなりました。

デフォーマー数:215
ポイント数:240

XSIEnvelope の ペースト:
0:04:38.217000

俺のVBS版 ペースト:
0:00:01.074



この差が大きすぎと思ってXSIEnvelopeのコードを見てみました。

どうやらループに問題がありそうでした。
1ポイントにウェイトをペーストして、オブジェクトのエンベロープを更新して、ノーマライズ。
おまけにPrintでログも出しています。

これじゃ遅いですね

全ポイントにウェイトペーストしてから、エンベロープ更新、ノーマライズに変更してみました。
これでエンベロープの情報更新とノーマライズは1回だけで済む。

色々弄って、ノーマライズを1回だけすることにしてみた結果:

デフォーマー数:215
ポイント数:240

XSIEnvelope の ペースト(弄った後):
0:00:01.214


俺のVBS版とほぼ一緒!
自分のコードを書く前に元のコードを見るべきだったな・・・。そうすればちょっと弄るだけで済んだのに。

ちょっと悔しいからサブディビジョンをかけて3440 ポイントにしてもう一回:

デフォーマー数:215
ポイント数:3440

XSIEnvelope の ペースト(弄った後):
0:00:18.2690

俺のVBS版 ペースト:
0:00:02.6914



このような作業(数千ポイントにコピー)がめったにないでしょうけど・・・


勝った!( ̄▽ ̄)



DOWNLOAD

俺のVBS版 :
mCopyPntWeight
mPastePntWeight

XSIEnvelope(コピー&ペーストの部分だけをとって、弄った後)
copyPointWeight
pastePointWeight

SI | mSymm update

昨日は mSymm に複数オブジェクトを対応して欲しいというリクエストを受けて、プラグインを修正してみました。

mSymm2 コマンドは1つのオブジェクトしか対応していないので、GUIだけでmSymm2 を何回も実行する事にしました。
こっちの方が簡単だったからです ^^;

ついでにカットはX軸しか対応していなかったミスを直して、更新しました。

何回もベータ版を出していて、もう2年以上これを使っているからこれで完成版として公開します。
(前回のベータバージョンと大きく変わっていませんけど)

mSymm Download Page


SI | エッジの形を変えずに等距離に整列する(実験)

Alan Fregtman氏の「evenCurves.py」をベースにして、エッジの形を変えずに
等距離に整列する実験スクリプトを書いてみました。

まだ実験的なものなので公開しません。

仕組みは簡単です。
エッジをカーブにして、カーブを均等にして、エッジのポイントの位置をそのカーブに合わせる。

それだけですけど、選択順で上手く行かなかったりします。特にポイント選択です。
ポイントとエッジの番号や選択順で結果が変わるところを直したいけど・・・何も思いつかないです。
誰かヒントを下さい!

パイソンで書いてるから普通より時間が掛かってしまいます><;
何より、エラーが分かりにくいからどこをどう直せば良いか分からない時が多い。

スペースとタブが混じってるだけでエラーが出たりさ。


そろそろ仕事しなきゃいけないんで実験終了。

Evenly Space Edges from myara on Vimeo.

SI | mXray v4

以前書いた XRAY スクリプト はちょっとバグっていて、コードが汚かったけど直す時間がなくてそのまま使っていました。

今日はちゃんと修正して更新しました。リンクは同じです。

DOWNLOAD

機能的にはあまり変わっていません。

コードを整理して、SetGlobalを使って、最後に使ったXRayモードを覚えるようにしました。

あっ、あとは OyaGさんの GViewButton も使ってるんで「label」タグを入れてみました。
(GViewButton はおすすめです!)

変わったところはそれだけかな。

なのになんで バージョンが 4 になってるって?

適当だからです。

SI | mCleaner 1.4 beta

自作ツールの mCleaner の進化バージョンです。

今んところはうまく動いているようですが、まだ色々テスト中なので一応ベータリリースです。
ヘルプやマニュアルみたいなものはまだ作っていないし。

大きく変わったところ:

・ Undo 対応 (テクスチャー削除だけは Undo 非対応)
・ 不要なテクスチャーをバックアップフォルダに移動というオプションを追加
・ 全てはカスタムコマンド化されていて、このコマンドを使ってチェックツール作成やカスタマイズすることも出来ます。
・ パーティション削除、ICE Tree 削除、など追加
・ GUI を調整して、ウィンドウの位置と言語変更が出来るプリファレンスを追加
・ .Preset を使用して、簡単にカスタマイズが出来ます。(カスタムコマンドを使ってもいいですけど)
・ コード整理。少しパフォーマンスアップ。

DOWNLOAD

※ インストールする時に、古い mCleaner のプリファレンスを削除しないといけないかもしれません。

カスタムコマンド:

mCleanObj (オブジェクトのチェック/整理)
mCleanScn (シーンのチェック/整理)

そして、もっと細かく別れているコマンドも作っておきました:

mCleanClusters (クラスタのチェック/削除)
mRenCls (クラスタリネーム)
mCleanProps (プロパティーのチェック/削除)
mFixGA (ジオメトリアプロクシメーション)
mFreezeSrt (スケール、回転、移動 フリーズ)
mPolyCheck (ポリゴン数確認)
mCleanMats (マテリアル整理)
mDelPassesLayers (パスやレイヤー整理)
mCleanModels (モデルのグループ、ミキサー、シンメトリーテンプレートのチェック/削除)

などなど。

コマンドが多いからマニュアル書くのはちょっと面倒くさいな・・・。
mCleanerCom.js を探ってくれれば、一応簡単な説明が書いてあります。

そのうちなんか書いてみます。

良かったら使ってみてください。
Previous page Next page