Cutoff Tiny Weight
ダウンロード
Cutoff Tiny Weight
バージョン
v1.0
概要
このスクリプトは指定した値よりも低い値を持つウェイトを選択したり、消去します。
注意
このスクリプトはキット形式となっています。フォルダを解凍したらmjg_cutoff_wgtというフォルダができますので、このフォルダごとユーザースクリプトフォルダの中にコピーしてください。ユーザースクリプトフォルダを開くには、MODOを起動し、システムメニュー > ユーザースクリプトフォルダを開くを選択してください。
MODOをいったん閉じ、ユーザースクリプトフォルダの中にmjg_cutoff_wgtフォルダをコピーしたら、MODOを再起動し、キーを割り当てます。システムメニュー > フォーム編集の左側にあるFのキーを押し、検索フィールドにmjgと入力したら本キットが表示されますので、Cutoff Weightを右クリックしコンテキストメニューからキーに割り付けで適切なショートカットキーを割り当ててください。
解説
MODOではスケルトンをメッシュとバインドすると、自動的にウェイトが割り当てられ、さらにウェイトペイントツールなどでウェイトを自由に設定していくことが可能ですが、設定していくうちに微小な値を持つウェイト値が出てきてしまう場合があります。このスクリプトではそういったウェイト値を整理するため、指定した値よりも低い値を持つウェイト値を選択したり、消去することができます。
今回のスクリプトの肝となるのは、マップの値を取る箇所と頂点を選択状態にする箇所です。
マップの値を取る箇所は:
80: # Get Weight Value of Each Vertex
81: wgt_val = lx.eval( 'query layerservice vert.vmapValue ? %s' % pnt )
ここで返ってきたウェイト値wgt_valとしきい値を比較しています。
頂点を選択状態にする箇所は:
86: # Select Vertex
87: pnt_index = lx.eval( 'query layerservice vert.index ? %s' % pnt )
88: lx.eval( 'select.element %s vertex add %s' % ( fg_index, pnt_index ) )
頂点を選択するのに必要となるのは、レイヤーインデックスと頂点インデックスです。これが把握できれば、頂点を選択状態にすることが可能になります。