2018年01月

2018年01月31日

プロシージャルモデリングについて調べてみた その21modo11.2v2

前回に引き続き「ElboPipe」アセットの「elboPipe」アイテムの中を調べてみたい。

fig02

前回は「elbo CylinderProfile」オペレータを調べたけど、このリストを見ると「elbo CylinderProfile」の下で無効になっているオペレータが2つ見える。

fig01

「N-SideProfile」は「多角形」オペレータで、ポリラインの多角形を生成してパイプの輪郭にする。「elbo CylinderProfile」がポリゴンタイプを「Catmull Clark」にしていたのに対してこちらのタイプは単純なポリラインなので、「elbo CylinderProfile」を無効にして「N-SideProfile」を有効にして切り替えてみると、

fig04

多角形の形状がそのまま輪郭になる。

fig03

ただ、上の画像を見てわかるように端面が塞がらないであいたままになるのと、「サイド」パラメータの数によってパイプの面が反転してしまったり、サイズも「elboUI」から変えられなかったりする。

fig05

その場合は「elboUI」の「Extrude Profile Flip」を切り替えればいいようだ。

fig06

fig07


続きはまた次回。

modo10-11ブログ目次



take_z_ultima at 11:30|この記事のURLComments(0)modo | CG

2018年01月30日

ビットマップペイントツールのチュートリアルをやってみた その117 3dsmax 2018

引き続きMAXScriptマニュアルに載っている「チュートリアル-ビットマップペイントツールを9つの簡単なステップで作成する」 の続きを考えて見たい。

プログラムがだいぶ形になって来たのでいろいろなシーンでプログラムを試してバグ出しをしている。前回のプログラムも「maxFaceRadius」の値を変更した時に変数の値に適用するのを忘れてたり、ブラシサイズのコントロールが使われてなかったりと言った凡ミスがあった。また、「ボリューム選択」モディファイヤの処理についてもイレギュラーな事象が見つかって、要修正になった。

このプログラムではペイントを高速化するためにペイント対象となるポリゴンを「ボリューム選択」モディファイヤを使って選んでいる。

そしてその「ボリューム選択」はギズモに干渉するエレメントが選択される仕組みだ。

通常このギズモはモディファイヤを適用したオブジェクトのバウンディングボックスのサイズで現れる。

例えば下のティーポットに「ボリューム選択」を適用すると、

fig01


fig02

「ギズモ」は下のようにバウンディングボックスのサイズになる。

fig03

そこで必要なサイズのギズモが欲しい時はそのバウンディングボックスを必要なサイズのボックスにあわせるためのスケールを計算して、ギズモの変換マトリクスにスケール変換としてセットする事になる。

ところがモディファイヤスタックに「UVWアンラップ」モディファイヤがある時に「ボリューム選択」モディファイヤを適用してみると、

fig04

ギズモはバウンディングボックスのサイズにはならなくて、

fig05

下のように小さな立方体になる。

fig06

だから今のプログラムではモディファイヤスタックの状態によってギズモの大きさに問題が出てしまう事になる。

続きはまた次回。

maxまとめページ



take_z_ultima at 11:30|この記事のURLComments(0)3ds Max | CG

2018年01月29日

プロシージャルモデリングについて調べてみた その20 modo11.2v2

前回に引き続き「ElboPipe」アセットについて調べてみたい。

fig03

前回は「elboPath」を調べたので、今回は「elboPipe」アイテムの中を調べてみたい。

fig03

これが「elboPipe」アイテムのオペレータリストだ。

fig02

このプロシージャルモデリングは「elbo CylinderProfile」オペレータから始まる。これは「円柱」を生成するオペレータで、プロパティは下のようになっていて、

fig04

「Catmull Clark」で、片方だけキャップがあり、Z軸方向で、軸方向の厚さが0の多角形を生成している。

fig05

「半径XY」と「サイド」、「エッジウェイト」がリンクされていて、「elboUI」をクリックするとポップアップするプロパティパネルの「Profile Sides」「Profile Width」「Profile Height」に接続されている。

fig06

この形状がパイプの断面形状になるので、これらのプロパティをいじるとパイプを扁平にしたりパイプの軸方向のエッジ数を変更できる。

fig07

続きはまた次回。

modo10-11ブログ目次



take_z_ultima at 11:30|この記事のURLComments(0)modo | CG

2018年01月25日

ビットマップペイントツールのチュートリアルをやってみた その116 3dsmax 2018

引き続きMAXScriptマニュアルに載っている「チュートリアル-ビットマップペイントツールを9つの簡単なステップで作成する」 の続きを考えて見たい。

前回は「PFlowコリジョンシェイプ」モディファイヤの「衝突シェイプ」オプションをOFFにする方法を使ったけど、この方法では「PFlowコリジョンシェイプ」モディファイヤ以外では対処出来ない。

そこで他の方法も試してみた。それはモディファイヤスタックのカレントスタックを移動する方法だ。

例えば前回のように「PFlowコリジョンシェイプ」モディファイヤをスタックに積んだ状態では

fig01

このスクリプトを実行してもエラーが出るけど、

theChannel = 1
faceIndex = 1
obj = $Sphere001
theMesh = snapshotasmesh obj
texFace = meshop.getMapFace theMesh theChannel faceIndex
tv1= meshop.getMapVert theMesh theChannel texFace.x
tv2= meshop.getMapVert theMesh theChannel texFace.y
tv3= meshop.getMapVert theMesh theChannel texFace.z

「PFlowコリジョンシェイプ」モディファイヤの下の「UVW アンラップ」をクリックすると、

fig02

ビューポートに表示されている球体も表示が切り替わって衝突シェイプが消えて、

fig03

スクリプトもエラー無く下のように実行される。

1
1
$Editable_Mesh:Sphere001 @ [-1.550152,-1.107250,0.000000]
TriMesh
[1,33,34]
[0,1,0]
[0,0.9375,0]
[0.03125,0.9375,0]
OK

ただ、「最終結果を表示」がONの場合はモディファイヤスタックを切り替えても結果が変わらないのでスクリプトでエラーが出る。

fig04

だからまずはこのオプションの状態を記録してからOFFにして、処理が終わったら値を復元するようにする。また、UVWマップの取得が目的なので、カレントスタックは「UVWアンラップ」モディファイヤにして、もし無ければ追加して切り替えるようにしてみた。

以下がそのスクリプトだ。これであれば「PFlowコリジョンシェイプ」モディファイヤがあろうと「UVWアンラップ」モディファイヤが無かろうとお構いなくUVWマップの値を取得する事が出来るし、「PFlowコリジョンシェイプ」モディファイヤ以外のモディファイヤでシェイプを置き換えるものが出て来ても、対処出来る可能性が高い。

theChannel = 1
faceIndex = 1
obj = $Sphere001
eser = showEndResult
showEndResult = false
md=undefined
if obj.modifiers[#Unwrap_UVW] == undefined then (
	addModifier obj (Unwrap_UVW ())
	md = obj.modifiers[#Unwrap_UVW]
)
modPanel.setCurrentObject obj.modifiers[#Unwrap_UVW]
theMesh = snapshotasmesh obj
modPanel.setCurrentObject obj.modifiers[1]
showEndResult = eser
texFace = meshop.getMapFace theMesh theChannel faceIndex
tv1= meshop.getMapVert theMesh theChannel texFace.x
tv2= meshop.getMapVert theMesh theChannel texFace.y
tv3= meshop.getMapVert theMesh theChannel texFace.z
if md != undefined then (
	deleteModifier obj md
)

続きはまた次回。

maxまとめページ



take_z_ultima at 11:30|この記事のURLComments(0)3ds Max | CG

2018年01月24日

プロシージャルモデリングについて調べてみた その19 modo11.2v2

前回に引き続き「ElboPipe」アセットについて調べてみたい。

前回の段階で下の画像のようにポリラインの頂点を掃引したエッジに選択セット「ebev」が適用された。

fig08

「elbo Edge Bevel」オペレータは「エッジベベル」オペレータで、この「ebev」選択セットのエッジに適用される。

fig01

「値」と「丸めレベル」パラメータは「elboUI」の「Elbo Size」と「Elbo Segments」に接続されてコントロール出来るようになっている。

fig02

この結果、掃引されたメッシュは下のように角が丸められる。

fig03

「elbo Edge2Curve」オペレータは「エッジをカーブへ」オペレータで、選択したエッジを単一のポリラインに変換する。

fig04

選択オペレータは以前に出てきたメッシュの輪郭エッジを選択するオペレータと、指定の長さより長いエッジを選択するオペレータと同じタイプのものを組み合わせたものになっていて、長さが2mmより大きいエッジのグループからメッシュの輪郭エッジのグループを除去したエッジのグループが選択されるようになっている。

これでメッシュの中央を通るエッジが1本の「ポリライン」に変換される。

fig05

これが「elboPath」が提供する「ポリライン」になる。

続きはまた次回。

modo10-11ブログ目次



take_z_ultima at 11:30|この記事のURLComments(0)modo | CG
Archives