background

頂点融合するスクリプトを作ってみた

2010年07月30日(Fri)

たとえばHexagonでSoftenツールを使ってなだらかにするとき、面に切れ目が入っているとその部分の切れ目が広がってしまう。

100730-01

また、Soft Selectionを使うと選択範囲は切れ目をまたがないので、パーツの境界付近を選択すると段差が生じてしまうことになる。

100730-02

で、同一位置の頂点融合を行うPythonスクリプトを作ってみた。

100730-03

こんな感じ。

Poser上では面の切れ目に境界線が入るけど、スクリプトを実行すると境界線がなくなる。もちろんポリゴングループを統一したり、普通に頂点融合を行うだけならPoserの操作でできる。けど、一度融合したジオメトリを、元の頂点順序を再現して再分割するのは普通じゃできない。なので、それをスクリプトでやってみようと。

まあ、Windows使ってる人には意味のない話(笑)。

スクリプトを実行すると融合か分割か処理を訊いてくる。

100730-04

頂点融合の場合はファイルを一つ選択。Wavefront OBJ形式しか読み込まないので注意。

100730-05

無事に読み込めると同位置頂点を検索し始める。頂点数によってはものすごく時間がかかる。で、上手いこと処理ができると新しい小道具が作成されて、ついでに書き出すかどうか訊いてくる。いいえを選んで後から出力しても同じ。

100730-06

ちなみに融合は完全に同じ位置に頂点がないと行われない。

で、融合後のジオメトリをモデラか何かで編集する。もう一回元の分割状態に戻すには、融合前のジオメトリと融合後のジオメトリの二つが必要になる。

100730-07

メニューで再分割を選ぶ。

100730-08

最初に分割前のジオメトリを、続けて融合後のジオメトリを選択する。

100730-09

ファイルを読み込むと同位置頂点の検索を始める。やってることは融合時と同じなので、時間も同じ以上にかかる。検索の結果、融合後のジオメトリと頂点数が一致しないとエラーになる。で、再分割ができたら同じようにジオメトリを出力するかどうか尋ねてくる。

100730-10

同位置頂点の判定をものすごく単純な力技で検索しているので、頂点数が増えれば増えるほど処理時間は指数関数的に増えていくことになる。その間Poserは止まってしまうので、うっかり大きなファイルを処理すると怖いことになる。とりあえず同梱のサンプルでテストして、自身の環境でどれぐらいの時間がかかるのか確認した方がいいと思う。ちなみにウチのPoser Mac G5 2.5 dualだと6598頂点のファイルで5秒ぐらい、1万2千頂点の自作シャツのジオメトリだと30秒以上かかる。3万足らずのジオメトリで2分ぐらい。

あと、Poser 7のSR2以前だと、Pythonでの読み込みにコケるので推奨しない。また、Windows版はShift-JISでダイアログを出力するようにしてみたけど、文字化けした場合は自力でUTF-8に直すか無視してもらえたらと思う。動作上は化けてても特に支障はない。

で、イマイチおおっぴらに配るには自信のないシロモノなので、こっそりとこちらに置いておく。
Python_WeldDivideVertices.zip (352kB)



Comments

Windows 7 x64 - Poser 7J SR3 でダイアログの日本語も正常に表示出来ています。要はスクリプト自体はShift-JISで保存し、文字列の表示時にunicode化するということだと思います。

Name
T2 #OwGBkIc2
Site
URL
Post Date
2010-07-31
Post Hour
00:00:00

Edit

>T2さん
おお、早速の検証ありがとうございます~。とりあえず、今のところは「本文をShift-JISで記述→その場でUnicode型文字列に格納→出力時にOSでUTF-8かShift-JISに振り分け」で対応しようと思います。
Win P7JSR3でのテストが出来てなかったので助かりました。ありがとうございます。

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2010-07-31
Post Hour
00:00:00

Edit

Post Comment

管理者にだけ表示を許可する


Trackback

※このブログにトラックバックを送信する場合、お手数ですが本文中にブログ該当記事へのリンクを含めてください。

トラックバックURL:http://rutenshikai.blog63.fc2.com/tb.php/431-b039bcfe



Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。