background

たとえば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)

スポンサーサイト





最近、PoserのPythonスクリプトを書いてみたりしている。以前から「これはスクリプトでできるんじゃないかなあ」と思ってたものがあって、その練習というか。

そんなわけで、Forum3Dにマグネットを鏡面コピーするスクリプトをUPしてみた。ダウンロードはフォーラムから。マグネットを左右反対側にコピーするスクリプトは既にあちこちで配付されてるんだけど、とりあえず自分の練習が主目的なので、そのへんは気にしないことにする。

とりあえず、こんな感じ。

100727-1

選択しているフィギュアまたは小道具にひっついているマグネットを反対側にコピーする。右腕についているやつは左腕に、頭や胴など真ん中のパートにひっついているやつは、パート内の反対側に。真ん中のパートの場合、マグネットゾーンが中心にあるものはコピーしない。X移動にちょっとでも数字が入っていたらコピー対象になるので注意。

当然、V4やG2シリーズみたいなマグネットフィギュアに適用すると不幸な事になる(笑)。

一回コピーした後に再度スクリプトを実行すると、以前にコピーされたマグネットを削除してからコピーを実行する。

100727-2

マグネットを追加したり編集した場合もそのままコピーできる、と。コピーされたマグネットは頭に「Mrr_」という名前がついていて、コピー実行前にその名前を判別して削除している。

100727-3

なので、スクリプトを実行するとコピー前に確認ダイアログが表示される、という感じ。

100727-4

V4とかの場合は、オリジナルのマグネットが鬼ほどカウントされるわけだ。まあこのテのフィギュアのマグネットはゼロポーズ状態では効いてないはずだから、モーフ作るだけならあんまり問題ないような気もするけど……。一応想定している主な使用用途は、マグネットフィギュアでないフィギュアの顔モーフ作成や、服フィギュアのちょっとした体型補整、FBM作成など。要するに自分にとって一番使うであろうと思われる用途である。

実を言うと、自分がどうしてもスクリプトの類いが好きになれない理由もこのへんにあったりして。要するにスクリプトっていうのは、面倒くさい手作業を省力化するのがおおもとの目的なわけだ。基本的に作者本人が使って便利なように設計されている。その「他人が作った自分仕様」を把握しないといけないのが面倒くさいんである。

スクリプトは便利ツール、喩えるならフードプロセッサーや高枝切り鋏みたいなものだから、初心者が先にフードプロセッサーに慣れると包丁の使い方も身に付かないから、というのとはまた別の話である。どちらかというと、隣の家に高枝切り鋏を借りようとしたら、柄の長さがその隣家の庭木分の長さしかなくて、しかもちょっと生暖かかったりして……みたいな心地の悪さを感じてしまうんである。だから自分が書いた物も、概ね他の人にとっては使い心地がイマイチ良くないものだろうと思っている。とはいえ、中にはそれでも需要がゼロでない可能性があるわけで。作った物を放流するのは「1は0より必ず大きい」というとある軍師様のお言葉によるものである。著作権を放棄してるものとそうでないものの違いは、クレームを受け付けるか知らんぷりするかの違いである。

まあそれはさておき。

100727-5

日本語版で小道具に対して実行したところ。マグネットの取得にマグネットベースであること、マグネットゾーンの検索にマグネットベースと同じ内部名の番号がついていることを条件にしたので、たぶんどんな名前が付いていてもカウントされる……と思う。

Zipの中にはエンコードがUTF-8のものとShift-JISのもの、二つのファイルを同梱している。P6まではShift-JIS、P7からはUTF-8になった……と思ったら、どうもUTF-8になったのはMacだけのようで、テストしてもらったWindows版Poser 7ではダイアログの文字化けが発生してしまったのだ。記憶が定かでないけど、P7が出た当初はMacもShift-JISだったような気がする、ような気がする。そのへんあやふやなので、とりあえずP7以降で日本語版を使ってる人は文字化けしない方を使ってもらえたらと思う。Mac P7EではUTF-8版もShift-JIS版も同じように動作する。

あと、フランス語版やドイツ語版を使ってる人は、自力でスクリプトのメッセージの空白になってる箇所とコメントアウトしてある言語振り分けのところを編集してもらえると、ちゃんと自国のメッセージが表示されて気持ち良いんじゃないかと思う。って、まずないと思うけど(笑)。



エナジードレインではなく。

2010年07月22日(Thu)

前回のForum3Dのお題でレンダに投稿した栄養ドリンクみたいなの、一応配付用に梱包したのでUPしました。ダウンロードはフォーラム内のダウンロードコーナーから。

アップにするとこんな感じ。反射を仕込んでるので、レイトレースでレンダするとちょっと重たくなるかもしれない。

100722-1

ポイントは回転しながら外れる子階層のキャップ(笑)

でもって、久々にライブラリから呼び出してみたのがこの人。

100722-2

社長というより七五三かもしれない28歳。髪の合わせとか、全然いい加減だったので少し再調整。折角だから全身入った絵をちゃんと作ってあげたいような気がしつつ、微妙に面倒臭さが気力を上回ってしまうのは、愛情が欠乏しているからではない。冷房のない部屋でMacが轟音を上げているからでも、たぶんない(笑)。

M4のパラメータダイアルが、ものっそい使い辛いからだ。

M4に限らずDAZの第四世代のフィギュアは、パラメータが事細かにグループ分けされ折り畳まれている。それだけでちょっと表情をつけるにも煩しくなるのに、何をトチ狂ったか軸回転3つの並びがパーツ毎にバラバラになっているのだ。

100722-3

なんでバラバラになっているかというと、CR2内のグループ分けの部分で「X軸回転-Y軸回転-Z軸回転」という順序固定で記述してしまっているからである。実際にはパーツによって屈伸(Bend)や横屈伸(Side-Side)になる回転軸は異なる。この記述がなければ、Poserはパーツの回転順序の順にダイアルを表示する。回転順序は「軸回転(Twist)-横屈伸(Side-Side) -屈伸(Bend)」で記述されているから、どのパーツでもダイアルの位置は固定になるのだ。

実際、Poserの操作に慣れてる人で、ポーズをつけるのにいちいちダイアルの名称表示を確認している人は少ないだろう。なんとなく「曲げるのは黄色の下のダイアル、捩じるのは上の、普通曲げないのはその間のやつ」みたいな感じで、本能というか無意識の内にマウスが動いているんじゃないかと思う。(小道具もちゃんと回転順序が設定されるものなら同じ感覚で操作できる)

で、第四世代フィギュアはその無意識にイチイチひっかかるんである(笑)。これはもう、「ダイアル操作メインのPoserなんて使ってんじゃねーよ」という圧力的メッセージと受け止めてしまっても仕方ないんじゃないかと思わざるを得ない。はらたつ。

というわけで、M4のダイアル表示をPoserっぽい並びにするポーズファイルを作ってみた。例によって著作権放棄、使用は自己責任で。

適用するとこんな感じになる。

100722-4

はいスッキリ(笑)。スケールを表示させたのはまあ自由度の為。スケール弄ったフィギュアはコンフォームでズレるとか、今更だから。わかっててやるんだから。

ポーズファイルでグループ記述を上書きすると、それまでのグループ分けは全部破棄されてしまう。なので、HeadとBODYは元のグループ記述をそのまま使うことにした。

100722-5

Read Scriptで!DAZ内のファイル呼び出すのとか面倒くさいので決め打ちで。持っていなくてもH4やF4のグループが表示されたり(もちろんダイアルは現われない)、自分が持ってないEliteモーフや市販モーフ入りのフィギュアに適用すると該当ダイアルが「その他」にごっそり移動するけど、まああんまり細かいことは気にしない方向で。

それにしても、最近(というか結構前から?)のDAZの方向性って、どうなんだろうと思ったり。何かのせいにして愚痴ったりするのってホントに嫌なんだけど、特に服関係の品質的な部分は、D|Sありきのフィギュア設計のおかげで作り手が色々投げちゃったんじゃないか、なーんて。

……M4の普通に着られるスーツ求ム。



前回のForum3Dのお題でレンダに投稿した死神の鎌みたいなやつ、一応テクスチャを起こしたので配付用に梱包してUPしました。ダウンロードはフォーラムのダウンローダから。

アップにするとこんな感じ。

100713-02

レンダ時にディスプレイスメントを有効にすると、ちょろっとだけ浮いてるように見える。

はたして。

以前、一つのマテリアルグループ内でまったく異なる材質を切り替えることは可能か、というような質問を頂いた。通常マテリアルが異なるところは、マテリアルグループが分けられているのが大半である。けど、中にはマテリアルグループが一つだけで、テクスチャで色だけを変化させてるようなジオメトリがあったり、製作者の意図よりも細かいところで材質を切り替えたい、というようなケースも発生する。

材質を分けたい部分がポリゴン単位で分かれているのなら、Poserのグルーピングツールを使ってマテリアルグループを新しく作成してしまえばいい。けど、複雑な模様のように材質の切替を画像で制御したい、という場合はそうもいかない。

まだPoserを始めたばかりの頃、マテリアルを切り替える場合の考え方を簡単な式に直してみたことがある(過去記事のこの辺り)。この数式の働きを一つのノードで行うのがブレンダー(Blender)ノードだ。

たとえば、以下の二つのようなまったく異なる材質があったとする。基本小道具の球を使っているので、マテリアルグループは一つしか存在しない。

100713-03

そこで、ブレンダーノードを使って下記のようにシェーダを組んでみる。アルファマップというのは適用具合を制御する画像のことで、だいたい透明度を制御するトランスマップの意味でも使われてたりする。ソフトによってはTiffやPNGのアルファチャンネルを読み出してくれるものもある。Poserの場合モノクロ256階調の画像または0~1の値を持つノードならなんでもアルファマップになる。

100713-04(クリックで倍サイズ)

すると、アルファマップの値が1となる部分(白い部分)には入力2のマテリアルBが適用され、0となる部分(黒い部分)には入力1のマテリアルAが適用される。

100713-05

ノードとノードの間を繋ぐと、その間は掛け算になる。この場合だと、ブレンド(Blending)の1に画像が黒のところは0が乗算されて0に、画像が白の部分は1が乗算されて1になる。したがって、ブレンドの値は0から1まで画像によって変化することになる。もしブレンドの値が0.5だったとすると、値は0から0.5までしか変化しないことになる。

この「ノード間は乗算される」ということが頭でわかってくると、最終的な値を自由にコントロールできるようになる。

たとえば鏡面値を、強いところは2.0、弱いところは0.4にしたいと考える。普通に白黒の画像を繋いだだけでは、値は0から1までしか変化しない。そんな時は数値演算(Math Functions)ノードを使って下図のようにシェーダを組んでみる。

100713-06

数値演算ノードは値1と値2を数値演算引数(Math Argument)の指定通りに計算するノードだ。今、1.6という値を持つ値1に、0から1までの値を持つ白黒のタイルが入力されて乗算される。すると、タイルの黒い部分は0に、白い部分は1.6になる。そこに、値2の0.4が加算されて結果黒い部分は0.4、白い部分は2.0になるわけだ。それをさらにルートノードのPoserサーフェスの鏡面値に接続して、設定値の1が乗算されて結果はこんな感じ。

100713-07

変化しているのは鏡面反射値だけである。

ここで、さらにハイライトサイズも変化させたいと考える。ハイライトサイズは鏡面値の弱い部分で0.02、強い部分で0.16に変化させるとすると、ノードの接続は下記のようになる。

100713-08

結果はこんな感じ。タイルの白黒の境界部分で、テカリの強さだけでなくハイライトサイズも変化しているのがわかる。

100713-09

こんな風に数値演算やブレンダーノードを使用すれば、1枚のアルファマップで色だけでなく鏡面値やバンプなど、さまざまな値を好きなように変化させることができる。

100713-10100713-11

適当に材質を組んでみた例。

シェーダが複雑になればその分計算はちょっと遅くなるかもしれないが、上手く工夫すれば必要な画像の枚数を減らすことができる。読み込む画像を減らせるなら多少の負荷低減にはなるわけで、覚えておいて損はないかな、と。

で、今回の鎌はそういう感じでマテリアルを作っていた、という話。



3マテリア

2010年07月10日(Sat)

前回・前々回のエントリで作ったhisayanさんのM3燕尾服用のマテリアル、roseさんから「せっかく作ったんだから!」という暖かい御要望を賜りまして、めでたく配付の運びとなりました。

100710

配付はリンク先のroseさん宅蜜×毒のDownloadコーナーにて。

あとPGP Tailcoat CollectionとしてJezzさんの衝撃耽美画と共に紹介して頂いてます(笑)。

ぶっちゃけ自分の絵というか自分のライティング用に調整してあるので、万人向けとは言うには少し調整が足りないんじゃないかというか、プロモ画詐欺みたいなところはあるんだけれども。

メインライトが白のスタンダードな三点照明でやってるんで、あんまり極端な多灯ライティングだと色飛びしたり、拡散IBLメインだとツヤが減ったりする可能性が大なので、その辺は適当に調整してもらえたらと思う。

自分ではこういうマテリアル改変しただけのアイテムというのは、オマケというか隙間商売みたいな感覚があるので、大々的に告知されるとちょっと気恥ずかしいものがあったりするんだけど……。とにかく、美麗なプロモ画を撮り下ろしてくださったJezzさんroseさんに感謝。

いやあ、テクスチャ使わない配付物の軽いこと軽いこと(笑)。



黒マテリア白マテリア

2010年07月07日(Wed)

燕尾服のマテリアルをさらにぽちぽちといじったりして。前回のが紺系の黒だったので、今度は紫系の黒とか。

100707-1

色調補正した完成版はこっそり本宅ギャラリーにUP。

あと、いい機会なので練習がてら白のマテリアルも作ってみた。

100707-2

ライティングの加減でちょっと飛び気味ではあったり。

黒も白も、質感を出すのは難しい。とりあえず、完全な白や完全な黒は使わず、ちょっと赤味がかった暗い灰色とか、ちょっと緑味がかった象牙色とか、わずかに明度をずらしたり色を混ぜたりすると陰影が付きやすくなると思う。あと、鏡面反射色にはまた違う色相をまぜてみると色飛びが防ぎやすくなったり。

物質の質感は、そのものの色ではなく光沢の現われ方に大きく左右される。光沢の現われ方は鏡面反射とハイライトサイズ、そしてバンプに左右される。逆に、バンプの効果を際立たせるのも光沢だったりする。

100707-3

同じバンプを適用した状態で、左が光沢なし、右が光沢あり。光沢がある方が「表面に凹凸がある」ということがハッキリわかる。マテリアルの設定をするとき、闇雲にバンプの値を上げるよりちょっと鏡面を設定する方が効果的だということがわかるはずだ。

100707-4

鏡面値とハイライトサイズを変えるだけでも、まったく違う物質のように見える。当たり前のことだけど、それだけにいい加減に設定しがちなところだ。逆に、どれぐらいの設定をすればどういう風に見える、という部分がある程度分かってくると、マテリアル調整がぐっと楽になると思う。

そんなわけで、マテリア配付考えちぅ。



さらにプチプチと。

2010年07月02日(Fri)

というわけで、ちょっと寄り道したけど次の手直しに着手。

100702-1

お次の犠牲者はアラン。っていうか、大抵手直ししたりいじったりする時はこの順番(キャラを作った順)でやってるんだけど。

100702-2

というわけで、まずはSapphire Fox HairをM3フィギュア化。前回のBaby Doll Hairの骨を流用するだけだから、後はモーフとマテリアルをコピーするだけで終了。アランとユーティはキメラボディにするつもりはないので、あとはHexagonでプチ整形をちょっと。

そういえば、アランとユーティは同じM3RR標準体型だと思ってたんだけど、確認したらアランの方にちょっとだけ筋肉増強モーフが入ってた(笑)。

マテリアルとテクスチャはまだ未着手のまま。なんだけど、とりあえず

100702-3

これの絵を作りたかったのだ。

M3愛好家の皆さん! フリーのM3服ですよ! しかもフォーマルですよ!

roseさん主催のPGP企画にて、hisayanさんのM3燕尾服とroseさんのテクスチャセットが配付されております。ここ読んでる方はもう入手済みだと思うけども、まだの方はリンク先へGO! そして可及的速やかに野郎画を作成して公開するように(笑)。

着こなしとか細かい変なところは笑って見過ごすように(はっはっは)←自分で笑う。

杖と帽子はDAZの何か(ぉぃ)から。いつだったかキープしてた、DAZのマグネットセットでWaist NarrowとかHip SmallとかSkinnyを微妙に追加。そしてこの文章を書いてる今になって、手袋を表示するのを忘れていたことに気がついた(爆)。

いやー、ひさびさに気持ちの入った男物アイテムだ。最近の男性服はなんていうか、「あればいいんだろ、あれば」的なやっつけ感というか、DAZ製品がその程度で完結させてしまってほとんど誰も「いや、それじゃ良くないだろう」と気合いの入ったアイテムを作ろうとしないというか。そんな中で、まだまだこうやってフリーで絵になるアイテムを配付してくださる人がいることに、感謝の気持ちを表したいと思う。

とか言いつつ、いきなりマテリアル総取っ換えで黒服の質感練習したりするあたりがアレだけど。





Menu

Profile

Kyotaro

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

Categories

Calendar

06 | 2010/07 | 08
- - - - 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非推奨。