2018年04月19日

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

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

前回の手順で不連続エッジを全て選択するプログラムを作ってみた。下がそのプログラムだ。

fn is_unce v1 v2 obj tch= (
  faces1 = meshop.getMapFacesUsingMapVert obj tch #{v1}
  faces2 = meshop.getMapFacesUsingMapVert obj tch #{v2}
  if (faces1 * faces2).numberSet == 1 then return true
  return false
)

obj = $Teapot001
tchannel = 1
fn v2e v1 v2 obj = (
  obj.modifiers[#unwrap_uvw].selectVerticesByNode #{v1,v2} obj
  obj.modifiers[#unwrap_uvw].vertToEdgeSelect()
  return obj.modifiers[#unwrap_uvw].getSelectedEdges() 
)

ucedges = #{}
for f = 1 to obj.faces.count do (
  theVerts = (meshop.getMapVertsUsingMapFace obj tchannel #(f)) as array
  if is_unce theVerts[1] theVerts[2] obj tchannel then ucedges += (v2e theVerts[1] theVerts[2] obj)
  if is_unce theVerts[2] theVerts[3] obj tchannel then ucedges += (v2e theVerts[2] theVerts[3] obj)
  if is_unce theVerts[3] theVerts[1] obj tchannel then ucedges += (v2e theVerts[3] theVerts[1] obj)
)
subobjectLevel = 2
obj.modifiers[#unwrap_uvw].selectEdgesByNode ucedges obj

シーンに「Teapot001」を1つ作成して、「UVWアンラップ」モディファイヤを追加する。

fig01

fig04

わかりやすいように「UVパッキング」で並べなおした。

fig02

そしてプログラムを実行してみた。結果が以下で、UVマップの切断部分のエッジすべてが選択されているのがわかる。

fig03

続きはまた次回。

maxまとめページ



take_z_ultima at 11:30│Comments(0)3ds Max | CG

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives