記事ではないです、個人的なメモです。
※2013/04/25 追記
myaraさん直々にコメントを頂きました。
標準機能で出来きる様です。・・・完全な知識不足でした。お恥ずかしい。
この記事は私の黒歴史として残しておきます。
見に来た方はそっと閉じて頂けると助かります(汗)
私はモデリング時、SIのハードエッジ機能(エッジが青くなるやつ)を色々活用してます。
ハードエッジを元にUV境界指定としてアンラップ、
ハードエッジを元にベベル→ハイモデル作成、という感じで。
デフォルト機能でこのハードエッジ化を行うと、エッジクラスターがゴミのように溜まっていくんですよね。そんな悩みを解決するのが、myaraさんのmHard Edge Marker。
かなり活用させて頂いてます。ありがとうございます。
ただ、mHard Edge Markerには、エッジの角度を元に選択する様な機能があっても、ハードエッジ化した部分を選択する機能がありませんので、上記フローを行うさいにちょっとだけ非効率になっちゃいます。
という事で簡単なスクリプトを・・
Softimageスクリプト Select Hard Edge
選択しているポリメッシュからハードエッジ(青エッジ)選択
動作確認済みバージョン:Softimage 2012 (ICEに対応したSIなら多分いけるかと
言語:VBScript
'---------Select Hard Edge '---------ymt3d '---------https://3dnchu.com/ '---------2013/04/25 set oObj = selection(0) '-------------------------------Main set oICEatt = oObj.Activeprimitive.geometry.ICEAttributes aHEdge = Array() for each oAtt in oICEatt if oAtt.name = "EdgeIsHard" then i = 0 oParam = oAtt.DataArray for each o in oParam if o = 0 then Push aHEdge,i'配列に押し込む end if i = i + 1 next end if next if UBound(aHEdge) >= 0 then aHedgeID = Join(aHEdge, ",") SelectGeometryComponents oObj&".edge["& aHedgeID &"]" end if '-------------------------------配列に押しこむ処理 Sub Push(Items, Item) ReDim Preserve Items(UBound(Items) + 1) Items(UBound(Items)) = Item End Sub '-------------------------------End
ICE用のパラメーターを取得して使用しています。
他に良い方法や、デフォルトの機能で出来るよ!とかいう重要な情報もありましたら教えてください・・
myaraさん!mHard Edge Markerに是非この機能を・・・
コメント