カテゴリー「XSI Modeling」の5件の記事

2013年12月20日 (金)

力押出。

XSI のパスに沿ったエクストルードが不満でしてね。



そしたらやまぐちさんが、いいツールを俺に教えてくれましてね。

Extrusion Along Curve - Update 3 (Power Extrude) from Fabricio Chamon on Vimeo.

パワーエクストルード。
まさにパワーです。
名前に負けていません。


いやこれ、もう、スヴァらし過ぎでしょう。
無いと死ぬプラグインリスト直行です。






標準のエクストルードの何が不満って、パスカーブの形によっては、押し出されたオブジェクトの幅が一定になってくれないことなんですよね。  言い換えれば、直線部分が平行のまま最後まで行ってくれない。


こういう感じ。

A1

途中、黄色い線の部分のせいで、直線部分の幅が一定でなくなってしまうんですよね。 これって、どこをとっても断面形状の大きさが変わらないようになってることが原因なのかな?  こういうコーナー部分って、断面形状がより大きくならないと、全体の幅を一定に保てない(直線を平行に保てない)ですよね?  XSI 様のエクストルードはそれができないんですよね。



でも Power Extrude を使うと・・・・

A2

これですよこれ

コーナー部分の断面形状が広がって、直線部分はずっと同じ幅をキープしてます。 これをやりたかったのです。 スヴァらしい。 今まで俺、何年も何年も、手で修正とか見た目で修正とか、そういうアフォくさいことやってました。 Power Extrude は 2011年にはもう存在していたみたいですから、そこから以降だけでもだいぶ助かったはずなのに、知らなかった・・・・ orz





ちなみにこのパワーエクストルド子ちゃん、高機能なもんだから、こんなことまで出来ちゃいます。

B1

Fカーブで幅の制御っ
なんか鋭くてカッコいいね


パワーエスストルド子ちゃんは、その正体は ICE コンパウンドなんですね。 で、この幅を制御する機能なんかは、そのコンパウンドに対して別途付属のコンパウンドをさらに接続してやれば出来ます。 でも ICETree を開かなくても、押し出された形状を選択した状態で上記のようにメニューから選ぶだけでも適用できます。 ウラで、自動で ICETree にコンパウンドを接続してくれます。


B2

こういう風になってるんですね。 最初にこのツールを使っただけだと、真ん中のコンパウンドのみです。 Fカーブによる幅の制御は、後から追加した、左側の黄色っぽい色のコンパウンドが担当しています。 ICETree に自分でつないでもいいし、上記のメニュー操作をすればその ICETree 接続の操作が自動でなされるということです。





そもそもね、XSI様標準のエクストルードは、出来た形状が勝手にロールしやがるのが非常に困っていたんですよね。

C1

断面形状はロールしてないんですよ。 でも押し出すと、途中でヘンなロールが入る。 しかも一定ではない。 パスカーブの形によっても大幅にロール具合が変わる。 非常に困ります。


しかしエクストルド子ちゃんを使うと・・・・

C2

ロール無し。
結婚して下さいエクストルド子ちゃん。






あ、そうそう、ひとつ気づいたんですがね、ルド子ちゃんを使って、ヘンなねじれが入ることがあったんですよ。

D1

これ、2つともルド子ちゃんです。 でも右の方は、パスカーブの曲がり方が鈍角ですよね。 これなら問題ないです。 しかし左の方はパスカーブは、鋭角です。 こういう場合に、ねじれが出ることがあるみたい。


でもそういう時は、このようにオプションで分割をいれてやったら、解消しました。

D2

実にいい子じゃないかルド子ちゃん


これは、ルド子ちゃんの機能を使って結果のメッシュの分割を増やすことで対処してますが、おそらく、パスカーブの該当部分を分割してやるのでも同じだと思います。 ねじれる部分のパスカーブのコントロールポイントの中間にもう1点足してあげるということね。





その他、たくさん機能があって、まだ全然いじれてません。 なんか、オフセットさせたり? ゆらゆらするようなアニメーションもできるし、押し出しが成長/減退するアニメーションも可能だし、まるでカーブデフォームで形状がパス上を進むような、押し出し形状のパスカーブ上での位置アニメーションもできます。 すげえ。ほんとにすげえ。  ざまあ見さらせ嘔吐デスク様。 作者の Fabricio 様 は神様です。  わー、他のビデオも見ると、なんだか超テクニカルかお方なんですね。 カッコいいなあ。 うらやましい。






しかしやはりこの、パスカーブの形状を気にすることなく幅が一定の押し出しが出来るってのが、一番ですね。  普通、これ必要でしょう。 なぜ標準でできないのかは不明ですね。


こういう場合もよくあるじゃないですか。

E1

断面形状は小さい四角です。 大きい方の四角がパスカーブです。




これを XSI 標準のエクストルードと、ルド子ちゃんで比べてみましょう。

E2

上が XSI 様標準、下がルド子ちゃんの結果です。

あんまり変わらない?

そう見えるでしょう。



でもこのパスカーブを、頂点2つを横にスライドさせて平行四辺形のように変形させてみて下さいよ。

E3


やっぱこうじゃなきゃあ。

ルド子ちゃん愛しています




.

| | コメント (0) | トラックバック (0)

2013年10月 9日 (水)

サブDハードエッヂ。

先日皆さんに教えて頂いたことをメモります。



+ キーを押してサブDしたオブジェクトを、サブD後の状態で固めてしまいたくなることはよくあります。 「固める」 というのは俺が勝手にそう言っているだけですが、サブDで分割された結果の状態をナマのポリゴンとしてベイクする、つまり分割後の状態へコンバートしてしまうことです。


で、それをやるためには Edit > Duplicate/Instantiate > Duplicate using Geo App. でもいいですし( + キーによるサブD後の状態で複製)、 Create > Poly Mesh > Subdivision でもいいですし(サブDされた新しいオブジェクトを作る)、ポリゴンを全部選択して Modify > Poly Mesh > Local Subdivision Refinement(選択中のポリゴンをサブDのアルゴリズムで分割)でもいいですよね。 結果は同じです。たぶん。


しかし、もともとのオブジェクトにハードエッジが設定されていた場合、上記の方法で複製した時に、複製後のオブジェクトからはそのハードエッジが消失してしまっているんですね。 

Subd_he1

一番左がもともとのメッシュです。青い線のハードエッジがあるのがわかります。そしてサブDされています。

これを、Duplicate using Geo App で複製したのが真ん中です。 ハードエッジ消えてます。 ちなみに Create > PolyMesh > Subdivision で複製しても同じ結果です。

Local Subdivision Refinement したのが右側です。ハードエッジ消えてます。


どの方法でもハードエッジは消えるのですね。
なんでやねん。
これが問題なわけですよ。 

どーしてハードエッジ消してしまうんですか XSI さま。 消した方がいい理由があるんですか。 ないですよね。 アフォですかあなた。 そんなことしてるから嘔吐デスク様から見放されるんですよ。 レンタルとか当然できねえし。


余談ながら、Local SubD 使った方法とそれ以外の方法で、結果が完全に同じにならないのは俺だけ? ちょっとだけ頂点の位置がズレる部分があるんだよね。  サブDのアルゴリズムは同じ Catnull-Clark 使ってるのに・・・。 これはいずれ検証しないといかんか。。。




と困っていたところ、複数のお方が救いの手を差し伸べてくれまして、サブDを固めた後にハードエッジを復活させる技を教えて頂きました。


そのやり方ですが、まず、一番右、Local SubD Refinement を使います。 真ん中のはダメです。 Local SubD じゃないとダメです。


次に E キーなどを押してエッジ選択モードに入ります。

次に、インターフェース右上のセレクションフィルタの三角アイコンをクリックして、 Crease Edge を選びます。

Subd_he2

この状態で、Local SubD したオブジェクト全体を囲むようにエッジを選択します。

すると、

Subd_he3

画像にあるように、Local SubD したオブジェクトには Crease Edge としてハードエッジの情報が残っているらしく、選択ができちゃいました。 真ん中のオブジェクトはダメですね。


選択さえ出来てしまえばもうこっちのもんです。 そのエッジが選択されたまま、Mark Hard Edge してやれば、元のオブジェクトと全く同じエッジをハードエッジにすることができます。 以上。 ううむ、スヴァらしい。



Crease Edge は、Hard Edge とは本来、違うものです。 目的は基本的には同じようなものだけど、Crease Edge は Hard Edge と違い、ハードにする度合いがパラメータで調整できますね。 でも、Local SubD した時には、Crease Edge も Hard Edge もいっしょくたに、Crease Edge というフラグが立てられて残るように見えます。 試しに、Hard も Crease も両方混じったメッシュで同じ実験をやってみましたが、結果は同じでした。 つまり、Local SubD した時のみ、Hard も Crease も両方、Crease Edge フィルタに引っかかってくれました。





ってことで、基本、このやり方でいいんではないかしら。
他にも良い方法がありましたら、どうか教えて下さい。




もし、Crease Edge も Hard Edge も両方含めた Crease Edge フィルタを使うのではなく、Hard Edge のみを選択したいという場合があったら、それは ymt3d さん のスクリプトを使うとよいようです。

http://3dnchu.com/archives/select_hard_edge_softimage/

おお、ICE のアトリビュートに EdgeIsHard なんてやつがあるんですね? そのフラグを見てハードエッジかどうかを判断しているようです。


Special Thanks to 秋雨様 / マーティンくん / ymt3d 様

いつもお世話になります
(゜∀゜)






あ、そうだ、念のため空調屋さんにも聞いてみたんですよ。 そしたら、嘔吐デスク様にも問い合わせてくれて、結局は良い方法は無いとのこと。 リクエストとして受け付けてもらったようです。 ↓

BSPR-11153
Duplicate using Geo Approx ignores hard edge if changed OGL Level


通常の複製ではハードエッジは引き継がれるわけですから、サブDしたもので出来ない理由はないですよね。 Gator とかでも転送できないし。 最初からそれができれば問題ないのに、謎仕様ですよ嘔吐デスク様。 

でも、一応リクエスト受け付けてくれたのですね。 リクエストなんて実現するかどうか全く分からないし、むしろ実現しないやつの方が多いと思うんだけど、門前払いをしないでちゃんとリクエストとして受け付けてくれるだけ有り難いですね。 某様の方は、今のところ、門前払いが少なくないという印象なんですよねー。 「多くの人がそれを望んでいるわけではないからリクエスト受け付けません」 「MEL で出来ることはそっちでやればいいからリクエスト受け付けません」 みたいな。 いやほんと。 代理店通してもそうなんだから。


あ、俺が XSI 村の村民だからですか。

納得。




.

| | コメント (0) | トラックバック (0)

2011年3月11日 (金)

ベベルをあきらめないで。

最近もう、ベベルばっかりです。いったいもう、何千本のエッジをベベルしたのだろう。


その中で、最近発見した技というわけではないんだけど、毎日ベベる時に気にしていることを、ちゃんとまとめて考察したことがなかったので、残しておこうと思いますた。 いや、ベベる前に分割を考えましょうというそれだけの話で。そんな活気的な話ではないし、バリバリモデリングする人は当たり前のようにやってることだとは思うんですがね。





こういうブツがあります。
B1

黄色の矢印で指しているエッジだけをベベりたいとします。


普通にベベると、
B2

非常に汚いポリゴンが出来てしまいます。思いっきりねじれた、非平面なポリゴンです。



でもあきらめてはいけません。



側面に分割を入れることによって、どう変わるか見てみます。
B3

上の列、A1~D1がベベル前の状態です。 側面に、赤い印の頂点から、水平や垂直方向に分割を入れています。 ベベル後が下の列、A2~D2です。 先ほどの汚いポリゴンができたのは、分割無しのDですね。

Aはもう、ベベったエッジから発生したポリゴンがよじれているので論外です。 Cは、真ん中にできた台形のポリゴンが超よじれています。このアングルだとわかりにくいですが、寄ってみるとひどいポリゴンだと言うのがわかります。そもそもこんな台形欲しくないし、論外です。

となると、この中ではBが一番キレイなように見えます。



でも、
B4

うーむ、やはりこの三角ポリゴンが気に入らないですね。 このエッジだけをベベろうとしている以上、ここにポリゴンが発生してしまうのは仕方ないんですが、問題は向きです。三角なのが気に入らないのではなく、向きが気に入らないんです。 ベベルによって出来たポリゴンとも、ベベル前から存在していたどのポリゴンとも、ツライチで平面になっていなく、独自の向きを持っているというのが気に入りません。 

結果的に出来たメッシュによじれたポリゴンはひとつもなく、キッチリした見た目にもなっているので、こういうパターンのベベルも場合によってはアリでしょう。 しかし今回は、ベベルで出来たポリゴン以外で、勝手な方向を向いているポリゴンを発生させないことにこだわりたいのです。


あきらめてはいけません。



分割の入れ方を変えると・・・・・
B5

1がベベル前です。 赤い印の頂点から、垂直や水平ではなく、上の斜面の傾きに一致した分割を入れています。 この状態でベベったのが2です。 これでキレイなベベルになりますた ヽ(・∀・` )ノ


相変わらず真ん中に三角形のポリゴンは発生するわけですがそれは当たり前です。大事なのは、この三角形が上の斜面と完全にツライチで平面になっているということです。 




なにしろ完全にツライチの平面なんだから、その後の処理は格段に楽だし、よじれた面などとは無縁です。
B5b

なんならベベル後にこの三角形のエッジを削除したって良いでしょう(赤い矢印)。

他の頂点へ接続したり、ぐるっと一周回すようなエッジループを作るのもアリでしょう(黄色の線)。

最初の分割のためにできてしまったエッジは、あくまでもベベルをキレイにやるために一時的に入れたエッジなので、最終的には必要ありません。有無を言わさず削除します(青い矢印)。

イエイ。 これで良いのです。




ちなみにこのような「あるエッジと傾きが一致した分割」を入れる方法ですが、色々あるでしょうが、簡単なのはスライスツールですね。ナイフのアイコンのアレですね。 Left や Right などパースの無いビューでスライスツールを起動し、上の斜面を構成する2つの頂点を Ctrl でスナップしながらピックすれば、その2点をつなぐ傾きでオブジェクト全体にスパッと分割が入ります。気持ち良いです。 オブジェクト全体に入るのが嫌なら、先にポリゴンを選んでおいてからスライスツールを起動します。そうすると、そのポリゴンにしか分割が入りません。




ベベりたいエッジが斜面のエッジ(下の画像の黄色い矢印)だった場合は、
B6

赤い線の方向で分割を入れておけば、同様に美しいベベルができます。 中央にできた三角ポリゴンは、隣接するポリゴン(上面)と完全にツライチです。



最初の分割では、ベベりたいエッジが、そのエッジに対して水平でも垂直でもない傾いたエッジと隣接しているにも関わらず、水平や垂直に分割を入れてしまっていたのが間違いでした。 傾きに合わせた分割さえあれば、キレイに行きます。たぶん。俺がやった限りでは成功率100%。 

これが求めていたベベルです。 過去には、キレイにベベルできない時はベベル機能を使うことをあきらめてしまい、Ref プレーンやスナップを駆使して泣きながら手ベベルで対処したことも1度や2度ではありません。今ではあきらめず、まず分割を試します。 そのおかげで窓から遠投されるモニタの数は最小限で済んでいます。 あきらめたら負けなんです。 岡村さん、俺もう、あきらめないことにしたよ。





さて、今度はこういうベベルをしたいとします。
B7
黄色いエッジをベベります。



例によって、分割違いを試してみると、
B8
B と C では、黄色い印のポリゴンが歪んでしまいました。 前回のベベルでは、この B と C の分割パターンが正しいベベルにつながったのに、今回はダメです。  むしろ、A と D が上手く行っているように見えます。 前回はべべるエッジがあの1本だけだったからですね。ベベりたいエッジと隣接したエッジの状態によって分割の方法を使い分ける必要があるということが、わかります。


さて、A と D が上手く行っているように見えると書きましたが、A の青い印のポリゴンに寄って見ると、
B9
パースのないフロンとビューで確認すると、ベベルによって発生したポリゴンが歪んでいるのがわかります。 これではダメです。

ということでこの場合は、歪んだポリゴンがひとつも発生しなかったは D だけでした。 Dはそもそも分割無しです。 なんでもかんでも分割すりゃいいってもんじゃないことが、わかります。




ということで、ベベルが上手く行かない時は、あきらめずに分割パターンを試したり、分割しなかったりすると、夢が叶います。たぶん。






岡村たん。。。。。



お、なんかこっちの方がいいな










いや、これが一番いいな。







.

| | コメント (0) | トラックバック (0)

2011年2月28日 (月)

べべる。

某所で 「ベベルかけると、平らな面に変な折れ目が付く」 とゴルァされておられる方がいらっしゃったのでその考察なんですね。 いや、考察というほどのもんではないですがね。 こういうことで解決しねえかなあ、俺はいつもここを気にしてるけどねー という程度の話です。


キューブをベベりました。
Bevel1
クリックででかい画像が別ウインドウに現れます。


右のキューブは、全部のエッジを選んでイッキにベベったものです。 カドに生成されたポリゴンに三角形が混じりますが、上面はキレイです。 上面は四角形ポリゴンです。 角度によっては上面に線が見えたりもするけど、メンタル霊でレンダする時はほとんど見えません。無視できるレベル。 あるいは、ベベルの分割数を増やすともっとその影響は減ります。

左のキューブは、U方向とV方向で2回に分けてべべったものです。カドのポリゴンは四角のみで構成されますが、上面は四角ポリゴンではありません。 で、汚い線が現れます。メンタル霊でレンダしてもバレバレです。ゴルァです。


どちらも、もちろん上面は100%フラットです。よじれてません。


大きな違いは、上面が四角形ポリゴンかどうかということになると思います。詳しいその原理を語れるほど理解してませんが、要はべべった結果丸まったエッジのポリゴンと、上面ポリゴンがどのようにスムージングされるかの問題だと思います。 法線表示をオンにして、法線方向を意識しながらエッジの入れ方を変更したり、俺はよくやります。 この辺はゲーム屋さんとかがむっちゃ詳しいのではなかろうか。


右のキューブのようなベベり方ができればそれで良いかもしれないけど、諸般の事情でそうも行かないことも多いはず。っていうか普通にモデリングしてると、左のキューブのような状態にした方が、スムージング以外のことで都合の良い場合が多い。



そこで左のキューブに、エッジを足しました。
Bevel2
エッジを足した結果、上面ポリゴンは四角形になりました。 変な線は消えました。 メンタル霊でレンダしても、消えています。 イエイ。


厳密に言うと、黄色いマルを付けたポリゴンで同じことが起こっているはずだと思います。ただしエリアが狭いのでバレてないだけ。 原理的にはそうだと思うんだが、どうでしょう? 詳しい人教えて下さい。

この黄色いマルのポリゴンを、さらにエッジを足して追い込んで行ってもいいと思います。 ただしそれだと細長~いポリゴンができてしまうわけで、これがまたシェーディングに悪影響を及ぼしていると思われることもあります。 なのでUV両方向に均一にエッジを足して、なるべく正方形というか、タテヨコ比率が1:1に近いポリゴンになるようにする方が良いと感じています。 そっちの方がテクスチャ的なUV作業にも都合いいし。



この話とは必ずしも関係なく、Geometry Approximation の Discontinuity に最適のスムージング閾値をくれてやるのも必須ですね。 あと、俺はいつも、カドが立って欲しい、あるいはカドが立ってもかまわない場所は有無を言わさずハードエッジをくれてやります。曖昧なままにしない。ハードなところはハード。丸いところはしっかり閾値に引っかかる角度になるよう分割を入れる。白黒はっきりさせた、漢のモデリングです。



デタラメ言ってるかもしれません。
知りません。



ごきげんよう。



.

| | コメント (2) | トラックバック (0)

2011年1月21日 (金)

平面 Knight。

すいませんちょっと疲れちゃってるので、ひとまず投げやりに書きます。


昨日の夜に、平面ナイトが勃発しました。


平面じゃない、よじれたポリゴンを、平面にするという作業をやっていたんですが、意外とアクロバティックな形状だったりして、難儀してましてね。 スケールゼロで平面にしちゃうと、そのポリゴンはいいけど、となりのポリゴンが平面でなくなったりするわけでね。 なので、あるエッジの傾きはキープしたまま、こっちのポリゴンは平面になってくれ、ということがやりたくて。 


そしたら、身長272センチのあのお方が、スライスツールを使ったワークフローを教えてくれました。 手順はちょっとめんどくさいけど、ひとまずやりたいことはできたように見える。


その手順をスクリプトにしたというだけのものです。


ダウンロード HeimenKnight_alpha1.js (2.0K)

Heimenknight
生まれて初めて GIF アニメーションを作った気がする



書きたてほやほやです。エラーチェックもしてないし、検証なんてマトモにしてないし、このスクリプトを使っても結局手作業多いし、出すのが恥ずかしいくらいのスクリプトなんですが、まあ、誰か興味のある方がいたら揉んでくれないかなーなんて思いましてね。

スクリプトは、もちろんプラグインになんてなってません。スクリプトエディタで走らせる必要があります。JScript です。

オブジェクト1個にしか効きません。コンポーネント選んで実行しないと止まります。 GIFアニメーションを見るとわかりますが、窪んだ形= concave の時はまだいいけど、convex 状態の時は手で concave にしてから実行しないとダメです。

とかいう実にベアなスクリプト。



やってることは、スライスツールでぶった切る平面を、選択したポリゴンから自動で取ってくるというだけですね。 ある平面を基準に、その延長面上でスライスすればぜってー平面になるはずだ、というアイデアなわけで、そういった平面を構成するためのしくみなどを思いも付かずにただ作業している阿呆な俺にはとてもありがたかったのですが、手順がめんどくさかったんです。だから自動化しただけ。手作業のログを書き換えた程度のものです。

しかも平面の計算だかベクターだかノーマルだか、そういうの俺にはさっぱりなので、ダミーのヌルに Object to Cluster + Tangency & UpVector オンをかまして平面の傾きと位置を取ってきています。退廃的です。 そして値が取れたら気付かれないようにこっそりヌルもクラスタも消しておくなどという、実に姑息な手段をとっています。 なんとも俺らしい、難しい計算は XSI 様の何かの機能を使ってやってもらおう、結果が同じならいいじゃん的な、自暴自棄なスクリプトです。


複数のポリゴンを基準面にすると、その平均化された傾きの平面でスライスされますね。当たり前ですが。 エッジやポイントを選んで実行してもOKですが、まあ使い物にはならない。ポリゴン選んで実行するのがほぼ前提です。 しかも、完全な平面を目指すなら、三角形の平面を選んでおくべきですね。 基準面が平面じゃないと、結局平均化された平面でスライスされるわけですからね。



まあそんだけです。




平面ナイトに参加してくれたあのお方は、スクリプトで法線のベクトルを出す方法を教えてくれました。しくみは理解できていませんが Orz

あのお方たちなんかは、俺に丁寧にスライスツールの使い方を教えてくれました。スライスってあんまりやったことなかったので、初めて知ることばかりでした。

あのお方は、スライスツールを使ってエッジ同士の交点に頂点を打つ方法を教えてくれました。なるほどなあ。俺頭カタいなあ。

あのお方は、シュリンクラップ風に平面にする ICE コンパウンドなんか作っちゃって、さすが手が早い。嫉妬しました。 今回俺がやろうとしていたこととはちょっと違う方向のものですがそれはそれとして、ICE デフォーメーションの参考にさせて頂きます。 でも、しくみを理解しようとしてコンパウンド開いてみましたら、俺にはサパーリでした Orz

あのお方は、Python で平面化スクリプトを書いてくれました。 さすがわかっている人は違う。 でもすいません、まだ試してません。 明日やってみます。



ええと、他にも協力して頂いた方いましたっけ。



ということで平面な夜を過ごしたみなさん、ありがとうございました。
まだ俺の平面ナイトは終わっていません。
またアイデアを下さい。
俺の代わりに頭を使ってください。
よろしくお願い致します。




.

| | コメント (3) | トラックバック (0)