ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

MELでらせんモデルのエッジをカーブにする

MELでらせんモデルを作成してエッジからカーブを作成する方法についてメモ。

まず、らせんモデルの作成は以下のように記述してみます。

//らせんモデルを作成(断面を三角形に設定しておく)
polyHelix -c 2 -h 10 -w 10 -r 0.5 -sa 3 -sco 64 -sc 0 -d 1 -ax 0 1 0 -rcp 0 -cuv 3 -ch 1;

//オブジェクト名を取得してモデルの底辺が0の高さになるよう移動
string $name[] = `ls -sl`;
for( $n in $name)
{
setAttr($n + ".translateY") 5;
}


結果はこのような感じ。

f:id:moko_03_25:20160130021905p:plain

次に頂点番号2と5を選択します。エッジを選択する前準備です。
(このために断面を三角形にしています)

f:id:moko_03_25:20160130021907p:plain

//エッジ編集モードにして頂点番号2と5を選択
hilite ($n) ;
select -r ($n + ".vtx[2]") ;
select -add ($n + ".vtx[5]") ;
}


結果はうまくいきました。

f:id:moko_03_25:20160130021906p:plain

最後は選択した頂点をエッジ選択に変換してエッジループ選択を実行、カーブへ変換。

ConvertSelectionToContainedEdges;
SelectEdgeLoopSp;
polyToCurve -form 0 -degree 3;


無事にできました。

f:id:moko_03_25:20160130021908p:plain

エッジ取るのにもっと良い方法が色々あるのだろうなと想像しますが。。
モデル単体を作成して移動するのにリストに代入してたりとか、モデルの高さの半分の移動値にするように組んでなかったりとかは宿題ということで‥。

ここから先は、元のらせんモデルにラティスを適用して変形するなり、カーブのインスタンスを複製してロフトするなり、カーブに沿って別のカーブを押し出すなりすれば良いと思います。