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

Comments

こんにちは。ミゲルです。
ぜひこのスクリプトを使ってみたかったのですが、使い方がわかりませんでした…
宜しければ教えて頂けると嬉しいです。
使用ツールはSI2013です。

  • 2015/07/31(金) 01:09:07 |
  • URL |
  • ミゲル #-
  • [ Edit ]

Re: No title

シェルフかツールバーを使って、ボタンを作った方が一番簡単かもしれません。

以下の記事を参考に:

http://myara.blog.fc2.com/blog-entry-49.html

  • 2015/07/31(金) 01:12:03 |
  • URL |
  • myara #-
  • [ Edit ]

お返事ありがとうございます。
環境があるところで試してみます。

  • 2015/07/31(金) 01:31:22 |
  • URL |
  • ミゲル #-
  • [ Edit ]

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/195-a46e7196
Use trackback on this entry.